Skip to content
Permalink
Sean-Anderson/…
Switch branches/tags

Commits on Nov 18, 2021

  1. net: phylink: Add helpers for c22 registers without MDIO

    Some devices expose memory-mapped c22-compliant PHYs. Because these
    devices do not have an MDIO bus, we cannot use the existing helpers.
    Refactor the existing helpers to allow supplying the values for c22
    registers directly, instead of using MDIO to access them. Only get_state
    and set_advertisement are converted, since they contain the most complex
    logic. Because set_advertisement is never actually used outside
    phylink_mii_c22_pcs_config, move the MDIO-writing part into that
    function. Because some modes do not need the advertisement register set
    at all, we use -EINVAL for this purpose.
    
    Additionally, a new function phylink_pcs_enable_an is provided to
    determine whether to enable autonegotiation.
    
    Signed-off-by: Sean Anderson <sean.anderson@seco.com>
    Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    sean-anderson-seco authored and intel-lab-lkp committed Nov 18, 2021
  2. Merge branch 'lan78xx-napi'

    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: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 18, 2021
  3. lan78xx: Introduce NAPI polling support

    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: John Efstathiades <john.efstathiades@pebblebay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jefstath authored and davem330 committed Nov 18, 2021
  4. lan78xx: Remove hardware-specific header update

    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: John Efstathiades <john.efstathiades@pebblebay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jefstath authored and davem330 committed Nov 18, 2021
  5. lan78xx: Re-order rx_submit() to remove forward declaration

    Move position of rx_submit() to remove forward declaration of
    rx_complete() which is now no longer required.
    
    Signed-off-by: John Efstathiades <john.efstathiades@pebblebay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jefstath authored and davem330 committed Nov 18, 2021
  6. lan78xx: Introduce Rx URB processing improvements

    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: John Efstathiades <john.efstathiades@pebblebay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jefstath authored and davem330 committed Nov 18, 2021
  7. lan78xx: Introduce Tx URB processing improvements

    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: John Efstathiades <john.efstathiades@pebblebay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jefstath authored and davem330 committed Nov 18, 2021
  8. lan78xx: Fix memory allocation bug

    Fix memory allocation that fails to check for NULL return.
    
    Signed-off-by: John Efstathiades <john.efstathiades@pebblebay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jefstath authored and davem330 committed Nov 18, 2021
  9. Merge branch 'dsa-felix-psfp'

    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: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 18, 2021
  10. net: dsa: felix: restrict psfp rules on ingress port

    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: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Xiaoliang Yang authored and davem330 committed Nov 18, 2021
  11. net: dsa: felix: use vcap policer to set flow meter for psfp

    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: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Xiaoliang Yang authored and davem330 committed Nov 18, 2021
  12. net: mscc: ocelot: use index to set vcap policer

    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: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Xiaoliang Yang authored and davem330 committed Nov 18, 2021
  13. net: dsa: felix: add stream gate settings for psfp

    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: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Xiaoliang Yang authored and davem330 committed Nov 18, 2021
  14. net: dsa: felix: support psfp filter on vsc9959

    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: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Xiaoliang Yang authored and davem330 committed Nov 18, 2021
  15. net: mscc: ocelot: add gate and police action offload to PSFP

    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: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Xiaoliang Yang authored and davem330 committed Nov 18, 2021
  16. net: mscc: ocelot: set vcap IS2 chain to goto PSFP chain

    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: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Xiaoliang Yang authored and davem330 committed Nov 18, 2021
  17. net: mscc: ocelot: add MAC table stream learn and lookup operations

    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: Xiaoliang Yang <xiaoliang.yang_1@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Xiaoliang Yang authored and davem330 committed Nov 18, 2021
  18. mctp/test: Update refcount checking in route fragment tests

    In 99ce45d, 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: 99ce45d ("mctp: Implement extended addressing")
    Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jk-ozlabs authored and davem330 committed Nov 18, 2021
  19. ipv6: ah6: use swap() to make code cleaner

    Use the macro 'swap()' defined in 'include/linux/minmax.h' to avoid
    opencoding it.
    
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Yao Jing <yao.jing2@zte.com.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Yao Jing authored and davem330 committed Nov 18, 2021
  20. tcp: add missing htmldocs for skb->ll_node and sk->defer_list

    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: f35f821 ("tcp: defer skb freeing after socket lock is released")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    neebe000 authored and davem330 committed Nov 18, 2021
  21. Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/tnguy/next-queue
    
    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: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 18, 2021
  22. net: mdio: Replaced BUG_ON() with WARN()

    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: Florian Fainelli <f.fainelli@gmail.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    ffainelli authored and davem330 committed Nov 18, 2021
  23. Merge branch 'dpaa2-phylink'

    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: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 18, 2021
  24. net: dpaa2-mac: use phylink_generic_validate()

    DPAA2 has no special behaviour in its validation implementation, so can
    be switched to phylink_generic_validate().
    
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Russell King (Oracle) authored and davem330 committed Nov 18, 2021
  25. net: dpaa2-mac: remove interface checks in dpaa2_mac_validate()

    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: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Russell King (Oracle) authored and davem330 committed Nov 18, 2021
  26. net: dpaa2-mac: populate supported_interfaces member

    Populate the phy interface mode bitmap for the Freescale DPAA2 driver
    with interfaces modes supported by the MAC.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Russell King authored and davem330 committed Nov 18, 2021
  27. Merge branch 'ag71xx-phylink'

    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: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 18, 2021
  28. net: ag71xx: use phylink_generic_validate()

    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: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Russell King (Oracle) authored and davem330 committed Nov 18, 2021
  29. net: ag71xx: remove interface checks in ag71xx_mac_validate()

    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: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Russell King (Oracle) authored and davem330 committed Nov 18, 2021
  30. net: ag71xx: populate supported_interfaces member

    Populate the phy_interface_t bitmap for the Atheros ag71xx driver with
    interfaces modes supported by the MAC.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Russell King authored and davem330 committed Nov 18, 2021
  31. net: stmmac: dwmac-qcom-ethqos: add platform level clocks management

    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: Bhupesh Sharma <bhupesh.sharma@linaro.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    bhupesh-sharma authored and davem330 committed Nov 18, 2021
  32. ipv4/raw: support binding to nonlocal addresses

    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: Riccardo Paolo Bestetti <pbl@bestov.io>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/r/20211117090010.125393-1-pbl@bestov.io
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    vmsh0 authored and Jakub Kicinski committed Nov 18, 2021

Commits on Nov 17, 2021

  1. net: add missing include in include/net/gro.h

    This is needed for some arches, as reported by Geert Uytterhoeven,
    Randy Dunlap and Stephen Rothwell
    
    Fixes: 4721031 ("net: move gro definitions to include/net/gro.h")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Link: https://lore.kernel.org/r/20211117100130.2368319-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    neebe000 authored and Jakub Kicinski committed Nov 17, 2021
  2. stmmac: fix build due to brainos in trans_start changes

    txq_trans_cond_update() takes netdev_tx_queue *nq,
    not nq->trans_start.
    
    Fixes: 5337824 ("net: annotate accesses to queue->trans_start")
    Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20211117152917.3739-1-alexandr.lobakin@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    alobakin authored and Jakub Kicinski committed Nov 17, 2021
  3. ixgbevf: Add support for new mailbox communication between PF and VF

    Provide improved mailbox communication, between PF and VF,
    which is defined as API version 1.5.
    
    Signed-off-by: Radoslaw Tyl <radoslawx.tyl@intel.com>
    Tested-by: Tony Brelinski <tony.brelinski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    rtylx authored and anguy11 committed Nov 17, 2021
Older