projects/linux·commit b5ac3beb

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

b5ac3beb · Linus Torvalds <[email protected]> · 2017-10-21 22:44:48 -04:00

Pull networking fixes from David Miller:
 "A little more than usual this time around. Been travelling, so that is
  part of it.

  Anyways, here are the highlights:

   1) Deal with memcontrol races wrt. listener dismantle, from Eric
      Dumazet.

   2) Handle page allocation failures properly in nfp driver, from Jaku
      Kicinski.

   3) Fix memory leaks in macsec, from Sabrina Dubroca.

   4) Fix crashes in pppol2tp_session_ioctl(), from Guillaume Nault.

   5) Several fixes in bnxt_en driver, including preventing potential
      NVRAM parameter corruption from Michael Chan.

   6) Fix for KRACK attacks in wireless, from Johannes Berg.

   7) rtnetlink event generation fixes from Xin Long.

   8) Deadlock in mlxsw driver, from Ido Schimmel.

   9) Disallow arithmetic operations on context pointers in bpf, from
      Jakub Kicinski.

  10) Missing sock_owned_by_user() check in sctp_icmp_redirect(), from
      Xin Long.

  11) Only TCP is supported for sockmap, make that explicit with a
      check, from John Fastabend.

  12) Fix IP options state races in DCCP and TCP, from Eric Dumazet.

  13) Fix panic in packet_getsockopt(), also from Eric Dumazet.

  14) Add missing locked in hv_sock layer, from Dexuan Cui.

  15) Various aquantia bug fixes, including several statistics handling
      cures. From Igor Russkikh et al.

  16) Fix arithmetic overflow in devmap code, from John Fastabend.

  17) Fix busted socket memory accounting when we get a fault in the tcp
      zero copy paths. From Willem de Bruijn.

  18) Don't leave opt->tot_len uninitialized in ipv6, from Eric Dumazet"

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (106 commits)
  stmmac: Don't access tx_q->dirty_tx before netif_tx_lock
  ipv6: flowlabel: do not leave opt->tot_len with garbage
  of_mdio: Fix broken PHY IRQ in case of probe deferral
  textsearch: fix typos in library helpers
  rxrpc: Don't release call mutex on error pointer
  net: stmmac: Prevent infinite loop in get_rx_timestamp_status()
  net: stmmac: Fix stmmac_get_rx_hwtstamp()
  net: stmmac: Add missing call to dev_kfree_skb()
  mlxsw: spectrum_router: Configure TIGCR on init
  mlxsw: reg: Add Tunneling IPinIP General Configuration Register
  net: ethtool: remove error check for legacy setting transceiver type
  soreuseport: fix initialization race
  net: bridge: fix returning of vlan range op errors
  sock: correct sk_wmem_queued accounting on efault in tcp zerocopy
  bpf: add test cases to bpf selftests to cover all access tests
  bpf: fix pattern matches for direct packet access
  bpf: fix off by one for range markings with L{T, E} patterns
  bpf: devmap fix arithmetic overflow in bitmap_size calculation
  net: aquantia: Bad udp rate on default interrupt coalescing
  net: aquantia: Enable coalescing management via ethtool interface
  ...
Commit
b5ac3beb5a9f0ef0ea64cd85faf94c0dc4de0e42
Parents
e5f468b3 · 8d5f4b07

Merge commit. Changes below are compared with the first parent: e5f468b3.

Changes

113 files changed · +1735 −689

