Commit 61f96e68 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Jakub Kicinski:
 "Including fixes from netfilter.

  Current release - regressions:

   - four fixes for the netdev per-instance locking

  Current release - new code bugs:

   - consolidate more code between existing Rx zero-copy and uring so
     that the latter doesn't miss / have to duplicate the safety checks

  Previous releases - regressions:

   - ipv6: fix omitted Netlink attributes when using SKIP_STATS

  Previous releases - always broken:

   - net: fix geneve_opt length integer overflow

   - udp: fix multiple wrap arounds of sk->sk_rmem_alloc when it
     approaches INT_MAX

   - dsa: mvpp2: add a lock to avoid corruption of the shared TCAM

   - dsa: airoha: fix issues with traffic QoS configuration / offload,
     and flow table offload

  Misc:

   - touch up the Netlink YAML specs of old families to make them usable
     for user space C codegen"

* tag 'net-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (56 commits)
  selftests: net: amt: indicate progress in the stress test
  netlink: specs: rt_route: pull the ifa- prefix out of the names
  netlink: specs: rt_addr: pull the ifa- prefix out of the names
  netlink: specs: rt_addr: fix get multi command name
  netlink: specs: rt_addr: fix the spec format / schema failures
  net: avoid false positive warnings in __net_mp_close_rxq()
  net: move mp dev config validation to __net_mp_open_rxq()
  net: ibmveth: make veth_pool_store stop hanging
  arcnet: Add NULL check in com20020pci_probe()
  ipv6: Do not consider link down nexthops in path selection
  ipv6: Start path selection from the first nexthop
  usbnet:fix NPE during rx_complete
  net: octeontx2: Handle XDP_ABORTED and XDP invalid as XDP_DROP
  net: fix geneve_opt length integer overflow
  io_uring/zcrx: fix selftests w/ updated netdev Python helpers
  selftests: net: use netdevsim in netns test
  docs: net: document netdev notifier expectations
  net: dummy: request ops lock
  netdevsim: add dummy device notifiers
  net: rename rtnl_net_debug to lock_debug
  ...
parents 96364527 94f68c0f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -3670,6 +3670,10 @@ S: 149 Union St.
S: Kingston, Ontario
S: Canada K7L 2P4

N: Pravin B Shelar
E: pshelar@ovn.org
D: Open vSwitch maintenance and contributions

N: John Shifflett
E: john@geolog.com
E: jshiffle@netcom.com
+22 −20
Original line number Diff line number Diff line
@@ -78,45 +78,46 @@ definitions:
attribute-sets:
  -
    name: addr-attrs
    name-prefix: ifa-
    attributes:
      -
        name: ifa-address
        name: address
        type: binary
        display-hint: ipv4
      -
        name: ifa-local
        name: local
        type: binary
        display-hint: ipv4
      -
        name: ifa-label
        name: label
        type: string
      -
        name: ifa-broadcast
        name: broadcast
        type: binary
        display-hint: ipv4
      -
        name: ifa-anycast
        name: anycast
        type: binary
      -
        name: ifa-cacheinfo
        name: cacheinfo
        type: binary
        struct: ifa-cacheinfo
      -
        name: ifa-multicast
        name: multicast
        type: binary
      -
        name: ifa-flags
        name: flags
        type: u32
        enum: ifa-flags
        enum-as-flags: true
      -
        name: ifa-rt-priority
        name: rt-priority
        type: u32
      -
        name: ifa-target-netnsid
        name: target-netnsid
        type: binary
      -
        name: ifa-proto
        name: proto
        type: u8


@@ -137,10 +138,10 @@ operations:
            - ifa-prefixlen
            - ifa-scope
            - ifa-index
            - ifa-address
            - ifa-label
            - ifa-local
            - ifa-cacheinfo
            - address
            - label
            - local
            - cacheinfo
    -
      name: deladdr
      doc: Remove address
@@ -154,8 +155,8 @@ operations:
            - ifa-prefixlen
            - ifa-scope
            - ifa-index
            - ifa-address
            - ifa-local
            - address
            - local
    -
      name: getaddr
      doc: Dump address information.
@@ -169,7 +170,7 @@ operations:
          value: 20
          attributes: *ifaddr-all
    -
      name: getmaddrs
      name: getmulticast
      doc: Get / dump IPv4/IPv6 multicast addresses.
      attribute-set: addr-attrs
      fixed-header: ifaddrmsg
