1. 23 Dec, 2021 4 commits
  2. 01 Dec, 2021 1 commit
  3. 18 Nov, 2021 33 commits
    • luo penghao's avatar
      xfrm: Remove duplicate assignment · 2e180920
      luo penghao authored
      The statement in the switch is repeated with the statement at the
      beginning of the while loop, so this statement is meaningless.
      
      The clang_analyzer complains as follows:
      
      net/xfrm/xfrm_policy.c:3392:2 warning:
      
      Value stored to 'exthdr' is never read
      Reported-by: default avatarZeal Robot <zealci@zte.com.cn>
      Signed-off-by: default avatarluo penghao <luo.penghao@zte.com.cn>
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      2e180920
    • luo penghao's avatar
      ipv6/esp6: Remove structure variables and alignment statements · c6e78718
      luo penghao authored
      The definition of this variable is just to find the length of the
      structure after aligning the structure. The PTR alignment function
      is to optimize the size of the structure. In fact, it doesn't seem
      to be of much use, because both members of the structure are of
      type u32.
      So I think that the definition of the variable and the
      corresponding alignment can be deleted, the value of extralen can
      be directly passed in the size of the structure.
      
      The clang_analyzer complains as follows:
      
      net/ipv6/esp6.c:117:27 warning:
      
      Value stored to 'extra' during its initialization is never read
      Reported-by: default avatarZeal Robot <zealci@zte.com.cn>
      Signed-off-by: default avatarluo penghao <luo.penghao@zte.com.cn>
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      c6e78718
    • 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
    • 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
    • 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
    • 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
    • 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
    • Russell King (Oracle)'s avatar
      net: dpaa2-mac: remove interface checks in dpaa2_mac_validate() · 22de481d
      Russell King (Oracle) authored
      As phylink checks the interface mode against the supported_interfaces
      bitmap, we no longer need to validate the interface mode, nor handle
      PHY_INTERFACE_MODE_NA in the validation function. Remove these to
      simplify the implementation.
      Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      22de481d
    • Russell King's avatar
      net: dpaa2-mac: populate supported_interfaces member · 15d0b14c
      Russell King authored
      Populate the phy interface mode bitmap for the Freescale DPAA2 driver
      with interfaces modes supported by the MAC.
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      15d0b14c
    • David S. Miller's avatar
      Merge branch 'ag71xx-phylink' · 22283801
      David S. Miller authored
      Russell King says:
      
      ====================
      net: ag71xx: phylink validate implementation updates
      
      This series converts ag71xx to fill in the supported_interfaces member
      of phylink_config, cleans up the validate() implementation, and then
      converts to phylink_generic_validate().
      
      The question over the port linkmode restriction has been answered by
      Oleksij - there is no reason for this restriction, so we can go the
      whole hog with this conversion. Thanks!
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      22283801
    • Russell King (Oracle)'s avatar
      net: ag71xx: use phylink_generic_validate() · c8fa4bac
      Russell King (Oracle) authored
      ag71xx apparently only supports MII port type, which makes it different
      from other implementations. However, Oleksij says there is no special
      reason for this.
      
      Convert the driver to use phylink_generic_validate(), which will allow
      all ethtool port linkmodes instead of only MII, giving the driver
      consistent behaviour with other drivers.
      Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c8fa4bac
    • Russell King (Oracle)'s avatar
      net: ag71xx: remove interface checks in ag71xx_mac_validate() · 5e20a8aa
      Russell King (Oracle) authored
      As phylink checks the interface mode against the supported_interfaces
      bitmap, we no longer need to validate the interface mode, nor handle
      PHY_INTERFACE_MODE_NA in the validation function. Remove these to
      simplify the implementation.
      Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5e20a8aa
    • Russell King's avatar
      net: ag71xx: populate supported_interfaces member · 680e9d2c
      Russell King authored
      Populate the phy_interface_t bitmap for the Atheros ag71xx driver with
      interfaces modes supported by the MAC.
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      680e9d2c
    • Bhupesh Sharma's avatar
      net: stmmac: dwmac-qcom-ethqos: add platform level clocks management · 6c950ca7
      Bhupesh Sharma authored
      Split clocks settings from init callback into clks_config callback,
      which could support platform level clock management.
      
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarBhupesh Sharma <bhupesh.sharma@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6c950ca7
    • Riccardo Paolo Bestetti's avatar
      ipv4/raw: support binding to nonlocal addresses · 8ff978b8
      Riccardo Paolo Bestetti authored
      Add support to inet v4 raw sockets for binding to nonlocal addresses
      through the IP_FREEBIND and IP_TRANSPARENT socket options, as well as
      the ipv4.ip_nonlocal_bind kernel parameter.
      
      Add helper function to inet_sock.h to check for bind address validity on
      the base of the address type and whether nonlocal address are enabled
      for the socket via any of the sockopts/sysctl, deduplicating checks in
      ipv4/ping.c, ipv4/af_inet.c, ipv6/af_inet6.c (for mapped v4->v6
      addresses), and ipv4/raw.c.
      
      Add test cases with IP[V6]_FREEBIND verifying that both v4 and v6 raw
      sockets support binding to nonlocal addresses after the change. Add
      necessary support for the test cases to nettest.
      Signed-off-by: default avatarRiccardo Paolo Bestetti <pbl@bestov.io>
      Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
      Link: https://lore.kernel.org/r/20211117090010.125393-1-pbl@bestov.ioSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      8ff978b8
  4. 17 Nov, 2021 2 commits