FileStatusAddDelContent
drivers/net/can/flexcan.cmodified+76−15View file
drivers/net/can/usb/esd_usb2.cmodified+1−1View file
drivers/net/can/usb/gs_usb.cmodified+2−8View file
drivers/net/dsa/mv88e6060.cmodified+8−2View file
drivers/net/ethernet/amazon/ena/ena_ethtool.cmodified+2−2View file
drivers/net/ethernet/amazon/ena/ena_netdev.cmodified+4−3View file
drivers/net/ethernet/aquantia/atlantic/aq_cfg.hmodified+6−2View file
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.cmodified+99−58View file
drivers/net/ethernet/aquantia/atlantic/aq_hw.hmodified+3−2View file
drivers/net/ethernet/aquantia/atlantic/aq_nic.cmodified+30−9View file
drivers/net/ethernet/aquantia/atlantic/aq_nic.hmodified+3−1View file
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.cmodified+10−4View file
drivers/net/ethernet/aquantia/atlantic/aq_vec.cmodified+3−0View file
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.cmodified+10−11View file
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.cmodified+49−40View file
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0_internal.hmodified+3−0View file
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.cmodified+55−14View file
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.hmodified+13−5View file
drivers/net/ethernet/broadcom/bnxt/bnxt.cmodified+73−26View file
drivers/net/ethernet/broadcom/bnxt/bnxt.hmodified+5−0View file
drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.cmodified+18−5View file
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.cmodified+7−1View file
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.cmodified+9−2View file
drivers/net/ethernet/cavium/liquidio/lio_main.cmodified+1−1View file
drivers/net/ethernet/ibm/ibmvnic.cmodified+8−8View file
drivers/net/ethernet/intel/i40e/i40e_nvm.cmodified+1−1View file
drivers/net/ethernet/intel/i40e/i40e_txrx.cmodified+36−27View file
drivers/net/ethernet/mellanox/mlxsw/core.cmodified+10−1View file
drivers/net/ethernet/mellanox/mlxsw/reg.hmodified+31−0View file
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.cmodified+10−1View file
drivers/net/ethernet/netronome/nfp/nfp_net_common.cmodified+14−6View file
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.cmodified+5−3View file
drivers/net/ethernet/realtek/r8169.cmodified+0−2View file
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.cmodified+1−1View file
drivers/net/ethernet/stmicro/stmmac/dwmac_lib.cmodified+1−1View file
drivers/net/ethernet/stmicro/stmmac/stmmac_main.cmodified+9−8View file
drivers/net/geneve.cmodified+0−6View file
drivers/net/macsec.cmodified+2−0View file
drivers/net/tun.cmodified+3−0View file
drivers/net/wimax/i2400m/fw.cmodified+1−1View file
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.cmodified+2−1View file
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.cmodified+97−100View file
drivers/net/wireless/intel/iwlwifi/cfg/7000.cmodified+1−0View file
drivers/net/wireless/intel/iwlwifi/cfg/8000.cmodified+1−1View file
drivers/net/wireless/intel/iwlwifi/cfg/9000.cmodified+1−1View file
drivers/net/wireless/intel/iwlwifi/cfg/a000.cmodified+1−1View file
drivers/net/wireless/intel/iwlwifi/fw/api/nvm-reg.hmodified+2−0View file
drivers/net/wireless/intel/iwlwifi/fw/dbg.cmodified+2−5View file
drivers/net/wireless/intel/iwlwifi/fw/dbg.hmodified+15−0View file
drivers/net/wireless/intel/iwlwifi/iwl-config.hmodified+14−2View file
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.cmodified+62−75View file
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.cmodified+7−0View file
drivers/net/wireless/intel/iwlwifi/mvm/mvm.hmodified+4−1View file
drivers/net/wireless/intel/iwlwifi/mvm/nvm.cmodified+15−6View file
drivers/net/wireless/intel/iwlwifi/mvm/rx.cmodified+3−1View file
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.cmodified+3−1View file
drivers/net/wireless/intel/iwlwifi/mvm/tt.cmodified+1−1View file
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.cmodified+1−1View file
drivers/of/of_mdio.cmodified+27−12View file
include/linux/filter.hmodified+1−1View file
include/linux/netdevice.hmodified+3−0View file
include/net/inet_sock.hmodified+1−1View file
include/net/tcp.hmodified+5−0View file
kernel/bpf/arraymap.cmodified+1−1View file
kernel/bpf/devmap.cmodified+7−3View file
kernel/bpf/hashtab.cmodified+0−4View file
kernel/bpf/sockmap.cmodified+18−10View file
kernel/bpf/verifier.cmodified+51−14View file
lib/ts_fsm.cmodified+1−1View file
lib/ts_kmp.cmodified+1−1View file
mm/memcontrol.cmodified+0−15View file
mm/percpu.cmodified+10−5View file
net/bridge/br_netlink.cmodified+1−1View file
net/can/af_can.cmodified+16−4View file
net/can/bcm.cmodified+3−2View file
net/core/dev.cmodified+3−3View file
net/core/dev_ioctl.cmodified+12−1View file
net/core/ethtool.cmodified+2−3View file
net/core/filter.cmodified+16−15View file
net/core/rtnetlink.cmodified+10−3View file
net/core/skbuff.cmodified+5−1View file
net/core/sock.cmodified+5−3View file
net/core/sock_reuseport.cmodified+9−3View file
net/dccp/ipv4.cmodified+8−5View file
net/ipv4/Kconfigmodified+3−5View file
net/ipv4/cipso_ipv4.cmodified+7−17View file
net/ipv4/inet_connection_sock.cmodified+4−5View file
net/ipv4/inet_hashtables.cmodified+1−4View file
net/ipv4/syncookies.cmodified+1−1View file
net/ipv4/tcp_input.cmodified+1−1View file
net/ipv4/tcp_ipv4.cmodified+13−9View file
net/ipv4/udp.cmodified+3−6View file
net/ipv6/ip6_flowlabel.cmodified+1−0View file
net/ipv6/ip6_output.cmodified+2−2View file
net/l2tp/l2tp_ppp.cmodified+3−0View file
net/mac80211/key.cmodified+17−4View file
net/ncsi/internal.hmodified+1−0View file
net/ncsi/ncsi-aen.cmodified+1−1View file
net/ncsi/ncsi-manage.cmodified+33−19View file
net/ncsi/ncsi-rsp.cmodified+1−1View file
net/netlink/af_netlink.cmodified+4−4View file
net/packet/af_packet.cmodified+16−8View file
net/rxrpc/af_rxrpc.cmodified+3−2View file
net/sched/cls_flower.cmodified+2−0View file
net/sctp/input.cmodified+1−1View file
net/sctp/socket.cmodified+4−0View file
net/vmw_vsock/hyperv_transport.cmodified+18−4View file
samples/sockmap/sockmap_kern.cmodified+1−1View file
tools/include/uapi/linux/bpf.hmodified+2−1View file
tools/testing/selftests/bpf/bpf_helpers.hmodified+1−1View file
tools/testing/selftests/bpf/sockmap_verdict_prog.cmodified+2−2View file
tools/testing/selftests/bpf/test_maps.cmodified+11−1View file
tools/testing/selftests/bpf/test_verifier.cmodified+508−2View file

Only the first 600 diff lines are shown. Download the complete patch.

drivers/net/can/flexcan.c

