Skip to content
Permalink
Abhijeet-V/asu…
Switch branches/tags

Commits on Feb 11, 2022

  1. asus-wmi: Add support for keyboard rgb backlights

    Uses the led multicolor classdev to change the rgb values.
    The WMI function expects other settings in addition to the rgb values.
    This patch assumes some defaults to get the base rgb functionality
    working.
    
    Signed-off-by: Abhijeet V <abhijeetviswa@gmail.com>
    abhijeetviswa authored and intel-lab-lkp committed Feb 11, 2022
  2. asus-wmi: Use led multicolor class for keyboard backlight

    Use the led multicolor class for keyboard backlight so that support for
    rgb keyboard leds can be added for supported Asus laptops.
    
    Also refactored the keyboard led functions. The function names are now
    indicative of what the function does.
    
    Signed-off-by: Abhijeet V <abhijeetviswa@gmail.com>
    abhijeetviswa authored and intel-lab-lkp committed Feb 11, 2022
  3. Merge tag 'net-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/netdev/net
    
    Pull networking fixes from Jakub Kicinski:
     "Including fixes from netfilter and can.
    
    Current release - new code bugs:
    
       - sparx5: fix get_stat64 out-of-bound access and crash
    
       - smc: fix netdev ref tracker misuse
    
      Previous releases - regressions:
    
       - eth: ixgbevf: require large buffers for build_skb on 82599VF, avoid
         overflows
    
       - eth: ocelot: fix all IP traffic getting trapped to CPU with PTP
         over IP
    
       - bonding: fix rare link activation misses in 802.3ad mode
    
      Previous releases - always broken:
    
       - tcp: fix tcp sock mem accounting in zero-copy corner cases
    
       - remove the cached dst when uncloning an skb dst and its metadata,
         since we only have one ref it'd lead to an UaF
    
       - netfilter:
          - conntrack: don't refresh sctp entries in closed state
          - conntrack: re-init state for retransmitted syn-ack, avoid
            connection establishment getting stuck with strange stacks
          - ctnetlink: disable helper autoassign, avoid it getting lost
          - nft_payload: don't allow transport header access for fragments
    
       - dsa: fix use of devres for mdio throughout drivers
    
       - eth: amd-xgbe: disable interrupts during pci removal
    
       - eth: dpaa2-eth: unregister netdev before disconnecting the PHY
    
       - eth: ice: fix IPIP and SIT TSO offload"
    
    * tag 'net-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (53 commits)
      net: dsa: mv88e6xxx: fix use-after-free in mv88e6xxx_mdios_unregister
      net: mscc: ocelot: fix mutex lock error during ethtool stats read
      ice: Avoid RTNL lock when re-creating auxiliary device
      ice: Fix KASAN error in LAG NETDEV_UNREGISTER handler
      ice: fix IPIP and SIT TSO offload
      ice: fix an error code in ice_cfg_phy_fec()
      net: mpls: Fix GCC 12 warning
      dpaa2-eth: unregister the netdev before disconnecting from the PHY
      skbuff: cleanup double word in comment
      net: macb: Align the dma and coherent dma masks
      mptcp: netlink: process IPv6 addrs in creating listening sockets
      selftests: mptcp: add missing join check
      net: usb: qmi_wwan: Add support for Dell DW5829e
      vlan: move dev_put into vlan_dev_uninit
      vlan: introduce vlan_dev_free_egress_priority
      ax25: fix UAF bugs of net_device caused by rebinding operation
      net: dsa: fix panic when DSA master device unbinds on shutdown
      net: amd-xgbe: disable interrupts during pci removal
      tipc: rate limit warning for received illegal binding update
      net: mdio: aspeed: Add missing MODULE_DEVICE_TABLE
      ...
    torvalds committed Feb 11, 2022

