1. Nov 19, 2021
  2. Nov 18, 2021
    • Dan Carpenter's avatar
      ptp: ocp: Fix a couple NULL vs IS_ERR() checks · c7521d3a
      Dan Carpenter authored
      The ptp_ocp_get_mem() function does not return NULL, it returns error
      pointers.
      
      Fixes: 773bda96
      
       ("ptp: ocp: Expose various resources on the timecard.")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c7521d3a
    • David S. Miller's avatar
      Merge branch 'lan78xx-napi' · bb8cecf8
      David S. Miller authored
      
      
      John Efstathiades says:
      
      ===================
      lan78xx NAPI Performance Improvements
      
      This patch set introduces a set of changes to the lan78xx driver
      that were originally developed as part of an investigation into
      the performance of TCP and UDP transfers on an Android system.
      The changes increase the throughput of both UDP and TCP transfers
      and reduce the overall CPU load.
      
      These improvements are also seen on a standard Linux kernel. Typical
      results are included at the end of this document.
      
      The changes to the driver evolved over time. The patches presented
      here attempt to organise the changes in to coherent blocks that
      affect logically connected parts of the driver. The patches do not
      reflect the way in which the code evolved during the performance
      investigation.
      
      Each patch produces a working driver that has an incremental
      improvement but patches 2, 3 and 6 should be considered a single
      update.
      
      The changes affect the following parts of the driver:
      
      1. Deferred URB processing
      
      The deferred URB processing that was originally done by a tasklet
      is now done by a NAPI polling routine. The NAPI cycle has a fixed
      work budget that controls how many received frames are passed to
      the network stack.
      
      Patch 6 introduces the NAPI polling but depends on preceding patches.
      
      The new NAPI polling routine is also responsible for submitting
      Rx and Tx URBs to the USB host controller.
      
      Moving the URB processing to a NAPI-based system "smoothed"
      incoming and outgoing data flows on the Android system under
      investigation. However, taken in isolation, moving from a tasklet
      approach to a NAPI approach made little or no difference to the
      overall performance.
      
      2. URB buffer management
      
      The driver creates a pool of Tx and a pool of Rx URB buffers. Each
      buffer is large enough to accommodate a packet with the maximum MTU
      data. URBs are allocated from these pools as required.
      
      Patch 2 introduces the new Tx buffer pool.
      Patch 3 introduces the new Rx buffer pool.
      
      3. Tx pending data
      
      SKBs containing data to be transmitted are added to a queue. The
      driver tracks free Tx URBs and the corresponding free Tx URB space.
      When new Tx URBs are submitted, pending data is copied into the
      URB buffer until the URB buffer is filled or there is no more
      pending data. This maximises utilisation the LAN78xx internal
      USB and network frame buffers.
      
      New Tx URBs are submitted to the USB host controller as part of the
      NAPI polling cycle.
      
      Patch 2 introduces these changes.
      
      4. Rx URB completion
      
      A new URB is no longer submitted as part of the URB completion
      callback.
      New URBs are submitted during the NAPI polling cycle.
      
      Patch 3 introduces these changes.
      
      5. Rx URB processing
      
      Completed URBs are put on to queue for processing (as is done in the
      current driver). Network packets in completed URBs are copied from
      the URB buffer in to dynamically allocated SKBs and passed to
      the network stack.
      
      The emptied URBs are resubmitted to the USB host controller.
      
      Patch 3 introduces this change. Patch 6 updates the change to use
      NAPI SKBs.
      
      Each packet passed to the network stack is a single NAPI work item.
      If the NAPI work budget is exhausted the remaining packets in the
      URB are put onto an overflow queue that is processed at the start
      of the next NAPI cycle.
      
      Patch 6 introduces this change.
      
      6. Driver-specific hard_header_len
      
      The driver-specific hard_header_len adjustment was removed as it
      broke generic receive offload (GRO) processing. Moreover, it was no
      longer required due the change in Tx pending data management (see
      point 3. above).
      
      Patch 5 introduces this change.
      
      The modification has been tested on four different target machines:
      
      Target           |    CPU     |   ARCH  | cores | kernel |  RAM  |
      -----------------+------------+---------+-------+--------+-------|
      Raspberry Pi 4B  | Cortex-A72 | aarch64 |   4   | 64-bit |  2 GB |
      Nitrogen8M SBC   | Cortex-A53 | aarch64 |   4   | 64-bit |  2 GB |
      Compaq Pressario | Pentium D  | i686    |   2   | 32-bit |  4 GB |
      Dell T3620       | Core i3    | x86_64  |  2+2  | 64-bit | 16 GB |
      
      The targets, apart from the Compaq, each have an on-chip USB3 host
      controller. A PCIe-based USB3 host controller card was added to the
      Compaq to provide the necessary USB3 host interface.
      
      The network throughput was measured using iperf3. The peer device was
      a second Dell T3620 fitted with an Intel i210 network interface. The
      target machine and the peer device were connected via a Netgear GS105
      gigabit switch.
      
      The CPU load was measured using mpstat running on the target machine.
      
      The tables below summarise the throughput and CPU load improvements
      achieved by the updated driver.
      
      The bandwidth is the average bandwidth reported by iperf3 at the end
      of a 60-second test.
      
      The percentage idle figure is the average idle reported across all
      CPU cores on the target machine for the duration of the test.
      
      TCP Rx (target receiving, peer transmitting)
      
                       |   Standard Driver  |   NAPI Driver      |
      Target           | Bandwidth | % Idle | Bandwidth | % Idle |
      -----------------+-----------+--------+--------------------|
      RPi4 Model B     |    941    |  74.9  |    941    |  91.5  |
      Nitrogen8M       |    941    |  76.2  |    941    |  92.7  |
      Compaq Pressario |    941    |  44.5  |    941    |  82.1  |
      Dell T3620       |    941    |  88.9  |    941    |  98.3  |
      
      TCP Tx (target transmitting, peer receiving)
      
                       |   Standard Driver  |   NAPI Driver      |
      Target           | Bandwidth | % Idle | Bandwidth | % Idle |
      -----------------+-----------+--------+--------------------|
      RPi4 Model B     |    683    |  80.1  |    942    |  97.6  |
      Nitrogen8M       |    942    |  97.8  |    942    |  97.3  |
      Compaq Pressario |    939    |  80.0  |    942    |  91.2  |
      Dell T3620       |    942    |  95.3  |    942    |  97.6  |
      
      UDP Rx (target receiving, peer transmitting)
      
                       |   Standard Driver  |   NAPI Driver      |
      Target           | Bandwidth | % Idle | Bandwidth | % Idle |
      -----------------+-----------+--------+--------------------|
      RPi4 Model B     |     -     |    -   | 958 (0%)  |  76.2  |
      Nitrogen8M       | 690 (25%) |  57.7  | 937 (0%)  |  68.5  |
      Compaq Pressario | 958 (0%)  |  50.2  | 958 (0%)  |  61.6  |
      Dell T3620       | 958 (0%)  |  89.6  | 958 (0%)  |  85.3  |
      
      The figure in brackets is the percentage packet loss.
      
      UDP Tx (target transmitting, peer receiving)
      
                       |   Standard Driver  |   NAPI Driver      |
      Target           | Bandwidth | % Idle | Bandwidth | % Idle |
      -----------------+-----------+--------+--------------------|
      RPi4 Model B     |    370    |  75.0  |    886    |  78.9  |
      Nitrogen8M       |    710    |  75.0  |    958    |  85.3  |
      Compaq Pressario |    958    |  65.5  |    958    |  76.6  |
      Dell T3620       |    958    |  97.0  |    958    |  97.3  |
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bb8cecf8
    • John Efstathiades's avatar
      lan78xx: Introduce NAPI polling support · ec4c7e12
      John Efstathiades authored
      
      
      This patch introduces a NAPI-style approach for processing completed
      Rx URBs that contributes to improving driver throughput and reducing
      CPU load.
      
      Packets in completed URBs are copied to NAPI SKBs and passed to the
      network stack for processing. Each frame passed to the stack is one
      work item in the NAPI budget.
      
      If the NAPI budget is consumed and frames remain, they are added to
      an overflow queue that is processed at the start of the next NAPI
      polling cycle.
      
      The NAPI handler is also responsible for copying pending Tx data to
      Tx URBs and submitting them to the USB host controller for
      transmission.
      
      Signed-off-by: default avatarJohn Efstathiades <john.efstathiades@pebblebay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ec4c7e12
    • John Efstathiades's avatar
      lan78xx: Remove hardware-specific header update · 0dd87266
      John Efstathiades authored
      
      
      Remove hardware-specific header length adjustment as it is no longer
      required. It also breaks generic receive offload (GRO) processing of
      received TCP frames that results in a TCP ACK being sent for each
      received frame.
      
      Signed-off-by: default avatarJohn Efstathiades <john.efstathiades@pebblebay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0dd87266
    • John Efstathiades's avatar
      lan78xx: Re-order rx_submit() to remove forward declaration · 9d2da721
      John Efstathiades authored
      
      
      Move position of rx_submit() to remove forward declaration of
      rx_complete() which is now no longer required.
      
      Signed-off-by: default avatarJohn Efstathiades <john.efstathiades@pebblebay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9d2da721
    • John Efstathiades's avatar
      lan78xx: Introduce Rx URB processing improvements · c450a8eb
      John Efstathiades authored
      
      
      This patch introduces a new approach to allocating and managing
      Rx URBs that contributes to improving driver throughput and reducing
      CPU load.
      
      A pool of Rx URBs is created during driver instantiation. All the
      URBs are initially submitted to the USB host controller for
      processing.
      
      The default URB buffer size is different for each USB bus speed.
      The chosen sizes provide good USB utilisation with little impact on
      overall packet latency.
      
      Completed URBs are processed in the driver bottom half. The URB
      buffer contents are copied to a dynamically allocated SKB, which is
      then passed to the network stack. The URB is then re-submitted to
      the USB host controller.
      
      NOTE: the call to skb_copy() in rx_process() that copies the URB
      contents to a new SKB is a temporary change to make this patch work
      in its own right. This call will be removed when the NAPI processing
      is introduced by patch 6 in this patch set.
      
      Signed-off-by: default avatarJohn Efstathiades <john.efstathiades@pebblebay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c450a8eb
    • John Efstathiades's avatar
      lan78xx: Introduce Tx URB processing improvements · d383216a
      John Efstathiades authored
      
      
      This patch introduces a new approach to allocating and managing
      Tx URBs that contributes to improving driver throughput and reducing
      CPU load.
      
      A pool of Tx URBs is created during driver instantiation. A URB is
      allocated from the pool when there is data to transmit. The URB is
      released back to the pool when the data has been transmitted by the
      device.
      
      The default URB buffer size is different for each USB bus speed.
      The chosen sizes provide good USB utilisation with little impact on
      overall packet latency.
      
      SKBs to be transmitted are added to a pending queue for processing.
      The driver tracks the available Tx URB buffer space and copies as
      much pending data as possible into each free URB. Each full URB
      is then submitted to the USB host controller for transmission.
      
      Signed-off-by: default avatarJohn Efstathiades <john.efstathiades@pebblebay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d383216a
    • John Efstathiades's avatar
      lan78xx: Fix memory allocation bug · a6df95ca
      John Efstathiades authored
      
      
      Fix memory allocation that fails to check for NULL return.
      
      Signed-off-by: default avatarJohn Efstathiades <john.efstathiades@pebblebay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a6df95ca
    • David S. Miller's avatar
      Merge branch 'dsa-felix-psfp' · d091ec97
      David S. Miller authored
      
      
      Xiaoliang Yang says:
      
      ====================
      net: dsa: felix: psfp support on vsc9959
      
      VSC9959 hardware supports Per-Stream Filtering and Policing(PSFP).
      This patch series add PSFP support on tc flower offload of ocelot
      driver. Use chain 30000 to distinguish PSFP from VCAP blocks. Add gate
      and police set to support PSFP in VSC9959 driver.
      
      v6-v7 changes:
       - Add a patch to restrict psfp rules on ingress port.
       - Using stats.drops to show the packet count discarded by the rule.
      
      v5->v6 changes:
       - Modify ocelot_mact_lookup() parameters.
       - Use parameters ssid and sfid instead of streamdata in
         ocelot_mact_learn_streamdata() function.
       - Serialize STREAMDATA and MAC table write.
      
      v4->v5 changes:
       - Add MAC table lock patch, and move stream data write in
         ocelot_mact_learn_streamdata().
       - Add two sections of VCAP policers to Seville platform.
      
      v3->v4 changes:
       - Introduce vsc9959_psfp_sfi_table_get() function in patch where it is
         used to fix compile warning.
      
      v2->v3 changes:
       - Reorder first two patches. Export struct ocelot_mact_entry, then add
         ocelot_mact_lookup() and ocelot_mact_write() functions.
       - Add PSFP list to struct ocelot, and init it by using
         ocelot->ops->psfp_init().
      
      v1->v2 changes:
       - Use tc flower offload of ocelot driver to support PSFP add and delete.
       - Add PSFP tables add/del functions in felix_vsc9959.c.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d091ec97
    • Xiaoliang Yang's avatar
      net: dsa: felix: restrict psfp rules on ingress port · a7e13edf
      Xiaoliang Yang authored
      
      
      PSFP rules take effect on the streams from any port of VSC9959 switch.
      This patch use ingress port to limit the rule only active on this port.
      
      Each stream can only match two ingress source ports in VSC9959. Streams
      from lowest port gets the configuration of SFID pointed by MAC Table
      lookup and streams from highest port gets the configuration of (SFID+1)
      pointed by MAC Table lookup. This patch defines the PSFP rule on highest
      port as dummy rule, which means that it does not modify the MAC table.
      
      Signed-off-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a7e13edf
    • Xiaoliang Yang's avatar
      net: dsa: felix: use vcap policer to set flow meter for psfp · 76c13ede
      Xiaoliang Yang authored
      
      
      This patch add police action to set flow meter table which is defined
      in IEEE802.1Qci. Flow metering is two rates two buckets and three color
      marker to policing the frames, we only enable one rate one bucket in
      this patch.
      
      Flow metering shares a same policer pool with VCAP policers, so the PSFP
      policer calls ocelot_vcap_policer_add() and ocelot_vcap_policer_del() to
      set flow meter police.
      
      Signed-off-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      76c13ede
    • Xiaoliang Yang's avatar
      net: mscc: ocelot: use index to set vcap policer · 77043c37
      Xiaoliang Yang authored
      
      
      Policer was previously automatically assigned from the highest index to
      the lowest index from policer pool. But police action of tc flower now
      uses index to set an police entry. This patch uses the police index to
      set vcap policers, so that one policer can be shared by multiple rules.
      
      Signed-off-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      77043c37
    • Xiaoliang Yang's avatar
      net: dsa: felix: add stream gate settings for psfp · 23ae3a78
      Xiaoliang Yang authored
      
      
      This patch adds stream gate settings for PSFP. Use SGI table to store
      stream gate entries. Disable the gate entry when it is not used by any
      stream.
      
      Signed-off-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      23ae3a78
    • Xiaoliang Yang's avatar
      net: dsa: felix: support psfp filter on vsc9959 · 7d4b564d
      Xiaoliang Yang authored
      
      
      VSC9959 supports Per-Stream Filtering and Policing(PSFP) that complies
      with the IEEE 802.1Qci standard. The stream is identified by Null stream
      identification(DMAC and VLAN ID) defined in IEEE802.1CB.
      
      For PSFP, four tables need to be set up: stream table, stream filter
      table, stream gate table, and flow meter table. Identify the stream by
      parsing the tc flower keys and add it to the stream table. The stream
      filter table is automatically maintained, and its index is determined by
      SGID(flow gate index) and FMID(flow meter index).
      
      Signed-off-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7d4b564d
    • Xiaoliang Yang's avatar
      net: mscc: ocelot: add gate and police action offload to PSFP · 23e2c506
      Xiaoliang Yang authored
      
      
      PSFP support gate and police action. This patch add the gate and police
      action to flower parse action, check chain ID to determine which block
      to offload. Adding psfp callback functions to add, delete and update gate
      and police in PSFP table if hardware supports it.
      
      Signed-off-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      23e2c506
    • Xiaoliang Yang's avatar
      net: mscc: ocelot: set vcap IS2 chain to goto PSFP chain · 5b1918a5
      Xiaoliang Yang authored
      
      
      Some chips in the ocelot series such as VSC9959 support Per-Stream
      Filtering and Policing(PSFP), which is processing after VCAP blocks.
      We set this block on chain 30000 and set vcap IS2 chain to goto PSFP
      chain if hardware support.
      
      Signed-off-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
      Reviewed-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b1918a5
    • Xiaoliang Yang's avatar
      net: mscc: ocelot: add MAC table stream learn and lookup operations · 0568c3bf
      Xiaoliang Yang authored
      
      
      ocelot_mact_learn_streamdata() can be used in VSC9959 to overwrite an
      FDB entry with stream data. The stream data includes SFID and SSID which
      can be used for PSFP and FRER set.
      
      ocelot_mact_lookup() can be used to check if the given {DMAC, VID} FDB
      entry is exist, and also can retrieve the DEST_IDX and entry type for
      the FDB entry.
      
      Signed-off-by: default avatarXiaoliang Yang <xiaoliang.yang_1@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0568c3bf
    • Teng Qi's avatar
      net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock() · 0fa68da7
      Teng Qi authored
      
      
      The definition of macro MOTO_SROM_BUG is:
        #define MOTO_SROM_BUG    (lp->active == 8 && (get_unaligned_le32(
        dev->dev_addr) & 0x00ffffff) == 0x3e0008)
      
      and the if statement
        if (MOTO_SROM_BUG) lp->active = 0;
      
      using this macro indicates lp->active could be 8. If lp->active is 8 and
      the second comparison of this macro is false. lp->active will remain 8 in:
        lp->phy[lp->active].gep = (*p ? p : NULL); p += (2 * (*p) + 1);
        lp->phy[lp->active].rst = (*p ? p : NULL); p += (2 * (*p) + 1);
        lp->phy[lp->active].mc  = get_unaligned_le16(p); p += 2;
        lp->phy[lp->active].ana = get_unaligned_le16(p); p += 2;
        lp->phy[lp->active].fdx = get_unaligned_le16(p); p += 2;
        lp->phy[lp->active].ttm = get_unaligned_le16(p); p += 2;
        lp->phy[lp->active].mci = *p;
      
      However, the length of array lp->phy is 8, so array overflows can occur.
      To fix these possible array overflows, we first check lp->active and then
      return -EINVAL if it is greater or equal to ARRAY_SIZE(lp->phy) (i.e. 8).
      
      Reported-by: default avatarTOTE Robot <oslab@tsinghua.edu.cn>
      Signed-off-by: default avatarTeng Qi <starmiku1207184332@gmail.com>
      Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0fa68da7
    • Jeremy Kerr's avatar
      mctp/test: Update refcount checking in route fragment tests · f6ef47e5
      Jeremy Kerr authored
      In 99ce45d5, we moved a route refcount decrement from
      mctp_do_fragment_route into the caller. This invalidates the assumption
      that the route test makes about refcount behaviour, so the route tests
      fail.
      
      This change fixes the test case to suit the new refcount behaviour.
      
      Fixes: 99ce45d5
      
       ("mctp: Implement extended addressing")
      Signed-off-by: default avatarJeremy Kerr <jk@codeconstruct.com.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f6ef47e5
    • Yao Jing's avatar
      ipv6: ah6: use swap() to make code cleaner · 4cdf85ef
      Yao Jing authored
      
      
      Use the macro 'swap()' defined in 'include/linux/minmax.h' to avoid
      opencoding it.
      
      Reported-by: default avatarZeal Robot <zealci@zte.com.cn>
      Signed-off-by: default avatarYao Jing <yao.jing2@zte.com.cn>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4cdf85ef
    • zhangyue's avatar
      net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of bound · 61217be8
      zhangyue authored
      
      
      In line 5001, if all id in the array 'lp->phy[8]' is not 0, when the
      'for' end, the 'k' is 8.
      
      At this time, the array 'lp->phy[8]' may be out of bound.
      
      Signed-off-by: default avatarzhangyue <zhangyue1@kylinos.cn>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      61217be8
    • Eric Dumazet's avatar
      tcp: add missing htmldocs for skb->ll_node and sk->defer_list · df6160de
      Eric Dumazet authored
      Add missing entries to fix these "make htmldocs" warnings.
      
      ./include/linux/skbuff.h:953: warning: Function parameter or member 'll_node' not described in 'sk_buff'
      ./include/net/sock.h:540: warning: Function parameter or member 'defer_list' not described in 'sock'
      
      Fixes: f35f8219
      
       ("tcp: defer skb freeing after socket lock is released")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      df6160de
    • David S. Miller's avatar
      Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue · 718cc29d
      David S. Miller authored
      
      
      Tony Nguyen says:
      
      ====================
      10GbE Intel Wired LAN Driver Updates 2021-11-17
      
      Radoslaw Tyl says:
      
      The change is a consequence of errors reported by the ixgbevf driver
      while starting several virtual guests at the same time on ESX host.
      During this, VF was not able to communicate correctly with the PF,
      as a result reported "PF still in reset state. Is the PF interface up?"
      and then goes to locked state. The only thing left was to reload
      the VF driver on the guest OS.
      
      The background of the problem is that the current PFU and VFU
      semaphore locking mechanism between sender and receiver may cause
      overriding Mailbox memory (VFMBMEM), in such scenario receiver of
      the original message will read the invalid, corrupted or one (or more)
      message may be lost.
      
      This change is actually as a support for communication with PF ESX
      driver and does not contains changes and support for ixgbe driver.
      For maintain backward compatibility, previous communication method
      has been preserved in the form of LEGACY functions.
      
      In the future there is a plan to add a support for a 1.5 mailbox API
      communication also to ixgbe driver.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      718cc29d
    • David S. Miller's avatar
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net- · 4e5d2124
      David S. Miller authored
      
      queue
      
      Tony Nguyen says:
      
      ====================
      Intel Wired LAN Driver Updates 2021-11-17
      
      This series contains updates to i40e driver only.
      
      Eryk adds accounting for VLAN header in packet size when VF port VLAN is
      configured. He also fixes TC queue distribution when the user has changed
      queue counts as well as for configuration of VF ADQ which caused dropped
      packets.
      
      Michal adds tracking for when a VSI is being released to prevent null
      pointer dereference when managing filters.
      
      Karen ensures PF successfully initiates VF requested reset which could
      cause a call trace otherwise.
      
      Jedrzej moves validation of channel queue value earlier to prevent
      partial configuration when the value is invalid.
      
      Grzegorz corrects the reported error when adding filter fails.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4e5d2124
    • Florian Fainelli's avatar
      net: mdio: Replaced BUG_ON() with WARN() · 867ae8a7
      Florian Fainelli authored
      
      
      Killing the kernel because a certain MDIO bus object is not in the
      desired state at various points in the registration or unregistration
      paths is excessive and is not helping in troubleshooting or fixing
      issues. Replace the BUG_ON() with WARN() and print out the MDIO bus name
      to facilitate debugging.
      
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      867ae8a7
    • Jordy Zomer's avatar
      ipv6: check return value of ipv6_skip_exthdr · 5f9c55c8
      Jordy Zomer authored
      
      
      The offset value is used in pointer math on skb->data.
      Since ipv6_skip_exthdr may return -1 the pointer to uh and th
      may not point to the actual udp and tcp headers and potentially
      overwrite other stuff. This is why I think this should be checked.
      
      EDIT:  added {}'s, thanks Kees
      
      Signed-off-by: default avatarJordy Zomer <jordy@pwning.systems>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5f9c55c8
    • Jesse Brandeburg's avatar
      e100: fix device suspend/resume · 5d2ca2e1
      Jesse Brandeburg authored
      As reported in [1], e100 was no longer working for suspend/resume
      cycles. The previous commit mentioned in the fixes appears to have
      broken things and this attempts to practice best known methods for
      device power management and keep wake-up working while allowing
      suspend/resume to work. To do this, I reorder a little bit of code
      and fix the resume path to make sure the device is enabled.
      
      [1] https://bugzilla.kernel.org/show_bug.cgi?id=214933
      
      Fixes: 69a74aef
      
       ("e100: use generic power management")
      Cc: Vaibhav Gupta <vaibhavgupta40@gmail.com>
      Reported-by: default avatarAlexey Kuznetsov <axet@me.com>
      Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Tested-by: default avatarAlexey Kuznetsov <axet@me.com>
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5d2ca2e1
    • David S. Miller's avatar
      Merge branch 'dpaa2-phylink' · 432b4941
      David S. Miller authored
      
      
      Russell King says:
      
      ====================
      net: dpaa2: phylink validate implementation updates
      
      This series converts dpaa2 to fill in the supported_interfaces member
      of phylink_config, cleans up the validate() implementation, and then
      converts to phylink_generic_validate(). Previous behaviour should be
      preserved.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      432b4941
    • Russell King (Oracle)'s avatar
      net: dpaa2-mac: use phylink_generic_validate() · 6d386f66
      Russell King (Oracle) authored
      
      
      DPAA2 has no special behaviour in its validation implementation, so can
      be switched to phylink_generic_validate().
      
      Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6d386f66