View file
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 13f0f21..a13a489 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -182,22 +182,23 @@
/* FLEXCAN hardware feature flags
*
* Below is some version info we got:
- * SOC Version IP-Version Glitch- [TR]WRN_INT Memory err RTR re-
- * Filter? connected? detection ception in MB
- * MX25 FlexCAN2 03.00.00.00 no no no no
- * MX28 FlexCAN2 03.00.04.00 yes yes no no
- * MX35 FlexCAN2 03.00.00.00 no no no no
- * MX53 FlexCAN2 03.00.00.00 yes no no no
- * MX6s FlexCAN3 10.00.12.00 yes yes no yes
- * VF610 FlexCAN3 ? no yes yes yes?
+ * SOC Version IP-Version Glitch- [TR]WRN_INT IRQ Err Memory err RTR re-
+ * Filter? connected? Passive detection ception in MB
+ * MX25 FlexCAN2 03.00.00.00 no no ? no no
+ * MX28 FlexCAN2 03.00.04.00 yes yes no no no
+ * MX35 FlexCAN2 03.00.00.00 no no ? no no
+ * MX53 FlexCAN2 03.00.00.00 yes no no no no
+ * MX6s FlexCAN3 10.00.12.00 yes yes no no yes
+ * VF610 FlexCAN3 ? no yes ? yes yes?
*
* Some SOCs do not have the RX_WARN & TX_WARN interrupt line connected.
*/
-#define FLEXCAN_QUIRK_BROKEN_ERR_STATE BIT(1) /* [TR]WRN_INT not connected */
+#define FLEXCAN_QUIRK_BROKEN_WERR_STATE BIT(1) /* [TR]WRN_INT not connected */
#define FLEXCAN_QUIRK_DISABLE_RXFG BIT(2) /* Disable RX FIFO Global mask */
#define FLEXCAN_QUIRK_ENABLE_EACEN_RRS BIT(3) /* Enable EACEN and RRS bit in ctrl2 */
#define FLEXCAN_QUIRK_DISABLE_MECR BIT(4) /* Disable Memory error detection */
#define FLEXCAN_QUIRK_USE_OFF_TIMESTAMP BIT(5) /* Use timestamp based offloading */
+#define FLEXCAN_QUIRK_BROKEN_PERR_STATE BIT(6) /* No interrupt for error passive */
/* Structure of the message buffer */
struct flexcan_mb {
@@ -281,14 +282,17 @@ struct flexcan_priv {
};
static const struct flexcan_devtype_data fsl_p1010_devtype_data = {
- .quirks = FLEXCAN_QUIRK_BROKEN_ERR_STATE,
+ .quirks = FLEXCAN_QUIRK_BROKEN_WERR_STATE |
+ FLEXCAN_QUIRK_BROKEN_PERR_STATE,
};
-static const struct flexcan_devtype_data fsl_imx28_devtype_data;
+static const struct flexcan_devtype_data fsl_imx28_devtype_data = {
+ .quirks = FLEXCAN_QUIRK_BROKEN_PERR_STATE,
+};
static const struct flexcan_devtype_data fsl_imx6q_devtype_data = {
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
- FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
+ FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | FLEXCAN_QUIRK_BROKEN_PERR_STATE,
};
static const struct flexcan_devtype_data fsl_vf610_devtype_data = {
@@ -335,6 +339,22 @@ static inline void flexcan_write(u32 val, void __iomem *addr)
}
#endif
+static inline void flexcan_error_irq_enable(const struct flexcan_priv *priv)
+{
+ struct flexcan_regs __iomem *regs = priv->regs;
+ u32 reg_ctrl = (priv->reg_ctrl_default | FLEXCAN_CTRL_ERR_MSK);
+
+ flexcan_write(reg_ctrl, &regs->ctrl);
+}
+
+static inline void flexcan_error_irq_disable(const struct flexcan_priv *priv)
+{
+ struct flexcan_regs __iomem *regs = priv->regs;
+ u32 reg_ctrl = (priv->reg_ctrl_default & ~FLEXCAN_CTRL_ERR_MSK);
+
+ flexcan_write(reg_ctrl, &regs->ctrl);
+}
+
static inline int flexcan_transceiver_enable(const struct flexcan_priv *priv)
{
if (!priv->reg_xceiver)
@@ -713,6 +733,7 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
struct flexcan_regs __iomem *regs = priv->regs;
irqreturn_t handled = IRQ_NONE;
u32 reg_iflag1, reg_esr;
+ enum can_state last_state = priv->can.state;
reg_iflag1 = flexcan_read(&regs->iflag1);
@@ -765,8 +786,10 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
flexcan_write(reg_esr & FLEXCAN_ESR_ALL_INT, &regs->esr);
}
- /* state change interrupt */
- if (reg_esr & FLEXCAN_ESR_ERR_STATE)
+ /* state change interrupt or broken error state quirk fix is enabled */
+ if ((reg_esr & FLEXCAN_ESR_ERR_STATE) ||
+ (priv->devtype_data->quirks & (FLEXCAN_QUIRK_BROKEN_WERR_STATE |
+ FLEXCAN_QUIRK_BROKEN_PERR_STATE)))
flexcan_irq_state(dev, reg_esr);
/* bus error IRQ - handle if bus error reporting is activated */
@@ -774,6 +797,44 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
(priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING))
flexcan_irq_bus_err(dev, reg_esr);
+ /* availability of error interrupt among state transitions in case
+ * bus error reporting is de-activated and
+ * FLEXCAN_QUIRK_BROKEN_PERR_STATE is enabled:
+ * +--------------------------------------------------------------+
+ * | +----------------------------------------------+ [stopped / |
+ * | | | sleeping] -+
+ * +-+-> active <-> warning <-> passive -> bus off -+
+ * ___________^^^^^^^^^^^^_______________________________
+ * disabled(1) enabled disabled
+ *
+ * (1): enabled if FLEXCAN_QUIRK_BROKEN_WERR_STATE is enabled
+ */
+ if ((last_state != priv->can.state) &&
+ (priv->devtype_data->quirks & FLEXCAN_QUIRK_BROKEN_PERR_STATE) &&
+ !(priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)) {
+ switch (priv->can.state) {
+ case CAN_STATE_ERROR_ACTIVE:
+ if (priv->devtype_data->quirks &
+ FLEXCAN_QUIRK_BROKEN_WERR_STATE)
+ flexcan_error_irq_enable(priv);
+ else
+ flexcan_error_irq_disable(priv);
+ break;
+
+ case CAN_STATE_ERROR_WARNING:
+ flexcan_error_irq_enable(priv);
+ break;
+
+ case CAN_STATE_ERROR_PASSIVE:
+ case CAN_STATE_BUS_OFF:
+ flexcan_error_irq_disable(priv);
+ break;
+
+ default:
+ break;
+ }
+ }
+
return handled;
}
@@ -887,7 +948,7 @@ static int flexcan_chip_start(struct net_device *dev)
* on most Flexcan cores, too. Otherwise we don't get
* any error warning or passive interrupts.
*/
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_BROKEN_ERR_STATE ||
+ if (priv->devtype_data->quirks & FLEXCAN_QUIRK_BROKEN_WERR_STATE ||
priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)
reg_ctrl |= FLEXCAN_CTRL_ERR_MSK;
else

