1. 22 Oct, 2021 5 commits
    • Mike Rapoport's avatar
      memblock: exclude MEMBLOCK_NOMAP regions from kmemleak · 658aafc8
      Mike Rapoport authored
      Vladimir Zapolskiy reports:
      
      Commit a7259df7 ("memblock: make memblock_find_in_range method
      private") invokes a kernel panic while running kmemleak on OF platforms
      with nomaped regions:
      
        Unable to handle kernel paging request at virtual address fff000021e00000
        [...]
          scan_block+0x64/0x170
          scan_gray_list+0xe8/0x17c
          kmemleak_scan+0x270/0x514
          kmemleak_write+0x34c/0x4ac
      
      The memory allocated from memblock is registered with kmemleak, but if
      it is marked MEMBLOCK_NOMAP it won't have linear map entries so an
      attempt to scan such areas will fault.
      
      Ideally, memblock_mark_nomap() would inform kmemleak to ignore
      MEMBLOCK_NOMAP memory, but it can be called before kmemleak interfaces
      operating on physical addresses can use __va() conversion.
      
      Make sure that functions that mark allocated memory as MEMBLOCK_NOMAP
      take care of informing kmemleak to ignore such memory.
      
      Link: https://lore.kernel.org/all/8ade5174-b143-d621-8c8e-dc6a1898c6fb@linaro.org
      Link: https://lore.kernel.org/all/c30ff0a2-d196-c50d-22f0-bd50696b1205@quicinc.com
      Fixes: a7259df7 ("memblock: make memblock_find_in_range method private")
      Reported-by: default avatarVladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
      Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Tested-by: default avatarVladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
      Tested-by: default avatarQian Cai <quic_qiancai@quicinc.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      658aafc8
    • Mike Rapoport's avatar
      Revert "memblock: exclude NOMAP regions from kmemleak" · 6c9a5455
      Mike Rapoport authored
      Commit 6e44bd6d ("memblock: exclude NOMAP regions from kmemleak")
      breaks boot on EFI systems with kmemleak and VM_DEBUG enabled:
      
        efi: Processing EFI memory map:
        efi:   0x000090000000-0x000091ffffff [Conventional|   |  |  |  |  |  |  |  |  |   |WB|WT|WC|UC]
        efi:   0x000092000000-0x0000928fffff [Runtime Data|RUN|  |  |  |  |  |  |  |  |   |WB|WT|WC|UC]
        ------------[ cut here ]------------
        kernel BUG at mm/kmemleak.c:1140!
        Internal error: Oops - BUG: 0 [#1] SMP
        Modules linked in:
        CPU: 0 PID: 0 Comm: swapper Not tainted 5.15.0-rc6-next-20211019+ #104
        pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
        pc : kmemleak_free_part_phys+0x64/0x8c
        lr : kmemleak_free_part_phys+0x38/0x8c
        sp : ffff800011eafbc0
        x29: ffff800011eafbc0 x28: 1fffff7fffb41c0d x27: fffffbfffda0e068
        x26: 0000000092000000 x25: 1ffff000023d5f94 x24: ffff800011ed84d0
        x23: ffff800011ed84c0 x22: ffff800011ed83d8 x21: 0000000000900000
        x20: ffff800011782000 x19: 0000000092000000 x18: ffff800011ee0730
        x17: 0000000000000000 x16: 0000000000000000 x15: 1ffff0000233252c
        x14: ffff800019a905a0 x13: 0000000000000001 x12: ffff7000023d5ed7
        x11: 1ffff000023d5ed6 x10: ffff7000023d5ed6 x9 : dfff800000000000
        x8 : ffff800011eaf6b7 x7 : 0000000000000001 x6 : ffff800011eaf6b0
        x5 : 00008ffffdc2a12a x4 : ffff7000023d5ed7 x3 : 1ffff000023dbf99
        x2 : 1ffff000022f0463 x1 : 0000000000000000 x0 : ffffffffffffffff
        Call trace:
         kmemleak_free_part_phys+0x64/0x8c
         memblock_mark_nomap+0x5c/0x78
         reserve_regions+0x294/0x33c
         efi_init+0x2d0/0x490
         setup_arch+0x80/0x138
         start_kernel+0xa0/0x3ec
         __primary_switched+0xc0/0xc8
        Code: 34000041 97d526e7 f9418e80 36000040 (d4210000)
        random: get_random_bytes called from print_oops_end_marker+0x34/0x80 with crng_init=0
        ---[ end trace 0000000000000000 ]---
      
      The crash happens because kmemleak_free_part_phys() tries to use __va()
      before memstart_addr is initialized and this triggers a VM_BUG_ON() in
      arch/arm64/include/asm/memory.h:
      
      Revert 6e44bd6d ("memblock: exclude NOMAP regions from kmemleak"),
      the issue it is fixing will be fixed differently.
      Reported-by: default avatarQian Cai <quic_qiancai@quicinc.com>
      Signed-off-by: default avatarMike Rapoport <rppt@linux.ibm.com>
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6c9a5455
    • Linus Torvalds's avatar
      Merge branch 'ucount-fixes-for-v5.15' of... · 9d235ac0
      Linus Torvalds authored
      Merge branch 'ucount-fixes-for-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull ucounts fixes from Eric Biederman:
       "There has been one very hard to track down bug in the ucount code that
        we have been tracking since roughly v5.14 was released. Alex managed
        to find a reliable reproducer a few days ago and then I was able to
        instrument the code and figure out what the issue was.
      
        It turns out the sigqueue_alloc single atomic operation optimization
        did not play nicely with ucounts multiple level rlimits. It turned out
        that either sigqueue_alloc or sigqueue_free could be operating on
        multiple levels and trigger the conditions for the optimization on
        more than one level at the same time.
      
        To deal with that situation I have introduced inc_rlimit_get_ucounts
        and dec_rlimit_put_ucounts that just focuses on the optimization and
        the rlimit and ucount changes.
      
        While looking into the big bug I found I couple of other little issues
        so I am including those fixes here as well.
      
        When I have time I would very much like to dig into process ownership
        of the shared signal queue and see if we could pick a single owner for
        the entire queue so that all of the rlimits can count to that owner.
        That should entirely remove the need to call get_ucounts and
        put_ucounts in sigqueue_alloc and sigqueue_free. It is difficult
        because Linux unlike POSIX supports setuid that works on a single
        thread"
      
      * 'ucount-fixes-for-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        ucounts: Move get_ucounts from cred_alloc_blank to key_change_session_keyring
        ucounts: Proper error handling in set_cred_ucounts
        ucounts: Pair inc_rlimit_ucounts with dec_rlimit_ucoutns in commit_creds
        ucounts: Fix signal ucount refcounting
      9d235ac0
    • Linus Torvalds's avatar
      Merge tag 'net-5.15-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 6c2c7127
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from netfilter, and can.
      
        We'll have one more fix for a socket accounting regression, it's still
        getting polished. Otherwise things look fine.
      
        Current release - regressions:
      
         - revert "vrf: reset skb conntrack connection on VRF rcv", there are
           valid uses for previous behavior
      
         - can: m_can: fix iomap_read_fifo() and iomap_write_fifo()
      
        Current release - new code bugs:
      
         - mlx5: e-switch, return correct error code on group creation failure
      
        Previous releases - regressions:
      
         - sctp: fix transport encap_port update in sctp_vtag_verify
      
         - stmmac: fix E2E delay mechanism (in PTP timestamping)
      
        Previous releases - always broken:
      
         - netfilter: ip6t_rt: fix out-of-bounds read of ipv6_rt_hdr
      
         - netfilter: xt_IDLETIMER: fix out-of-bound read caused by lack of
           init
      
         - netfilter: ipvs: make global sysctl read-only in non-init netns
      
         - tcp: md5: fix selection between vrf and non-vrf keys
      
         - ipv6: count rx stats on the orig netdev when forwarding
      
         - bridge: mcast: use multicast_membership_interval for IGMPv3
      
         - can:
            - j1939: fix UAF for rx_kref of j1939_priv abort sessions on
              receiving bad messages
      
            - isotp: fix TX buffer concurrent access in isotp_sendmsg() fix
              return error on FC timeout on TX path
      
         - ice: fix re-init of RDMA Tx queues and crash if RDMA was not inited
      
         - hns3: schedule the polling again when allocation fails, prevent
           stalls
      
         - drivers: add missing of_node_put() when aborting
           for_each_available_child_of_node()
      
         - ptp: fix possible memory leak and UAF in ptp_clock_register()
      
         - e1000e: fix packet loss in burst mode on Tiger Lake and later
      
         - mlx5e: ipsec: fix more checksum offload issues"
      
      * tag 'net-5.15-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (75 commits)
        usbnet: sanity check for maxpacket
        net: enetc: make sure all traffic classes can send large frames
        net: enetc: fix ethtool counter name for PM0_TERR
        ptp: free 'vclock_index' in ptp_clock_release()
        sfc: Don't use netif_info before net_device setup
        sfc: Export fibre-specific supported link modes
        net/mlx5e: IPsec: Fix work queue entry ethernet segment checksum flags
        net/mlx5e: IPsec: Fix a misuse of the software parser's fields
        net/mlx5e: Fix vlan data lost during suspend flow
        net/mlx5: E-switch, Return correct error code on group creation failure
        net/mlx5: Lag, change multipath and bonding to be mutually exclusive
        ice: Add missing E810 device ids
        igc: Update I226_K device ID
        e1000e: Fix packet loss on Tiger Lake and later
        e1000e: Separate TGP board type from SPT
        ptp: Fix possible memory leak in ptp_clock_register()
        net: stmmac: Fix E2E delay mechanism
        nfc: st95hf: Make spi remove() callback return zero
        net: hns3: disable sriov before unload hclge layer
        net: hns3: fix vf reset workqueue cannot exit
        ...
      6c2c7127
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.15-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 0a3221b6
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix a bug exposed by a previous fix, where running guests with
         certain SMT topologies could crash the host on Power8.
      
       - Fix atomic sleep warnings when re-onlining CPUs, when PREEMPT is
         enabled.
      
      Thanks to Nathan Lynch, Srikar Dronamraju, and Valentin Schneider.
      
      * tag 'powerpc-5.15-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/smp: do not decrement idle task preempt count in CPU offline
        powerpc/idle: Don't corrupt back chain when going idle
      0a3221b6
  2. 21 Oct, 2021 9 commits
    • Oliver Neukum's avatar
      usbnet: sanity check for maxpacket · 397430b5
      Oliver Neukum authored
      maxpacket of 0 makes no sense and oopses as we need to divide
      by it. Give up.
      
      V2: fixed typo in log and stylistic issues
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.com>
      Reported-by: syzbot+76bb1d34ffa0adc03baa@syzkaller.appspotmail.com
      Reviewed-by: default avatarJohan Hovold <johan@kernel.org>
      Link: https://lore.kernel.org/r/20211021122944.21816-1-oneukum@suse.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      397430b5
    • Vladimir Oltean's avatar
      net: enetc: make sure all traffic classes can send large frames · e378f496
      Vladimir Oltean authored
      The enetc driver does not implement .ndo_change_mtu, instead it
      configures the MAC register field PTC{Traffic Class}MSDUR[MAXSDU]
      statically to a large value during probe time.
      
      The driver used to configure only the max SDU for traffic class 0, and
      that was fine while the driver could only use traffic class 0. But with
      the introduction of mqprio, sending a large frame into any other TC than
      0 is broken.
      
      This patch fixes that by replicating per traffic class the static
      configuration done in enetc_configure_port_mac().
      
      Fixes: cbe9e835 ("enetc: Enable TC offloading with mqprio")
      Reported-by: default avatarRichie Pearn <richard.pearn@nxp.com>
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Reviewed-by: default avatar&lt;Claudiu Manoil <claudiu.manoil@nxp.com>
      Link: https://lore.kernel.org/r/20211020173340.1089992-1-vladimir.oltean@nxp.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e378f496
    • Vladimir Oltean's avatar
      net: enetc: fix ethtool counter name for PM0_TERR · fb8dc5fc
      Vladimir Oltean authored
      There are two counters named "MAC tx frames", one of them is actually
      incorrect. The correct name for that counter should be "MAC tx error
      frames", which is symmetric to the existing "MAC rx error frames".
      
      Fixes: 16eb4c85 ("enetc: Add ethtool statistics")
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Reviewed-by: default avatar&lt;Claudiu Manoil <claudiu.manoil@nxp.com>
      Link: https://lore.kernel.org/r/20211020165206.1069889-1-vladimir.oltean@nxp.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      fb8dc5fc
    • Yang Yingliang's avatar
      ptp: free 'vclock_index' in ptp_clock_release() · b6b19a71
      Yang Yingliang authored
      'vclock_index' is accessed from sysfs, it shouled be freed
      in release function, so move it from ptp_clock_unregister()
      to ptp_clock_release().
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b6b19a71
    • Erik Ekman's avatar
      sfc: Don't use netif_info before net_device setup · bf6abf34
      Erik Ekman authored
      Use pci_info instead to avoid unnamed/uninitialized noise:
      
      [197088.688729] sfc 0000:01:00.0: Solarflare NIC detected
      [197088.690333] sfc 0000:01:00.0: Part Number : SFN5122F
      [197088.729061] sfc 0000:01:00.0 (unnamed net_device) (uninitialized): no SR-IOV VFs probed
      [197088.729071] sfc 0000:01:00.0 (unnamed net_device) (uninitialized): no PTP support
      
      Inspired by fa44821a ("sfc: don't use netif_info et al before
      net_device is registered") from Heiner Kallweit.
      Signed-off-by: default avatarErik Ekman <erik@kryo.se>
      Acked-by: default avatarMartin Habets <habetsm.xilinx@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf6abf34
    • Erik Ekman's avatar
      sfc: Export fibre-specific supported link modes · c62041c5
      Erik Ekman authored
      The 1/10GbaseT modes were set up for cards with SFP+ cages in
      3497ed8c ("sfc: report supported link speeds on SFP connections").
      10GbaseT was likely used since no 10G fibre mode existed.
      
      The missing fibre modes for 1/10G were added to ethtool.h in 5711a982
      ("net: ethtool: add support for 1000BaseX and missing 10G link modes")
      shortly thereafter.
      
      The user guide available at https://support-nic.xilinx.com/wp/drivers
      lists support for the following cable and transceiver types in section 2.9:
      - QSFP28 100G Direct Attach Cables
      - QSFP28 100G SR Optical Transceivers (with SR4 modules listed)
      - SFP28 25G Direct Attach Cables
      - SFP28 25G SR Optical Transceivers
      - QSFP+ 40G Direct Attach Cables
      - QSFP+ 40G Active Optical Cables
      - QSFP+ 40G SR4 Optical Transceivers
      - QSFP+ to SFP+ Breakout Direct Attach Cables
      - QSFP+ to SFP+ Breakout Active Optical Cables
      - SFP+ 10G Direct Attach Cables
      - SFP+ 10G SR Optical Transceivers
      - SFP+ 10G LR Optical Transceivers
      - SFP 1000BASE‐T Transceivers
      - 1G Optical Transceivers
      (From user guide issue 28. Issue 16 which also includes older cards like
      SFN5xxx/SFN6xxx has matching lists for 1/10/40G transceiver types.)
      
      Regarding SFP+ 10GBASE‐T transceivers the latest guide says:
      "Solarflare adapters do not support 10GBASE‐T transceiver modules."
      
      Tested using SFN5122F-R7 (with 2 SFP+ ports). Supported link modes do not change
      depending on module used (tested with 1000BASE-T, 1000BASE-BX10, 10GBASE-LR).
      Before:
      
      $ ethtool ext
      Settings for ext:
      	Supported ports: [ FIBRE ]
      	Supported link modes:   1000baseT/Full
      	                        10000baseT/Full
      	Supported pause frame use: Symmetric Receive-only
      	Supports auto-negotiation: No
      	Supported FEC modes: Not reported
      	Advertised link modes:  Not reported
      	Advertised pause frame use: No
      	Advertised auto-negotiation: No
      	Advertised FEC modes: Not reported
      	Link partner advertised link modes:  Not reported
      	Link partner advertised pause frame use: No
      	Link partner advertised auto-negotiation: No
      	Link partner advertised FEC modes: Not reported
      	Speed: 1000Mb/s
      	Duplex: Full
      	Auto-negotiation: off
      	Port: FIBRE
      	PHYAD: 255
      	Transceiver: internal
              Current message level: 0x000020f7 (8439)
                                     drv probe link ifdown ifup rx_err tx_err hw
      	Link detected: yes
      
      After:
      
      $ ethtool ext
      Settings for ext:
      	Supported ports: [ FIBRE ]
      	Supported link modes:   1000baseT/Full
      	                        1000baseX/Full
      	                        10000baseCR/Full
      	                        10000baseSR/Full
      	                        10000baseLR/Full
      	Supported pause frame use: Symmetric Receive-only
      	Supports auto-negotiation: No
      	Supported FEC modes: Not reported
      	Advertised link modes:  Not reported
      	Advertised pause frame use: No
      	Advertised auto-negotiation: No
      	Advertised FEC modes: Not reported
      	Link partner advertised link modes:  Not reported
      	Link partner advertised pause frame use: No
      	Link partner advertised auto-negotiation: No
      	Link partner advertised FEC modes: Not reported
      	Speed: 1000Mb/s
      	Duplex: Full
      	Auto-negotiation: off
      	Port: FIBRE
      	PHYAD: 255
      	Transceiver: internal
      	Supports Wake-on: g
      	Wake-on: d
              Current message level: 0x000020f7 (8439)
                                     drv probe link ifdown ifup rx_err tx_err hw
      	Link detected: yes
      Signed-off-by: default avatarErik Ekman <erik@kryo.se>
      Acked-by: default avatarMartin Habets <habetsm.xilinx@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c62041c5
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf · 1439caa1
      David S. Miller authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter/IPVS fixes for net
      
      The following patchset contains Netfilter fixes for net:
      
      1) Crash due to missing initialization of timer data in
         xt_IDLETIMER, from Juhee Kang.
      
      2) NF_CONNTRACK_SECMARK should be bool in Kconfig, from Vegard Nossum.
      
      3) Skip netdev events on netns removal, from Florian Westphal.
      
      4) Add testcase to show port shadowing via UDP, also from Florian.
      
      5) Remove pr_debug() code in ip6t_rt, this fixes a crash due to
         unsafe access to non-linear skbuff, from Xin Long.
      
      6) Make net/ipv4/vs/debug_level read-only from non-init netns,
         from Antoine Tenart.
      
      7) Remove bogus invocation to bash in selftests/netfilter/nft_flowtable.sh
         also from Florian.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1439caa1
    • David S. Miller's avatar
      Merge tag 'mlx5-fixes-2021-10-20' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · e0bfcf9c
      David S. Miller authored
      Saeed Mahameed says:
      
      ====================
      mlx5-fixes-2021-10-20
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0bfcf9c
    • David S. Miller's avatar
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue · a689702a
      David S. Miller authored
      Tony Nguyen says:
      
      ====================
      Intel Wired LAN Driver Updates 2021-10-20
      
      This series contains updates to e1000e, igc, and ice drivers.
      
      Sasha fixes an issue with dropped packets on Tiger Lake platforms for
      e1000e and corrects a device ID for igc.
      
      Tony adds missing E810 device IDs for ice.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a689702a
  3. 20 Oct, 2021 26 commits