Commits on Feb 10, 2022

  1. Merge tag 'linux-kselftest-fixes-5.17-rc4' of git://git.kernel.org/pu…

    …b/scm/linux/kernel/git/shuah/linux-kselftest
    
    Pull Kselftest fixes from Shuah Khan:
     "Build and run-time fixes to pidfd, clone3, and ir tests"
    
    * tag 'linux-kselftest-fixes-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
      selftests/ir: fix build with ancient kernel headers
      selftests: fixup build warnings in pidfd / clone3 tests
      pidfd: fix test failure due to stack overflow on some arches
    torvalds committed Feb 10, 2022
  2. Merge tag 'linux-kselftest-kunit-fixes-5.17-rc4' of git://git.kernel.…

    …org/pub/scm/linux/kernel/git/shuah/linux-kselftest
    
    Pull KUnit fixes from Shuah Khan:
     "Fixes to the test and usage documentation"
    
    * tag 'linux-kselftest-kunit-fixes-5.17-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
      Documentation: KUnit: Fix usage bug
      kunit: fix missing f in f-string in run_checks.py
    torvalds committed Feb 10, 2022
  3. net: dsa: mv88e6xxx: fix use-after-free in mv88e6xxx_mdios_unregister

    Since struct mv88e6xxx_mdio_bus *mdio_bus is the bus->priv of something
    allocated with mdiobus_alloc_size(), this means that mdiobus_free(bus)
    will free the memory backing the mdio_bus as well. Therefore, the
    mdio_bus->list element is freed memory, but we continue to iterate
    through the list of MDIO buses using that list element.
    
    To fix this, use the proper list iterator that handles element deletion
    by keeping a copy of the list element next pointer.
    
    Fixes: f53a2ce ("net: dsa: mv88e6xxx: don't use devres for mdiobus")
    Reported-by: Rafael Richter <rafael.richter@gin.de>
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://lore.kernel.org/r/20220210174017.3271099-1-vladimir.oltean@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    vladimiroltean authored and Jakub Kicinski committed Feb 10, 2022
  4. Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/tnguy/net-queue
    
    Tony Nguyen says:
    
    ====================
    Intel Wired LAN Driver Updates 2022-02-10
    
    Dan Carpenter propagates an error in FEC configuration.
    
    Jesse fixes TSO offloads of IPIP and SIT frames.
    
    Dave adds a dedicated LAG unregister function to resolve a KASAN error
    and moves auxiliary device re-creation after LAG removal to the service
    task to avoid issues with RTNL lock.
    
    * '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue:
      ice: Avoid RTNL lock when re-creating auxiliary device
      ice: Fix KASAN error in LAG NETDEV_UNREGISTER handler
      ice: fix IPIP and SIT TSO offload
      ice: fix an error code in ice_cfg_phy_fec()
    ====================
    
    Link: https://lore.kernel.org/r/20220210170515.2609656-1-anthony.l.nguyen@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jakub Kicinski committed Feb 10, 2022
  5. net: mscc: ocelot: fix mutex lock error during ethtool stats read

    An ongoing workqueue populates the stats buffer. At the same time, a user
    might query the statistics. While writing to the buffer is mutex-locked,
    reading from the buffer wasn't. This could lead to buggy reads by ethtool.
    
    This patch fixes the former blamed commit, but the bug was introduced in
    the latter.
    
    Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
    Fixes: 1e1caa9 ("ocelot: Clean up stats update deferred work")
    Fixes: a556c76 ("net: mscc: Add initial Ocelot switch support")
    Reported-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://lore.kernel.org/all/20220210150451.416845-2-colin.foster@in-advantage.com/
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    colin-foster-in-advantage authored and Jakub Kicinski committed Feb 10, 2022
  6. ice: Avoid RTNL lock when re-creating auxiliary device

    If a call to re-create the auxiliary device happens in a context that has
    already taken the RTNL lock, then the call flow that recreates auxiliary
    device can hang if there is another attempt to claim the RTNL lock by the
    auxiliary driver.
    
    To avoid this, any call to re-create auxiliary devices that comes from
    an source that is holding the RTNL lock (e.g. netdev notifier when
    interface exits a bond) should execute in a separate thread.  To
    accomplish this, add a flag to the PF that will be evaluated in the
    service task and dealt with there.
    
    Fixes: f9f5301 ("ice: Register auxiliary device to provide RDMA")
    Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
    Reviewed-by: Jonathan Toppins <jtoppins@redhat.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    dmertman authored and anguy11 committed Feb 10, 2022
  7. ice: Fix KASAN error in LAG NETDEV_UNREGISTER handler

    Currently, the same handler is called for both a NETDEV_BONDING_INFO
    LAG unlink notification as for a NETDEV_UNREGISTER call.  This is
    causing a problem though, since the netdev_notifier_info passed has
    a different structure depending on which event is passed.  The problem
    manifests as a call trace from a BUG: KASAN stack-out-of-bounds error.
    
    Fix this by creating a handler specific to NETDEV_UNREGISTER that only
    is passed valid elements in the netdev_notifier_info struct for the
    NETDEV_UNREGISTER event.
    
    Also included is the removal of an unbalanced dev_put on the peer_netdev
    and related braces.
    
    Fixes: 6a8b357 ("ice: Respond to a NETDEV_UNREGISTER event for LAG")
    Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
    Acked-by: Jonathan Toppins <jtoppins@redhat.com>
    Tested-by: Sunitha Mekala <sunithax.d.mekala@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    dmertman authored and anguy11 committed Feb 10, 2022
  8. ice: fix IPIP and SIT TSO offload

    The driver was avoiding offload for IPIP (at least) frames due to
    parsing the inner header offsets incorrectly when trying to check
    lengths.
    
    This length check works for VXLAN frames but fails on IPIP frames
    because skb_transport_offset points to the inner header in IPIP
    frames, which meant the subtraction of transport_header from
    inner_network_header returns a negative value (-20).
    
    With the code before this patch, everything continued to work, but GSO
    was being used to segment, causing throughputs of 1.5Gb/s per thread.
    After this patch, throughput is more like 10Gb/s per thread for IPIP
    traffic.
    
    Fixes: e94d447 ("ice: Implement filter sync, NDO operations and bump version")
    Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    jbrandeb authored and anguy11 committed Feb 10, 2022
  9. ice: fix an error code in ice_cfg_phy_fec()

    Propagate the error code from ice_get_link_default_override() instead
    of returning success.
    
    Fixes: ea78ce4 ("ice: add link lenient and default override support")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    error27 authored and anguy11 committed Feb 10, 2022
  10. net: mpls: Fix GCC 12 warning

    When building with automatic stack variable initialization, GCC 12
    complains about variables defined outside of switch case statements.
    Move the variable outside the switch, which silences the warning:
    
    ./net/mpls/af_mpls.c:1624:21: error: statement will never be executed [-Werror=switch-unreachable]
      1624 |                 int err;
           |                     ^~~
    
    Signed-off-by: Victor Erminpour <victor.erminpour@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    victor-erminpour authored and davem330 committed Feb 10, 2022
  11. dpaa2-eth: unregister the netdev before disconnecting from the PHY

    The netdev should be unregistered before we are disconnecting from the
    MAC/PHY so that the dev_close callback is called and the PHY and the
    phylink workqueues are actually stopped before we are disconnecting and
    destroying the phylink instance.
    
    Fixes: 7194792 ("dpaa2-eth: add MAC/PHY support through phylink")
    Signed-off-by: Robert-Ionut Alexa <robert-ionut.alexa@nxp.com>
    Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Robert-Ionut Alexa authored and davem330 committed Feb 10, 2022
  12. skbuff: cleanup double word in comment

    Remove the second 'to'.
    
    Signed-off-by: Tom Rix <trix@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    trixirt authored and davem330 committed Feb 10, 2022
  13. net: macb: Align the dma and coherent dma masks

    Single page and coherent memory blocks can use different DMA masks
    when the macb accesses physical memory directly. The kernel is clever
    enough to allocate pages that fit into the requested address width.
    
    When using the ARM SMMU, the DMA mask must be the same for single
    pages and big coherent memory blocks. Otherwise the translation
    tables turn into one big mess.
    
      [   74.959909] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
      [   74.959989] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
      [   75.173939] macb ff0e0000.ethernet eth0: DMA bus error: HRESP not OK
      [   75.173955] arm-smmu fd800000.smmu: Unhandled context fault: fsr=0x402, iova=0x3165687460, fsynr=0x20001, cbfrsynra=0x877, cb=1
    
    Since using the same DMA mask does not hurt direct 1:1 physical
    memory mappings, this commit always aligns DMA and coherent masks.
    
    Signed-off-by: Marc St-Amand <mstamand@ciena.com>
    Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Tested-by: Conor Dooley <conor.dooley@microchip.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Marc St-Amand authored and davem330 committed Feb 10, 2022
  14. Merge tag 'mips-fixes-5.17_3' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/mips/linux
    
    Pull MIPS fix from Thomas Bogendoerfer:
     "Device tree fix for Ingenic CI20"
    
    * tag 'mips-fixes-5.17_3' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
      MIPS: DTS: CI20: fix how ddc power is enabled
    torvalds committed Feb 10, 2022
  15. Merge tag 'audit-pr-20220209' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/pcmoore/audit
    
    Pull audit fix from Paul Moore:
     "Another audit fix, this time a single rather small but important fix
      for an oops/page-fault caused by improperly accessing userspace
      memory"
    
    * tag 'audit-pr-20220209' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
      audit: don't deref the syscall args when checking the openat2 open_how::flags
    torvalds committed Feb 10, 2022
  16. tipc: improve size validations for received domain records

    The function tipc_mon_rcv() allows a node to receive and process
    domain_record structs from peer nodes to track their views of the
    network topology.
    
    This patch verifies that the number of members in a received domain
    record does not exceed the limit defined by MAX_MON_DOMAIN, something
    that may otherwise lead to a stack overflow.
    
    tipc_mon_rcv() is called from the function tipc_link_proto_rcv(), where
    we are reading a 32 bit message data length field into a uint16.  To
    avert any risk of bit overflow, we add an extra sanity check for this in
    that function.  We cannot see that happen with the current code, but
    future designers being unaware of this risk, may introduce it by
    allowing delivery of very large (> 64k) sk buffers from the bearer
    layer.  This potential problem was identified by Eric Dumazet.
    
    This fixes CVE-2022-0435
    
    Reported-by: Samuel Page <samuel.page@appgate.com>
    Reported-by: Eric Dumazet <edumazet@google.com>
    Fixes: 35c55c9 ("tipc: add neighbor monitoring framework")
    Signed-off-by: Jon Maloy <jmaloy@redhat.com>
    Reviewed-by: Xin Long <lucien.xin@gmail.com>
    Reviewed-by: Samuel Page <samuel.page@appgate.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    lmcjoma authored and torvalds committed Feb 10, 2022
  17. Merge branch 'mptcp-fixes-for-5-17'

    Mat Martineau says:
    
    ====================
    mptcp: Fixes for 5.17
    
    Patch 1 fixes a MPTCP selftest bug that combined the results of two
    separate tests in the test output.
    
    Patch 2 fixes a problem where advertised IPv6 addresses were not actually
    available for incoming MP_JOIN requests.
    ====================
    
    Link: https://lore.kernel.org/r/20220210012508.226880-1-mathew.j.martineau@linux.intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jakub Kicinski committed Feb 10, 2022
  18. mptcp: netlink: process IPv6 addrs in creating listening sockets

    This change updates mptcp_pm_nl_create_listen_socket() to create
    listening sockets bound to IPv6 addresses (where IPv6 is supported).
    
    Fixes: 1729cf1 ("mptcp: create the listening socket for new port")
    Acked-by: Geliang Tang <geliang.tang@suse.com>
    Signed-off-by: Kishen Maloor <kishen.maloor@intel.com>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    kmaloor authored and Jakub Kicinski committed Feb 10, 2022
  19. selftests: mptcp: add missing join check

    This function also writes the name of the test with its ID, making clear
    a new test has been executed.
    
    Without that, the ADD_ADDR results from this test was appended at the
    end of the previous test causing confusions. Especially when the second
    test was failing, we had:
    
      17 signal invalid addresses     syn[ ok ] - synack[ ok ] - ack[ ok ]
                                      add[ ok ] - echo  [ ok ]
                                      add[fail] got 2 ADD_ADDR[s] expected 3
    
    In fact, this 17th test was OK but not the 18th one.
    
    Now we have:
    
      17 signal invalid addresses     syn[ ok ] - synack[ ok ] - ack[ ok ]
                                      add[ ok ] - echo  [ ok ]
      18 signal addresses race test   syn[fail] got 2 JOIN[s] syn expected 3
       - synack[fail] got 2 JOIN[s] synack expected
       - ack[fail] got 2 JOIN[s] ack expected 3
                                      add[fail] got 2 ADD_ADDR[s] expected 3
    
    Fixes: 33c563a ("selftests: mptcp: add_addr and echo race test")
    Reported-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    matttbe authored and Jakub Kicinski committed Feb 10, 2022
  20. net: usb: qmi_wwan: Add support for Dell DW5829e

    Dell DW5829e same as DW5821e except the CAT level.
    DW5821e supports CAT16 but DW5829e supports CAT9.
    Also, DW5829e includes normal and eSIM type.
    Please see below test evidence:
    
    T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  5 Spd=5000 MxCh= 0
    D:  Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  1
    P:  Vendor=413c ProdID=81e6 Rev=03.18
    S:  Manufacturer=Dell Inc.
    S:  Product=DW5829e Snapdragon X20 LTE
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
    I:  If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    I:  If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
    I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    
    T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  7 Spd=5000 MxCh= 0
    D:  Ver= 3.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs=  1
    P:  Vendor=413c ProdID=81e4 Rev=03.18
    S:  Manufacturer=Dell Inc.
    S:  Product=DW5829e-eSIM Snapdragon X20 LTE
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
    I:  If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    I:  If#=0x1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
    I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    
    Signed-off-by: Slark Xiao <slark_xiao@163.com>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Link: https://lore.kernel.org/r/20220209024717.8564-1-slark_xiao@163.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    SlarkXiao authored and Jakub Kicinski committed Feb 10, 2022