drivers/net/can/usb/esd_usb2.c

View file
diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c
index be928ce..9fdb0f0 100644
--- a/drivers/net/can/usb/esd_usb2.c
+++ b/drivers/net/can/usb/esd_usb2.c
@@ -333,7 +333,7 @@ static void esd_usb2_rx_can_msg(struct esd_usb2_net_priv *priv,
}
cf->can_id = id & ESD_IDMASK;
- cf->can_dlc = get_can_dlc(msg->msg.rx.dlc);
+ cf->can_dlc = get_can_dlc(msg->msg.rx.dlc & ~ESD_RTR);
if (id & ESD_EXTID)
cf->can_id |= CAN_EFF_FLAG;

drivers/net/can/usb/gs_usb.c

View file
diff --git a/drivers/net/can/usb/gs_usb.c b/drivers/net/can/usb/gs_usb.c
index afcc131..68ac3e8 100644
--- a/drivers/net/can/usb/gs_usb.c
+++ b/drivers/net/can/usb/gs_usb.c
@@ -375,6 +375,8 @@ static void gs_usb_receive_bulk_callback(struct urb *urb)
gs_free_tx_context(txc);
+ atomic_dec(&dev->active_tx_urbs);
+
netif_wake_queue(netdev);
}
@@ -463,14 +465,6 @@ static void gs_usb_xmit_callback(struct urb *urb)
urb->transfer_buffer_length,
urb->transfer_buffer,
urb->transfer_dma);
-
- atomic_dec(&dev->active_tx_urbs);
-
- if (!netif_device_present(netdev))
- return;
-
- if (netif_queue_stopped(netdev))
- netif_wake_queue(netdev);
}
static netdev_tx_t gs_can_start_xmit(struct sk_buff *skb,

drivers/net/dsa/mv88e6060.c

View file
diff --git a/drivers/net/dsa/mv88e6060.c b/drivers/net/dsa/mv88e6060.c
index dce7fa5..f123ed5 100644
--- a/drivers/net/dsa/mv88e6060.c
+++ b/drivers/net/dsa/mv88e6060.c
@@ -214,8 +214,14 @@ static int mv88e6060_setup(struct dsa_switch *ds)
static int mv88e6060_set_addr(struct dsa_switch *ds, u8 *addr)
{
- /* Use the same MAC Address as FD Pause frames for all ports */
- REG_WRITE(REG_GLOBAL, GLOBAL_MAC_01, (addr[0] << 9) | addr[1]);
+ u16 val = addr[0] << 8 | addr[1];
+
+ /* The multicast bit is always transmitted as a zero, so the switch uses
+ * bit 8 for "DiffAddr", where 0 means all ports transmit the same SA.
+ */
+ val &= 0xfeff;
+
+ REG_WRITE(REG_GLOBAL, GLOBAL_MAC_01, val);
REG_WRITE(REG_GLOBAL, GLOBAL_MAC_23, (addr[2] << 8) | addr[3]);
REG_WRITE(REG_GLOBAL, GLOBAL_MAC_45, (addr[4] << 8) | addr[5]);

drivers/net/ethernet/amazon/ena/ena_ethtool.c

View file
diff --git a/drivers/net/ethernet/amazon/ena/ena_ethtool.c b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
index b1212de..967020f 100644
--- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
@@ -742,8 +742,8 @@ static void ena_get_channels(struct net_device *netdev,
{
struct ena_adapter *adapter = netdev_priv(netdev);
- channels->max_rx = ENA_MAX_NUM_IO_QUEUES;
- channels->max_tx = ENA_MAX_NUM_IO_QUEUES;
+ channels->max_rx = adapter->num_queues;
+ channels->max_tx = adapter->num_queues;
channels->max_other = 0;
channels->max_combined = 0;
channels->rx_count = adapter->num_queues;

drivers/net/ethernet/amazon/ena/ena_netdev.c

View file
diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c
index f7dc22f..c6bd5e2 100644
--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
@@ -966,7 +966,7 @@ static inline void ena_rx_checksum(struct ena_ring *rx_ring,
u64_stats_update_begin(&rx_ring->syncp);
rx_ring->rx_stats.bad_csum++;
u64_stats_update_end(&rx_ring->syncp);
- netif_err(rx_ring->adapter, rx_err, rx_ring->netdev,
+ netif_dbg(rx_ring->adapter, rx_err, rx_ring->netdev,
"RX IPv4 header checksum error\n");
return;
}
@@ -979,7 +979,7 @@ static inline void ena_rx_checksum(struct ena_ring *rx_ring,
u64_stats_update_begin(&rx_ring->syncp);
rx_ring->rx_stats.bad_csum++;
u64_stats_update_end(&rx_ring->syncp);
- netif_err(rx_ring->adapter, rx_err, rx_ring->netdev,
+ netif_dbg(rx_ring->adapter, rx_err, rx_ring->netdev,
"RX L4 checksum error\n");
skb->ip_summed = CHECKSUM_NONE;
return;
@@ -3064,7 +3064,8 @@ static void ena_release_bars(struct ena_com_dev *ena_dev, struct pci_dev *pdev)
if (ena_dev->mem_bar)
devm_iounmap(&pdev->dev, ena_dev->mem_bar);
- devm_iounmap(&pdev->dev, ena_dev->reg_bar);
+ if (ena_dev->reg_bar)
+ devm_iounmap(&pdev->dev, ena_dev->reg_bar);
release_bars = pci_select_bars(pdev, IORESOURCE_MEM) & ENA_BAR_MASK;
pci_release_selected_regions(pdev, release_bars);

drivers/net/ethernet/aquantia/atlantic/aq_cfg.h

View file
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h b/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h
index 0fdaaa6..57e7968 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h
@@ -22,8 +22,12 @@
#define AQ_CFG_FORCE_LEGACY_INT 0U
-#define AQ_CFG_IS_INTERRUPT_MODERATION_DEF 1U
-#define AQ_CFG_INTERRUPT_MODERATION_RATE_DEF 0xFFFFU
+#define AQ_CFG_INTERRUPT_MODERATION_OFF 0
+#define AQ_CFG_INTERRUPT_MODERATION_ON 1
+#define AQ_CFG_INTERRUPT_MODERATION_AUTO 0xFFFFU
+
+#define AQ_CFG_INTERRUPT_MODERATION_USEC_MAX (0x1FF * 2)
+
#define AQ_CFG_IRQ_MASK 0x1FFU
#define AQ_CFG_VECS_MAX 8U

drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c

View file
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
index a761e91..d5e99b4 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
@@ -56,10 +56,6 @@ aq_ethtool_set_link_ksettings(struct net_device *ndev,
return aq_nic_set_link_ksettings(aq_nic, cmd);
}
-/* there "5U" is number of queue[#] stats lines (InPackets+...+InErrors) */
-static const unsigned int aq_ethtool_stat_queue_lines = 5U;
-static const unsigned int aq_ethtool_stat_queue_chars =
- 5U * ETH_GSTRING_LEN;
static const char aq_ethtool_stat_names[][ETH_GSTRING_LEN] = {
"InPackets",
"InUCast",
@@ -83,56 +79,26 @@ static const char aq_ethtool_stat_names[][ETH_GSTRING_LEN] = {
"InOctetsDma",
"OutOctetsDma",
"InDroppedDma",
- "Queue[0] InPackets",
- "Queue[0] OutPackets",
- "Queue[0] InJumboPackets",
- "Queue[0] InLroPackets",
- "Queue[0] InErrors",
- "Queue[1] InPackets",
- "Queue[1] OutPackets",
- "Queue[1] InJumboPackets",
- "Queue[1] InLroPackets",
- "Queue[1] InErrors",
- "Queue[2] InPackets",
- "Queue[2] OutPackets",
- "Queue[2] InJumboPackets",
- "Queue[2] InLroPackets",
- "Queue[2] InErrors",
- "Queue[3] InPackets",
- "Queue[3] OutPackets",
- "Queue[3] InJumboPackets",
- "Queue[3] InLroPackets",
- "Queue[3] InErrors",
- "Queue[4] InPackets",
- "Queue[4] OutPackets",
- "Queue[4] InJumboPackets",
- "Queue[4] InLroPackets",
- "Queue[4] InErrors",
- "Queue[5] InPackets",
- "Queue[5] OutPackets",
- "Queue[5] InJumboPackets",
- "Queue[5] InLroPackets",
- "Queue[5] InErrors",
- "Queue[6] InPackets",
- "Queue[6] OutPackets",
- "Queue[6] InJumboPackets",
- "Queue[6] InLroPackets",
- "Queue[6] InErrors",
- "Queue[7] InPackets",
- "Queue[7] OutPackets",
- "Queue[7] InJumboPackets",
- "Queue[7] InLroPackets",
- "Queue[7] InErrors",
+};
+
+static const char aq_ethtool_queue_stat_names[][ETH_GSTRING_LEN] = {
+ "Queue[%d] InPackets",
+ "Queue[%d] OutPackets",
+ "Queue[%d] Restarts",
+ "Queue[%d] InJumboPackets",
+ "Queue[%d] InLroPackets",
+ "Queue[%d] InErrors",
};
static void aq_ethtool_stats(struct net_device *ndev,
struct ethtool_stats *stats, u64 *data)
{
struct aq_nic_s *aq_nic = netdev_priv(ndev);
+ struct aq_nic_cfg_s *cfg = aq_nic_get_cfg(aq_nic);
-/* ASSERT: Need add lines to aq_ethtool_stat_names if AQ_CFG_VECS_MAX > 8 */
- BUILD_BUG_ON(AQ_CFG_VECS_MAX > 8);
- memset(data, 0, ARRAY_SIZE(aq_ethtool_stat_names) * sizeof(u64));
+ memset(data, 0, (ARRAY_SIZE(aq_ethtool_stat_names) +
+ ARRAY_SIZE(aq_ethtool_queue_stat_names) *
+ cfg->vecs) * sizeof(u64));
aq_nic_get_stats(aq_nic, data);
}
@@ -154,8 +120,8 @@ static void aq_ethtool_get_drvinfo(struct net_device *ndev,
strlcpy(drvinfo->bus_info, pdev ? pci_name(pdev) : "",
sizeof(drvinfo->bus_info));
- drvinfo->n_stats = ARRAY_SIZE(aq_ethtool_stat_names) -
- (AQ_CFG_VECS_MAX - cfg->vecs) * aq_ethtool_stat_queue_lines;
+ drvinfo->n_stats = ARRAY_SIZE(aq_ethtool_stat_names) +
+ cfg->vecs * ARRAY_SIZE(aq_ethtool_queue_stat_names);
drvinfo->testinfo_len = 0;
drvinfo->regdump_len = regs_count;
drvinfo->eedump_len = 0;
@@ -164,14 +130,25 @@ static void aq_ethtool_get_drvinfo(struct net_device *ndev,
static void aq_ethtool_get_strings(struct net_device *ndev,
u32 stringset, u8 *data)
{
+ int i, si;
struct aq_nic_s *aq_nic = netdev_priv(ndev);
struct aq_nic_cfg_s *cfg = aq_nic_get_cfg(aq_nic);
-
- if (stringset == ETH_SS_STATS)
- memcpy(data, *aq_ethtool_stat_names,
- sizeof(aq_ethtool_stat_names) -
- (AQ_CFG_VECS_MAX - cfg->vecs) *
- aq_ethtool_stat_queue_chars);
+ u8 *p = data;
+
+ if (stringset == ETH_SS_STATS) {
+ memcpy(p, *aq_ethtool_stat_names,
+ sizeof(aq_ethtool_stat_names));
+ p = p + sizeof(aq_ethtool_stat_names);
+ for (i = 0; i < cfg->vecs; i++) {
+ for (si = 0;
+ si < ARRAY_SIZE(aq_ethtool_queue_stat_names);
+ si++) {
+ snprintf(p, ETH_GSTRING_LEN,
+ aq_ethtool_queue_stat_names[si], i);
+ p += ETH_GSTRING_LEN;
+ }
+ }
+ }
}
static int aq_ethtool_get_sset_count(struct net_device *ndev, int stringset)
@@ -182,9 +159,8 @@ static int aq_ethtool_get_sset_count(struct net_device *ndev, int stringset)
switch (stringset) {
case ETH_SS_STATS:
- ret = ARRAY_SIZE(aq_ethtool_stat_names) -
- (AQ_CFG_VECS_MAX - cfg->vecs) *
- aq_ethtool_stat_queue_lines;
+ ret = ARRAY_SIZE(aq_ethtool_stat_names) +
+ cfg->vecs * ARRAY_SIZE(aq_ethtool_queue_stat_names);
break;
default:
ret = -EOPNOTSUPP;
@@ -245,6 +221,69 @@ static int aq_ethtool_get_rxnfc(struct net_device *ndev,
return err;
}
+int aq_ethtool_get_coalesce(struct net_device *ndev,
+ struct ethtool_coalesce *coal)
+{
+ struct aq_nic_s *aq_nic = netdev_priv(ndev);
+ struct aq_nic_cfg_s *cfg = aq_nic_get_cfg(aq_nic);
+
+ if (cfg->itr == AQ_CFG_INTERRUPT_MODERATION_ON ||
+ cfg->itr == AQ_CFG_INTERRUPT_MODERATION_AUTO) {
+ coal->rx_coalesce_usecs = cfg->rx_itr;
+ coal->tx_coalesce_usecs = cfg->tx_itr;
+ coal->rx_max_coalesced_frames = 0;
+ coal->tx_max_coalesced_frames = 0;
+ } else {
+ coal->rx_coalesce_usecs = 0;
+ coal->tx_coalesce_usecs = 0;
+ coal->rx_max_coalesced_frames = 1;
+ coal->tx_max_coalesced_frames = 1;
+ }
+ return 0;
+}
+
+int aq_ethtool_set_coalesce(struct net_device *ndev,
+ struct ethtool_coalesce *coal)
+{
+ struct aq_nic_s *aq_nic = netdev_priv(ndev);
+ struct aq_nic_cfg_s *cfg = aq_nic_get_cfg(aq_nic);
+
+ /* This is not yet supported
+ */
+ if (coal->use_adaptive_rx_coalesce || coal->use_adaptive_tx_coalesce)
+ return -EOPNOTSUPP;
+
+ /* Atlantic only supports timing based coalescing
+ */
+ if (coal->rx_max_coalesced_frames > 1 ||
+ coal->rx_coalesce_usecs_irq ||
+ coal->rx_max_coalesced_frames_irq)
+ return -EOPNOTSUPP;
+
+ if (coal->tx_max_coalesced_frames > 1 ||
+ coal->tx_coalesce_usecs_irq ||
+ coal->tx_max_coalesced_frames_irq)
+ return -EOPNOTSUPP;
+
+ /* We do not support frame counting. Check this
+ */
+ if (!(coal->rx_max_coalesced_frames == !coal->rx_coalesce_usecs))
+ return -EOPNOTSUPP;
+ if (!(coal->tx_max_coalesced_frames == !coal->tx_coalesce_usecs))
+ return -EOPNOTSUPP;
+
+ if (coal->rx_coalesce_usecs > AQ_CFG_INTERRUPT_MODERATION_USEC_MAX ||
+ coal->tx_coalesce_usecs > AQ_CFG_INTERRUPT_MODERATION_USEC_MAX)
+ return -EINVAL;
+
+ cfg->itr = AQ_CFG_INTERRUPT_MODERATION_ON;
+
+ cfg->rx_itr = coal->rx_coalesce_usecs;
+ cfg->tx_itr = coal->tx_coalesce_usecs;
+
+ return aq_nic_update_interrupt_moderation_settings(aq_nic);
+}
+
const struct ethtool_ops aq_ethtool_ops = {
.get_link = aq_ethtool_get_link,
.get_regs_len = aq_ethtool_get_regs_len,
@@ -259,4 +298,6 @@ const struct ethtool_ops aq_ethtool_ops = {
.get_ethtool_stats = aq_ethtool_stats,
.get_link_ksettings = aq_ethtool_get_link_ksettings,
.set_link_ksettings = aq_ethtool_set_link_ksettings,
+ .get_coalesce = aq_ethtool_get_coalesce,
+ .set_coalesce = aq_ethtool_set_coalesce,
};

drivers/net/ethernet/aquantia/atlantic/aq_hw.h

View file
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_hw.h b/drivers/net/ethernet/aquantia/atlantic/aq_hw.h
index bf9b3f0..0207927 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_hw.h
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_hw.h
@@ -151,8 +151,7 @@ struct aq_hw_ops {
[ETH_ALEN],
u32 count);
- int (*hw_interrupt_moderation_set)(struct aq_hw_s *self,
- bool itr_enabled);
+ int (*hw_interrupt_moderation_set)(struct aq_hw_s *self);
int (*hw_rss_set)(struct aq_hw_s *self,
struct aq_rss_parameters *rss_params);
@@ -163,6 +162,8 @@ struct aq_hw_ops {
int (*hw_get_regs)(struct aq_hw_s *self,
struct aq_hw_caps_s *aq_hw_caps, u32 *regs_buff);
+ int (*hw_update_stats)(struct aq_hw_s *self);
+
int (*hw_get_hw_stats)(struct aq_hw_s *self, u64 *data,
unsigned int *p_count);

drivers/net/ethernet/aquantia/atlantic/aq_nic.c

View file
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
index 0a5bb41..483e976 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
@@ -16,6 +16,7 @@
#include "aq_pci_func.h"
#include "aq_nic_internal.h"
+#include <linux/moduleparam.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/timer.h>
@@ -24,6 +25,18 @@
#include <linux/tcp.h>
#include <net/ip.h>
+static unsigned int aq_itr = AQ_CFG_INTERRUPT_MODERATION_AUTO;
+module_param_named(aq_itr, aq_itr, uint, 0644);
+MODULE_PARM_DESC(aq_itr, "Interrupt throttling mode");
+
+static unsigned int aq_itr_tx;
+module_param_named(aq_itr_tx, aq_itr_tx, uint, 0644);
+MODULE_PARM_DESC(aq_itr_tx, "TX interrupt throttle rate");
+
+static unsigned int aq_itr_rx;
+module_param_named(aq_itr_rx, aq_itr_rx, uint, 0644);
+MODULE_PARM_DESC(aq_itr_rx, "RX interrupt throttle rate");
+
static void aq_nic_rss_init(struct aq_nic_s *self, unsigned int num_rss_queues)
{
struct aq_nic_cfg_s *cfg = &self->aq_nic_cfg;
@@ -61,9 +74,9 @@ static void aq_nic_cfg_init_defaults(struct aq_nic_s *self)
cfg->is_polling = AQ_CFG_IS_POLLING_DEF;
- cfg->is_interrupt_moderation = AQ_CFG_IS_INTERRUPT_MODERATION_DEF;
- cfg->itr = cfg->is_interrupt_moderation ?
- AQ_CFG_INTERRUPT_MODERATION_RATE_DEF : 0U;
+ cfg->itr = aq_itr;
+ cfg->tx_itr = aq_itr_tx;
+ cfg->rx_itr = aq_itr_rx;
cfg->is_rss = AQ_CFG_IS_RSS_DEF;
cfg->num_rss_queues = AQ_CFG_NUM_RSS_QUEUES_DEF;
@@ -126,10 +139,12 @@ static int aq_nic_update_link_status(struct aq_nic_s *self)
if (err)
return err;
- if (self->link_status.mbps != self->aq_hw->aq_link_status.mbps)
+ if (self->link_status.mbps != self->aq_hw->aq_link_status.mbps) {
pr_info("%s: link change old %d new %d\n",
AQ_CFG_DRV_NAME, self->link_status.mbps,
self->aq_hw->aq_link_status.mbps);
+ aq_nic_update_interrupt_moderation_settings(self);
+ }
self->link_status = self->aq_hw->aq_link_status;
if (!netif_carrier_ok(self->ndev) && self->link_status.mbps) {
@@ -164,8 +179,8 @@ static void aq_nic_service_timer_cb(unsigned long param)
if (err)
goto err_exit;
- self->aq_hw_ops.hw_interrupt_moderation_set(self->aq_hw,
- self->aq_nic_cfg.is_interrupt_moderation);
+ if (self->aq_hw_ops.hw_update_stats)
+ self->aq_hw_ops.hw_update_stats(self->aq_hw);
memset(&stats_rx, 0U, sizeof(struct aq_ring_stats_rx_s));
memset(&stats_tx, 0U, sizeof(struct aq_ring_stats_tx_s));
@@ -334,6 +349,7 @@ struct aq_nic_s *aq_nic_alloc_hot(struct net_device *ndev)
}
if (netif_running(ndev))
netif_tx_disable(ndev);
+ netif_carrier_off(self->ndev);
for (self->aq_vecs = 0; self->aq_vecs < self->aq_nic_cfg.vecs;

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/aquantia/atlantic/aq_nic.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/aquantia/atlantic/aq_vec.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0_internal.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/broadcom/bnxt/bnxt.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/broadcom/bnxt/bnxt.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/cavium/liquidio/lio_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/ibm/ibmvnic.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/intel/i40e/i40e_nvm.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/intel/i40e/i40e_txrx.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlxsw/core.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlxsw/reg.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/netronome/nfp/nfp_net_common.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/realtek/r8169.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/geneve.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/macsec.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/tun.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wimax/i2400m/fw.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/cfg/7000.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/cfg/8000.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/cfg/9000.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/cfg/a000.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/fw/api/nvm-reg.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/fw/dbg.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/fw/dbg.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/iwl-config.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/mvm/mvm.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/mvm/nvm.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/mvm/rx.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/intel/iwlwifi/mvm/tt.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c

View file

This diff is incomplete. Download the complete patch.

drivers/of/of_mdio.c

View file

This diff is incomplete. Download the complete patch.

include/linux/filter.h

View file

This diff is incomplete. Download the complete patch.

include/linux/netdevice.h

View file

This diff is incomplete. Download the complete patch.

include/net/inet_sock.h

View file

This diff is incomplete. Download the complete patch.

include/net/tcp.h

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/arraymap.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/devmap.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/hashtab.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/sockmap.c

View file

This diff is incomplete. Download the complete patch.

kernel/bpf/verifier.c

View file

This diff is incomplete. Download the complete patch.

lib/ts_fsm.c

View file

This diff is incomplete. Download the complete patch.

lib/ts_kmp.c

View file

This diff is incomplete. Download the complete patch.

mm/memcontrol.c

View file

This diff is incomplete. Download the complete patch.

mm/percpu.c

View file

This diff is incomplete. Download the complete patch.

net/bridge/br_netlink.c

View file

This diff is incomplete. Download the complete patch.

net/can/af_can.c

View file

This diff is incomplete. Download the complete patch.

net/can/bcm.c

View file

This diff is incomplete. Download the complete patch.

net/core/dev.c

View file

This diff is incomplete. Download the complete patch.

net/core/dev_ioctl.c

View file

This diff is incomplete. Download the complete patch.

net/core/ethtool.c

View file

This diff is incomplete. Download the complete patch.

net/core/filter.c

View file

This diff is incomplete. Download the complete patch.

net/core/rtnetlink.c

View file

This diff is incomplete. Download the complete patch.

net/core/skbuff.c

View file

This diff is incomplete. Download the complete patch.

net/core/sock.c

View file

This diff is incomplete. Download the complete patch.

net/core/sock_reuseport.c

View file

This diff is incomplete. Download the complete patch.

net/dccp/ipv4.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/Kconfig

View file

This diff is incomplete. Download the complete patch.

net/ipv4/cipso_ipv4.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/inet_connection_sock.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/inet_hashtables.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/syncookies.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/tcp_input.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/tcp_ipv4.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/udp.c

View file

This diff is incomplete. Download the complete patch.

net/ipv6/ip6_flowlabel.c

View file

This diff is incomplete. Download the complete patch.

net/ipv6/ip6_output.c

View file

This diff is incomplete. Download the complete patch.

net/l2tp/l2tp_ppp.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/key.c

View file

This diff is incomplete. Download the complete patch.

net/ncsi/internal.h

View file

This diff is incomplete. Download the complete patch.

net/ncsi/ncsi-aen.c

View file

This diff is incomplete. Download the complete patch.

net/ncsi/ncsi-manage.c

View file

This diff is incomplete. Download the complete patch.

net/ncsi/ncsi-rsp.c

View file

This diff is incomplete. Download the complete patch.

net/netlink/af_netlink.c

View file

This diff is incomplete. Download the complete patch.

net/packet/af_packet.c

View file

This diff is incomplete. Download the complete patch.

net/rxrpc/af_rxrpc.c

View file

This diff is incomplete. Download the complete patch.

net/sched/cls_flower.c

View file

This diff is incomplete. Download the complete patch.

net/sctp/input.c

View file

This diff is incomplete. Download the complete patch.

net/sctp/socket.c

View file

This diff is incomplete. Download the complete patch.

net/vmw_vsock/hyperv_transport.c

View file

This diff is incomplete. Download the complete patch.

samples/sockmap/sockmap_kern.c

View file

This diff is incomplete. Download the complete patch.

tools/include/uapi/linux/bpf.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/bpf_helpers.h

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/sockmap_verdict_prog.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_maps.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/bpf/test_verifier.c

View file

This diff is incomplete. Download the complete patch.