Skip to content
  1. Feb 16, 2024
    • Kuniyuki Iwashima's avatar
      dccp/tcp: Unhash sk from ehash for tb2 alloc failure after check_estalblished(). · 66b60b0c
      Kuniyuki Iwashima authored
      
      
      syzkaller reported a warning [0] in inet_csk_destroy_sock() with no
      repro.
      
        WARN_ON(inet_sk(sk)->inet_num && !inet_csk(sk)->icsk_bind_hash);
      
      However, the syzkaller's log hinted that connect() failed just before
      the warning due to FAULT_INJECTION.  [1]
      
      When connect() is called for an unbound socket, we search for an
      available ephemeral port.  If a bhash bucket exists for the port, we
      call __inet_check_established() or __inet6_check_established() to check
      if the bucket is reusable.
      
      If reusable, we add the socket into ehash and set inet_sk(sk)->inet_num.
      
      Later, we look up the corresponding bhash2 bucket and try to allocate
      it if it does not exist.
      
      Although it rarely occurs in real use, if the allocation fails, we must
      revert the changes by check_established().  Otherwise, an unconnected
      socket could illegally occupy an ehash entry.
      
      Note that we do not put tw back into ehash because sk might have
      already responded to a packet for tw and it would be better to free
      tw earlier under such memory presure.
      
      [0]:
      WARNING: CPU: 0 PID: 350830 at net/ipv4/inet_connection_sock.c:1193 inet_csk_destroy_sock (net/ipv4/inet_connection_sock.c:1193)
      Modules linked in:
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
      RIP: 0010:inet_csk_destroy_sock (net/ipv4/inet_connection_sock.c:1193)
      Code: 41 5c 41 5d 41 5e e9 2d 4a 3d fd e8 28 4a 3d fd 48 89 ef e8 f0 cd 7d ff 5b 5d 41 5c 41 5d 41 5e e9 13 4a 3d fd e8 0e 4a 3d fd <0f> 0b e9 61 fe ff ff e8 02 4a 3d fd 4c 89 e7 be 03 00 00 00 e8 05
      RSP: 0018:ffffc9000b21fd38 EFLAGS: 00010293
      RAX: 0000000000000000 RBX: 0000000000009e78 RCX: ffffffff840bae40
      RDX: ffff88806e46c600 RSI: ffffffff840bb012 RDI: ffff88811755cca8
      RBP: ffff88811755c880 R08: 0000000000000003 R09: 0000000000000000
      R10: 0000000000009e78 R11: 0000000000000000 R12: ffff88811755c8e0
      R13: ffff88811755c892 R14: ffff88811755c918 R15: 0000000000000000
      FS:  00007f03e5243800(0000) GS:ffff88811ae00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000001b32f21000 CR3: 0000000112ffe001 CR4: 0000000000770ef0
      PKRU: 55555554
      Call Trace:
       <TASK>
       ? inet_csk_destroy_sock (net/ipv4/inet_connection_sock.c:1193)
       dccp_close (net/dccp/proto.c:1078)
       inet_release (net/ipv4/af_inet.c:434)
       __sock_release (net/socket.c:660)
       sock_close (net/socket.c:1423)
       __fput (fs/file_table.c:377)
       __fput_sync (fs/file_table.c:462)
       __x64_sys_close (fs/open.c:1557 fs/open.c:1539 fs/open.c:1539)
       do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83)
       entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:129)
      RIP: 0033:0x7f03e53852bb
      Code: 03 00 00 00 0f 05 48 3d 00 f0 ff ff 77 41 c3 48 83 ec 18 89 7c 24 0c e8 43 c9 f5 ff 8b 7c 24 0c 41 89 c0 b8 03 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 35 44 89 c7 89 44 24 0c e8 a1 c9 f5 ff 8b 44
      RSP: 002b:00000000005dfba0 EFLAGS: 00000293 ORIG_RAX: 0000000000000003
      RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 00007f03e53852bb
      RDX: 0000000000000002 RSI: 0000000000000002 RDI: 0000000000000003
      RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000000167c
      R10: 0000000008a79680 R11: 0000000000000293 R12: 00007f03e4e43000
      R13: 00007f03e4e43170 R14: 00007f03e4e43178 R15: 00007f03e4e43170
       </TASK>
      
      [1]:
      FAULT_INJECTION: forcing a failure.
      name failslab, interval 1, probability 0, space 0, times 0
      CPU: 0 PID: 350833 Comm: syz-executor.1 Not tainted 6.7.0-12272-g2121c43f88f5 #9
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
      Call Trace:
       <TASK>
       dump_stack_lvl (lib/dump_stack.c:107 (discriminator 1))
       should_fail_ex (lib/fault-inject.c:52 lib/fault-inject.c:153)
       should_failslab (mm/slub.c:3748)
       kmem_cache_alloc (mm/slub.c:3763 mm/slub.c:3842 mm/slub.c:3867)
       inet_bind2_bucket_create (net/ipv4/inet_hashtables.c:135)
       __inet_hash_connect (net/ipv4/inet_hashtables.c:1100)
       dccp_v4_connect (net/dccp/ipv4.c:116)
       __inet_stream_connect (net/ipv4/af_inet.c:676)
       inet_stream_connect (net/ipv4/af_inet.c:747)
       __sys_connect_file (net/socket.c:2048 (discriminator 2))
       __sys_connect (net/socket.c:2065)
       __x64_sys_connect (net/socket.c:2072)
       do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83)
       entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:129)
      RIP: 0033:0x7f03e5284e5d
      Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 73 9f 1b 00 f7 d8 64 89 01 48
      RSP: 002b:00007f03e4641cc8 EFLAGS: 00000246 ORIG_RAX: 000000000000002a
      RAX: ffffffffffffffda RBX: 00000000004bbf80 RCX: 00007f03e5284e5d
      RDX: 0000000000000010 RSI: 0000000020000000 RDI: 0000000000000003
      RBP: 00000000004bbf80 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
      R13: 000000000000000b R14: 00007f03e52e5530 R15: 0000000000000000
       </TASK>
      
      Reported-by: default avatarsyzkaller <syzkaller@googlegroups.com>
      Fixes: 28044fc1
      
       ("net: Add a bhash2 table hashed by port and address")
      Signed-off-by: default avatarKuniyuki Iwashima <kuniyu@amazon.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      66b60b0c
    • David S. Miller's avatar
      Merge branch 'bridge-mdb-events' · 82a678e2
      David S. Miller authored
      
      
      Tobias Waldekranz says:
      
      ====================
      net: bridge: switchdev: Ensure MDB events are delivered exactly once
      
      When a device is attached to a bridge, drivers will request a replay
      of objects that were created before the device joined the bridge, that
      are still of interest to the joining port. Typical examples include
      FDB entries and MDB memberships on other ports ("foreign interfaces")
      or on the bridge itself.
      
      Conversely when a device is detached, the bridge will synthesize
      deletion events for all those objects that are still live, but no
      longer applicable to the device in question.
      
      This series eliminates two races related to the synching and
      unsynching phases of a bridge's MDB with a joining or leaving device,
      that would cause notifications of such objects to be either delivered
      twice (1/2), or not at all (2/2).
      
      A similar race to the one solved by 1/2 still remains for the
      FDB. This is much harder to solve, due to the lockless operation of
      the FDB's rhashtable, and is therefore knowingly left out of this
      series.
      
      v1 -> v2:
      - Squash the previously separate addition of
        switchdev_port_obj_act_is_deferred into first consumer.
      - Use ether_addr_equal to compare MAC addresses.
      - Document switchdev_port_obj_act_is_deferred (renamed from
        switchdev_port_obj_is_deferred in v1, to indicate that we also match
        on the action).
      - Delay allocations of MDB objects until we know they're needed.
      - Use non-RCU version of the hash list iterator, now that the MDB is
        not scanned while holding the RCU read lock.
      - Add Fixes tag to commit message
      
      v2 -> v3:
      - Fix unlocking in error paths
      - Access RCU protected port list via mlock_dereference, since MDB is
        guaranteed to remain constant for the duration of the scan.
      
      v3 -> v4:
      - Limit the search for exiting deferred events in 1/2 to only apply to
        additions, since the problem does not exist in the deletion case.
      - Add 2/2, to plug a related race when unoffloading an indirectly
        associated device.
      
      v4 -> v5:
      - Fix grammatical errors in kerneldoc of
        switchdev_port_obj_act_is_deferred
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      82a678e2
    • Tobias Waldekranz's avatar
      net: bridge: switchdev: Ensure deferred event delivery on unoffload · f7a70d65
      Tobias Waldekranz authored
      When unoffloading a device, it is important to ensure that all
      relevant deferred events are delivered to it before it disassociates
      itself from the bridge.
      
      Before this change, this was true for the normal case when a device
      maps 1:1 to a net_bridge_port, i.e.
      
         br0
         /
      swp0
      
      When swp0 leaves br0, the call to switchdev_deferred_process() in
      del_nbp() makes sure to process any outstanding events while the
      device is still associated with the bridge.
      
      In the case when the association is indirect though, i.e. when the
      device is attached to the bridge via an intermediate device, like a
      LAG...
      
          br0
          /
        lag0
        /
      swp0
      
      ...then detaching swp0 from lag0 does not cause any net_bridge_port to
      be deleted, so there was no guarantee that all events had been
      processed before the device disassociated itself from the bridge.
      
      Fix this by always synchronously processing all deferred events before
      signaling completion of unoffloading back to the driver.
      
      Fixes: 4e51bf44
      
       ("net: bridge: move the switchdev object replay helpers to "push" mode")
      Signed-off-by: default avatarTobias Waldekranz <tobias@waldekranz.com>
      Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7a70d65
    • Tobias Waldekranz's avatar
      net: bridge: switchdev: Skip MDB replays of deferred events on offload · dc489f86
      Tobias Waldekranz authored
      Before this change, generation of the list of MDB events to replay
      would race against the creation of new group memberships, either from
      the IGMP/MLD snooping logic or from user configuration.
      
      While new memberships are immediately visible to walkers of
      br->mdb_list, the notification of their existence to switchdev event
      subscribers is deferred until a later point in time. So if a replay
      list was generated during a time that overlapped with such a window,
      it would also contain a replay of the not-yet-delivered event.
      
      The driver would thus receive two copies of what the bridge internally
      considered to be one single event. On destruction of the bridge, only
      a single membership deletion event was therefore sent. As a
      consequence of this, drivers which reference count memberships (at
      least DSA), would be left with orphan groups in their hardware
      database when the bridge was destroyed.
      
      This is only an issue when replaying additions. While deletion events
      may still be pending on the deferred queue, they will already have
      been removed from br->mdb_list, so no duplicates can be generated in
      that scenario.
      
      To a user this meant that old group memberships, from a bridge in
      which a port was previously attached, could be reanimated (in
      hardware) when the port joined a new bridge, without the new bridge's
      knowledge.
      
      For example, on an mv88e6xxx system, create a snooping bridge and
      immediately add a port to it:
      
          root@infix-06-0b-00:~$ ip link add dev br0 up type bridge mcast_snooping 1 && \
          > ip link set dev x3 up master br0
      
      And then destroy the bridge:
      
          root@infix-06-0b-00:~$ ip link del dev br0
          root@infix-06-0b-00:~$ mvls atu
          ADDRESS             FID  STATE      Q  F  0  1  2  3  4  5  6  7  8  9  a
          DEV:0 Marvell 88E6393X
          33:33:00:00:00:6a     1  static     -  -  0  .  .  .  .  .  .  .  .  .  .
          33:33:ff:87:e4:3f     1  static     -  -  0  .  .  .  .  .  .  .  .  .  .
          ff:ff:ff:ff:ff:ff     1  static     -  -  0  1  2  3  4  5  6  7  8  9  a
          root@infix-06-0b-00:~$
      
      The two IPv6 groups remain in the hardware database because the
      port (x3) is notified of the host's membership twice: once via the
      original event and once via a replay. Since only a single delete
      notification is sent, the count remains at 1 when the bridge is
      destroyed.
      
      Then add the same port (or another port belonging to the same hardware
      domain) to a new bridge, this time with snooping disabled:
      
          root@infix-06-0b-00:~$ ip link add dev br1 up type bridge mcast_snooping 0 && \
          > ip link set dev x3 up master br1
      
      All multicast, including the two IPv6 groups from br0, should now be
      flooded, according to the policy of br1. But instead the old
      memberships are still active in the hardware database, causing the
      switch to only forward traffic to those groups towards the CPU (port
      0).
      
      Eliminate the race in two steps:
      
      1. Grab the write-side lock of the MDB while generating the replay
         list.
      
      This prevents new memberships from showing up while we are generating
      the replay list. But it leaves the scenario in which a deferred event
      was already generated, but not delivered, before we grabbed the
      lock. Therefore:
      
      2. Make sure that no deferred version of a replay event is already
         enqueued to the switchdev deferred queue, before adding it to the
         replay list, when replaying additions.
      
      Fixes: 4f2673b3
      
       ("net: bridge: add helper to replay port and host-joined mdb entries")
      Signed-off-by: default avatarTobias Waldekranz <tobias@waldekranz.com>
      Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc489f86
    • Alexander Gordeev's avatar
      net/iucv: fix the allocation size of iucv_path_table array · b4ea9b6a
      Alexander Gordeev authored
      
      
      iucv_path_table is a dynamically allocated array of pointers to
      struct iucv_path items. Yet, its size is calculated as if it was
      an array of struct iucv_path items.
      
      Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
      Reviewed-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b4ea9b6a
    • Linus Torvalds's avatar
      Merge tag 'net-6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 4f5e5092
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from can, wireless and netfilter.
      
        Current release - regressions:
      
         - af_unix: fix task hung while purging oob_skb in GC
      
         - pds_core: do not try to run health-thread in VF path
      
        Current release - new code bugs:
      
         - sched: act_mirred: don't zero blockid when net device is being
           deleted
      
        Previous releases - regressions:
      
         - netfilter:
            - nat: restore default DNAT behavior
            - nf_tables: fix bidirectional offload, broken when unidirectional
              offload support was added
      
         - openvswitch: limit the number of recursions from action sets
      
         - eth: i40e: do not allow untrusted VF to remove administratively set
           MAC address
      
        Previous releases - always broken:
      
         - tls: fix races and bugs in use of async crypto
      
         - mptcp: prevent data races on some of the main socket fields, fix
           races in fastopen handling
      
         - dpll: fix possible deadlock during netlink dump operation
      
         - dsa: lan966x: fix crash when adding interface under a lag when some
           of the ports are disabled
      
         - can: j1939: prevent deadlock by changing j1939_socks_lock to rwlock
      
        Misc:
      
         - a handful of fixes and reliability improvements for selftests
      
         - fix sysfs documentation missing net/ in paths
      
         - finish the work of squashing the missing MODULE_DESCRIPTION()
           warnings in networking"
      
      * tag 'net-6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (92 commits)
        net: fill in MODULE_DESCRIPTION()s for missing arcnet
        net: fill in MODULE_DESCRIPTION()s for mdio_devres
        net: fill in MODULE_DESCRIPTION()s for ppp
        net: fill in MODULE_DESCRIPTION()s for fddik/skfp
        net: fill in MODULE_DESCRIPTION()s for plip
        net: fill in MODULE_DESCRIPTION()s for ieee802154/fakelb
        net: fill in MODULE_DESCRIPTION()s for xen-netback
        net: ravb: Count packets instead of descriptors in GbEth RX path
        pppoe: Fix memory leak in pppoe_sendmsg()
        net: sctp: fix skb leak in sctp_inq_free()
        net: bcmasp: Handle RX buffer allocation failure
        net-timestamp: make sk_tskey more predictable in error path
        selftests: tls: increase the wait in poll_partial_rec_async
        ice: Add check for lport extraction to LAG init
        netfilter: nf_tables: fix bidirectional offload regression
        netfilter: nat: restore default DNAT behavior
        netfilter: nft_set_pipapo: fix missing : in kdoc
        igc: Remove temporary workaround
        igb: Fix string truncation warnings in igb_set_fw_version
        can: netlink: Fix TDCO calculation using the old data bittiming
        ...
      4f5e5092
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.8a-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · cc9c4f0b
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
       "Fixes and simple cleanups:
      
         - use a proper flexible array instead of a one-element array in order
           to avoid array-bounds sanitizer errors
      
         - add NULL pointer checks after allocating memory
      
         - use memdup_array_user() instead of open-coding it
      
         - fix a rare race condition in Xen event channel allocation code
      
         - make struct bus_type instances const
      
         - make kerneldoc inline comments match reality"
      
      * tag 'for-linus-6.8a-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/events: close evtchn after mapping cleanup
        xen/gntalloc: Replace UAPI 1-element array
        xen: balloon: make balloon_subsys const
        xen: pcpu: make xen_pcpu_subsys const
        xen/privcmd: Use memdup_array_user() in alloc_ioreq()
        x86/xen: Add some null pointer checking to smp.c
        xen/xenbus: document will_handle argument for xenbus_watch_path()
      cc9c4f0b
    • Linus Torvalds's avatar
      update workarounds for gcc "asm goto" issue · 68fb3ca0
      Linus Torvalds authored
      In commit 4356e9f8
      
       ("work around gcc bugs with 'asm goto' with
      outputs") I did the gcc workaround unconditionally, because the cause of
      the bad code generation wasn't entirely clear.
      
      In the meantime, Jakub Jelinek debugged the issue, and has come up with
      a fix in gcc [2], which also got backported to the still maintained
      branches of gcc-11, gcc-12 and gcc-13.
      
      Note that while the fix technically wasn't in the original gcc-14
      branch, Jakub says:
      
       "while it is true that no GCC 14 snapshots until today (or whenever the
        fix will be committed) have the fix, for GCC trunk it is up to the
        distros to use the latest snapshot if they use it at all and would
        allow better testing of the kernel code without the workaround, so
        that if there are other issues they won't be discovered years later.
        Most userland code doesn't actually use asm goto with outputs..."
      
      so we will consider gcc-14 to be fixed - if somebody is using gcc
      snapshots of the gcc-14 before the fix, they should upgrade.
      
      Note that while the bug goes back to gcc-11, in practice other gcc
      changes seem to have effectively hidden it since gcc-12.1 as per a
      bisect by Jakub.  So even a gcc-14 snapshot without the fix likely
      doesn't show actual problems.
      
      Also, make the default 'asm_goto_output()' macro mark the asm as
      volatile by hand, because of an unrelated gcc issue [1] where it doesn't
      match the documented behavior ("asm goto is always volatile").
      
      Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103979 [1]
      Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113921 [2]
      Link: https://lore.kernel.org/all/20240208220604.140859-1-seanjc@google.com/
      Requested-by: default avatarJakub Jelinek <jakub@redhat.com>
      Cc: Uros Bizjak <ubizjak@gmail.com>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Sean Christopherson <seanjc@google.com>
      Cc: Andrew Pinski <quic_apinski@quicinc.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      68fb3ca0
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 339e2fca
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
      
       - Improve devlink dependency parsing for DT graphs
      
       - Fix devlink handling of io-channels dependencies
      
       - Fix PCI addressing in marvell,prestera example
      
       - A few schema fixes for property constraints
      
       - Improve performance of DT unprobed devices kselftest
      
       - Fix regression in DT_SCHEMA_FILES handling
      
       - Fix compile error in unittest for !OF_DYNAMIC
      
      * tag 'devicetree-fixes-for-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: ufs: samsung,exynos-ufs: Add size constraints on "samsung,sysreg"
        of: property: Add in-ports/out-ports support to of_graph_get_port_parent()
        of: property: Improve finding the supplier of a remote-endpoint property
        of: property: Improve finding the consumer of a remote-endpoint property
        net: marvell,prestera: Fix example PCI bus addressing
        of: unittest: Fix compile in the non-dynamic case
        of: property: fix typo in io-channels
        dt-bindings: tpm: Drop type from "resets"
        dt-bindings: display: nxp,tda998x: Fix 'audio-ports' constraints
        dt-bindings: xilinx: replace Piyush Mehta maintainership
        kselftest: dt: Stop relying on dirname to improve performance
        dt-bindings: don't anchor DT_SCHEMA_FILES to bindings directory
      339e2fca
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · a00cf198
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A smallish collection of fixes for SPI, all driver specific, plus one
        device ID addition for a new Intel part.
      
        The ppc4xx isn't routinely covered by most of the automated testing so
        there were some errors that were missed in some of the recent API
        conversions, otherwise there's nothing super remarkable here"
      
      * tag 'spi-fix-v6.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi-mxs: Fix chipselect glitch
        spi: intel-pci: Add support for Lunar Lake-M SPI serial flash
        spi: omap2-mcspi: Revert FIFO support without DMA
        spi: ppc4xx: Drop write-only variable
        spi: ppc4xx: Fix fallout from rename in struct spi_bitbang
        spi: ppc4xx: Fix fallout from include cleanup
        spi: spi-ppc4xx: include missing platform_device.h
        spi: imx: fix the burst length at DMA mode and CPU mode
      a00cf198
    • Linus Torvalds's avatar
      Merge tag 'regmap-fix-v6.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 2c460834
      Linus Torvalds authored
      Pull regmap test fixes from Mark Brown:
       "Guenter runs a lot of KUnit tests so noticed that there were a couple
        of the regmap tests, including the newly added noinc test, which could
        show spurious failures due to the use of randomly generated test
        values. These changes handle the randomly generated data properly"
      
      * tag 'regmap-fix-v6.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: kunit: Ensure that changed bytes are actually different
        regmap: kunit: fix raw noinc write test wrapping
      2c460834
    • Linus Torvalds's avatar
      Merge tag 'hid-for-linus-2024021501' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 9207fe75
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - fix for 'MSC_SERIAL = 0' corner case handling in wacom driver (Jason
         Gerecke)
      
       - ACPI S3 suspend/resume fix for intel-ish-hid (Even Xu)
      
       - race condition fix preventing Wacom driver from losing events shortly
         after initialization (Jason Gerecke)
      
       - fix preventing certain Logitech HID++ devices from spamming kernel
         log (Oleksandr Natalenko)
      
      * tag 'hid-for-linus-2024021501' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: wacom: generic: Avoid reporting a serial of '0' to userspace
        HID: Intel-ish-hid: Ishtp: Fix sensor reads after ACPI S3 suspend
        HID: multitouch: Add required quirk for Synaptics 0xcddc device
        HID: wacom: Do not register input devices until after hid_hw_start
        HID: logitech-hidpp: Do not flood kernel log
      9207fe75
    • Jakub Kicinski's avatar
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue · c40c0d3a
      Jakub Kicinski authored
      
      
      Tony Nguyen says:
      
      ====================
      Intel Wired LAN Driver Updates 2024-02-06 (igb, igc)
      
      This series contains updates to igb and igc drivers.
      
      Kunwu Chan adjusts firmware version string implementation to resolve
      possible NULL pointer issue for igb.
      
      Sasha removes workaround on igc.
      
      * '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue:
        igc: Remove temporary workaround
        igb: Fix string truncation warnings in igb_set_fw_version
      ====================
      
      Link: https://lore.kernel.org/r/20240214180347.3219650-1-anthony.l.nguyen@intel.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c40c0d3a
    • Jakub Kicinski's avatar
      Merge branch 'fix-module_description-for-net-p6' · b2c6c529
      Jakub Kicinski authored
      
      
      Breno Leitao says:
      
      ====================
      Fix MODULE_DESCRIPTION() for net (p6)
      
      There are a few network modules left that misses MODULE_DESCRIPTION(),
      causing a warnning when compiling with W=1. Example:
      
              WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/net/arcnet/....
      
      This last patchset solves the problem for all the missing driver. It is
      not expect to see any warning for the driver/net and net/ directory once
      all these patches have landed.
      
      v1: https://lore.kernel.org/all/20240213112122.404045-1-leitao@debian.org/
      ====================
      
      Link: https://lore.kernel.org/r/20240214152741.670178-1-leitao@debian.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b2c6c529
    • Breno Leitao's avatar
      net: fill in MODULE_DESCRIPTION()s for missing arcnet · 538b22e7
      Breno Leitao authored
      
      
      W=1 builds now warn if module is built without a MODULE_DESCRIPTION().
      Add descriptions to the ARC modules.
      
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Link: https://lore.kernel.org/r/20240214152741.670178-8-leitao@debian.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      538b22e7
    • Breno Leitao's avatar
      net: fill in MODULE_DESCRIPTION()s for mdio_devres · 9de69f0e
      Breno Leitao authored
      
      
      W=1 builds now warn if module is built without a MODULE_DESCRIPTION().
      Add descriptions to the PHY MDIO helpers.
      
      Suggested-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Link: https://lore.kernel.org/r/20240214152741.670178-7-leitao@debian.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      9de69f0e
    • Breno Leitao's avatar
      net: fill in MODULE_DESCRIPTION()s for ppp · e1e5ef2a
      Breno Leitao authored
      
      
      W=1 builds now warn if module is built without a MODULE_DESCRIPTION().
      Add descriptions to the PPP modules.
      
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Link: https://lore.kernel.org/r/20240214152741.670178-6-leitao@debian.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e1e5ef2a
    • Breno Leitao's avatar
      net: fill in MODULE_DESCRIPTION()s for fddik/skfp · 4ad9e858
      Breno Leitao authored
      
      
      W=1 builds now warn if module is built without a MODULE_DESCRIPTION().
      Add descriptions to the SysKonnect FDDI PCI module.
      
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Link: https://lore.kernel.org/r/20240214152741.670178-5-leitao@debian.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4ad9e858
    • Breno Leitao's avatar
      net: fill in MODULE_DESCRIPTION()s for plip · 44c1197b
      Breno Leitao authored
      
      
      W=1 builds now warn if module is built without a MODULE_DESCRIPTION().
      Add descriptions to the PLIP (parallel port) network module
      
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Link: https://lore.kernel.org/r/20240214152741.670178-4-leitao@debian.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      44c1197b
    • Breno Leitao's avatar
      net: fill in MODULE_DESCRIPTION()s for ieee802154/fakelb · c0872309
      Breno Leitao authored
      
      
      W=1 builds now warn if module is built without a MODULE_DESCRIPTION().
      Add descriptions to the IEEE 802.15.4 loopback driver.
      
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Link: https://lore.kernel.org/r/20240214152741.670178-3-leitao@debian.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c0872309
    • Breno Leitao's avatar
      net: fill in MODULE_DESCRIPTION()s for xen-netback · 5b8e3464
      Breno Leitao authored
      
      
      W=1 builds now warn if module is built without a MODULE_DESCRIPTION().
      Add descriptions to the Xen backend network module.
      
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Acked-by: default avatarPaul Durrant <paul@xen.org>
      Link: https://lore.kernel.org/r/20240214152741.670178-2-leitao@debian.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      5b8e3464
  2. Feb 15, 2024
    • Paul Barker's avatar
      net: ravb: Count packets instead of descriptors in GbEth RX path · ed4adc07
      Paul Barker authored
      The units of "work done" in the RX path should be packets instead of
      descriptors, as large packets can be spread over multiple descriptors.
      
      Fixes: 1c59eb67
      
       ("ravb: Fillup ravb_rx_gbeth() stub")
      Signed-off-by: default avatarPaul Barker <paul.barker.ct@bp.renesas.com>
      Reviewed-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
      Link: https://lore.kernel.org/r/20240214151204.2976-1-paul.barker.ct@bp.renesas.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ed4adc07
    • Gavrilov Ilia's avatar
      pppoe: Fix memory leak in pppoe_sendmsg() · dc34ebd5
      Gavrilov Ilia authored
      syzbot reports a memory leak in pppoe_sendmsg [1].
      
      The problem is in the pppoe_recvmsg() function that handles errors
      in the wrong order. For the skb_recv_datagram() function, check
      the pointer to skb for NULL first, and then check the 'error' variable,
      because the skb_recv_datagram() function can set 'error'
      to -EAGAIN in a loop but return a correct pointer to socket buffer
      after a number of attempts, though 'error' remains set to -EAGAIN.
      
      skb_recv_datagram
            __skb_recv_datagram          // Loop. if (err == -EAGAIN) then
                                         // go to the next loop iteration
                __skb_try_recv_datagram  // if (skb != NULL) then return 'skb'
                                         // else if a signal is received then
                                         // return -EAGAIN
      
      Found by InfoTeCS on behalf of Linux Verification Center
      (linuxtesting.org) with Syzkaller.
      
      Link: https://syzkaller.appspot.com/bug?extid=6bdfd184eac7709e5cc9 [1]
      
      Fixes: 1da177e4
      
       ("Linux-2.6.12-rc2")
      Reported-by: default avatar <syzbot+6bdfd184eac7709e5cc9@syzkaller.appspotmail.com>
      Closes: https://syzkaller.appspot.com/bug?extid=6bdfd184eac7709e5cc9
      Signed-off-by: default avatarGavrilov Ilia <Ilia.Gavrilov@infotecs.ru>
      Reviewed-by: default avatarGuillaume Nault <gnault@redhat.com>
      Link: https://lore.kernel.org/r/20240214085814.3894917-1-Ilia.Gavrilov@infotecs.ru
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      dc34ebd5
    • Dmitry Antipov's avatar
      net: sctp: fix skb leak in sctp_inq_free() · 4e45170d
      Dmitry Antipov authored
      
      
      In case of GSO, 'chunk->skb' pointer may point to an entry from
      fraglist created in 'sctp_packet_gso_append()'. To avoid freeing
      random fraglist entry (and so undefined behavior and/or memory
      leak), introduce 'sctp_inq_chunk_free()' helper to ensure that
      'chunk->skb' is set to 'chunk->head_skb' (i.e. fraglist head)
      before calling 'sctp_chunk_free()', and use the aforementioned
      helper in 'sctp_inq_pop()' as well.
      
      Reported-by: default avatar <syzbot+8bb053b5d63595ab47db@syzkaller.appspotmail.com>
      Closes: https://syzkaller.appspot.com/bug?id=0d8351bbe54fd04a492c2daab0164138db008042
      Fixes: 90017acc
      
       ("sctp: Add GSO support")
      Suggested-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarDmitry Antipov <dmantipov@yandex.ru>
      Acked-by: default avatarXin Long <lucien.xin@gmail.com>
      Link: https://lore.kernel.org/r/20240214082224.10168-1-dmantipov@yandex.ru
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4e45170d
    • Florian Fainelli's avatar
      net: bcmasp: Handle RX buffer allocation failure · e5b2e810
      Florian Fainelli authored
      The buffer_pg variable needs to hold an order-5 allocation (32 x
      PAGE_SIZE) which, under memory pressure may fail to be allocated. Deal
      with that error condition properly to avoid doing a NULL pointer
      de-reference in the subsequent call to dma_map_page().
      
      In addition, the err_reclaim_tx error label in bcmasp_netif_init() needs
      to ensure that the TX NAPI object is properly deleted, otherwise
      unregister_netdev() will spin forever attempting to test and clear
      the NAPI_STATE_HASHED bit.
      
      Fixes: 490cb412
      
       ("net: bcmasp: Add support for ASP2.0 Ethernet controller")
      Signed-off-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
      Reviewed-by: default avatarJustin Chen <justin.chen@broadcom.com>
      Link: https://lore.kernel.org/r/20240213173339.3438713-1-florian.fainelli@broadcom.com
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      e5b2e810
    • Paolo Abeni's avatar
      Merge tag 'nf-24-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf · d74b23d0
      Paolo Abeni authored
      
      
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter fixes for net
      
      The following batch contains Netfilter fixes for net:
      
      1) Missing : in kdoc field in nft_set_pipapo.
      
      2) Restore default DNAT behavior When a DNAT rule is configured via
         iptables with different port ranges, from Kyle Swenson.
      
      3) Restore flowtable hardware offload for bidirectional flows
         by setting NF_FLOW_HW_BIDIRECTIONAL flag, from Felix Fietkau.
      
      netfilter pull request 24-02-15
      
      * tag 'nf-24-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
        netfilter: nf_tables: fix bidirectional offload regression
        netfilter: nat: restore default DNAT behavior
        netfilter: nft_set_pipapo: fix missing : in kdoc
      ====================
      
      Link: https://lore.kernel.org/r/20240214233818.7946-1-pablo@netfilter.org
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      d74b23d0
    • Paolo Abeni's avatar
      Merge tag 'linux-can-fixes-for-6.8-20240214' of... · f3ac28e1
      Paolo Abeni authored
      
      Merge tag 'linux-can-fixes-for-6.8-20240214' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can
      
      Marc Kleine-Budde says:
      
      ====================
      pull-request: can 2024-02-14
      
      this is a pull request of 3 patches for net/master.
      
      the first patch is by Ziqi Zhao and targets the CAN J1939 protocol, it
      fixes a potential deadlock by replacing the spinlock by an rwlock.
      
      Oleksij Rempel's patch adds a missing spin_lock_bh() to prevent a
      potential Use-After-Free in the CAN J1939's
      setsockopt(SO_J1939_FILTER).
      
      Maxime Jayat contributes a patch to fix the transceiver delay
      compensation (TDCO) calculation, which is needed for higher CAN-FD bit
      rates (usually 2Mbit/s).
      
      * tag 'linux-can-fixes-for-6.8-20240214' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
        can: netlink: Fix TDCO calculation using the old data bittiming
        can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER)
        can: j1939: prevent deadlock by changing j1939_socks_lock to rwlock
      ====================
      
      Link: https://lore.kernel.org/r/20240214140348.2412776-1-mkl@pengutronix.de
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      f3ac28e1
    • Vadim Fedorenko's avatar
      net-timestamp: make sk_tskey more predictable in error path · 488b6d91
      Vadim Fedorenko authored
      When SOF_TIMESTAMPING_OPT_ID is used to ambiguate timestamped datagrams,
      the sk_tskey can become unpredictable in case of any error happened
      during sendmsg(). Move increment later in the code and make decrement of
      sk_tskey in error path. This solution is still racy in case of multiple
      threads doing snedmsg() over the very same socket in parallel, but still
      makes error path much more predictable.
      
      Fixes: 09c2d251
      
       ("net-timestamp: add key to disambiguate concurrent datagrams")
      Reported-by: default avatarAndy Lutomirski <luto@amacapital.net>
      Signed-off-by: default avatarVadim Fedorenko <vadfed@meta.com>
      Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
      Link: https://lore.kernel.org/r/20240213110428.1681540-1-vadfed@meta.com
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      488b6d91
    • Jakub Kicinski's avatar
      selftests: tls: increase the wait in poll_partial_rec_async · 2ec197fd
      Jakub Kicinski authored
      Test runners on debug kernels occasionally fail with:
      
       # #  RUN           tls_err.13_aes_gcm.poll_partial_rec_async ...
       # # tls.c:1883:poll_partial_rec_async:Expected poll(&pfd, 1, 5) (0) == 1 (1)
       # # tls.c:1870:poll_partial_rec_async:Expected status (256) == 0 (0)
       # # poll_partial_rec_async: Test failed at step #17
       # #          FAIL  tls_err.13_aes_gcm.poll_partial_rec_async
       # not ok 699 tls_err.13_aes_gcm.poll_partial_rec_async
       # # FAILED: 698 / 699 tests passed.
      
      This points to the second poll() in the test which is expected
      to wait for the sender to send the rest of the data.
      Apparently under some conditions that doesn't happen within 5ms,
      bump the timeout to 20ms.
      
      Fixes: 23fcb62b
      
       ("selftests: tls: add tests for poll behavior")
      Link: https://lore.kernel.org/r/20240213142055.395564-1-kuba@kernel.org
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      2ec197fd
    • Dave Ertman's avatar
      ice: Add check for lport extraction to LAG init · dadd1701
      Dave Ertman authored
      
      
      To fully support initializing the LAG support code, a DDP package that
      extracts the logical port from the metadata is required.  If such a
      package is not present, there could be difficulties in supporting some
      bond types.
      
      Add a check into the initialization flow that will bypass the new paths
      if any of the support pieces are missing.
      
      Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
      Fixes: df006dd4
      
       ("ice: Add initial support framework for LAG")
      Signed-off-by: default avatarDave Ertman <david.m.ertman@intel.com>
      Reviewed-by: default avatarMarcin Szycik <marcin.szycik@linux.intel.com>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Tested-by: default avatarSujai Buvaneswaran <sujai.buvaneswaran@intel.com>
      Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      Link: https://lore.kernel.org/r/20240213183957.1483857-1-anthony.l.nguyen@intel.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      dadd1701
    • Jakub Kicinski's avatar
      Merge tag 'wireless-2024-02-14' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless · 63a3dd6e
      Jakub Kicinski authored
      
      
      Johannes Berg says:
      
      ====================
      Valentine's day edition, with just few fixes because
      that's how we love it ;-)
      
      iwlwifi:
       - correct A3 in A-MSDUs
       - fix crash when operating as AP and running out of station
         slots to use
       - clear link ID to correct some later checks against it
       - fix error codes in SAR table loading
       - fix error path in PPAG table read
      
      mac80211:
       - reload a pointer after SKB may have changed
         (only in certain monitor inject mode scenarios)
      
      * tag 'wireless-2024-02-14' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless:
        wifi: iwlwifi: mvm: fix a crash when we run out of stations
        wifi: iwlwifi: uninitialized variable in iwl_acpi_get_ppag_table()
        wifi: iwlwifi: Fix some error codes
        wifi: iwlwifi: clear link_id in time_event
        wifi: iwlwifi: mvm: use correct address 3 in A-MSDU
        wifi: mac80211: reload info pointer in ieee80211_tx_dequeue()
      ====================
      
      Link: https://lore.kernel.org/r/20240214184326.132813-3-johannes@sipsolutions.net
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      63a3dd6e
    • Linus Torvalds's avatar
      Merge tag 'mips-fixes_6.8_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 8d3dea21
      Linus Torvalds authored
      Pull MIPS fixes from Thomas Bogendoerfer:
      
       - Fix for broken ipv6 checksums
      
       - Fix handling of exceptions in delay slots
      
      * tag 'mips-fixes_6.8_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        mm/memory: Use exception ip to search exception tables
        MIPS: Clear Cause.BD in instruction_pointer_set
        ptrace: Introduce exception_ip arch hook
        MIPS: Add 'memory' clobber to csum_ipv6_magic() inline assembler
      8d3dea21
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 6004b044
      Linus Torvalds authored
      Pull landlock test fixes from Mickaël Salaün:
       "Fix build issues for tests, and improve test compatibility"
      
      * tag 'landlock-6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        selftests/landlock: Fix capability for net_test
        selftests/landlock: Fix fs_test build with old libc
        selftests/landlock: Fix net_test build with old libc
      6004b044
    • Linus Torvalds's avatar
      Merge tag 'for-6.8-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 1f3a3e2a
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "A few regular fixes and one fix for space reservation regression since
        6.7 that users have been reporting:
      
         - fix over-reservation of metadata chunks due to not keeping proper
           balance between global block reserve and delayed refs reserve; in
           practice this leaves behind empty metadata block groups, the
           workaround is to reclaim them by using the '-musage=1' balance
           filter
      
         - other space reservation fixes:
            - do not delete unused block group if it may be used soon
            - do not reserve space for checksums for NOCOW files
      
         - fix extent map assertion failure when writing out free space inode
      
         - reject encoded write if inode has nodatasum flag set
      
         - fix chunk map leak when loading block group zone info"
      
      * tag 'for-6.8-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: don't refill whole delayed refs block reserve when starting transaction
        btrfs: zoned: fix chunk map leak when loading block group zone info
        btrfs: reject encoded write if inode has nodatasum flag set
        btrfs: don't reserve space for checksums when writing to nocow files
        btrfs: add new unused block groups to the list of unused block groups
        btrfs: do not delete unused block group if it may be used soon
        btrfs: add and use helper to check if block group is used
        btrfs: don't drop extent_map for free space inode on write error
      1f3a3e2a
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-kunit-fixes-6.8-rc5' of... · 91f842ff
      Linus Torvalds authored
      Merge tag 'linux_kselftest-kunit-fixes-6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull KUnit fix from Shuah Khan:
       "One important fix to unregister kunit_bus when KUnit module is
        unloaded.
      
        Not doing so causes an error when KUnit module tries to re-register
        the bus when it gets reloaded"
      
      * tag 'linux_kselftest-kunit-fixes-6.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kunit: device: Unregister the kunit_bus on shutdown
      91f842ff
    • Felix Fietkau's avatar
      netfilter: nf_tables: fix bidirectional offload regression · 84443741
      Felix Fietkau authored
      Commit 8f84780b ("netfilter: flowtable: allow unidirectional rules")
      made unidirectional flow offload possible, while completely ignoring (and
      breaking) bidirectional flow offload for nftables.
      Add the missing flag that was left out as an exercise for the reader :)
      
      Cc: Vlad Buslov <vladbu@nvidia.com>
      Fixes: 8f84780b
      
       ("netfilter: flowtable: allow unidirectional rules")
      Reported-by: default avatarDaniel Golle <daniel@makrotopia.org>
      Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      84443741
    • Kyle Swenson's avatar
      netfilter: nat: restore default DNAT behavior · 0f1ae282
      Kyle Swenson authored
      When a DNAT rule is configured via iptables with different port ranges,
      
      iptables -t nat -A PREROUTING -p tcp -d 10.0.0.2 -m tcp --dport 32000:32010
      -j DNAT --to-destination 192.168.0.10:21000-21010
      
      we seem to be DNATing to some random port on the LAN side. While this is
      expected if --random is passed to the iptables command, it is not
      expected without passing --random.  The expected behavior (and the
      observed behavior prior to the commit in the "Fixes" tag) is the traffic
      will be DNAT'd to 192.168.0.10:21000 unless there is a tuple collision
      with that destination.  In that case, we expect the traffic to be
      instead DNAT'd to 192.168.0.10:21001, so on so forth until the end of
      the range.
      
      This patch intends to restore the behavior observed prior to the "Fixes"
      tag.
      
      Fixes: 6ed5943f
      
       ("netfilter: nat: remove l4 protocol port rovers")
      Signed-off-by: default avatarKyle Swenson <kyle.swenson@est.tech>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      0f1ae282
    • Pablo Neira Ayuso's avatar
      netfilter: nft_set_pipapo: fix missing : in kdoc · f6374a82
      Pablo Neira Ayuso authored
      Add missing : in kdoc field names.
      
      Fixes: 8683f4b9
      
       ("nft_set_pipapo: Prepare for vectorised implementation: helpers")
      Reported-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      f6374a82
    • Sasha Neftin's avatar
      igc: Remove temporary workaround · 55ea9899
      Sasha Neftin authored
      PHY_CONTROL register works as defined in the IEEE 802.3 specification
      (IEEE 802.3-2008 22.2.4.1). Tidy up the temporary workaround.
      
      User impact: PHY can now be powered down when the ethernet link is down.
      
      Testing hints: ip link set down <device> (or just disconnect the
      ethernet cable).
      
      Oldest tested NVM version is: 1045:740.
      
      Fixes: 5586838f
      
       ("igc: Add code for PHY support")
      Signed-off-by: default avatarSasha Neftin <sasha.neftin@intel.com>
      Reviewed-by: default avatarPaul Menzel <pmenzel@molgen.mpg.de>
      Tested-by: default avatarNaama Meir <naamax.meir@linux.intel.com>
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      55ea9899
    • Kunwu Chan's avatar
      igb: Fix string truncation warnings in igb_set_fw_version · c56d0558
      Kunwu Chan authored
      Commit 1978d3ea ("intel: fix string truncation warnings")
      fixes '-Wformat-truncation=' warnings in igb_main.c by using kasprintf.
      
      drivers/net/ethernet/intel/igb/igb_main.c:3092:53: warning:‘%d’ directive output may be truncated writing between 1 and 5 bytes into a region of size between 1 and 13 [-Wformat-truncation=]
       3092 |                                  "%d.%d, 0x%08x, %d.%d.%d",
            |                                                     ^~
      drivers/net/ethernet/intel/igb/igb_main.c:3092:34: note:directive argument in the range [0, 65535]
       3092 |                                  "%d.%d, 0x%08x, %d.%d.%d",
            |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
      drivers/net/ethernet/intel/igb/igb_main.c:3092:34: note:directive argument in the range [0, 65535]
      drivers/net/ethernet/intel/igb/igb_main.c:3090:25: note:‘snprintf’ output between 23 and 43 bytes into a destination of size 32
      
      kasprintf() returns a pointer to dynamically allocated memory
      which can be NULL upon failure.
      
      Fix this warning by using a larger space for adapter->fw_version,
      and then fall back and continue to use snprintf.
      
      Fixes: 1978d3ea
      
       ("intel: fix string truncation warnings")
      Signed-off-by: default avatarKunwu Chan <chentao@kylinos.cn>
      Cc: Kunwu Chan <kunwu.chan@hotmail.com>
      Suggested-by: default avatarJakub Kicinski <kuba@kernel.org>
      Reviewed-by: default avatarSimon Horman <horms@kernel.org>
      Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      c56d0558