Skip to content
Permalink
Florian-Westph…
Switch branches/tags

Commits on Dec 13, 2021

  1. fib: expand fib_rule_policy

    Now that there is only one fib nla_policy there is no need to
    keep the macro around.  Place it where its used.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Florian Westphal authored and intel-lab-lkp committed Dec 13, 2021
  2. fib: rules: remove duplicated nla policies

    The attributes are identical in all implementations so move the ipv4 one
    into the core and remove the per-family nla policies.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Florian Westphal authored and intel-lab-lkp committed Dec 13, 2021
  3. fib: place common code in a helper

    After moving the ipv4/ipv6 helpers to the core, there is some
    overlapping code that can be collapsed into a helper.
    
    This change has no effect on generated code.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Florian Westphal authored and intel-lab-lkp committed Dec 13, 2021
  4. fib: remove suppress indirection

    Only used by ipv4 and ipv6.
    Both functions are small and do not use any internal data
    structures.  Move this to core and remove the indirection.
    
    Object size increase is small:
    before:
       text	   data	    bss	    dec	    hex	filename
      10335	    158	      0	  10493	   28fd	fib_rules.o
    after:
      10615	    158	      0	  10773	   2a15	fib_rules.o
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Florian Westphal authored and intel-lab-lkp committed Dec 13, 2021
  5. net: ipa: fix IPA v4.5 interconnect data

    Update the definition of the IPA interconnects for IPA v4.5 so
    the path between IPA and system memory is represented by a single
    "memory" interconnect.
    
    Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Alex Elder <elder@linaro.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    alexelder authored and davem330 committed Dec 13, 2021
  6. ARM: dts: qcom: sdx55: fix IPA interconnect definitions

    The first two interconnects defined for IPA on the SDX55 SoC are
    really two parts of what should be represented as a single path
    between IPA and system memory.
    
    Fix this by combining the "memory-a" and "memory-b" interconnects
    into a single "memory" interconnect.
    
    Reported-by: David Heidelberg <david@ixit.cz>
    Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: Alex Elder <elder@linaro.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    alexelder authored and davem330 committed Dec 13, 2021
  7. net: Enable max_dgram_qlen unix sysctl to be configurable by non-init…

    … user namespaces
    
    This patch enables the "/proc/sys/net/unix/max_dgram_qlen" sysctl to be
    exposed to non-init user namespaces. max_dgram_qlen is used as the default
    "sk_max_ack_backlog" value for when a unix socket is created.
    
    Currently, when a networking namespace is initialized, its unix sysctls
    are exposed only if the user namespace that "owns" it is the init user
    namespace. If there is an non-init user namespace that "owns" a networking
    namespace (for example, in the case after we call clone() with both
    CLONE_NEWUSER and CLONE_NEWNET set), the sysctls are hidden from view
    and not configurable.
    
    Exposing the unix sysctl is safe because any changes made to it will be
    limited in scope to the networking namespace the non-init user namespace
    "owns" and has privileges over (changes won't affect any other net
    namespace). There is also no possibility of a non-privileged user namespace
    messing up the net namespace sysctls it shares with its parent user namespace.
    When a new user namespace is created without unsharing the network namespace
    (eg calling clone()  with CLONE_NEWUSER), the new user namespace shares its
    parent's network namespace. Write access is protected by the mode set
    in the sysctl's ctl_table (and enforced by procfs). Here in the case of
    "max_dgram_qlen", 0644 is set; only the user owner has write access.
    
    v1 -> v2:
    * Add more detail to commit message, specify the
    "/proc/sys/net/unix/max_dgram_qlen" sysctl in commit message.
    
    Signed-off-by: Joanne Koong <joannekoong@fb.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jkoong-fb authored and davem330 committed Dec 13, 2021
  8. u64_stats: Disable preemption on 32bit UP+SMP PREEMPT_RT during updates.

    On PREEMPT_RT the seqcount_t for synchronisation is required on 32bit
    architectures even on UP because the softirq (and the threaded IRQ handler) can
    be preempted.
    
    With the seqcount_t for synchronisation, a reader with higher priority can
    preempt the writer and then spin endlessly in read_seqcount_begin() while the
    writer can't make progress.
    
    To avoid such a lock up on PREEMPT_RT the writer must disable preemption during
    the update. There is no need to disable interrupts because no writer is using
    this API in hard-IRQ context on PREEMPT_RT.
    
    Disable preemption on 32bit-RT within the u64_stats write section.
    
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Sebastian Andrzej Siewior authored and davem330 committed Dec 13, 2021
  9. Merge branch 'bareudp-remove-unused'

    Guillaume Nault says:
    
    ====================
    bareudp: Remove unused code from header file
    
    Stop exporting unused functions and structures in bareudp.h. The only
    piece of bareudp.h that is actually used is netif_is_bareudp(). The
    rest can be moved to bareudp.c or even dropped entirely.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Dec 13, 2021
  10. bareudp: Move definition of struct bareudp_conf to bareudp.c

    This structure is used only in bareudp.c.
    
    While there, adjust include files: we need netdevice.h, not skbuff.h.
    
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Guillaume Nault authored and davem330 committed Dec 13, 2021
  11. bareudp: Remove bareudp_dev_create()

    There's no user for this function.
    
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Guillaume Nault authored and davem330 committed Dec 13, 2021
  12. tipc: discard MSG_CRYPTO msgs when key_exchange_enabled is not set

    When key_exchange is disabled, there is no reason to accept MSG_CRYPTO
    msgs if it doesn't send MSG_CRYPTO msgs.
    
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Jon Maloy <jmaloy@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    lxin authored and davem330 committed Dec 13, 2021
  13. net: stmmac: bump tc when get underflow error from DMA descriptor

    In DMA threshold mode, frame underflow errors may sometimes occur when
    the TC(threshold control) value is not enough. The TC value need to be
    bumped up in this case.
    
    There is no underflow interrupt bit on DMA_CH(#i)_Status of dwmac4, so
    the DMA threshold cannot be bumped up in stmmac_dma_interrupt(). The
    i.mx8mp board observed an underflow error while running NFS boot, the
    NFS rootfs could not be mounted.
    
    The underflow error can be got from the DMA descriptor TDES3 on dwmac4.
    This patch bump up tc value once underflow error is got from TDES3.
    
    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 Dec 13, 2021

Commits on Dec 12, 2021

  1. Merge branch 'dsa-tagger-storage'

    Vladimir Oltean says:
    
    ====================
    Replace DSA dp->priv with tagger-owned storage
    
    Ansuel's recent work on qca8k register access over Ethernet:
    https://patchwork.kernel.org/project/netdevbpf/cover/20211207145942.7444-1-ansuelsmth@gmail.com/
    has triggered me to do something which I should've done for a longer
    time:
    https://patchwork.kernel.org/project/netdevbpf/patch/20211109095013.27829-7-martin.kaistra@linutronix.de/#24585521
    which is to replace dp->priv with something that has less caveats.
    
    The dp->priv was introduced when sja1105 needed to hold stateful
    information in the tagging protocol driver. In that design, dp->priv
    held memory allocated by the switch driver, because the tagging protocol
    driver design was 100% stateless.
    
    Some years have passed and others have started to feel the need for
    stateful information kept by the tagger, as well as passing data back
    and forth between the tagging protocol driver and the switch driver.
    This isn't possible cleanly in DSA due to a circular dependency which
    leads to broken module autoloading:
    https://lore.kernel.org/netdev/20210908220834.d7gmtnwrorhharna@skbuf/
    
    This patchset introduces a framework that resembles something normal,
    which allows data to be passed from the tagging protocol driver (things
    like switch management packets, which aren't intended for the network
    stack) to the switch driver, while the tagging protocol still remains
    more or less stateless. The overall design of the framework was
    discussed with Ansuel too and it appears to be flexible enough to cover
    the "register access over Ethernet" use case. Additionally, the existing
    uses of dp->priv, which have mainly to do with PTP timestamping, have
    also been migrated.
    
    Changes in v2:
    Fix transient build breakage in patch 5/11 due to a missing parenthesis,
    https://patchwork.hopto.org/static/nipa/592567/12665213/build_clang/
    and another transient build warning in patch 4/11 that for some reason
    doesn't appear in my W=1 C=1 build.
    https://patchwork.hopto.org/static/nipa/592567/12665209/build_clang/stderr
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Dec 12, 2021
  2. net: dsa: remove dp->priv

    All current in-tree uses of dp->priv have been replaced with
    ds->tagger_data, which provides for a safer API especially when the
    connection isn't the regular 1:1 link between one switch driver and one
    tagging protocol driver, but could be either one switch to many taggers,
    or many switches to one tagger.
    
    Therefore, we can remove this unused pointer.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  3. net: dsa: tag_sja1105: split sja1105_tagger_data into private and pub…

    …lic sections
    
    The sja1105 driver messes with the tagging protocol's state when PTP RX
    timestamping is enabled/disabled. This is fundamentally necessary
    because the tagger needs to know what to do when it receives a PTP
    packet. If RX timestamping is enabled, then a metadata follow-up frame
    is expected, and this holds the (partial) timestamp. So the tagger plays
    hide-and-seek with the network stack until it also gets the metadata
    frame, and then presents a single packet, the timestamped PTP packet.
    But when RX timestamping isn't enabled, there is no metadata frame
    expected, so the hide-and-seek game must be turned off and the packet
    must be delivered right away to the network stack.
    
    Considering this, we create a pseudo isolation by devising two tagger
    methods callable by the switch: one to get the RX timestamping state,
    and one to set it. Since we can't export symbols between the tagger and
    the switch driver, these methods are exposed through function pointers.
    
    After this change, the public portion of the sja1105_tagger_data
    contains only function pointers.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  4. Revert "net: dsa: move sja1110_process_meta_tstamp inside the tagging…

    … protocol driver"
    
    This reverts commit 6d709ca.
    
    The above change was done to avoid calling symbols exported by the
    switch driver from the tagging protocol driver.
    
    With the tagger-owned storage model, we have a new option on our hands,
    and that is for the switch driver to provide a data consumer handler in
    the form of a function pointer inside the ->connect_tag_protocol()
    method. Having a function pointer avoids the problems of the exported
    symbols approach.
    
    By creating a handler for metadata frames holding TX timestamps on
    SJA1110, we are able to eliminate an skb queue from the tagger data, and
    replace it with a simple, and stateless, function pointer. This skb
    queue is now handled exclusively by sja1105_ptp.c, which makes the code
    easier to follow, as it used to be before the reverted patch.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  5. net: dsa: tag_sja1105: convert to tagger-owned data

    Currently, struct sja1105_tagger_data is a part of struct
    sja1105_private, and is used by the sja1105 driver to populate dp->priv.
    
    With the movement towards tagger-owned storage, the sja1105 driver
    should not be the owner of this memory.
    
    This change implements the connection between the sja1105 switch driver
    and its tagging protocol, which means that sja1105_tagger_data no longer
    stays in dp->priv but in ds->tagger_data, and that the sja1105 driver
    now only populates the sja1105_port_deferred_xmit callback pointer.
    The kthread worker is now the responsibility of the tagger.
    
    The sja1105 driver also alters the tagger's state some more, especially
    with regard to the PTP RX timestamping state. This will be fixed up a
    bit in further changes.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  6. net: dsa: sja1105: move ts_id from sja1105_tagger_data

    The TX timestamp ID is incremented by the SJA1110 PTP timestamping
    callback (->port_tx_timestamp) for every packet, when cloning it.
    It isn't used by the tagger at all, even though it sits inside the
    struct sja1105_tagger_data.
    
    Also, serialization to this structure is currently done through
    tagger_data->meta_lock, which is a cheap hack because the meta_lock
    isn't used for anything else on SJA1110 (sja1105_rcv_meta_state_machine
    isn't called).
    
    This change moves ts_id from sja1105_tagger_data to sja1105_private and
    introduces a dedicated spinlock for it, also in sja1105_private.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  7. net: dsa: sja1105: make dp->priv point directly to sja1105_tagger_data

    The design of the sja1105 tagger dp->priv is that each port has a
    separate struct sja1105_port, and the sp->data pointer points to a
    common struct sja1105_tagger_data.
    
    We have removed all per-port members accessible by the tagger, and now
    only struct sja1105_tagger_data remains. Make dp->priv point directly to
    this.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  8. net: dsa: sja1105: remove hwts_tx_en from tagger data

    This tagger property is in fact not used at all by the tagger, only by
    the switch driver. Therefore it makes sense to be moved to
    sja1105_private.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  9. net: dsa: sja1105: bring deferred xmit implementation in line with oc…

    …elot-8021q
    
    When the ocelot-8021q driver was converted to deferred xmit as part of
    commit 8d5f795 ("net: dsa: felix: break at first CPU port during
    init and teardown"), the deferred implementation was deliberately made
    subtly different from what sja1105 has.
    
    The implementation differences lied on the following observations:
    
    - There might be a race between these two lines in tag_sja1105.c:
    
           skb_queue_tail(&sp->xmit_queue, skb_get(skb));
           kthread_queue_work(sp->xmit_worker, &sp->xmit_work);
    
      and the skb dequeue logic in sja1105_port_deferred_xmit(). For
      example, the xmit_work might be already queued, however the work item
      has just finished walking through the skb queue. Because we don't
      check the return code from kthread_queue_work, we don't do anything if
      the work item is already queued.
    
      However, nobody will take that skb and send it, at least until the
      next timestampable skb is sent. This creates additional (and
      avoidable) TX timestamping latency.
    
      To close that race, what the ocelot-8021q driver does is it doesn't
      keep a single work item per port, and a skb timestamping queue, but
      rather dynamically allocates a work item per packet.
    
    - It is also unnecessary to have more than one kthread that does the
      work. So delete the per-port kthread allocations and replace them with
      a single kthread which is global to the switch.
    
    This change brings the two implementations in line by applying those
    observations to the sja1105 driver as well.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  10. net: dsa: sja1105: let deferred packets time out when sent to ports g…

    …oing down
    
    This code is not necessary and complicates the conversion of this driver
    to tagger-owned memory. If there is a PTP packet that is sent
    concurrently with the port getting disabled, the deferred xmit mechanism
    is robust enough to time out when it sees that it hasn't been delivered,
    and recovers.
    
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  11. net: dsa: tag_ocelot: convert to tagger-owned data

    The felix driver makes very light use of dp->priv, and the tagger is
    effectively stateless. dp->priv is practically only needed to set up a
    callback to perform deferred xmit of PTP and STP packets using the
    ocelot-8021q tagging protocol (the main ocelot tagging protocol makes no
    use of dp->priv, although this driver sets up dp->priv irrespective of
    actual tagging protocol in use).
    
    struct felix_port (what used to be pointed to by dp->priv) is removed
    and replaced with a two-sided structure. The public side of this
    structure, visible to the switch driver, is ocelot_8021q_tagger_data.
    The private side is ocelot_8021q_tagger_private, and the latter
    structure physically encapsulates the former. The public half of the
    tagger data structure can be accessed through a helper of the same name
    (ocelot_8021q_tagger_data) which also sanity-checks the protocol
    currently in use by the switch. The public/private split was requested
    by Andrew Lunn.
    
    Suggested-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  12. net: dsa: introduce tagger-owned storage for private and shared data

    Ansuel is working on register access over Ethernet for the qca8k switch
    family. This requires the qca8k tagging protocol driver to receive
    frames which aren't intended for the network stack, but instead for the
    qca8k switch driver itself.
    
    The dp->priv is currently the prevailing method for passing data back
    and forth between the tagging protocol driver and the switch driver.
    However, this method is riddled with caveats.
    
    The DSA design allows in principle for any switch driver to return any
    protocol it desires in ->get_tag_protocol(). The dsa_loop driver can be
    modified to do just that. But in the current design, the memory behind
    dp->priv has to be allocated by the switch driver, so if the tagging
    protocol is paired to an unexpected switch driver, we may end up in NULL
    pointer dereferences inside the kernel, or worse (a switch driver may
    allocate dp->priv according to the expectations of a different tagger).
    
    The latter possibility is even more plausible considering that DSA
    switches can dynamically change tagging protocols in certain cases
    (dsa <-> edsa, ocelot <-> ocelot-8021q), and the current design lends
    itself to mistakes that are all too easy to make.
    
    This patch proposes that the tagging protocol driver should manage its
    own memory, instead of relying on the switch driver to do so.
    After analyzing the different in-tree needs, it can be observed that the
    required tagger storage is per switch, therefore a ds->tagger_data
    pointer is introduced. In principle, per-port storage could also be
    introduced, although there is no need for it at the moment. Future
    changes will replace the current usage of dp->priv with ds->tagger_data.
    
    We define a "binding" event between the DSA switch tree and the tagging
    protocol. During this binding event, the tagging protocol's ->connect()
    method is called first, and this may allocate some memory for each
    switch of the tree. Then a cross-chip notifier is emitted for the
    switches within that tree, and they are given the opportunity to fix up
    the tagger's memory (for example, they might set up some function
    pointers that represent virtual methods for consuming packets).
    Because the memory is owned by the tagger, there exists a ->disconnect()
    method for the tagger (which is the place to free the resources), but
    there doesn't exist a ->disconnect() method for the switch driver.
    This is part of the design. The switch driver should make minimal use of
    the public part of the tagger data, and only after type-checking it
    using the supplied "proto" argument.
    
    In the code there are in fact two binding events, one is the initial
    event in dsa_switch_setup_tag_protocol(). At this stage, the cross chip
    notifier chains aren't initialized, so we call each switch's connect()
    method by hand. Then there is dsa_tree_bind_tag_proto() during
    dsa_tree_change_tag_proto(), and here we have an old protocol and a new
    one. We first connect to the new one before disconnecting from the old
    one, to simplify error handling a bit and to ensure we remain in a valid
    state at all times.
    
    Co-developed-by: Ansuel Smith <ansuelsmth@gmail.com>
    Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    vladimiroltean authored and davem330 committed Dec 12, 2021
  13. net: dsa: mv88e6xxx: Add tx fwd offload PVT on intermediate devices

    In a typical mv88e6xxx switch tree like this:
    
      CPU
       |    .----.
    .--0--. | .--0--.
    | sw0 | | | sw1 |
    '-1-2-' | '-1-2-'
        '---'
    
    If sw1p{1,2} are added to a bridge that sw0p1 is not a part of, sw0
    still needs to add a crosschip PVT entry for the virtual DSA device
    assigned to represent the bridge.
    
    Fixes: ce5df68 ("net: dsa: mv88e6xxx: map virtual bridges with forwarding offload in the PVT")
    Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    wkz authored and davem330 committed Dec 12, 2021
  14. net: Enable neighbor sysctls that is save for userns root

    Inside netns owned by non-init userns, sysctls about ARP/neighbor is
    currently not visible and configurable.
    
    For the attributes these sysctls correspond to, any modifications make
    effects on the performance of networking(ARP, especilly) only in the
    scope of netns, which does not affect other netns.
    
    Actually, some tools via netlink can modify these attribute. iproute2 is
    an example. see as follows:
    
    $ unshare -ur -n
    $ cat /proc/sys/net/ipv4/neigh/lo/retrans_time
    cat: can't open '/proc/sys/net/ipv4/neigh/lo/retrans_time': No such file
    or directory
    $ ip ntable show dev lo
    inet arp_cache
        dev lo
        refcnt 1 reachable 19494 base_reachable 30000 retrans 1000
        gc_stale 60000 delay_probe 5000 queue 101
        app_probes 0 ucast_probes 3 mcast_probes 3
        anycast_delay 1000 proxy_delay 800 proxy_queue 64 locktime 1000
    
    inet6 ndisc_cache
        dev lo
        refcnt 1 reachable 42394 base_reachable 30000 retrans 1000
        gc_stale 60000 delay_probe 5000 queue 101
        app_probes 0 ucast_probes 3 mcast_probes 3
        anycast_delay 1000 proxy_delay 800 proxy_queue 64 locktime 0
    $ ip ntable change name arp_cache dev <if> retrans 2000
    inet arp_cache
        dev lo
        refcnt 1 reachable 22917 base_reachable 30000 retrans 2000
        gc_stale 60000 delay_probe 5000 queue 101
        app_probes 0 ucast_probes 3 mcast_probes 3
        anycast_delay 1000 proxy_delay 800 proxy_queue 64 locktime 1000
    
    inet6 ndisc_cache
        dev lo
        refcnt 1 reachable 35524 base_reachable 30000 retrans 1000
        gc_stale 60000 delay_probe 5000 queue 101
        app_probes 0 ucast_probes 3 mcast_probes 3
        anycast_delay 1000 proxy_delay 800 proxy_queue 64 locktime 0
    
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: xu xin <xu.xin16@zte.com.cn>
    Acked-by: Joanne Koong <joannekoong@fb.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    xu xin authored and davem330 committed Dec 12, 2021

Commits on Dec 11, 2021

  1. Merge branch 'add-fdma-support-on-ocelot-switch-driver'

    Clément Léger says:
    
    ====================
    Add FDMA support on ocelot switch driver
    
    This series adds support for the Frame DMA present on the VSC7514
    switch. The FDMA is able to extract and inject packets on the various
    ethernet interfaces present on the switch.
    ====================
    
    Link: https://lore.kernel.org/r/20211209154911.3152830-1-clement.leger@bootlin.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jakub Kicinski committed Dec 11, 2021
  2. net: ocelot: add FDMA support

    Ethernet frames can be extracted or injected autonomously to or from
    the device’s DDR3/DDR3L memory and/or PCIe memory space. Linked list
    data structures in memory are used for injecting or extracting Ethernet
    frames. The FDMA generates interrupts when frame extraction or
    injection is done and when the linked lists need updating.
    
    The FDMA is shared between all the ethernet ports of the switch and
    uses a linked list of descriptors (DCB) to inject and extract packets.
    Before adding descriptors, the FDMA channels must be stopped. It would
    be inefficient to do that each time a descriptor would be added so the
    channels are restarted only once they stopped.
    
    Both channels uses ring-like structure to feed the DCBs to the FDMA.
    head and tail are never touched by hardware and are completely handled
    by the driver. On top of that, page recycling has been added and is
    mostly taken from gianfar driver.
    
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Co-developed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Clément Léger <clement.leger@bootlin.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    clementleger authored and Jakub Kicinski committed Dec 11, 2021
  3. net: ocelot: add support for ndo_change_mtu

    This commit adds support for changing MTU for the ocelot register based
    interface. For ocelot, JUMBO frame size can be set up to 25000 bytes
    but has been set to 9000 which is a saner value and allows for maximum
    gain of performance with FDMA.
    
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: Clément Léger <clement.leger@bootlin.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    clementleger authored and Jakub Kicinski committed Dec 11, 2021
  4. net: ocelot: add and export ocelot_ptp_rx_timestamp()

    In order to support PTP in FDMA, PTP handling code is needed. Since
    this is the same as for register-based extraction, export it with
    a new ocelot_ptp_rx_timestamp() function.
    
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: Clément Léger <clement.leger@bootlin.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    clementleger authored and Jakub Kicinski committed Dec 11, 2021
  5. net: ocelot: export ocelot_ifh_port_set() to setup IFH

    FDMA will need this code to prepare the injection frame header when
    sending SKBs. Move this code into ocelot_ifh_port_set() and add
    conditional IFH setting for vlan and rew op if they are not set.
    
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: Clément Léger <clement.leger@bootlin.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    clementleger authored and Jakub Kicinski committed Dec 11, 2021
  6. Merge branch 'net-wwan-iosm-improvements'

    M Chetan Kumar says:
    
    ====================
    net: wwan: iosm: improvements
    
    This patch series brings in IOSM driver improvments.
    
    PATCH1: Set tx queue len.
    PATCH2: Release data channel if there is no active IP session.
    PATCH3: Removes dead code.
    PATCH4: Correct open parenthesis alignment.
    ====================
    
    Link: https://lore.kernel.org/r/20211209143230.3054755-1-m.chetan.kumar@linux.intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jakub Kicinski committed Dec 11, 2021
  7. net: wwan: iosm: correct open parenthesis alignment

    Fix checkpatch warning in iosm_ipc_mmio.c
    - Alignment should match open parenthesis
    
    Signed-off-by: M Chetan Kumar <m.chetan.kumar@linux.intel.com>
    Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    mchetankumar authored and Jakub Kicinski committed Dec 11, 2021
  8. net: wwan: iosm: removed unused function decl

    ipc_wwan_tx_flowctrl() is declared in iosm_ipc_wwan.h but is
    not defined.
    
    Removed the dead code.
    
    Signed-off-by: M Chetan Kumar <m.chetan.kumar@linux.intel.com>
    Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    mchetankumar authored and Jakub Kicinski committed Dec 11, 2021
Older