1. Dec 22, 2023
    • David Howells's avatar
      afs: Fix overwriting of result of DNS query · a9e01ac8
      David Howells authored
      In afs_update_cell(), ret is the result of the DNS lookup and the errors
      are to be handled by a switch - however, the value gets clobbered in
      between by setting it to -ENOMEM in case afs_alloc_vlserver_list()
      fails.
      
      Fix this by moving the setting of -ENOMEM into the error handling for
      OOM failure.  Further, only do it if we don't have an alternative error
      to return.
      
      Found by Linux Verification Center (linuxtesting.org) with SVACE.  Based
      on a patch from Anastasia Belova [1].
      
      Fixes: d5c32c89
      
       ("afs: Fix cell DNS lookup")
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Reviewed-by: default avatarJeffrey Altman <jaltman@auristor.com>
      cc: Anastasia Belova <abelova@astralinux.ru>
      cc: Marc Dionne <marc.dionne@auristor.com>
      cc: linux-afs@lists.infradead.org
      cc: lvc-project@linuxtesting.org
      Link: https://lore.kernel.org/r/20231221085849.1463-1-abelova@astralinux.ru/ [1]
      Link: https://lore.kernel.org/r/1700862.1703168632@warthog.procyon.org.uk/
      
       # v1
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a9e01ac8
    • Linus Torvalds's avatar
      Merge tag 'afs-fixes-20231221' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 937fd403
      Linus Torvalds authored
      Pull AFS fixes from David Howells:
       "Improve the interaction of arbitrary lookups in the AFS dynamic root
        that hit DNS lookup failures [1] where kafs behaves differently from
        openafs and causes some applications to fail that aren't expecting
        that. Further, negative DNS results aren't getting removed and are
        causing failures to persist.
      
         - Always delete unused (particularly negative) dentries as soon as
           possible so that they don't prevent future lookups from retrying.
      
         - Fix the handling of new-style negative DNS lookups in ->lookup() to
           make them return ENOENT so that userspace doesn't get confused when
           stat succeeds but the following open on the looked up file then
           fails.
      
         - Fix key handling so that DNS lookup results are reclaimed almost as
           soon as they expire rather than sitting round either forever or for
           an additional 5 mins beyond a set expiry time returning
           EKEYEXPIRED. They persist for 1s as /bin/ls will do a second stat
           call if the first fails"
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216637
      
       [1]
      Reviewed-by: default avatarJeffrey Altman <jaltman@auristor.com>
      
      * tag 'afs-fixes-20231221' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry
        afs: Fix dynamic root lookup DNS check
        afs: Fix the dynamic root's d_delete to always delete unused dentries
      937fd403
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.7-rc6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 13b73446
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
      
       - Fix another kerneldoc warning
      
       - Fix eventfs files to inherit the ownership of its parent directory.
      
         The dynamic creation of dentries in eventfs did not take into account
         if the tracefs file system was mounted with a gid/uid, and would
         still default to the gid/uid of root. This is a regression.
      
       - Fix warning when synthetic event testing is enabled along with
         startup event tracing testing is enabled
      
      * tag 'trace-v6.7-rc6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing / synthetic: Disable events after testing in synth_event_gen_test_init()
        eventfs: Have event files and directories default to parent uid and gid
        tracing/synthetic: fix kernel-doc warnings
      13b73446
    • Linus Torvalds's avatar
      Merge tag 'net-6.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 7c5e046b
      Linus Torvalds authored
      Pull networking fixes from Paolo Abeni:
       "Including fixes from WiFi and bpf.
      
        Current release - regressions:
      
         - bpf: syzkaller found null ptr deref in unix_bpf proto add
      
         - eth: i40e: fix ST code value for clause 45
      
        Previous releases - regressions:
      
         - core: return error from sk_stream_wait_connect() if sk_wait_event()
           fails
      
         - ipv6: revert remove expired routes with a separated list of routes
      
         - wifi rfkill:
             - set GPIO direction
             - fix crash with WED rx support enabled
      
         - bluetooth:
             - fix deadlock in vhci_send_frame
             - fix use-after-free in bt_sock_recvmsg
      
         - eth: mlx5e: fix a race in command alloc flow
      
         - eth: ice: fix PF with enabled XDP going no-carrier after reset
      
         - eth: bnxt_en: do not map packet buffers twice
      
        Previous releases - always broken:
      
         - core:
             - check vlan filter feature in vlan_vids_add_by_dev() and
               vlan_vids_del_by_dev()
             - check dev->gso_max_size in gso_features_check()
      
         - mptcp: fix inconsistent state on fastopen race
      
         - phy: skip LED triggers on PHYs on SFP modules
      
         - eth: mlx5e:
             - fix double free of encap_header
             - fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()"
      
      * tag 'net-6.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (69 commits)
        net: check dev->gso_max_size in gso_features_check()
        kselftest: rtnetlink.sh: use grep_fail when expecting the cmd fail
        net/ipv6: Revert remove expired routes with a separated list of routes
        net: avoid build bug in skb extension length calculation
        net: ethernet: mtk_wed: fix possible NULL pointer dereference in mtk_wed_wo_queue_tx_clean()
        net: stmmac: fix incorrect flag check in timestamp interrupt
        selftests: add vlan hw filter tests
        net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
        net: hns3: add new maintainer for the HNS3 ethernet driver
        net: mana: select PAGE_POOL
        net: ks8851: Fix TX stall caused by TX buffer overrun
        ice: Fix PF with enabled XDP going no-carrier after reset
        ice: alter feature support check for SRIOV and LAG
        ice: stop trashing VF VSI aggregator node ID information
        mailmap: add entries for Geliang Tang
        mptcp: fill in missing MODULE_DESCRIPTION()
        mptcp: fix inconsistent state on fastopen race
        selftests: mptcp: join: fix subflow_send_ack lookup
        net: phy: skip LED triggers on PHYs on SFP modules
        bpf: Add missing BPF_LINK_TYPE invocations
        ...
      7c5e046b
  2. Dec 21, 2023
  3. Dec 20, 2023
    • Macpaul Lin's avatar
      arm64: dts: mediatek: mt8395-genio-1200-evk: add interrupt-parent for mt6360 · fa3d6c71
      Macpaul Lin authored
      This patch fix the warning introduced by mt6360 node in
      mt8395-genio-1200-evk.dts.
      
      arch/arm64/boot/dts/mediatek/mt8195.dtsi:464.4-27: Warning (interrupts_property): /soc/i2c@11d01000/pmic@34:#interrupt-cells: size is (8), expected multiple of 16
      
      Add a missing 'interrupt-parent' to fix this warning.
      
      Fixes: f2b543a1
      
       ("arm64: dts: mediatek: add device-tree for Genio 1200 EVK board")
      Reported-by: default avatarArnd Bergmann <arnd@arndb.de>
      Link: https://lore.kernel.org/linux-devicetree/20231212214737.230115-1-arnd@kernel.org/
      
      
      Signed-off-by: default avatarMacpaul Lin <macpaul.lin@mediatek.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      fa3d6c71
    • Arnd Bergmann's avatar
      Merge tag 'am3-usb-hang-fix-signed' of... · 02350805
      Arnd Bergmann authored
      Merge tag 'am3-usb-hang-fix-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes
      
      Fix for occasional boot hang for am335x USB
      
      A fix for occasional boot hang for am335x USB that I've only recently
      started noticing.
      
      This can be merged naturally whenever suitable. This issue has been seen
      with other similar SoCs earlier and has clearly existed for a long time.
      
      * tag 'am3-usb-hang-fix-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: dts: Fix occasional boot hang for am3 usb
      
      Link: https://lore.kernel.org/r/pull-1703071616-395333@atomide.com
      
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      02350805
    • Arnd Bergmann's avatar
      Merge tag 'omap-for-v6.7/fixes-signed' of... · 2096d3ec
      Arnd Bergmann authored
      Merge tag 'omap-for-v6.7/fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes
      
      Fixes for omaps
      
      A few fixes for omaps:
      
      - A regression fix for ti-sysc interconnect target module driver to not access
        registers after reset if srst_udelay quirk is needed
      
      - DRA7 L3 NoC node register size fix
      
      * tag 'omap-for-v6.7/fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init
        ARM: dts: dra7: Fix DRA7 L3 NoC node register size
        bus: ti-sysc: Flush posted write only after srst_udelay
      
      Link: https://lore.kernel.org/r/pull-1702037799-781982@atomide.com
      
      
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      2096d3ec
    • David Howells's avatar
      afs: Fix dynamic root lookup DNS check · 74cef687
      David Howells authored
      In the afs dynamic root directory, the ->lookup() function does a DNS check
      on the cell being asked for and if the DNS upcall reports an error it will
      report an error back to userspace (typically ENOENT).
      
      However, if a failed DNS upcall returns a new-style result, it will return
      a valid result, with the status field set appropriately to indicate the
      type of failure - and in that case, dns_query() doesn't return an error and
      we let stat() complete with no error - which can cause confusion in
      userspace as subsequent calls that trigger d_automount then fail with
      ENOENT.
      
      Fix this by checking the status result from a valid dns_query() and
      returning an error if it indicates a failure.
      
      Fixes: bbb4c432
      
       ("dns: Allow the dns resolver to retrieve a server set")
      Reported-by: default avatarMarkus Suvanto <markus.suvanto@gmail.com>
      Closes: https://bugzilla.kernel.org/show_bug.cgi?id=216637
      
      
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarMarkus Suvanto <markus.suvanto@gmail.com>
      cc: Marc Dionne <marc.dionne@auristor.com>
      cc: linux-afs@lists.infradead.org
      74cef687
    • David Howells's avatar
      afs: Fix the dynamic root's d_delete to always delete unused dentries · 71f8b55b
      David Howells authored
      Fix the afs dynamic root's d_delete function to always delete unused
      dentries rather than only deleting them if they're positive.  With things
      as they stand upstream, negative dentries stemming from failed DNS lookups
      stick around preventing retries.
      
      Fixes: 66c7e1d3
      
       ("afs: Split the dynroot stuff out and give it its own ops tables")
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarMarkus Suvanto <markus.suvanto@gmail.com>
      cc: Marc Dionne <marc.dionne@auristor.com>
      cc: linux-afs@lists.infradead.org
      71f8b55b
    • Lai Peter Jun Ann's avatar
      net: stmmac: fix incorrect flag check in timestamp interrupt · bd7f77da
      Lai Peter Jun Ann authored
      The driver should continue get the timestamp if STMMAC_FLAG_EXT_SNAPSHOT_EN
      flag is set.
      
      Fixes: aa5513f5
      
       ("net: stmmac: replace the ext_snapshot_en field with a flag")
      Cc: <stable@vger.kernel.org> # 6.6
      Signed-off-by: default avatarSong Yoong Siang <yoong.siang.song@intel.com>
      Signed-off-by: default avatarLai Peter Jun Ann <jun.ann.lai@intel.com>
      Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Reviewed-by: default avatarSerge Semin <fancer.lancer@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bd7f77da
    • David S. Miller's avatar
      Merge tag 'for-net-2023-12-15' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth · 498444e3
      David S. Miller authored
      
      
      Luiz Augusto von Dentz says:
      
      ====================
      bluetooth pull request for net:
      
       - Add encryption key size check when acting as peripheral
       - Shut up false-positive build warning
       - Send reject if L2CAP command request is corrupted
       - Fix Use-After-Free in bt_sock_recvmsg
       - Fix not notifying when connection encryption changes
       - Fix not checking if HCI_OP_INQUIRY has been sent
       - Fix address type send over to the MGMT interface
       - Fix deadlock in vhci_send_frame
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      498444e3
    • Kent Overstreet's avatar
      bcachefs: Fix bch2_alloc_sectors_start_trans() error handling · 247ce5f1
      Kent Overstreet authored
      
      
      When we fail to allocate because of insufficient open buckets, we don't
      want to retry from the full set of devices - we just want to retry in
      blocking mode.
      
      But if the retry in blocking mode fails with a different error code, we
      end up squashing the -BCH_ERR_open_buckets_empty error with an error
      that makes us thing we won't be able to allocate (insufficient_devices)
      - which is incorrect when we didn't try to allocate from the full set of
      devices, and causes the write to fail.
      
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      247ce5f1
    • Kent Overstreet's avatar
    • Kent Overstreet's avatar
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.7-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 55cb5f43
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "While working on the ring buffer, I found one more bug with the
        timestamp code, and the fix for this removed the need for the final
        64-bit cmpxchg!
      
        The ring buffer events hold a "delta" from the previous event. If it
        is determined that the delta can not be calculated, it falls back to
        adding an absolute timestamp value. The way to know if the delta can
        be used is via two stored timestamps in the per-cpu buffer meta data:
      
         before_stamp and write_stamp
      
        The before_stamp is written by every event before it tries to allocate
        its space on the ring buffer. The write_stamp is written after it
        allocates its space and knows that nothing came in after it read the
        previous before_stamp and write_stamp and the two matched.
      
        A previous fix dd939425 ("ring-buffer: Do not try to put back
        write_stamp") removed putting back the write_stamp to match the
        before_stamp so that the next event could use the delta, but races
        were found where the two would match, but not be for of the previous
        event.
      
        It was determined to allow the event reservation to not have a valid
        write_stamp when it is finished, and this fixed a lot of races.
      
        The last use of the 64-bit timestamp cmpxchg depended on the
        write_stamp being valid after an interruption. But this is no longer
        the case, as if an event is interrupted by a softirq that writes an
        event, and that event gets interrupted by a hardirq or NMI and that
        writes an event, then the softirq could finish its reservation without
        a valid write_stamp.
      
        In the slow path of the event reservation, a delta can still be used
        if the write_stamp is valid. Instead of using a cmpxchg against the
        write stamp, the before_stamp needs to be read again to validate the
        write_stamp. The cmpxchg is not needed.
      
        This updates the slowpath to validate the write_stamp by comparing it
        to the before_stamp and removes all rb_time_cmpxchg() as there are no
        more users of that function.
      
        The removal of the 32-bit updates of rb_time_t will be done in the
        next merge window"
      
      * tag 'trace-v6.7-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        ring-buffer: Fix slowpath of interrupted event
      55cb5f43
    • Linus Torvalds's avatar
      Merge tag 'arc-6.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 9c749e61
      Linus Torvalds authored
      Pull ARC fixes from Vineet Gupta:
      
       - build error for hugetlb, sparse and smatch fixes
      
       - removal of VIPT aliasing cache code
      
      * tag 'arc-6.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: add hugetlb definitions
        ARC: fix smatch warning
        ARC: fix spare error
        ARC: mm: retire support for aliasing VIPT D$
        ARC: entry: move ARCompact specific bits out of entry.h
        ARC: entry: SAVE_ABI_CALLEE_REG: ISA/ABI specific helper
      9c749e61
    • Shyam Prasad N's avatar
      cifs: do not let cifs_chan_update_iface deallocate channels · 12d1e301
      Shyam Prasad N authored
      
      
      cifs_chan_update_iface is meant to check and update the server
      interface used for a channel when the existing server interface
      is no longer available.
      
      So far, this handler had the code to remove an interface entry
      even if a new candidate interface is not available. Allowing
      this leads to several corner cases to handle.
      
      This change makes the logic much simpler by not deallocating
      the current channel interface entry if a new interface is not
      found to replace it with.
      
      Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      12d1e301
    • Shyam Prasad N's avatar
      cifs: fix a pending undercount of srv_count · f30bbc38
      Shyam Prasad N authored
      The following commit reverted the changes to ref count
      the server struct while scheduling a reconnect work:
      82334252
      
       Revert "cifs: reconnect work should have reference on server struct"
      
      However, a following change also introduced scheduling
      of reconnect work, and assumed ref counting. This change
      fixes that as well.
      
      Fixes umount problems like:
      
      [73496.157838] CPU: 5 PID: 1321389 Comm: umount Tainted: G        W  OE      6.7.0-060700rc6-generic #202312172332
      [73496.157841] Hardware name: LENOVO 20MAS08500/20MAS08500, BIOS N2CET67W (1.50 ) 12/15/2022
      [73496.157843] RIP: 0010:cifs_put_tcp_session+0x17d/0x190 [cifs]
      [73496.157906] Code: 5d 31 c0 31 d2 31 f6 31 ff c3 cc cc cc cc e8 4a 6e 14 e6 e9 f6 fe ff ff be 03 00 00 00 48 89 d7 e8 78 26 b3 e5 e9 e4 fe ff ff <0f> 0b e9 b1 fe ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90
      [73496.157908] RSP: 0018:ffffc90003bcbcb8 EFLAGS: 00010286
      [73496.157911] RAX: 00000000ffffffff RBX: ffff8885830fa800 RCX: 0000000000000000
      [73496.157913] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
      [73496.157915] RBP: ffffc90003bcbcc8 R08: 0000000000000000 R09: 0000000000000000
      [73496.157917] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
      [73496.157918] R13: ffff8887d56ba800 R14: 00000000ffffffff R15: ffff8885830fa800
      [73496.157920] FS:  00007f1ff0e33800(0000) GS:ffff88887ba80000(0000) knlGS:0000000000000000
      [73496.157922] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [73496.157924] CR2: 0000115f002e2010 CR3: 00000003d1e24005 CR4: 00000000003706f0
      [73496.157926] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [73496.157928] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [73496.157929] Call Trace:
      [73496.157931]  <TASK>
      [73496.157933]  ? show_regs+0x6d/0x80
      [73496.157936]  ? __warn+0x89/0x160
      [73496.157939]  ? cifs_put_tcp_session+0x17d/0x190 [cifs]
      [73496.157976]  ? report_bug+0x17e/0x1b0
      [73496.157980]  ? handle_bug+0x51/0xa0
      [73496.157983]  ? exc_invalid_op+0x18/0x80
      [73496.157985]  ? asm_exc_invalid_op+0x1b/0x20
      [73496.157989]  ? cifs_put_tcp_session+0x17d/0x190 [cifs]
      [73496.158023]  ? cifs_put_tcp_session+0x1e/0x190 [cifs]
      [73496.158057]  __cifs_put_smb_ses+0x2b5/0x540 [cifs]
      [73496.158090]  ? tconInfoFree+0xc2/0x120 [cifs]
      [73496.158130]  cifs_put_tcon.part.0+0x108/0x2b0 [cifs]
      [73496.158173]  cifs_put_tlink+0x49/0x90 [cifs]
      [73496.158220]  cifs_umount+0x56/0xb0 [cifs]
      [73496.158258]  cifs_kill_sb+0x52/0x60 [cifs]
      [73496.158306]  deactivate_locked_super+0x32/0xc0
      [73496.158309]  deactivate_super+0x46/0x60
      [73496.158311]  cleanup_mnt+0xc3/0x170
      [73496.158314]  __cleanup_mnt+0x12/0x20
      [73496.158330]  task_work_run+0x5e/0xa0
      [73496.158333]  exit_to_user_mode_loop+0x105/0x130
      [73496.158336]  exit_to_user_mode_prepare+0xa5/0xb0
      [73496.158338]  syscall_exit_to_user_mode+0x29/0x60
      [73496.158341]  do_syscall_64+0x6c/0xf0
      [73496.158344]  ? syscall_exit_to_user_mode+0x37/0x60
      [73496.158346]  ? do_syscall_64+0x6c/0xf0
      [73496.158349]  ? exit_to_user_mode_prepare+0x30/0xb0
      [73496.158353]  ? syscall_exit_to_user_mode+0x37/0x60
      [73496.158355]  ? do_syscall_64+0x6c/0xf0
      
      Reported-by: default avatarRobert Morris <rtm@csail.mit.edu>
      Fixes: 705fc522
      
       ("cifs: handle when server starts supporting multichannel")
      Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      f30bbc38
    • Heiko Carstens's avatar
      s390: update defconfigs · 3d940bb1
      Heiko Carstens authored
      
      
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
      3d940bb1
    • Zizhi Wo's avatar
      fs: cifs: Fix atime update check · 01fe654f
      Zizhi Wo authored
      Commit 9b9c5bea ("cifs: do not return atime less than mtime") indicates
      that in cifs, if atime is less than mtime, some apps will break.
      Therefore, it introduce a function to compare this two variables in two
      places where atime is updated. If atime is less than mtime, update it to
      mtime.
      
      However, the patch was handled incorrectly, resulting in atime and mtime
      being exactly equal. A previous commit 69738cfd ("fs: cifs: Fix atime
      update check vs mtime") fixed one place and forgot to fix another. Fix it.
      
      Fixes: 9b9c5bea
      
       ("cifs: do not return atime less than mtime")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarZizhi Wo <wozizhi@huawei.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      01fe654f