1. 08 Sep, 2022 2 commits
    • Linus Torvalds's avatar
      fs: only do a memory barrier for the first set_buffer_uptodate() · 2f79cdfe
      Linus Torvalds authored
      Commit d4252071 ("add barriers to buffer_uptodate and
      set_buffer_uptodate") added proper memory barriers to the buffer head
      BH_Uptodate bit, so that anybody who tests a buffer for being up-to-date
      will be guaranteed to actually see initialized state.
      
      However, that commit didn't _just_ add the memory barrier, it also ended
      up dropping the "was it already set" logic that the BUFFER_FNS() macro
      had.
      
      That's conceptually the right thing for a generic "this is a memory
      barrier" operation, but in the case of the buffer contents, we really
      only care about the memory barrier for the _first_ time we set the bit,
      in that the only memory ordering protection we need is to avoid anybody
      seeing uninitialized memory contents.
      
      Any other access ordering wouldn't be about the BH_Uptodate bit anyway,
      and would require some other proper lock (typically BH_Lock or the folio
      lock).  A reader that races with somebody invalidating the buffer head
      isn't an issue wrt the memory ordering, it's a serialization issue.
      
      Now, you'd think that the buffer head operations don't matter in this
      day and age (and I certainly thought so), but apparently some loads
      still end up being heavy users of buffer heads.  In particular, the
      kernel test robot reported that not having this bit access optimization
      in place caused a noticeable direct IO performance regression on ext4:
      
        fxmark.ssd_ext4_no_jnl_DWTL_54_directio.works/sec -26.5% regression
      
      although you presumably need a fast disk and a lot of cores to actually
      notice.
      
      Link: https://lore.kernel.org/all/Yw8L7HTZ%2FdE2%2Fo9C@xsang-OptiPlex-9020/Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Tested-by: default avatarFengwei Yin <fengwei.yin@intel.com>
      Cc: Mikulas Patocka <mpatocka@redhat.com>
      Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2f79cdfe
    • Linus Torvalds's avatar
      Merge tag 'efi-urgent-for-v6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · f280b987
      Linus Torvalds authored
      Pull EFI fixes from Ard Biesheuvel:
       "A couple of low-priority EFI fixes:
      
         - prevent the randstruct plugin from re-ordering EFI protocol
           definitions
      
         - fix a use-after-free in the capsule loader
      
         - drop unused variable"
      
      * tag 'efi-urgent-for-v6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efi: capsule-loader: Fix use-after-free in efi_capsule_write
        efi/x86: libstub: remove unused variable
        efi: libstub: Disable struct randomization
      f280b987
  2. 07 Sep, 2022 4 commits
  3. 06 Sep, 2022 1 commit
  4. 05 Sep, 2022 4 commits
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-6.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 53e99dcf
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "These are the expected fixes for the SoC tree. I have let the patches
        pile up a little too long, so this is bigger than I would have liked.
      
         - Minor build fixes for Broadcom STB and NXP i.MX8M SoCs as well\ as
           TEE firmware
      
         - Updates to the MAINTAINERS file for the PolarFire SoC
      
         - Minor DT fixes for Renesas White Hawk and Arm Versatile and Juno
           platforms
      
         - A fix for a missing dependnecy in the NXP DPIO driver
      
         - Broadcom BCA fixes to the newly added devicetree files
      
         - Multiple fixes for Microchip AT91 based SoCs, dealing with
           self-refresh timings and regulator settings in DT
      
         - Several DT fixes for NXP i.MX platforms, dealing with incorrect
           GPIO settings, extraneous nodes, and a wrong clock setting"
      
      * tag 'soc-fixes-6.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (45 commits)
        soc: fsl: select FSL_GUTS driver for DPIO
        ARM: dts: at91: sama5d2_icp: don't keep vdd_other enabled all the time
        ARM: dts: at91: sama5d27_wlsom1: don't keep ldo2 enabled all the time
        ARM: dts: at91: sama7g5ek: specify proper regulator output ranges
        ARM: dts: at91: sama5d2_icp: specify proper regulator output ranges
        ARM: dts: at91: sama5d27_wlsom1: specify proper regulator output ranges
        ARM: at91: pm: fix DDR recalibration when resuming from backup and self-refresh
        ARM: at91: pm: fix self-refresh for sama7g5
        soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs
        ARM: configs: at91: remove CONFIG_MICROCHIP_PIT64B
        ARM: ixp4xx: fix typos in comments
        arm64: dts: renesas: r8a779g0: Fix HSCIF0 interrupt number
        tee: fix compiler warning in tee_shm_register()
        arm64: dts: freescale: verdin-imx8mp: fix atmel_mxt_ts reset polarity
        arm64: dts: freescale: verdin-imx8mm: fix atmel_mxt_ts reset polarity
        arm64: dts: imx8mp: Fix I2C5 GPIO assignment on i.MX8M Plus DHCOM
        arm64: dts: imx8mm-venice-gw7901: fix port/phy validation
        arm64: dts: verdin-imx8mm: add otg2 pd to usbphy
        soc: imx: gpcv2: Assert reset before ungating clock
        arm64: dts: ls1028a-qds-65bb: don't use in-band autoneg for 2500base-x
        ...
      53e99dcf
    • Gao Xiang's avatar
      erofs: fix pcluster use-after-free on UP platforms · 2f44013e
      Gao Xiang authored
      During stress testing with CONFIG_SMP disabled, KASAN reports as below:
      
      ==================================================================
      BUG: KASAN: use-after-free in __mutex_lock+0xe5/0xc30
      Read of size 8 at addr ffff8881094223f8 by task stress/7789
      
      CPU: 0 PID: 7789 Comm: stress Not tainted 6.0.0-rc1-00002-g0d53d2e882f9 #3
      Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
      Call Trace:
       <TASK>
      ..
       __mutex_lock+0xe5/0xc30
      ..
       z_erofs_do_read_page+0x8ce/0x1560
      ..
       z_erofs_readahead+0x31c/0x580
      ..
      Freed by task 7787
       kasan_save_stack+0x1e/0x40
       kasan_set_track+0x20/0x30
       kasan_set_free_info+0x20/0x40
       __kasan_slab_free+0x10c/0x190
       kmem_cache_free+0xed/0x380
       rcu_core+0x3d5/0xc90
       __do_softirq+0x12d/0x389
      
      Last potentially related work creation:
       kasan_save_stack+0x1e/0x40
       __kasan_record_aux_stack+0x97/0xb0
       call_rcu+0x3d/0x3f0
       erofs_shrink_workstation+0x11f/0x210
       erofs_shrink_scan+0xdc/0x170
       shrink_slab.constprop.0+0x296/0x530
       drop_slab+0x1c/0x70
       drop_caches_sysctl_handler+0x70/0x80
       proc_sys_call_handler+0x20a/0x2f0
       vfs_write+0x555/0x6c0
       ksys_write+0xbe/0x160
       do_syscall_64+0x3b/0x90
      
      The root cause is that erofs_workgroup_unfreeze() doesn't reset to
      orig_val thus it causes a race that the pcluster reuses unexpectedly
      before freeing.
      
      Since UP platforms are quite rare now, such path becomes unnecessary.
      Let's drop such specific-designed path directly instead.
      
      Fixes: 73f5c66d ("staging: erofs: fix `erofs_workgroup_{try_to_freeze, unfreeze}'")
      Reviewed-by: default avatarYue Hu <huyue2@coolpad.com>
      Reviewed-by: default avatarChao Yu <chao@kernel.org>
      Link: https://lore.kernel.org/r/20220902045710.109530-1-hsiangkao@linux.alibaba.comSigned-off-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
      2f44013e
    • Yue Hu's avatar
      erofs: avoid the potentially wrong m_plen for big pcluster · ea0b7b0d
      Yue Hu authored
      Actually, 'compressedlcs' stores compressed block count rather than
      lcluster count. Therefore, the number of bits for shifting the count
      should be 'LOG_BLOCK_SIZE' rather than 'lclusterbits' although current
      lcluster size is 4K.
      
      The value of 'm_plen' will be wrong once we enable the non 4K-sized
      lcluster.
      Signed-off-by: default avatarYue Hu <huyue2@coolpad.com>
      Reviewed-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
      Reviewed-by: default avatarChao Yu <chao@kernel.org>
      Link: https://lore.kernel.org/r/20220812060150.8510-1-huyue2@coolpad.comSigned-off-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
      ea0b7b0d
    • Sun Ke's avatar
      erofs: fix error return code in erofs_fscache_{meta_,}read_folio · 5bd9628b
      Sun Ke authored
      If erofs_fscache_alloc_request fail and then goto out, it will return 0.
      it should return a negative error code instead of 0.
      
      Fixes: d435d532 ("erofs: change to use asynchronous io for fscache readpage/readahead")
      Signed-off-by: default avatarSun Ke <sunke32@huawei.com>
      Reviewed-by: default avatarJingbo Xu <jefflexu@linux.alibaba.com>
      Reviewed-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
      Reviewed-by: default avatarChao Yu <chao@kernel.org>
      Link: https://lore.kernel.org/r/20220815034829.3940803-1-sunke32@huawei.comSigned-off-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
      5bd9628b
  5. 04 Sep, 2022 5 commits
    • Linus Torvalds's avatar
      Linux 6.0-rc4 · 7e18e42e
      Linus Torvalds authored
      7e18e42e
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.0-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 59954972
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix handling of PCI domains in /proc on 32-bit systems using the
         recently added support for numbering buses from zero for each domain.
      
       - A fix and a revert for some changes to use READ/WRITE_ONCE() which
         caused problems with KASAN enabled due to sanitisation calls being
         introduced in low-level paths that can't cope with it.
      
       - Fix build errors on 32-bit caused by the syscall table being
         misaligned sometimes.
      
       - Two fixes to get IBM Cell native machines booting again, which had
         bit-rotted while my QS22 was temporarily out of action.
      
       - Fix the papr_scm driver to not assume the order of events returned by
         the hypervisor is stable, and a related compile fix.
      
      Thanks to Aneesh Kumar K.V, Christophe Leroy, Jordan Niethe, Kajol Jain,
      Masahiro Yamada, Nathan Chancellor, Pali Rohár, Vaibhav Jain, and Zhouyi
      Zhou.
      
      * tag 'powerpc-6.0-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/papr_scm: Ensure rc is always initialized in papr_scm_pmu_register()
        Revert "powerpc/irq: Don't open code irq_soft_mask helpers"
        powerpc: Fix hard_irq_disable() with sanitizer
        powerpc/rtas: Fix RTAS MSR[HV] handling for Cell
        Revert "powerpc: Remove unused FW_FEATURE_NATIVE references"
        powerpc: align syscall table for ppc32
        powerpc/pci: Enable PCI domains in /proc when PCI bus numbers are not unique
        powerpc/papr_scm: Fix nvdimm event mappings
      59954972
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 685ed983
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "s390:
      
         - PCI interpretation compile fixes
      
        RISC-V:
      
         - fix unused variable warnings in vcpu_timer.c
      
         - move extern sbi_ext declarations to a header
      
        x86:
      
         - check validity of argument to KVM_SET_MP_STATE
      
         - use guest's global_ctrl to completely disable guest PEBS
      
         - fix a memory leak on memory allocation failure
      
         - mask off unsupported and unknown bits of IA32_ARCH_CAPABILITIES
      
         - fix build failure with Clang integrated assembler
      
         - fix MSR interception
      
         - always flush TLBs when enabling dirty logging"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86: check validity of argument to KVM_SET_MP_STATE
        perf/x86/core: Completely disable guest PEBS via guest's global_ctrl
        KVM: x86: fix memoryleak in kvm_arch_vcpu_create()
        KVM: x86: Mask off unsupported and unknown bits of IA32_ARCH_CAPABILITIES
        KVM: s390: pci: Hook to access KVM lowlevel from VFIO
        riscv: kvm: move extern sbi_ext declarations to a header
        riscv: kvm: vcpu_timer: fix unused variable warnings
        KVM: selftests: Fix ambiguous mov in KVM_ASM_SAFE()
        KVM: selftests: Fix KVM_EXCEPTION_MAGIC build with Clang
        KVM: VMX: Heed the 'msr' argument in msr_write_intercepted()
        kvm: x86: mmu: Always flush TLBs when enabling dirty logging
        kvm: x86: mmu: Drop the need_remote_flush() function
      685ed983
    • Nick Desaulniers's avatar
      Makefile.extrawarn: re-enable -Wformat for clang; take 2 · b0839b28
      Nick Desaulniers authored
      -Wformat was recently re-enabled for builds with clang, then quickly
      re-disabled, due to concerns stemming from the frequency of default
      argument promotion related warning instances.
      
      commit 258fafcd ("Makefile.extrawarn: re-enable -Wformat for clang")
      commit 21f9c8a1 ("Revert "Makefile.extrawarn: re-enable -Wformat for clang"")
      
      ISO WG14 has ratified N2562 to address default argument promotion
      explicitly for printf, as part of the upcoming ISO C2X standard.
      
      The behavior of clang was changed in clang-16 to not warn for the cited
      cases in all language modes.
      
      Add a version check, so that users of clang-16 now get the full effect
      of -Wformat. For older clang versions, re-enable flags under the
      -Wformat group that way users still get some useful checks related to
      format strings, without noisy default argument promotion warnings. I
      intentionally omitted -Wformat-y2k and -Wformat-security from being
      re-enabled, which are also part of -Wformat in clang-16.
      
      Link: https://github.com/ClangBuiltLinux/linux/issues/378
      Link: https://github.com/llvm/llvm-project/issues/57102
      Link: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2562.pdfSuggested-by: default avatarJustin Stitt <jstitt007@gmail.com>
      Suggested-by: default avatarNathan Chancellor <nathan@kernel.org>
      Suggested-by: default avatarYoungmin Nam <youngmin.nam@samsung.com>
      Signed-off-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Reviewed-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b0839b28
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 7726d4c3
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
       "A a set of fixes from the GPIO subsystem.
      
        Most are small driver fixes except the realtek-otto driver patch which
        is pretty big but addresses a significant flaw that can cause the CPU
        to stay infinitely busy on uncleared ISR on some platforms.
      
        Summary:
         - MAINTAINERS update
         - fix resource leaks in gpio-mockup and gpio-pxa
         - add missing locking in gpio-pca953x
         - use 32-bit I/O in gpio-realtek-otto
         - make irq_chip structures immutable in four more drivers"
      
      * tag 'gpio-fixes-for-v6.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: ws16c48: Make irq_chip immutable
        gpio: 104-idio-16: Make irq_chip immutable
        gpio: 104-idi-48: Make irq_chip immutable
        gpio: 104-dio-48e: Make irq_chip immutable
        gpio: realtek-otto: switch to 32-bit I/O
        gpio: pca953x: Add mutex_lock for regcache sync in PM
        gpio: mockup: remove gpio debugfs when remove device
        gpio: pxa: use devres for the clock struct
        MAINTAINERS: rectify entry for XILINX GPIO DRIVER
      7726d4c3
  6. 03 Sep, 2022 19 commits
  7. 02 Sep, 2022 5 commits
    • Linus Torvalds's avatar
      Merge tag 'block-6.0-2022-09-02' of git://git.kernel.dk/linux-block · d895ec79
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request via Christoph:
           - error handling fix for the new auth code (Hannes Reinecke)
           - fix unhandled tcp states in nvmet_tcp_state_change (Maurizio
             Lombardi)
           - add NVME_QUIRK_BOGUS_NID for Lexar NM610 (Shyamin Ayesh)
      
       - Add documentation for the ublk driver merged in this merge window
         (Ming)
      
      * tag 'block-6.0-2022-09-02' of git://git.kernel.dk/linux-block:
        Documentation: document ublk
        nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
        nvmet-auth: add missing goto in nvmet_setup_auth()
        nvme-pci: add NVME_QUIRK_BOGUS_NID for Lexar NM610
      d895ec79
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.0-2022-09-02' of git://git.kernel.dk/linux-block · cec53f4c
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - A single fix for over-eager retries for networking (Pavel)
      
       - Revert the notification slot support for zerocopy sends.
      
         It turns out that even after more than a year or development and
         testing, there's not full agreement on whether just using plain
         ordered notifications is Good Enough to avoid the complexity of using
         the notifications slots. Because of that, we decided that it's best
         left to a future final decision.
      
         We can always bring back this feature, but we can't really change it
         or remove it once we've released 6.0 with it enabled. The reverts
         leave the usual CQE notifications as the primary interface for
         knowing when data was sent, and when it was acked. (Pavel)
      
      * tag 'io_uring-6.0-2022-09-02' of git://git.kernel.dk/linux-block:
        selftests/net: return back io_uring zc send tests
        io_uring/net: simplify zerocopy send user API
        io_uring/notif: remove notif registration
        Revert "io_uring: rename IORING_OP_FILES_UPDATE"
        Revert "io_uring: add zc notification flush requests"
        selftests/net: temporarily disable io_uring zc test
        io_uring/net: fix overexcessive retries
      cec53f4c
    • Linus Torvalds's avatar
      Merge tag '6.0-rc3-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 1551f8f2
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Five fixes, all also marked for stable:
      
         - fixes for collapse range and insert range (also fixes xfstest
           generic/031)
      
         - memory leak fix"
      
      * tag '6.0-rc3-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix small mempool leak in SMB2_negotiate()
        smb3: use filemap_write_and_wait_range instead of filemap_write_and_wait
        smb3: fix temporary data corruption in insert range
        smb3: fix temporary data corruption in collapse range
        smb3: Move the flush out of smb2_copychunk_range() into its callers
      1551f8f2
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 0c95f022
      Linus Torvalds authored
      Pull landlock fix from Mickaël Salaün:
       "This fixes a mis-handling of the LANDLOCK_ACCESS_FS_REFER right when
        multiple rulesets/domains are stacked.
      
        The expected behaviour was that an additional ruleset can only
        restrict the set of permitted operations, but in this particular case,
        it was potentially possible to re-gain the LANDLOCK_ACCESS_FS_REFER
        right"
      
      * tag 'landlock-6.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        landlock: Fix file reparenting without explicit LANDLOCK_ACCESS_FS_REFER
      0c95f022
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · b307e704
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
      
       - Fix workaround for SD UHS-I voltage switch
      
      * tag 'mmc-v6.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: core: Fix inconsistent sd3_bus_mode at UHS-I SD voltage switch failure
        mmc: core: Fix UHS-I SD 1.8V workaround branch
      b307e704