Skip to content
Snippets Groups Projects
  1. Nov 08, 2022
    • Luis Chamberlain's avatar
      LICENSES: Add the copyleft-next-0.3.1 license · ad9f64cd
      Luis Chamberlain authored
      Add the full text of the copyleft-next-0.3.1 license to the kernel
      tree as well as the required tags for reference and tooling.
      The license text was copied directly from the copyleft-next project's
      git tree [0].
      
      Discussion of using copyleft-next-0.3.1 on Linux started since June,
      2016 [1]. In the end Linus' preference was to have drivers use
      MODULE_LICENSE("GPL") to make it clear that the GPL applies when it
      comes to Linux [2]. Additionally, even though copyleft-next-0.3.1 has
      been found to be to be GPLv2 compatible by three attorneys at SUSE and
      Redhat [3], to err on the side of caution we simply recommend to
      always use the "OR" language for this license [4].
      
      Even though it has been a goal of the project to be GPL-v2 compatible
      to be certain in 2016 I asked for a clarification about what makes
      copyleft-next GPLv2 compatible and also asked for a summary of
      benefits. This prompted some small minor changes to make compatibility
      even further clear and as of copyleft 0.3.1 compatibility should
      be crystal clear [5].
      
      The summary of why copyleft-next 0.3.1 is compatible with GPLv2
      is explained as follows:
      
        Like GPLv2, copyleft-next requires distribution of derivative works
        ("Derived Works" in copyleft-next 0.3.x) to be under the same license.
        Ordinarily this would make the two licenses incompatible. However,
        copyleft-next 0.3.1 says: "If the Derived Work includes material
        licensed under the GPL, You may instead license the Derived Work under
        the GPL." "GPL" is defined to include GPLv2.
      
      In practice this means copyleft-next code in Linux may be licensed
      under the GPL2, however there are additional obvious gains for
      bringing contributions from Linux outbound where copyleft-next is
      preferred. A summary of benefits why projects outside of Linux might
      prefer to use copyleft-next >= 0.3.1 over GPLv2:
      
      o It is much shorter and simpler
      o It has an explicit patent license grant, unlike GPLv2
      o Its notice preservation conditions are clearer
      o More free software/open source licenses are compatible
        with it (via section 4)
      o The source code requirement triggered by binary distribution
        is much simpler in a procedural sense
      o Recipients potentially have a contract claim against distributors
        who are noncompliant with the source code requirement
      o There is a built-in inbound=outbound policy for upstream
        contributions (cf. Apache License 2.0 section 5)
      o There are disincentives to engage in the controversial practice
        of copyleft/ proprietary dual-licensing
      o In 15 years copyleft expires, which can be advantageous
        for legacy code
      o There are explicit disincentives to bringing patent infringement
        claims accusing the licensed work of infringement (see 10b)
      o There is a cure period for licensees who are not compliant
        with the license (there is no cure opportunity in GPLv2)
      o copyleft-next has a 'built-in or-later' provision
      
      The first driver submission to Linux under this dual strategy was
      lib/test_sysctl.c through commit 9308f2f9 ("test_sysctl: add
      dedicated proc sysctl test driver") merged in July 2017. Shortly after
      that I also added test_kmod through commit d9c6a72d ("kmod: add
      test driver to stress test the module loader") in the same month. These
      two drivers went in just a few months before the SPDX license practice
      kicked in. In 2018 Kuno Woudt went through the process to get SPDX
      identifiers for copyleft-next [6] [7]. Although there are SPDX tags
      for copyleft-next-0.3.0, we only document use in Linux starting from
      copyleft-next-0.3.1 which makes GPLv2 compatibility crystal clear.
      
      This patch will let us update the two Linux selftest drivers in
      subsequent patches with their respective SPDX license identifiers and
      let us remove repetitive license boiler plate.
      
      [0] https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.1
      [1] https://lore.kernel.org/lkml/1465929311-13509-1-git-send-email-mcgrof@kernel.org/
      [2] https://lore.kernel.org/lkml/CA+55aFyhxcvD+q7tp+-yrSFDKfR0mOHgyEAe=f_94aKLsOu0Og@mail.gmail.com/
      [3] https://lore.kernel.org/lkml/20170516232702.GL17314@wotan.suse.de/
      [4] https://lkml.kernel.org/r/1495234558.7848.122.camel@linux.intel.com
      [5] https://lists.fedorahosted.org/archives/list/copyleft-next@lists.fedorahosted.org/thread/JTGV56DDADWGKU7ZKTZA4DLXTGTLNJ57/#SQMDIKBRAVDOCT4UVNOOCRGBN2UJIKHZ
      [6] https://spdx.org/licenses/copyleft-next-0.3.0.html
      [7] https://spdx.org/licenses/copyleft-next-0.3.1.html
      
      
      
      Cc: Goldwyn Rodrigues <rgoldwyn@suse.com>
      Cc: Kuno Woudt <kuno@frob.nl>
      Cc: Richard Fontana <fontana@sharpeleven.org>
      Cc: copyleft-next@lists.fedorahosted.org
      Cc: Ciaran Farrell <Ciaran.Farrell@suse.com>
      Cc: Christopher De Nicolo <Christopher.DeNicolo@suse.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Thorsten Leemhuis <linux@leemhuis.info>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      Reviewed-by: default avatarTim Bird <tim.bird@sony.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ad9f64cd
  2. Nov 07, 2022
  3. Nov 06, 2022
    • Linus Torvalds's avatar
      Merge tag 'cxl-fixes-for-6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · 16c7a368
      Linus Torvalds authored
      Pull cxl fixes from Dan Williams:
       "Several fixes for CXL region creation crashes, leaks and failures.
      
        This is mainly fallout from the original implementation of dynamic CXL
        region creation (instantiate new physical memory pools) that arrived
        in v6.0-rc1.
      
        Given the theme of "failures in the presence of pass-through decoders"
        this also includes new regression test infrastructure for that case.
      
        Summary:
      
         - Fix region creation crash with pass-through decoders
      
         - Fix region creation crash when no decoder allocation fails
      
         - Fix region creation crash when scanning regions to enforce the
           increasing physical address order constraint that CXL mandates
      
         - Fix a memory leak for cxl_pmem_region objects, track 1:N instead of
           1:1 memory-device-to-region associations.
      
         - Fix a memory leak for cxl_region objects when regions with active
           targets are deleted
      
         - Fix assignment of NUMA nodes to CXL regions by CFMWS (CXL Window)
           emulated proximity domains.
      
         - Fix region creation failure for switch attached devices downstream
           of a single-port host-bridge
      
         - Fix false positive memory leak of cxl_region objects by recycling
           recently used region ids rather than freeing them
      
         - Add regression test infrastructure for a pass-through decoder
           configuration
      
         - Fix some mailbox payload handling corner cases"
      
      * tag 'cxl-fixes-for-6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl:
        cxl/region: Recycle region ids
        cxl/region: Fix 'distance' calculation with passthrough ports
        tools/testing/cxl: Add a single-port host-bridge regression config
        tools/testing/cxl: Fix some error exits
        cxl/pmem: Fix cxl_pmem_region and cxl_memdev leak
        cxl/region: Fix cxl_region leak, cleanup targets at region delete
        cxl/region: Fix region HPA ordering validation
        cxl/pmem: Use size_add() against integer overflow
        cxl/region: Fix decoder allocation crash
        ACPI: NUMA: Add CXL CFMWS 'nodes' to the possible nodes set
        cxl/pmem: Fix failure to account for 8 byte header for writes to the device LSA.
        cxl/region: Fix null pointer dereference due to pass through decoder commit
        cxl/mbox: Add a check on input payload size
      16c7a368
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.1-rc4' of... · aa529949
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Fix two regressions:
      
         - Commit 54cc3dbf ("hwmon: (pmbus) Add regulator supply into
           macro") resulted in regulator undercount when disabling regulators.
           Revert it.
      
         - The thermal subsystem rework caused the scmi driver to no longer
           register with the thermal subsystem because index values no longer
           match. To fix the problem, the scmi driver now directly registers
           with the thermal subsystem, no longer through the hwmon core"
      
      * tag 'hwmon-for-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        Revert "hwmon: (pmbus) Add regulator supply into macro"
        hwmon: (scmi) Register explicitly with Thermal Framework
      aa529949
    • Linus Torvalds's avatar
      Merge tag 'perf_urgent_for_v6.1_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 727ea09e
      Linus Torvalds authored
      Pull perf fixes from Borislav Petkov:
      
       - Add Cooper Lake's stepping to the PEBS guest/host events isolation
         fixed microcode revisions checking quirk
      
       - Update Icelake and Sapphire Rapids events constraints
      
       - Use the standard energy unit for Sapphire Rapids in RAPL
      
       - Fix the hw_breakpoint test to fail more graciously on !SMP configs
      
      * tag 'perf_urgent_for_v6.1_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[]
        perf/x86/intel: Fix pebs event constraints for SPR
        perf/x86/intel: Fix pebs event constraints for ICL
        perf/x86/rapl: Use standard Energy Unit for SPR Dram RAPL domain
        perf/hw_breakpoint: test: Skip the test if dependencies unmet
      727ea09e
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v6.1_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f6f52047
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - Add new Intel CPU models
      
       - Enforce that TDX guests are successfully loaded only on TDX hardware
         where virtualization exception (#VE) delivery on kernel memory is
         disabled because handling those in all possible cases is "essentially
         impossible"
      
       - Add the proper include to the syscall wrappers so that BTF can see
         the real pt_regs definition and not only the forward declaration
      
      * tag 'x86_urgent_for_v6.1_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Add several Intel server CPU model numbers
        x86/tdx: Panic on bad configs that #VE on "private" memory access
        x86/tdx: Prepare for using "INFO" call for a second purpose
        x86/syscall: Include asm/ptrace.h in syscall_wrapper header
      f6f52047
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v6.1-2' of... · 35697d81
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v6.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Use POSIX-compatible grep options
      
       - Document git-related tips for reproducible builds
      
       - Fix a typo in the modpost rule
      
       - Suppress SIGPIPE error message from gcc-ar and llvm-ar
      
       - Fix segmentation fault in the menuconfig search
      
      * tag 'kbuild-fixes-v6.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kconfig: fix segmentation fault in menuconfig search
        kbuild: fix SIGPIPE error message for AR=gcc-ar and AR=llvm-ar
        kbuild: fix typo in modpost
        Documentation: kbuild: Add description of git for reproducible builds
        kbuild: use POSIX-compatible grep option
      35697d81
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 089d1c31
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
      "ARM:
      
         - Fix the pKVM stage-1 walker erronously using the stage-2 accessor
      
         - Correctly convert vcpu->kvm to a hyp pointer when generating an
           exception in a nVHE+MTE configuration
      
         - Check that KVM_CAP_DIRTY_LOG_* are valid before enabling them
      
         - Fix SMPRI_EL1/TPIDR2_EL0 trapping on VHE
      
         - Document the boot requirements for FGT when entering the kernel at
           EL1
      
        x86:
      
         - Use SRCU to protect zap in __kvm_set_or_clear_apicv_inhibit()
      
         - Make argument order consistent for kvcalloc()
      
         - Userspace API fixes for DEBUGCTL and LBRs"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86: Fix a typo about the usage of kvcalloc()
        KVM: x86: Use SRCU to protect zap in __kvm_set_or_clear_apicv_inhibit()
        KVM: VMX: Ignore guest CPUID for host userspace writes to DEBUGCTL
        KVM: VMX: Fold vmx_supported_debugctl() into vcpu_supported_debugctl()
        KVM: VMX: Advertise PMU LBRs if and only if perf supports LBRs
        arm64: booting: Document our requirements for fine grained traps with SME
        KVM: arm64: Fix SMPRI_EL1/TPIDR2_EL0 trapping on VHE
        KVM: Check KVM_CAP_DIRTY_LOG_{RING, RING_ACQ_REL} prior to enabling them
        KVM: arm64: Fix bad dereference on MTE-enabled systems
        KVM: arm64: Use correct accessor to parse stage-1 PTEs
      089d1c31
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.1-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 6e8c78d3
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
       "One fix for silencing a smatch warning, and a small cleanup patch"
      
      * tag 'for-linus-6.1-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        x86/xen: simplify sysenter and syscall setup
        x86/xen: silence smatch warning in pmu_msr_chk_emulated()
      6e8c78d3
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 9761070d
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Fix a number of bugs, including some regressions, the most serious of
        which was one which would cause online resizes to fail with file
        systems with metadata checksums enabled.
      
        Also fix a warning caused by the newly added fortify string checker,
        plus some bugs that were found using fuzzed file systems"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix fortify warning in fs/ext4/fast_commit.c:1551
        ext4: fix wrong return err in ext4_load_and_init_journal()
        ext4: fix warning in 'ext4_da_release_space'
        ext4: fix BUG_ON() when directory entry has invalid rec_len
        ext4: update the backup superblock's at the end of the online resize
      9761070d
    • Linus Torvalds's avatar
      Merge tag '6.1-rc4-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 90153f92
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "One symlink handling fix and two fixes foir multichannel issues with
        iterating channels, including for oplock breaks when leases are
        disabled"
      
      * tag '6.1-rc4-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix use-after-free on the link name
        cifs: avoid unnecessary iteration of tcp sessions
        cifs: always iterate smb sessions using primary channel
      90153f92
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 8391aa4b
      Linus Torvalds authored
      Pull `lTracing fixes for 6.1-rc3:
      
       - Fixed NULL pointer dereference in the ring buffer wait-waiters code
         for machines that have less CPUs than what nr_cpu_ids returns.
      
         The buffer array is of size nr_cpu_ids, but only the online CPUs get
         initialized.
      
       - Fixed use after free call in ftrace_shutdown.
      
       - Fix accounting of if a kprobe is enabled
      
       - Fix NULL pointer dereference on error path of fprobe rethook_alloc().
      
       - Fix unregistering of fprobe_kprobe_handler
      
       - Fix memory leak in kprobe test module
      
      * tag 'trace-v6.1-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing: kprobe: Fix memory leak in test_gen_kprobe/kretprobe_cmd()
        tracing/fprobe: Fix to check whether fprobe is registered correctly
        fprobe: Check rethook_alloc() return in rethook initialization
        kprobe: reverse kp->flags when arm_kprobe failed
        ftrace: Fix use-after-free for dynamic ftrace_ops
        ring-buffer: Check for NULL cpu_buffer in ring_buffer_wake_waiters()
      8391aa4b
    • Paolo Bonzini's avatar
      Merge tag 'kvmarm-fixes-6.1-3' of... · f4298cac
      Paolo Bonzini authored
      Merge tag 'kvmarm-fixes-6.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      
      * Fix the pKVM stage-1 walker erronously using the stage-2 accessor
      
      * Correctly convert vcpu->kvm to a hyp pointer when generating
        an exception in a nVHE+MTE configuration
      
      * Check that KVM_CAP_DIRTY_LOG_* are valid before enabling them
      
      * Fix SMPRI_EL1/TPIDR2_EL0 trapping on VHE
      
      * Document the boot requirements for FGT when entering the kernel
        at EL1
      f4298cac
    • Paolo Bonzini's avatar
      Merge branch 'kvm-master' into HEAD · 14620149
      Paolo Bonzini authored
      x86:
      * Use SRCU to protect zap in __kvm_set_or_clear_apicv_inhibit()
      
      * Make argument order consistent for kvcalloc()
      
      * Userspace API fixes for DEBUGCTL and LBRs
      14620149
    • Theodore Ts'o's avatar
      ext4: fix fortify warning in fs/ext4/fast_commit.c:1551 · 0d043351
      Theodore Ts'o authored
      
      With the new fortify string system, rework the memcpy to avoid this
      warning:
      
      memcpy: detected field-spanning write (size 60) of single field "&raw_inode->i_generation" at fs/ext4/fast_commit.c:1551 (size 4)
      
      Cc: stable@kernel.org
      Fixes: 54d9469b ("fortify: Add run-time WARN for cross-field memcpy()")
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      0d043351
    • Jason Yan's avatar
      ext4: fix wrong return err in ext4_load_and_init_journal() · 9f2a1d9f
      Jason Yan authored
      
      The return value is wrong in ext4_load_and_init_journal(). The local
      variable 'err' need to be initialized before goto out. The original code
      in __ext4_fill_super() is fine because it has two return values 'ret'
      and 'err' and 'ret' is initialized as -EINVAL. After we factor out
      ext4_load_and_init_journal(), this code is broken. So fix it by directly
      returning -EINVAL in the error handler path.
      
      Cc: stable@kernel.org
      Fixes: 9c1dd22d ("ext4: factor out ext4_load_and_init_journal()")
      Signed-off-by: default avatarJason Yan <yanaijie@huawei.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Link: https://lore.kernel.org/r/20221025040206.3134773-1-yanaijie@huawei.com
      
      
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      9f2a1d9f
    • Ye Bin's avatar
      ext4: fix warning in 'ext4_da_release_space' · 1b8f787e
      Ye Bin authored
      
      Syzkaller report issue as follows:
      EXT4-fs (loop0): Free/Dirty block details
      EXT4-fs (loop0): free_blocks=0
      EXT4-fs (loop0): dirty_blocks=0
      EXT4-fs (loop0): Block reservation details
      EXT4-fs (loop0): i_reserved_data_blocks=0
      EXT4-fs warning (device loop0): ext4_da_release_space:1527: ext4_da_release_space: ino 18, to_free 1 with only 0 reserved data blocks
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 92 at fs/ext4/inode.c:1528 ext4_da_release_space+0x25e/0x370 fs/ext4/inode.c:1524
      Modules linked in:
      CPU: 0 PID: 92 Comm: kworker/u4:4 Not tainted 6.0.0-syzkaller-09423-g493ffd6605b2 #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022
      Workqueue: writeback wb_workfn (flush-7:0)
      RIP: 0010:ext4_da_release_space+0x25e/0x370 fs/ext4/inode.c:1528
      RSP: 0018:ffffc900015f6c90 EFLAGS: 00010296
      RAX: 42215896cd52ea00 RBX: 0000000000000000 RCX: 42215896cd52ea00
      RDX: 0000000000000000 RSI: 0000000080000001 RDI: 0000000000000000
      RBP: 1ffff1100e907d96 R08: ffffffff816aa79d R09: fffff520002bece5
      R10: fffff520002bece5 R11: 1ffff920002bece4 R12: ffff888021fd2000
      R13: ffff88807483ecb0 R14: 0000000000000001 R15: ffff88807483e740
      FS:  0000000000000000(0000) GS:ffff8880b9a00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00005555569ba628 CR3: 000000000c88e000 CR4: 00000000003506f0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
       <TASK>
       ext4_es_remove_extent+0x1ab/0x260 fs/ext4/extents_status.c:1461
       mpage_release_unused_pages+0x24d/0xef0 fs/ext4/inode.c:1589
       ext4_writepages+0x12eb/0x3be0 fs/ext4/inode.c:2852
       do_writepages+0x3c3/0x680 mm/page-writeback.c:2469
       __writeback_single_inode+0xd1/0x670 fs/fs-writeback.c:1587
       writeback_sb_inodes+0xb3b/0x18f0 fs/fs-writeback.c:1870
       wb_writeback+0x41f/0x7b0 fs/fs-writeback.c:2044
       wb_do_writeback fs/fs-writeback.c:2187 [inline]
       wb_workfn+0x3cb/0xef0 fs/fs-writeback.c:2227
       process_one_work+0x877/0xdb0 kernel/workqueue.c:2289
       worker_thread+0xb14/0x1330 kernel/workqueue.c:2436
       kthread+0x266/0x300 kernel/kthread.c:376
       ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:306
       </TASK>
      
      Above issue may happens as follows:
      ext4_da_write_begin
        ext4_create_inline_data
          ext4_clear_inode_flag(inode, EXT4_INODE_EXTENTS);
          ext4_set_inode_flag(inode, EXT4_INODE_INLINE_DATA);
      __ext4_ioctl
        ext4_ext_migrate -> will lead to eh->eh_entries not zero, and set extent flag
      ext4_da_write_begin
        ext4_da_convert_inline_data_to_extent
          ext4_da_write_inline_data_begin
            ext4_da_map_blocks
              ext4_insert_delayed_block
      	  if (!ext4_es_scan_clu(inode, &ext4_es_is_delonly, lblk))
      	    if (!ext4_es_scan_clu(inode, &ext4_es_is_mapped, lblk))
      	      ext4_clu_mapped(inode, EXT4_B2C(sbi, lblk)); -> will return 1
      	       allocated = true;
                ext4_es_insert_delayed_block(inode, lblk, allocated);
      ext4_writepages
        mpage_map_and_submit_extent(handle, &mpd, &give_up_on_write); -> return -ENOSPC
        mpage_release_unused_pages(&mpd, give_up_on_write); -> give_up_on_write == 1
          ext4_es_remove_extent
            ext4_da_release_space(inode, reserved);
              if (unlikely(to_free > ei->i_reserved_data_blocks))
      	  -> to_free == 1  but ei->i_reserved_data_blocks == 0
      	  -> then trigger warning as above
      
      To solve above issue, forbid inode do migrate which has inline data.
      
      Cc: stable@kernel.org
      Reported-by: default avatar <syzbot+c740bb18df70ad00952e@syzkaller.appspotmail.com>
      Signed-off-by: default avatarYe Bin <yebin10@huawei.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Link: https://lore.kernel.org/r/20221018022701.683489-1-yebin10@huawei.com
      
      
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      1b8f787e
    • Luís Henriques's avatar
      ext4: fix BUG_ON() when directory entry has invalid rec_len · 17a0bc9b
      Luís Henriques authored
      The rec_len field in the directory entry has to be a multiple of 4.  A
      corrupted filesystem image can be used to hit a BUG() in
      ext4_rec_len_to_disk(), called from make_indexed_dir().
      
       ------------[ cut here ]------------
       kernel BUG at fs/ext4/ext4.h:2413!
       ...
       RIP: 0010:make_indexed_dir+0x53f/0x5f0
       ...
       Call Trace:
        <TASK>
        ? add_dirent_to_buf+0x1b2/0x200
        ext4_add_entry+0x36e/0x480
        ext4_add_nondir+0x2b/0xc0
        ext4_create+0x163/0x200
        path_openat+0x635/0xe90
        do_filp_open+0xb4/0x160
        ? __create_object.isra.0+0x1de/0x3b0
        ? _raw_spin_unlock+0x12/0x30
        do_sys_openat2+0x91/0x150
        __x64_sys_open+0x6c/0xa0
        do_syscall_64+0x3c/0x80
        entry_SYSCALL_64_after_hwframe+0x46/0xb0
      
      The fix simply adds a call to ext4_check_dir_entry() to validate the
      directory entry, returning -EFSCORRUPTED if the entry is invalid.
      
      CC: stable@kernel.org
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216540
      
      
      Signed-off-by: default avatarLuís Henriques <lhenriques@suse.de>
      Link: https://lore.kernel.org/r/20221012131330.32456-1-lhenriques@suse.de
      
      
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      17a0bc9b
  4. Nov 05, 2022
  5. Nov 04, 2022
    • Dan Williams's avatar
      cxl/pmem: Fix cxl_pmem_region and cxl_memdev leak · 4d07ae22
      Dan Williams authored
      When a cxl_nvdimm object goes through a ->remove() event (device
      physically removed, nvdimm-bridge disabled, or nvdimm device disabled),
      then any associated regions must also be disabled. As highlighted by the
      cxl-create-region.sh test [1], a single device may host multiple
      regions, but the driver was only tracking one region at a time. This
      leads to a situation where only the last enabled region per nvdimm
      device is cleaned up properly. Other regions are leaked, and this also
      causes cxl_memdev reference leaks.
      
      Fix the tracking by allowing cxl_nvdimm objects to track multiple region
      associations.
      
      Cc: <stable@vger.kernel.org>
      Link: https://github.com/pmem/ndctl/blob/main/test/cxl-create-region.sh
      
       [1]
      Reported-by: default avatarVishal Verma <vishal.l.verma@intel.com>
      Fixes: 04ad63f0 ("cxl/region: Introduce cxl_pmem_region objects")
      Reviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
      Reviewed-by: default avatarVishal Verma <vishal.l.verma@intel.com>
      Link: https://lore.kernel.org/r/166752183647.947915.2045230911503793901.stgit@dwillia2-xfh.jf.intel.com
      
      
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      4d07ae22
    • Dan Williams's avatar
      cxl/region: Fix cxl_region leak, cleanup targets at region delete · 0d9e7340
      Dan Williams authored
      
      When a region is deleted any targets that have been previously assigned
      to that region hold references to it. Trigger those references to
      drop by detaching all targets at unregister_region() time.
      
      Otherwise that region object will leak as userspace has lost the ability
      to detach targets once region sysfs is torn down.
      
      Cc: <stable@vger.kernel.org>
      Fixes: b9686e8c ("cxl/region: Enable the assignment of endpoint decoders to regions")
      Reviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
      Reviewed-by: default avatarVishal Verma <vishal.l.verma@intel.com>
      Link: https://lore.kernel.org/r/166752183055.947915.17681995648556534844.stgit@dwillia2-xfh.jf.intel.com
      
      
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      0d9e7340
    • Dan Williams's avatar
      cxl/region: Fix region HPA ordering validation · a90accb3
      Dan Williams authored
      
      Some regions may not have any address space allocated. Skip them when
      validating HPA order otherwise a crash like the following may result:
      
       devm_cxl_add_region: cxl_acpi cxl_acpi.0: decoder3.4: created region9
       BUG: kernel NULL pointer dereference, address: 0000000000000000
       [..]
       RIP: 0010:store_targetN+0x655/0x1740 [cxl_core]
       [..]
       Call Trace:
        <TASK>
        kernfs_fop_write_iter+0x144/0x200
        vfs_write+0x24a/0x4d0
        ksys_write+0x69/0xf0
        do_syscall_64+0x3a/0x90
      
      store_targetN+0x655/0x1740:
      alloc_region_ref at drivers/cxl/core/region.c:676
      (inlined by) cxl_port_attach_region at drivers/cxl/core/region.c:850
      (inlined by) cxl_region_attach at drivers/cxl/core/region.c:1290
      (inlined by) attach_target at drivers/cxl/core/region.c:1410
      (inlined by) store_targetN at drivers/cxl/core/region.c:1453
      
      Cc: <stable@vger.kernel.org>
      Fixes: 384e624b ("cxl/region: Attach endpoint decoders")
      Reviewed-by: default avatarVishal Verma <vishal.l.verma@intel.com>
      Reviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
      Link: https://lore.kernel.org/r/166752182461.947915.497032805239915067.stgit@dwillia2-xfh.jf.intel.com
      
      
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      a90accb3
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.1-fixes-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 64c3dd0b
      Linus Torvalds authored
      Pull xfs fixes from Darrick Wong:
       "Dave and I had thought that this would be a very quiet cycle, but we
        thought wrong.
      
        At first there were the usual trickle of minor bugfixes, but then
        Zorro pulled -rc1 and noticed complaints about the stronger memcpy
        checks w.r.t. flex arrays.
      
        Analyzing how to fix that revealed a bunch of validation gaps in
        validating ondisk log items during recovery, and then a customer hit
        an infinite loop in the refcounting code on a corrupt filesystem.
      
        So. This largeish batch of fixes addresses all those problems, I hope.
      
        Summary:
      
         - Fix a UAF bug during log recovery
      
         - Fix memory leaks when mount fails
      
         - Detect corrupt bestfree information in a directory block
      
         - Fix incorrect return value type for the dax page fault handlers
      
         - Fix fortify complaints about memcpy of xfs log item objects
      
         - Strengthen inadequate validation of recovered log items
      
         - Fix incorrectly declared flex array in EFI log item structs
      
         - Log corrupt log items for debugging purposes
      
         - Fix infinite loop problems in the refcount code if the refcount
           btree node block keys are corrupt
      
         - Fix infinite loop problems in the refcount code if the refcount
           btree records suffer MSB bitflips
      
         - Add more sanity checking to continued defer ops to prevent
           overflows from one AG to the next or off EOFS"
      
      * tag 'xfs-6.1-fixes-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (28 commits)
        xfs: rename XFS_REFC_COW_START to _COWFLAG
        xfs: fix uninitialized list head in struct xfs_refcount_recovery
        xfs: fix agblocks check in the cow leftover recovery function
        xfs: check record domain when accessing refcount records
        xfs: remove XFS_FIND_RCEXT_SHARED and _COW
        xfs: refactor domain and refcount checking
        xfs: report refcount domain in tracepoints
        xfs: track cow/shared record domains explicitly in xfs_refcount_irec
        xfs: refactor refcount record usage in xchk_refcountbt_rec
        xfs: dump corrupt recovered log intent items to dmesg consistently
        xfs: move _irec structs to xfs_types.h
        xfs: actually abort log recovery on corrupt intent-done log items
        xfs: check deferred refcount op continuation parameters
        xfs: refactor all the EFI/EFD log item sizeof logic
        xfs: create a predicate to verify per-AG extents
        xfs: fix memcpy fortify errors in EFI log format copying
        xfs: make sure aglen never goes negative in xfs_refcount_adjust_extents
        xfs: fix memcpy fortify errors in RUI log format copying
        xfs: fix memcpy fortify errors in CUI log format copying
        xfs: fix memcpy fortify errors in BUI log format copying
        ...
      64c3dd0b
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 5d8401be
      Linus Torvalds authored
      Pull landlock fix from Mickaël Salaün:
       "Fix the test build for some distros"
      
      * tag 'landlock-6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        selftests/landlock: Build without static libraries
      5d8401be
    • Linus Torvalds's avatar
      Merge tag 'hardening-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · bd745027
      Linus Torvalds authored
      Pull hardening fix from Kees Cook:
      
       - Correctly report struct member size on memcpy overflow (Kees Cook)
      
      * tag 'hardening-v6.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        fortify: Capture __bos() results in const temp vars
      bd745027
    • Linus Torvalds's avatar
      Merge tag 'efi-fixes-for-v6.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 1caa2f18
      Linus Torvalds authored
      Pull EFI fixes from Ard Biesheuvel:
      
       - A pair of tweaks to the EFI random seed code so that externally
         provided version of this config table are handled more robustly
      
       - Another fix for the v6.0 EFI variable refactor that turned out to
         break Apple machines which don't provide QueryVariableInfo()
      
       - Add some guard rails to the EFI runtime service call wrapper so we
         can recover from synchronous exceptions caused by firmware
      
      * tag 'efi-fixes-for-v6.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        arm64: efi: Recover from synchronous exceptions occurring in firmware
        efi: efivars: Fix variable writes with unsupported query_variable_store()
        efi: random: Use 'ACPI reclaim' memory for random seed
        efi: random: reduce seed size to 32 bytes
        efi/tpm: Pass correct address to memblock_reserve
      1caa2f18
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-6.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 10d916c8
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "There are not a lot of important fixes for the soc tree yet this time,
        but it's time to upstream what I got so far:
      
         - DT Fixes for Arm Juno and ST-Ericsson Ux500 to add missing critical
           temperature points
      
         - A number of fixes for the Arm SCMI firmware, addressing correctness
           issues in the code, in particular error handling and resource
           leaks.
      
         - One error handling fix for the new i.MX93 power domain driver
      
         - Several devicetree fixes for NXP i.MX6/8/9 and Layerscape chips,
           fixing incorrect or missing DT properties for MDIO controller
           nodes, CPLD, USB and regulators for various boards, as well as some
           fixes for DT schema checks.
      
         - MAINTAINERS file updates for HiSilicon LPC Bus and Broadcom git
           URLs"
      
      * tag 'soc-fixes-6.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (26 commits)
        arm64: dts: juno: Add thermal critical trip points
        firmware: arm_scmi: Fix deferred_tx_wq release on error paths
        firmware: arm_scmi: Fix devres allocation device in virtio transport
        firmware: arm_scmi: Make Rx chan_setup fail on memory errors
        firmware: arm_scmi: Make tx_prepare time out eventually
        firmware: arm_scmi: Suppress the driver's bind attributes
        firmware: arm_scmi: Cleanup the core driver removal callback
        MAINTAINERS: Update HiSilicon LPC BUS Driver maintainer
        ARM: dts: ux500: Add trips to battery thermal zones
        arm64: dts: ls208xa: specify clock frequencies for the MDIO controllers
        arm64: dts: ls1088a: specify clock frequencies for the MDIO controllers
        arm64: dts: lx2160a: specify clock frequencies for the MDIO controllers
        soc: imx: imx93-pd: Fix the error handling path of imx93_pd_probe()
        arm64: dts: imx93: correct gpio-ranges
        arm64: dts: imx93: correct s4mu interrupt names
        dt-bindings: power: gpcv2: add power-domains property
        arm64: dts: imx8: correct clock order
        ARM: dts: imx6dl-yapp4: Do not allow PM to switch PU regulator off on Q/QP
        ARM: dts: imx6qdl-gw59{10,13}: fix user pushbutton GPIO offset
        arm64: dts: imx8mn: Correct the usb power domain
        ...
      10d916c8
Loading