@@ -182,11 +183,12 @@ operations:
        reply:
          value: 58
          attributes: &mcaddr-attrs
            - ifa-multicast
            - ifa-cacheinfo
            - multicast
            - cacheinfo
      dump:
        request:
          value: 58
          attributes:
            - ifa-family
        reply:
          value: 58
+91 −89
Original line number Diff line number Diff line
@@ -80,165 +80,167 @@ definitions:
attribute-sets:
  -
    name: route-attrs
    name-prefix: rta-
    attributes:
      -
        name: rta-dst
        name: dst
        type: binary
        display-hint: ipv4
      -
        name: rta-src
        name: src
        type: binary
        display-hint: ipv4
      -
        name: rta-iif
        name: iif
        type: u32
      -
        name: rta-oif
        name: oif
        type: u32
      -
        name: rta-gateway
        name: gateway
        type: binary
        display-hint: ipv4
      -
        name: rta-priority
        name: priority
        type: u32
      -
        name: rta-prefsrc
        name: prefsrc
        type: binary
        display-hint: ipv4
      -
        name: rta-metrics
        name: metrics
        type: nest
        nested-attributes: rta-metrics
        nested-attributes: metrics
      -
        name: rta-multipath
        name: multipath
        type: binary
      -
        name: rta-protoinfo # not used
        name: protoinfo # not used
        type: binary
      -
        name: rta-flow
        name: flow
        type: u32
      -
        name: rta-cacheinfo
        name: cacheinfo
        type: binary
        struct: rta-cacheinfo
      -
        name: rta-session # not used
        name: session # not used
        type: binary
      -
        name: rta-mp-algo # not used
        name: mp-algo # not used
        type: binary
      -
        name: rta-table
        name: table
        type: u32
      -
        name: rta-mark
        name: mark
        type: u32
      -
        name: rta-mfc-stats
        name: mfc-stats
        type: binary
      -
        name: rta-via
        name: via
        type: binary
      -
        name: rta-newdst
        name: newdst
        type: binary
      -
        name: rta-pref
        name: pref
        type: u8
      -
        name: rta-encap-type
        name: encap-type
        type: u16
      -
        name: rta-encap
        name: encap
        type: binary # tunnel specific nest
      -
        name: rta-expires
        name: expires
        type: u32
      -
        name: rta-pad
        name: pad
        type: binary
      -
        name: rta-uid
        name: uid
        type: u32
      -
        name: rta-ttl-propagate
        name: ttl-propagate
        type: u8
      -
        name: rta-ip-proto
        name: ip-proto
        type: u8
      -
        name: rta-sport
        name: sport
        type: u16
      -
        name: rta-dport
        name: dport
        type: u16
      -
        name: rta-nh-id
        name: nh-id
        type: u32
      -
        name: rta-flowlabel
        name: flowlabel
        type: u32
        byte-order: big-endian
        display-hint: hex
  -
    name: rta-metrics
    name: metrics
    name-prefix: rtax-
    attributes:
      -
        name: rtax-unspec
        name: unspec
        type: unused
        value: 0
      -
        name: rtax-lock
        name: lock
        type: u32
      -
        name: rtax-mtu
        name: mtu
        type: u32
      -
        name: rtax-window
        name: window
        type: u32
      -
        name: rtax-rtt
        name: rtt
        type: u32
      -
        name: rtax-rttvar
        name: rttvar
        type: u32
      -
        name: rtax-ssthresh
        name: ssthresh
        type: u32
      -
        name: rtax-cwnd
        name: cwnd
        type: u32
      -
        name: rtax-advmss
        name: advmss
        type: u32
      -
        name: rtax-reordering
        name: reordering
        type: u32
      -
        name: rtax-hoplimit
        name: hoplimit
        type: u32
      -
        name: rtax-initcwnd
        name: initcwnd
        type: u32
      -
        name: rtax-features
        name: features
        type: u32
      -
        name: rtax-rto-min
        name: rto-min
        type: u32
      -
        name: rtax-initrwnd
        name: initrwnd
        type: u32
      -
        name: rtax-quickack
        name: quickack
        type: u32
      -
        name: rtax-cc-algo
        name: cc-algo
        type: string
      -
        name: rtax-fastopen-no-cookie
        name: fastopen-no-cookie
        type: u32

operations:
@@ -254,18 +256,18 @@ operations:
          value: 26
          attributes:
            - rtm-family
            - rta-src
            - src
            - rtm-src-len
            - rta-dst
            - dst
            - rtm-dst-len
            - rta-iif
            - rta-oif
            - rta-ip-proto
            - rta-sport
            - rta-dport
            - rta-mark
            - rta-uid
            - rta-flowlabel
            - iif
            - oif
            - ip-proto
            - sport
            - dport
            - mark
            - uid
            - flowlabel
        reply:
          value: 24
          attributes: &all-route-attrs
