You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
Merge tag 'net-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski:
"Including fixes from netfilter, and wifi.
Current release - regressions:
- Revert "net/sched: taprio: make qdisc_leaf() see the
per-netdev-queue pfifo child qdiscs", it may cause crashes when the
qdisc is reconfigured
- inet: ping: fix splat due to packet allocation refactoring in inet
- tcp: clean up kernel listener's reqsk in inet_twsk_purge(), fix UAF
due to races when per-netns hash table is used
Current release - new code bugs:
- eth: adin1110: check in netdev_event that netdev belongs to driver
- fixes for PTR_ERR() vs NULL bugs in driver code, from Dan and co.
Previous releases - regressions:
- ipv4: handle attempt to delete multipath route when fib_info
contains an nh reference, avoid oob access
- wifi: fix handful of bugs in the new Multi-BSSID code
- wifi: mt76: fix rate reporting / throughput regression on mt7915
and newer, fix checksum offload
- wifi: iwlwifi: mvm: fix double list_add at
iwl_mvm_mac_wake_tx_queue (other cases)
- wifi: mac80211: do not drop packets smaller than the LLC-SNAP
header on fast-rx
Previous releases - always broken:
- ieee802154: don't warn zero-sized raw_sendmsg()
- ipv6: ping: fix wrong checksum for large frames
- mctp: prevent double key removal and unref
- tcp/udp: fix memory leaks and races around IPV6_ADDRFORM
- hv_netvsc: fix race between VF offering and VF association message
Misc:
- remove -Warray-bounds silencing in the drivers, compilers fixed"
* tag 'net-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (73 commits)
sunhme: fix an IS_ERR() vs NULL check in probe
net: marvell: prestera: fix a couple NULL vs IS_ERR() checks
kcm: avoid potential race in kcm_tx_work
tcp: Clean up kernel listener's reqsk in inet_twsk_purge()
net: phy: micrel: Fixes FIELD_GET assertion
openvswitch: add nf_ct_is_confirmed check before assigning the helper
tcp: Fix data races around icsk->icsk_af_ops.
ipv6: Fix data races around sk->sk_prot.
tcp/udp: Call inet6_destroy_sock() in IPv6 sk->sk_destruct().
udp: Call inet6_destroy_sock() in setsockopt(IPV6_ADDRFORM).
tcp/udp: Fix memory leak in ipv6_renew_options().
mctp: prevent double key removal and unref
selftests: netfilter: Fix nft_fib.sh for all.rp_filter=1
netfilter: rpfilter/fib: Populate flowic_l3mdev field
selftests: netfilter: Test reverse path filtering
net/mlx5: Make ASO poll CQ usable in atomic context
tcp: cdg: allow tcp_cdg_release() to be called multiple times
inet: ping: fix recent breakage
ipv6: ping: fix wrong checksum for large frames
net: ethernet: ti: am65-cpsw: set correct devlink flavour for unused ports
...
This commit is contained in:
@@ -120,7 +120,7 @@ required delays, as defined per the RGMII standard, several options may be
|
||||
available:
|
||||
|
||||
* Some SoCs may offer a pin pad/mux/controller capable of configuring a given
|
||||
set of pins'strength, delays, and voltage; and it may be a suitable
|
||||
set of pins' strength, delays, and voltage; and it may be a suitable
|
||||
option to insert the expected 2ns RGMII delay.
|
||||
|
||||
* Modifying the PCB design to include a fixed delay (e.g: using a specifically
|
||||
|
||||
@@ -18670,6 +18670,7 @@ F: drivers/misc/sgi-xp/
|
||||
SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
|
||||
M: Karsten Graul <kgraul@linux.ibm.com>
|
||||
M: Wenjia Zhang <wenjia@linux.ibm.com>
|
||||
M: Jan Karcher <jaka@linux.ibm.com>
|
||||
L: linux-s390@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://www.ibm.com/developerworks/linux/linux390/
|
||||
|
||||
@@ -2345,8 +2345,7 @@ HFC_init(void)
|
||||
static void __exit
|
||||
HFC_cleanup(void)
|
||||
{
|
||||
if (timer_pending(&hfc_tl))
|
||||
del_timer_sync(&hfc_tl);
|
||||
del_timer_sync(&hfc_tl);
|
||||
|
||||
pci_unregister_driver(&hfc_driver);
|
||||
}
|
||||
|
||||
@@ -178,6 +178,8 @@ struct kvaser_usb_dev_cfg {
|
||||
extern const struct kvaser_usb_dev_ops kvaser_usb_hydra_dev_ops;
|
||||
extern const struct kvaser_usb_dev_ops kvaser_usb_leaf_dev_ops;
|
||||
|
||||
void kvaser_usb_unlink_tx_urbs(struct kvaser_usb_net_priv *priv);
|
||||
|
||||
int kvaser_usb_recv_cmd(const struct kvaser_usb *dev, void *cmd, int len,
|
||||
int *actual_len);
|
||||
|
||||
|
||||
@@ -477,7 +477,7 @@ static void kvaser_usb_reset_tx_urb_contexts(struct kvaser_usb_net_priv *priv)
|
||||
/* This method might sleep. Do not call it in the atomic context
|
||||
* of URB completions.
|
||||
*/
|
||||
static void kvaser_usb_unlink_tx_urbs(struct kvaser_usb_net_priv *priv)
|
||||
void kvaser_usb_unlink_tx_urbs(struct kvaser_usb_net_priv *priv)
|
||||
{
|
||||
usb_kill_anchored_urbs(&priv->tx_submitted);
|
||||
kvaser_usb_reset_tx_urb_contexts(priv);
|
||||
@@ -729,6 +729,7 @@ static int kvaser_usb_init_one(struct kvaser_usb *dev, int channel)
|
||||
init_usb_anchor(&priv->tx_submitted);
|
||||
init_completion(&priv->start_comp);
|
||||
init_completion(&priv->stop_comp);
|
||||
init_completion(&priv->flush_comp);
|
||||
priv->can.ctrlmode_supported = 0;
|
||||
|
||||
priv->dev = dev;
|
||||
|
||||
@@ -1916,7 +1916,7 @@ static int kvaser_usb_hydra_flush_queue(struct kvaser_usb_net_priv *priv)
|
||||
{
|
||||
int err;
|
||||
|
||||
init_completion(&priv->flush_comp);
|
||||
reinit_completion(&priv->flush_comp);
|
||||
|
||||
err = kvaser_usb_hydra_send_simple_cmd(priv->dev, CMD_FLUSH_QUEUE,
|
||||
priv->channel);
|
||||
|
||||
@@ -310,6 +310,38 @@ struct kvaser_cmd {
|
||||
} u;
|
||||
} __packed;
|
||||
|
||||
#define CMD_SIZE_ANY 0xff
|
||||
#define kvaser_fsize(field) sizeof_field(struct kvaser_cmd, field)
|
||||
|
||||
static const u8 kvaser_usb_leaf_cmd_sizes_leaf[] = {
|
||||
[CMD_START_CHIP_REPLY] = kvaser_fsize(u.simple),
|
||||
[CMD_STOP_CHIP_REPLY] = kvaser_fsize(u.simple),
|
||||
[CMD_GET_CARD_INFO_REPLY] = kvaser_fsize(u.cardinfo),
|
||||
[CMD_TX_ACKNOWLEDGE] = kvaser_fsize(u.tx_acknowledge_header),
|
||||
[CMD_GET_SOFTWARE_INFO_REPLY] = kvaser_fsize(u.leaf.softinfo),
|
||||
[CMD_RX_STD_MESSAGE] = kvaser_fsize(u.leaf.rx_can),
|
||||
[CMD_RX_EXT_MESSAGE] = kvaser_fsize(u.leaf.rx_can),
|
||||
[CMD_LEAF_LOG_MESSAGE] = kvaser_fsize(u.leaf.log_message),
|
||||
[CMD_CHIP_STATE_EVENT] = kvaser_fsize(u.leaf.chip_state_event),
|
||||
[CMD_CAN_ERROR_EVENT] = kvaser_fsize(u.leaf.error_event),
|
||||
/* ignored events: */
|
||||
[CMD_FLUSH_QUEUE_REPLY] = CMD_SIZE_ANY,
|
||||
};
|
||||
|
||||
static const u8 kvaser_usb_leaf_cmd_sizes_usbcan[] = {
|
||||
[CMD_START_CHIP_REPLY] = kvaser_fsize(u.simple),
|
||||
[CMD_STOP_CHIP_REPLY] = kvaser_fsize(u.simple),
|
||||
[CMD_GET_CARD_INFO_REPLY] = kvaser_fsize(u.cardinfo),
|
||||
[CMD_TX_ACKNOWLEDGE] = kvaser_fsize(u.tx_acknowledge_header),
|
||||
[CMD_GET_SOFTWARE_INFO_REPLY] = kvaser_fsize(u.usbcan.softinfo),
|
||||
[CMD_RX_STD_MESSAGE] = kvaser_fsize(u.usbcan.rx_can),
|
||||
[CMD_RX_EXT_MESSAGE] = kvaser_fsize(u.usbcan.rx_can),
|
||||
[CMD_CHIP_STATE_EVENT] = kvaser_fsize(u.usbcan.chip_state_event),
|
||||
[CMD_CAN_ERROR_EVENT] = kvaser_fsize(u.usbcan.error_event),
|
||||
/* ignored events: */
|
||||
[CMD_USBCAN_CLOCK_OVERFLOW_EVENT] = CMD_SIZE_ANY,
|
||||
};
|
||||
|
||||
/* Summary of a kvaser error event, for a unified Leaf/Usbcan error
|
||||
* handling. Some discrepancies between the two families exist:
|
||||
*
|
||||
@@ -397,6 +429,43 @@ static const struct kvaser_usb_dev_cfg kvaser_usb_leaf_imx_dev_cfg_32mhz = {
|
||||
.bittiming_const = &kvaser_usb_flexc_bittiming_const,
|
||||
};
|
||||
|
||||
static int kvaser_usb_leaf_verify_size(const struct kvaser_usb *dev,
|
||||
const struct kvaser_cmd *cmd)
|
||||
{
|
||||
/* buffer size >= cmd->len ensured by caller */
|
||||
u8 min_size = 0;
|
||||
|
||||
switch (dev->driver_info->family) {
|
||||
case KVASER_LEAF:
|
||||
if (cmd->id < ARRAY_SIZE(kvaser_usb_leaf_cmd_sizes_leaf))
|
||||
min_size = kvaser_usb_leaf_cmd_sizes_leaf[cmd->id];
|
||||
break;
|
||||
case KVASER_USBCAN:
|
||||
if (cmd->id < ARRAY_SIZE(kvaser_usb_leaf_cmd_sizes_usbcan))
|
||||
min_size = kvaser_usb_leaf_cmd_sizes_usbcan[cmd->id];
|
||||
break;
|
||||
}
|
||||
|
||||
if (min_size == CMD_SIZE_ANY)
|
||||
return 0;
|
||||
|
||||
if (min_size) {
|
||||
min_size += CMD_HEADER_LEN;
|
||||
if (cmd->len >= min_size)
|
||||
return 0;
|
||||
|
||||
dev_err_ratelimited(&dev->intf->dev,
|
||||
"Received command %u too short (size %u, needed %u)",
|
||||
cmd->id, cmd->len, min_size);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
dev_warn_ratelimited(&dev->intf->dev,
|
||||
"Unhandled command (%d, size %d)\n",
|
||||
cmd->id, cmd->len);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static void *
|
||||
kvaser_usb_leaf_frame_to_cmd(const struct kvaser_usb_net_priv *priv,
|
||||
const struct sk_buff *skb, int *cmd_len,
|
||||
@@ -502,6 +571,9 @@ static int kvaser_usb_leaf_wait_cmd(const struct kvaser_usb *dev, u8 id,
|
||||
end:
|
||||
kfree(buf);
|
||||
|
||||
if (err == 0)
|
||||
err = kvaser_usb_leaf_verify_size(dev, cmd);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -1133,6 +1205,9 @@ static void kvaser_usb_leaf_stop_chip_reply(const struct kvaser_usb *dev,
|
||||
static void kvaser_usb_leaf_handle_command(const struct kvaser_usb *dev,
|
||||
const struct kvaser_cmd *cmd)
|
||||
{
|
||||
if (kvaser_usb_leaf_verify_size(dev, cmd) < 0)
|
||||
return;
|
||||
|
||||
switch (cmd->id) {
|
||||
case CMD_START_CHIP_REPLY:
|
||||
kvaser_usb_leaf_start_chip_reply(dev, cmd);
|
||||
@@ -1351,9 +1426,13 @@ static int kvaser_usb_leaf_set_mode(struct net_device *netdev,
|
||||
|
||||
switch (mode) {
|
||||
case CAN_MODE_START:
|
||||
kvaser_usb_unlink_tx_urbs(priv);
|
||||
|
||||
err = kvaser_usb_leaf_simple_cmd_async(priv, CMD_START_CHIP);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
priv->can.state = CAN_STATE_ERROR_ACTIVE;
|
||||
break;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
@@ -1169,6 +1169,11 @@ static int adin1110_port_bridge_leave(struct adin1110_port_priv *port_priv,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool adin1110_port_dev_check(const struct net_device *dev)
|
||||
{
|
||||
return dev->netdev_ops == &adin1110_netdev_ops;
|
||||
}
|
||||
|
||||
static int adin1110_netdevice_event(struct notifier_block *unused,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
@@ -1177,6 +1182,9 @@ static int adin1110_netdevice_event(struct notifier_block *unused,
|
||||
struct netdev_notifier_changeupper_info *info = ptr;
|
||||
int ret = 0;
|
||||
|
||||
if (!adin1110_port_dev_check(dev))
|
||||
return NOTIFY_DONE;
|
||||
|
||||
switch (event) {
|
||||
case NETDEV_CHANGEUPPER:
|
||||
if (netif_is_bridge_master(info->upper_dev)) {
|
||||
@@ -1202,11 +1210,6 @@ static void adin1110_disconnect_phy(void *data)
|
||||
phy_disconnect(data);
|
||||
}
|
||||
|
||||
static bool adin1110_port_dev_check(const struct net_device *dev)
|
||||
{
|
||||
return dev->netdev_ops == &adin1110_netdev_ops;
|
||||
}
|
||||
|
||||
static int adin1110_port_set_forwarding_state(struct adin1110_port_priv *port_priv)
|
||||
{
|
||||
struct adin1110_priv *priv = port_priv->priv;
|
||||
|
||||
@@ -17,8 +17,3 @@ obj-$(CONFIG_BGMAC_BCMA) += bgmac-bcma.o bgmac-bcma-mdio.o
|
||||
obj-$(CONFIG_BGMAC_PLATFORM) += bgmac-platform.o
|
||||
obj-$(CONFIG_SYSTEMPORT) += bcmsysport.o
|
||||
obj-$(CONFIG_BNXT) += bnxt/
|
||||
|
||||
# FIXME: temporarily silence -Warray-bounds on non W=1+ builds
|
||||
ifndef KBUILD_EXTRA_WARN
|
||||
CFLAGS_tg3.o += -Wno-array-bounds
|
||||
endif
|
||||
|
||||
@@ -484,7 +484,7 @@ struct bcm_rsb {
|
||||
|
||||
/* Number of Receive hardware descriptor words */
|
||||
#define SP_NUM_HW_RX_DESC_WORDS 1024
|
||||
#define SP_LT_NUM_HW_RX_DESC_WORDS 256
|
||||
#define SP_LT_NUM_HW_RX_DESC_WORDS 512
|
||||
|
||||
/* Internal linked-list RAM size */
|
||||
#define SP_NUM_TX_DESC 1536
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include <linux/math64.h>
|
||||
#include <linux/refcount.h>
|
||||
#include <net/pkt_cls.h>
|
||||
#include <net/pkt_sched.h>
|
||||
#include <net/tc_act/tc_gate.h>
|
||||
|
||||
static u16 enetc_get_max_gcl_len(struct enetc_hw *hw)
|
||||
|
||||
@@ -1182,8 +1182,10 @@ static int mcs_register_interrupts(struct mcs *mcs)
|
||||
mcs_reg_write(mcs, MCSX_PAB_TX_SLAVE_PAB_INT_ENB, 0xff);
|
||||
|
||||
mcs->tx_sa_active = alloc_mem(mcs, mcs->hw->sc_entries);
|
||||
if (!mcs->tx_sa_active)
|
||||
if (!mcs->tx_sa_active) {
|
||||
ret = -ENOMEM;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
return ret;
|
||||
exit:
|
||||
|
||||
@@ -133,7 +133,7 @@ static int cn10k_mcs_alloc_rsrc(struct otx2_nic *pfvf, enum mcs_direction dir,
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
goto fail;
|
||||
};
|
||||
}
|
||||
|
||||
mutex_unlock(&mbox->lock);
|
||||
|
||||
@@ -284,7 +284,7 @@ static int cn10k_mcs_write_sc_cam(struct otx2_nic *pfvf,
|
||||
|
||||
sc_req = otx2_mbox_alloc_msg_mcs_rx_sc_cam_write(mbox);
|
||||
if (!sc_req) {
|
||||
return -ENOMEM;
|
||||
ret = -ENOMEM;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@@ -594,7 +594,7 @@ static int cn10k_mcs_ena_dis_flowid(struct otx2_nic *pfvf, u16 hw_flow_id,
|
||||
|
||||
req = otx2_mbox_alloc_msg_mcs_flowid_ena_entry(mbox);
|
||||
if (!req) {
|
||||
return -ENOMEM;
|
||||
ret = -ENOMEM;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@@ -1653,6 +1653,7 @@ int cn10k_mcs_init(struct otx2_nic *pfvf)
|
||||
return 0;
|
||||
fail:
|
||||
dev_err(pfvf->dev, "Cannot notify PN wrapped event\n");
|
||||
mutex_unlock(&mbox->lock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -2810,7 +2810,7 @@ static int otx2_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
err = register_netdev(netdev);
|
||||
if (err) {
|
||||
dev_err(dev, "Failed to register netdevice\n");
|
||||
goto err_del_mcam_entries;
|
||||
goto err_mcs_free;
|
||||
}
|
||||
|
||||
err = otx2_wq_init(pf);
|
||||
@@ -2849,6 +2849,8 @@ err_mcam_flow_del:
|
||||
otx2_mcam_flow_del(pf);
|
||||
err_unreg_netdev:
|
||||
unregister_netdev(netdev);
|
||||
err_mcs_free:
|
||||
cn10k_mcs_free(pf);
|
||||
err_del_mcam_entries:
|
||||
otx2_mcam_flow_del(pf);
|
||||
err_ptp_destroy:
|
||||
|
||||
@@ -96,6 +96,8 @@ int prestera_mall_replace(struct prestera_flow_block *block,
|
||||
|
||||
list_for_each_entry(binding, &block->binding_list, list) {
|
||||
err = prestera_span_rule_add(binding, port, block->ingress);
|
||||
if (err == -EEXIST)
|
||||
return err;
|
||||
if (err)
|
||||
goto rollback;
|
||||
}
|
||||
|
||||
@@ -498,8 +498,8 @@ prestera_nexthop_group_get(struct prestera_switch *sw,
|
||||
refcount_inc(&nh_grp->refcount);
|
||||
} else {
|
||||
nh_grp = __prestera_nexthop_group_create(sw, key);
|
||||
if (IS_ERR(nh_grp))
|
||||
return ERR_CAST(nh_grp);
|
||||
if (!nh_grp)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
refcount_set(&nh_grp->refcount, 1);
|
||||
}
|
||||
@@ -651,7 +651,7 @@ prestera_fib_node_create(struct prestera_switch *sw,
|
||||
case PRESTERA_FIB_TYPE_UC_NH:
|
||||
fib_node->info.nh_grp = prestera_nexthop_group_get(sw,
|
||||
nh_grp_key);
|
||||
if (!fib_node->info.nh_grp)
|
||||
if (IS_ERR(fib_node->info.nh_grp))
|
||||
goto err_nh_grp_get;
|
||||
|
||||
grp_id = fib_node->info.nh_grp->grp_id;
|
||||
|
||||
@@ -107,7 +107,7 @@ static int prestera_span_put(struct prestera_switch *sw, u8 span_id)
|
||||
|
||||
entry = prestera_span_entry_find_by_id(sw->span, span_id);
|
||||
if (!entry)
|
||||
return false;
|
||||
return -ENOENT;
|
||||
|
||||
if (!refcount_dec_and_test(&entry->ref_count))
|
||||
return 0;
|
||||
@@ -151,6 +151,9 @@ int prestera_span_rule_del(struct prestera_flow_block_binding *binding,
|
||||
{
|
||||
int err;
|
||||
|
||||
if (binding->span_id == PRESTERA_SPAN_INVALID_ID)
|
||||
return -ENOENT;
|
||||
|
||||
err = prestera_hw_span_unbind(binding->port, ingress);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
@@ -11,8 +11,3 @@ mtk_eth-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed_debugfs.o
|
||||
endif
|
||||
obj-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed_ops.o
|
||||
obj-$(CONFIG_NET_MEDIATEK_STAR_EMAC) += mtk_star_emac.o
|
||||
|
||||
# FIXME: temporarily silence -Warray-bounds on non W=1+ builds
|
||||
ifndef KBUILD_EXTRA_WARN
|
||||
CFLAGS_mtk_ppe.o += -Wno-array-bounds
|
||||
endif
|
||||
|
||||
@@ -115,6 +115,7 @@ mlx5e_tc_meter_modify(struct mlx5_core_dev *mdev,
|
||||
struct mlx5e_flow_meters *flow_meters;
|
||||
u8 cir_man, cir_exp, cbs_man, cbs_exp;
|
||||
struct mlx5_aso_wqe *aso_wqe;
|
||||
unsigned long expires;
|
||||
struct mlx5_aso *aso;
|
||||
u64 rate, burst;
|
||||
u8 ds_cnt;
|
||||
@@ -187,7 +188,12 @@ mlx5e_tc_meter_modify(struct mlx5_core_dev *mdev,
|
||||
mlx5_aso_post_wqe(aso, true, &aso_wqe->ctrl);
|
||||
|
||||
/* With newer FW, the wait for the first ASO WQE is more than 2us, put the wait 10ms. */
|
||||
err = mlx5_aso_poll_cq(aso, true, 10);
|
||||
expires = jiffies + msecs_to_jiffies(10);
|
||||
do {
|
||||
err = mlx5_aso_poll_cq(aso, true);
|
||||
if (err)
|
||||
usleep_range(2, 10);
|
||||
} while (err && time_is_after_jiffies(expires));
|
||||
mutex_unlock(&flow_meters->aso_lock);
|
||||
|
||||
return err;
|
||||
|
||||
@@ -1405,7 +1405,7 @@ static int macsec_aso_set_arm_event(struct mlx5_core_dev *mdev, struct mlx5e_mac
|
||||
MLX5_ACCESS_ASO_OPC_MOD_MACSEC);
|
||||
macsec_aso_build_ctrl(aso, &aso_wqe->aso_ctrl, in);
|
||||
mlx5_aso_post_wqe(maso, false, &aso_wqe->ctrl);
|
||||
err = mlx5_aso_poll_cq(maso, false, 10);
|
||||
err = mlx5_aso_poll_cq(maso, false);
|
||||
mutex_unlock(&aso->aso_lock);
|
||||
|
||||
return err;
|
||||
@@ -1430,7 +1430,7 @@ static int macsec_aso_query(struct mlx5_core_dev *mdev, struct mlx5e_macsec *mac
|
||||
macsec_aso_build_wqe_ctrl_seg(aso, &aso_wqe->aso_ctrl, NULL);
|
||||
|
||||
mlx5_aso_post_wqe(maso, false, &aso_wqe->ctrl);
|
||||
err = mlx5_aso_poll_cq(maso, false, 10);
|
||||
err = mlx5_aso_poll_cq(maso, false);
|
||||
if (err)
|
||||
goto err_out;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user