Commits on Feb 9, 2022

  1. audit: don't deref the syscall args when checking the openat2 open_ho…

    …w::flags
    
    As reported by Jeff, dereferencing the openat2 syscall argument in
    audit_match_perm() to obtain the open_how::flags can result in an
    oops/page-fault.  This patch fixes this by using the open_how struct
    that we store in the audit_context with audit_openat2_how().
    
    Independent of this patch, Richard Guy Briggs posted a similar patch
    to the audit mailing list roughly 40 minutes after this patch was
    posted.
    
    Cc: stable@vger.kernel.org
    Fixes: 1c30e3a ("audit: add support for the openat2 syscall")
    Reported-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    pcmoore committed Feb 9, 2022
  2. Merge tag 'nfsd-5.17-2' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/cel/linux
    
    Pull more nfsd fixes from Chuck Lever:
     "Ensure that NFS clients cannot send file size or offset values that
      can cause the NFS server to crash or to return incorrect or surprising
      results.
    
      In particular, fix how the NFS server handles values larger than
      OFFSET_MAX"
    
    * tag 'nfsd-5.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
      NFSD: Deprecate NFS_OFFSET_MAX
      NFSD: Fix offset type in I/O trace points
      NFSD: COMMIT operations must not return NFS?ERR_INVAL
      NFSD: Clamp WRITE offsets
      NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes
      NFSD: Fix ia_size underflow
      NFSD: Fix the behavior of READ near OFFSET_MAX
    torvalds committed Feb 9, 2022
  3. Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/herbert/crypto-2.6
    
    Pull crypto fixes from Herbert Xu:
     "Fix two regressions:
    
       - Potential boot failure due to missing cryptomgr on initramfs
    
       - Stack overflow in octeontx2"
    
    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
      crypto: api - Move cryptomgr soft dependency into algapi
      crypto: octeontx2 - Avoid stack variable overflow
    torvalds committed Feb 9, 2022
  4. Fix regression due to "fs: move binfmt_misc sysctl to its own file"

    Commit 3ba442d ("fs: move binfmt_misc sysctl to its own file") did
    not go unnoticed, binfmt-support stopped to work on my Debian system
    since v5.17-rc2 (did not check with -rc1).
    
    The existance of the /proc/sys/fs/binfmt_misc is a precondition for
    attempting to mount the binfmt_misc fs, which in turn triggers the
    autoload of the binfmt_misc module.  Without it, no module is loaded and
    no binfmt is available at boot.
    
    Building as built-in or manually loading the module and mounting the fs
    works fine, it's therefore only a matter of interaction with user-space.
    I could try to improve the Debian systemd configuration but I can't say
    anything about the other distributions.
    
    This patch restores a working system right after boot.
    
    Fixes: 3ba442d ("fs: move binfmt_misc sysctl to its own file")
    Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Reviewed-by: Tong Zhang <ztong0001@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    cavokz authored and torvalds committed Feb 9, 2022
  5. Merge tag 'kvm-s390-kernel-access' from emailed bundle

    Pull s390 kvm fix from Christian Borntraeger:
     "Add missing check for the MEMOP ioctl
    
      The SIDA MEMOPs must only be used for secure guests, otherwise
      userspace can do unwanted memory accesses"
    
    * tag 'kvm-s390-kernel-access' from emailed bundle:
      KVM: s390: Return error on SIDA memop on normal guest
    torvalds committed Feb 9, 2022
  6. NFSD: Deprecate NFS_OFFSET_MAX

    NFS_OFFSET_MAX was introduced way back in Linux v2.3.y before there
    was a kernel-wide OFFSET_MAX value. As a clean up, replace the last
    few uses of it with its generic equivalent, and get rid of it.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    chucklever committed Feb 9, 2022
  7. NFSD: Fix offset type in I/O trace points

    NFSv3 and NFSv4 use u64 offset values on the wire. Record these values
    verbatim without the implicit type case to loff_t.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    chucklever committed Feb 9, 2022
  8. NFSD: COMMIT operations must not return NFS?ERR_INVAL

    Since, well, forever, the Linux NFS server's nfsd_commit() function
    has returned nfserr_inval when the passed-in byte range arguments
    were non-sensical.
    
    However, according to RFC 1813 section 3.3.21, NFSv3 COMMIT requests
    are permitted to return only the following non-zero status codes:
    
          NFS3ERR_IO
          NFS3ERR_STALE
          NFS3ERR_BADHANDLE
          NFS3ERR_SERVERFAULT
    
    NFS3ERR_INVAL is not included in that list. Likewise, NFS4ERR_INVAL
    is not listed in the COMMIT row of Table 6 in RFC 8881.
    
    RFC 7530 does permit COMMIT to return NFS4ERR_INVAL, but does not
    specify when it can or should be used.
    
    Instead of dropping or failing a COMMIT request in a byte range that
    is not supported, turn it into a valid request by treating one or
    both arguments as zero. Offset zero means start-of-file, count zero
    means until-end-of-file, so we only ever extend the commit range.
    NFS servers are always allowed to commit more and sooner than
    requested.
    
    The range check is no longer bounded by NFS_OFFSET_MAX, but rather
    by the value that is returned in the maxfilesize field of the NFSv3
    FSINFO procedure or the NFSv4 maxfilesize file attribute.
    
    Note that this change results in a new pynfs failure:
    
    CMT4     st_commit.testCommitOverflow                             : RUNNING
    CMT4     st_commit.testCommitOverflow                             : FAILURE
               COMMIT with offset + count overflow should return
               NFS4ERR_INVAL, instead got NFS4_OK
    
    IMO the test is not correct as written: RFC 8881 does not allow the
    COMMIT operation to return NFS4ERR_INVAL.
    
    Reported-by: Dan Aloni <dan.aloni@vastdata.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Reviewed-by: Bruce Fields <bfields@fieldses.org>
    chucklever committed Feb 9, 2022
  9. NFSD: Clamp WRITE offsets

    Ensure that a client cannot specify a WRITE range that falls in a
    byte range outside what the kernel's internal types (such as loff_t,
    which is signed) can represent. The kiocb iterators, invoked in
    nfsd_vfs_write(), should properly limit write operations to within
    the underlying file system's s_maxbytes.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    chucklever committed Feb 9, 2022
  10. NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes

    iattr::ia_size is a loff_t, so these NFSv3 procedures must be
    careful to deal with incoming client size values that are larger
    than s64_max without corrupting the value.
    
    Silently capping the value results in storing a different value
    than the client passed in which is unexpected behavior, so remove
    the min_t() check in decode_sattr3().
    
    Note that RFC 1813 permits only the WRITE procedure to return
    NFS3ERR_FBIG. We believe that NFSv3 reference implementations
    also return NFS3ERR_FBIG when ia_size is too large.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    chucklever committed Feb 9, 2022
  11. NFSD: Fix ia_size underflow

    iattr::ia_size is a loff_t, which is a signed 64-bit type. NFSv3 and
    NFSv4 both define file size as an unsigned 64-bit type. Thus there
    is a range of valid file size values an NFS client can send that is
    already larger than Linux can handle.
    
    Currently decode_fattr4() dumps a full u64 value into ia_size. If
    that value happens to be larger than S64_MAX, then ia_size
    underflows. I'm about to fix up the NFSv3 behavior as well, so let's
    catch the underflow in the common code path: nfsd_setattr().
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    chucklever committed Feb 9, 2022
  12. NFSD: Fix the behavior of READ near OFFSET_MAX

    Dan Aloni reports:
    > Due to commit 8cfb901 ("NFS: Always provide aligned buffers to
    > the RPC read layers") on the client, a read of 0xfff is aligned up
    > to server rsize of 0x1000.
    >
    > As a result, in a test where the server has a file of size
    > 0x7fffffffffffffff, and the client tries to read from the offset
    > 0x7ffffffffffff000, the read causes loff_t overflow in the server
    > and it returns an NFS code of EINVAL to the client. The client as
    > a result indefinitely retries the request.
    
    The Linux NFS client does not handle NFS?ERR_INVAL, even though all
    NFS specifications permit servers to return that status code for a
    READ.
    
    Instead of NFS?ERR_INVAL, have out-of-range READ requests succeed
    and return a short result. Set the EOF flag in the result to prevent
    the client from retrying the READ request. This behavior appears to
    be consistent with Solaris NFS servers.
    
    Note that NFSv3 and NFSv4 use u64 offset values on the wire. These
    must be converted to loff_t internally before use -- an implicit
    type cast is not adequate for this purpose. Otherwise VFS checks
    against sb->s_maxbytes do not work properly.
    
    Reported-by: Dan Aloni <dan.aloni@vastdata.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    chucklever committed Feb 9, 2022
Older