@@ -278,34 +280,34 @@ operations:
            - rtm-scope
            - rtm-type
            - rtm-flags
            - rta-dst
            - rta-src
            - rta-iif
            - rta-oif
            - rta-gateway
            - rta-priority
            - rta-prefsrc
            - rta-metrics
            - rta-multipath
            - rta-flow
            - rta-cacheinfo
            - rta-table
            - rta-mark
            - rta-mfc-stats
            - rta-via
            - rta-newdst
            - rta-pref
            - rta-encap-type
            - rta-encap
            - rta-expires
            - rta-pad
            - rta-uid
            - rta-ttl-propagate
            - rta-ip-proto
            - rta-sport
            - rta-dport
            - rta-nh-id
            - rta-flowlabel
            - dst
            - src
            - iif
            - oif
            - gateway
            - priority
            - prefsrc
            - metrics
            - multipath
            - flow
            - cacheinfo
            - table
            - mark
            - mfc-stats
            - via
            - newdst
            - pref
            - encap-type
            - encap
            - expires
            - pad
            - uid
            - ttl-propagate
            - ip-proto
            - sport
            - dport
            - nh-id
            - flowlabel
      dump:
        request:
          value: 26
+23 −0
Original line number Diff line number Diff line
@@ -343,6 +343,29 @@ there are two sets of interfaces: ``dev_xxx`` and ``netif_xxx`` (e.g.,
acquiring the instance lock themselves, while the ``netif_xxx`` functions
assume that the driver has already acquired the instance lock.

Notifiers and netdev instance lock
==================================

For device drivers that implement shaping or queue management APIs,
some of the notifiers (``enum netdev_cmd``) are running under the netdev
instance lock.

For devices with locked ops, currently only the following notifiers are
running under the lock:
* ``NETDEV_REGISTER``
* ``NETDEV_UP``

The following notifiers are running without the lock:
* ``NETDEV_UNREGISTER``

There are no clear expectations for the remaining notifiers. Notifiers not on
the list may run with or without the instance lock, potentially even invoking
the same notifier type with and without the lock from different code paths.
The goal is to eventually ensure that all (or most, with a few documented
exceptions) notifiers run under the instance lock. Please extend this
documentation whenever you make explicit assumption about lock being held
from a notifier.

NETDEV_INTERNAL symbol namespace
================================

+6 −4
Original line number Diff line number Diff line
@@ -18131,7 +18131,9 @@ F: drivers/irqchip/irq-ompic.c
F:	drivers/irqchip/irq-or1k-*
OPENVSWITCH
M:	Pravin B Shelar <pshelar@ovn.org>
M:	Aaron Conole <aconole@redhat.com>
M:	Eelco Chaudron <echaudro@redhat.com>
M:	Ilya Maximets <i.maximets@ovn.org>
L:	netdev@vger.kernel.org
L:	dev@openvswitch.org
S:	Maintained
@@ -19903,7 +19905,7 @@ F: Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml
F:	drivers/i2c/busses/i2c-qcom-geni.c
QUALCOMM I2C CCI DRIVER
M:	Loic Poulain <loic.poulain@linaro.org>
M:	Loic Poulain <loic.poulain@oss.qualcomm.com>
M:	Robert Foss <rfoss@kernel.org>
L:	linux-i2c@vger.kernel.org
L:	linux-arm-msm@vger.kernel.org
@@ -20036,7 +20038,7 @@ F: Documentation/devicetree/bindings/media/*venus*
F:	drivers/media/platform/qcom/venus/
QUALCOMM WCN36XX WIRELESS DRIVER
M:	Loic Poulain <loic.poulain@linaro.org>
M:	Loic Poulain <loic.poulain@oss.qualcomm.com>
L:	wcn36xx@lists.infradead.org
S:	Supported
W:	https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
@@ -26075,7 +26077,7 @@ F: kernel/workqueue.c
F:	kernel/workqueue_internal.h
WWAN DRIVERS
M:	Loic Poulain <loic.poulain@linaro.org>
M:	Loic Poulain <loic.poulain@oss.qualcomm.com>
M:	Sergey Ryazanov <ryazanov.s.a@gmail.com>
R:	Johannes Berg <johannes@sipsolutions.net>
L:	netdev@vger.kernel.org
Loading