Skip to content
  1. Sep 08, 2022
  2. Sep 01, 2022
  3. Aug 30, 2022
  4. Aug 27, 2022
  5. Aug 23, 2022
  6. Aug 12, 2022
    • Ingo Molnar's avatar
      sched/all: Change all BUG_ON() instances in the scheduler to WARN_ON_ONCE() · 09348d75
      Ingo Molnar authored
      
      
      There's no good reason to crash a user's system with a BUG_ON(),
      chances are high that they'll never even see the crash message on
      Xorg, and it won't make it into the syslog either.
      
      By using a WARN_ON_ONCE() we at least give the user a chance to report
      any bugs triggered here - instead of getting silent hangs.
      
      None of these WARN_ON_ONCE()s are supposed to trigger, ever - so we ignore
      cases where a NULL check is done via a BUG_ON() and we let a NULL
      pointer through after a WARN_ON_ONCE().
      
      There's one exception: WARN_ON_ONCE() arguments with side-effects,
      such as locking - in this case we use the return value of the
      WARN_ON_ONCE(), such as in:
      
       -       BUG_ON(!lock_task_sighand(p, &flags));
       +       if (WARN_ON_ONCE(!lock_task_sighand(p, &flags)))
       +               return;
      
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Link: https://lore.kernel.org/r/YvSsKcAXISmshtHo@gmail.com
      09348d75
  7. Aug 11, 2022
    • Nick Desaulniers's avatar
      x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments · ffcf9c57
      Nick Desaulniers authored
      
      
      Users of GNU ld (BFD) from binutils 2.39+ will observe multiple
      instances of a new warning when linking kernels in the form:
      
        ld: warning: arch/x86/boot/pmjump.o: missing .note.GNU-stack section implies executable stack
        ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
        ld: warning: arch/x86/boot/compressed/vmlinux has a LOAD segment with RWX permissions
      
      Generally, we would like to avoid the stack being executable.  Because
      there could be a need for the stack to be executable, assembler sources
      have to opt-in to this security feature via explicit creation of the
      .note.GNU-stack feature (which compilers create by default) or command
      line flag --noexecstack.  Or we can simply tell the linker the
      production of such sections is irrelevant and to link the stack as
      --noexecstack.
      
      LLVM's LLD linker defaults to -z noexecstack, so this flag isn't
      strictly necessary when linking with LLD, only BFD, but it doesn't hurt
      to be explicit here for all linkers IMO.  --no-warn-rwx-segments is
      currently BFD specific and only available in the current latest release,
      so it's wrapped in an ld-option check.
      
      While the kernel makes extensive usage of ELF sections, it doesn't use
      permissions from ELF segments.
      
      Link: https://lore.kernel.org/linux-block/3af4127a-f453-4cf7-f133-a181cce06f73@kernel.dk/
      Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
      Link: https://github.com/llvm/llvm-project/issues/57009
      Reported-and-tested-by: default avatarJens Axboe <axboe@kernel.dk>
      Suggested-by: default avatarFangrui Song <maskray@google.com>
      Signed-off-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ffcf9c57
    • Nick Desaulniers's avatar
      Makefile: link with -z noexecstack --no-warn-rwx-segments · 0d362be5
      Nick Desaulniers authored
      
      
      Users of GNU ld (BFD) from binutils 2.39+ will observe multiple
      instances of a new warning when linking kernels in the form:
      
        ld: warning: vmlinux: missing .note.GNU-stack section implies executable stack
        ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
        ld: warning: vmlinux has a LOAD segment with RWX permissions
      
      Generally, we would like to avoid the stack being executable.  Because
      there could be a need for the stack to be executable, assembler sources
      have to opt-in to this security feature via explicit creation of the
      .note.GNU-stack feature (which compilers create by default) or command
      line flag --noexecstack.  Or we can simply tell the linker the
      production of such sections is irrelevant and to link the stack as
      --noexecstack.
      
      LLVM's LLD linker defaults to -z noexecstack, so this flag isn't
      strictly necessary when linking with LLD, only BFD, but it doesn't hurt
      to be explicit here for all linkers IMO.  --no-warn-rwx-segments is
      currently BFD specific and only available in the current latest release,
      so it's wrapped in an ld-option check.
      
      While the kernel makes extensive usage of ELF sections, it doesn't use
      permissions from ELF segments.
      
      Link: https://lore.kernel.org/linux-block/3af4127a-f453-4cf7-f133-a181cce06f73@kernel.dk/
      Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
      Link: https://github.com/llvm/llvm-project/issues/57009
      Reported-and-tested-by: default avatarJens Axboe <axboe@kernel.dk>
      Suggested-by: default avatarFangrui Song <maskray@google.com>
      Signed-off-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0d362be5
    • Linus Torvalds's avatar
      crypto: blake2b: effectively disable frame size warning · 1d3551ce
      Linus Torvalds authored
      It turns out that gcc-12.1 has some nasty problems with register
      allocation on a 32-bit x86 build for the 64-bit values used in the
      generic blake2b implementation, where the pattern of 64-bit rotates and
      xor operations ends up making gcc generate horrible code.
      
      As a result it ends up with a ridiculously large stack frame for all the
      spills it generates, resulting in the following build problem:
      
          crypto/blake2b_generic.c: In function ‘blake2b_compress_one_generic’:
          crypto/blake2b_generic.c:109:1: error: the frame size of 2640 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
      
      on the same test-case, clang ends up generating a stack frame that is
      just 296 bytes (and older gcc versions generate a slightly bigger one at
      428 bytes - still nowhere near that almost 3kB monster stack frame of
      gcc-12.1).
      
      The issue is fixed both in mainline and the GCC 12 release branch [1],
      but current release compilers end up failing the i386 allmodco...
      1d3551ce
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-5.20-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · aeb6e6ac
      Linus Torvalds authored
      Pull NFS client updates from Trond Myklebust:
       "Highlights include:
      
        Stable fixes:
         - pNFS/flexfiles: Fix infinite looping when the RDMA connection
           errors out
      
        Bugfixes:
         - NFS: fix port value parsing
         - SUNRPC: Reinitialise the backchannel request buffers before reuse
         - SUNRPC: fix expiry of auth creds
         - NFSv4: Fix races in the legacy idmapper upcall
         - NFS: O_DIRECT fixes from Jeff Layton
         - NFSv4.1: Fix OP_SEQUENCE error handling
         - SUNRPC: Fix an RPC/RDMA performance regression
         - NFS: Fix case insensitive renames
         - NFSv4/pnfs: Fix a use-after-free bug in open
         - NFSv4.1: RECLAIM_COMPLETE must handle EACCES
      
        Features:
         - NFSv4.1: session trunking enhancements
         - NFSv4.2: READ_PLUS performance optimisations
         - NFS: relax the rules for rsize/wsize mount options
         - NFS: don't unhash dentry during unlink/rename
         - SUNRPC: Fail faster on bad verifier
         - NFS/SUNRPC: Various tracing improvements"
      
      * tag 'nfs-for-5.20-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (46 commits)
        NFS: Improve readpage/writepage tracing
        NFS: Improve O_DIRECT tracing
        NFS: Improve write error tracing
        NFS: don't unhash dentry during unlink/rename
        NFSv4/pnfs: Fix a use-after-free bug in open
        NFS: nfs_async_write_reschedule_io must not recurse into the writeback code
        SUNRPC: Don't reuse bvec on retransmission of the request
        SUNRPC: Reinitialise the backchannel request buffers before reuse
        NFSv4.1: RECLAIM_COMPLETE must handle EACCES
        NFSv4.1 probe offline transports for trunking on session creation
        SUNRPC create a function that probes only offline transports
        SUNRPC export xprt_iter_rewind function
        SUNRPC restructure rpc_clnt_setup_test_and_add_xprt
        NFSv4.1 remove xprt from xprt_switch if session trunking test fails
        SUNRPC create an rpc function that allows xprt removal from rpc_clnt
        SUNRPC enable back offline transports in trunking discovery
        SUNRPC create an iterator to list only OFFLINE xprts
        NFSv4.1 offline trunkable transports on DESTROY_SESSION
        SUNRPC add function to offline remove trunkable transports
        SUNRPC expose functions for offline remote xprt functionality
        ...
      aeb6e6ac
    • Linus Torvalds's avatar
      Merge tag 'hwmon-fixes-for-v6.0-rc1' of... · f4144564
      Linus Torvalds authored
      Merge tag 'hwmon-fixes-for-v6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Fix two regressions in nct6775 and lm90 drivers"
      
      * tag 'hwmon-fixes-for-v6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (nct6775) Fix platform driver suspend regression
        hwmon: (lm90) Fix error return value from detect function
      f4144564
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v5.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · b196f3d1
      Linus Torvalds authored
      Pull rpmsg fixes from Bjorn Andersson:
       "This fixes schema validation warnings in the Devicetree bindings for
        SMD and SMD RPM"
      
      * tag 'rpmsg-v5.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        dt-bindings: soc: qcom: smd-rpm: extend example
        dt-bindings: soc: qcom: smd: reference SMD edge schema
      b196f3d1
    • Linus Torvalds's avatar
      Merge tag 'mm-stable-2022-08-09' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · b1701d5e
      Linus Torvalds authored
      Pull remaining MM updates from Andrew Morton:
       "Three patch series - two that perform cleanups and one feature:
      
         - hugetlb_vmemmap cleanups from Muchun Song
      
         - hardware poisoning support for 1GB hugepages, from Naoya Horiguchi
      
         - highmem documentation fixups from Fabio De Francesco"
      
      * tag 'mm-stable-2022-08-09' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (23 commits)
        Documentation/mm: add details about kmap_local_page() and preemption
        highmem: delete a sentence from kmap_local_page() kdocs
        Documentation/mm: rrefer kmap_local_page() and avoid kmap()
        Documentation/mm: avoid invalid use of addresses from kmap_local_page()
        Documentation/mm: don't kmap*() pages which can't come from HIGHMEM
        highmem: specify that kmap_local_page() is callable from interrupts
        highmem: remove unneeded spaces in kmap_local_page() kdocs
        mm, hwpoison: enable memory error handling on 1GB hugepage
        mm, hwpoison: skip raw hwpoison page in freeing 1GB hugepage
        mm, hwpoison: make __page_handle_poison returns int
        mm, hwpoison: set PG_hwpoison for busy hugetlb pages
        mm, hwpoison: make unpoison aware of raw error info in hwpoisoned hugepage
        mm, hwpoison, hugetlb: support saving mechanism of raw error pages
        mm/hugetlb: make pud_huge() and follow_huge_pud() aware of non-present pud entry
        mm/hugetlb: check gigantic_page_runtime_supported() in return_unused_surplus_pages()
        mm: hugetlb_vmemmap: use PTRS_PER_PTE instead of PMD_SIZE / PAGE_SIZE
        mm: hugetlb_vmemmap: move code comments to vmemmap_dedup.rst
        mm: hugetlb_vmemmap: improve hugetlb_vmemmap code readability
        mm: hugetlb_vmemmap: replace early_param() with core_param()
        mm: hugetlb_vmemmap: move vmemmap code related to HugeTLB to hugetlb_vmemmap.c
        ...
      b1701d5e
    • Linus Torvalds's avatar
      Merge tag 'cxl-for-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · c2356983
      Linus Torvalds authored
      Pull cxl updates from Dan Williams:
       "Compute Express Link (CXL) updates for 6.0:
      
         - Introduce a 'struct cxl_region' object with support for
           provisioning and assembling persistent memory regions.
      
         - Introduce alloc_free_mem_region() to accompany the existing
           request_free_mem_region() as a method to allocate physical memory
           capacity out of an existing resource.
      
         - Export insert_resource_expand_to_fit() for the CXL subsystem to
           late-publish CXL platform windows in iomem_resource.
      
         - Add a polled mode PCI DOE (Data Object Exchange) driver service and
           use it in cxl_pci to retrieve the CDAT (Coherent Device Attribute
           Table)"
      
      * tag 'cxl-for-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (74 commits)
        cxl/hdm: Fix skip allocations vs multiple pmem allocations
        cxl/region: Disallow region granularity != window granularity
        cxl/region: Fix x1 interleave to greater than x1 interleave routing
        cxl/region: Move HPA setup to cxl_region_attach()
        cxl/region: Fix decoder interleave programming
        Documentation: cxl: remove dangling kernel-doc reference
        cxl/region: describe targets and nr_targets members of cxl_region_params
        cxl/regions: add padding for cxl_rr_ep_add nested lists
        cxl/region: Fix IS_ERR() vs NULL check
        cxl/region: Fix region reference target accounting
        cxl/region: Fix region commit uninitialized variable warning
        cxl/region: Fix port setup uninitialized variable warnings
        cxl/region: Stop initializing interleave granularity
        cxl/hdm: Fix DPA reservation vs cxl_endpoint_decoder lifetime
        cxl/acpi: Minimize granularity for x1 interleaves
        cxl/region: Delete 'region' attribute from root decoders
        cxl/acpi: Autoload driver for 'cxl_acpi' test devices
        cxl/region: decrement ->nr_targets on error in cxl_region_attach()
        cxl/region: prevent underflow in ways_to_cxl()
        cxl/region: uninitialized variable in alloc_hpa()
        ...
      c2356983
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 5e2e7383
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "Outside the pinctrl driver and DT bindings we hit some Arm DT files,
        patched by the maintainers.
      
        Other than that it is business as usual.
      
        Core changes:
      
         - Add PINCTRL_PINGROUP() helper macro (and use it in the AMD driver).
      
        New drivers:
      
         - Intel Meteor Lake support.
      
         - Reneasas RZ/V2M and r8a779g0 (R-Car V4H).
      
         - AXP209 variants AXP221, AXP223 and AXP809.
      
         - Qualcomm MSM8909, PM8226, PMP8074 and SM6375.
      
         - Allwinner D1.
      
        Improvements:
      
         - Proper pin multiplexing in the AMD driver.
      
         - Mediatek MT8192 can use generic drive strength and pin bias, then
           fixes on top plus some I2C pin group fixes.
      
         - Have the Allwinner Sunplus SP7021 use the generic DT schema and
           make interrupts optional.
      
         - Handle Qualcomm SC7280 ADSP.
      
         - Handle Qualcomm MSM8916 CAMSS GP clock muxing.
      
         - High impedance bias on ZynqMP.
      
         - Serialize StarFive access to MMIO.
      
         - Immutable gpiochip for BCM2835, Ingenic, Qualcomm SPMI GPIO"
      
      * tag 'pinctrl-v6.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (117 commits)
        dt-bindings: pinctrl: qcom,pmic-gpio: add PM8226 constraints
        pinctrl: qcom: Make PINCTRL_SM8450 depend on PINCTRL_MSM
        pinctrl: qcom: sm8250: Fix PDC map
        pinctrl: amd: Fix an unused variable
        dt-bindings: pinctrl: mt8186: Add and use drive-strength-microamp
        dt-bindings: pinctrl: mt8186: Add gpio-line-names property
        ARM: dts: imxrt1170-pinfunc: Add pinctrl binding header
        pinctrl: amd: Use unicode for debugfs output
        pinctrl: amd: Fix newline declaration in debugfs output
        pinctrl: at91: Fix typo 'the the' in comment
        dt-bindings: pinctrl: st,stm32: Correct 'resets' property name
        pinctrl: mvebu: Missing a blank line after declarations.
        pinctrl: qcom: Add SM6375 TLMM driver
        dt-bindings: pinctrl: Add DT schema for SM6375 TLMM
        dt-bindings: pinctrl: mt8195: Use drive-strength-microamp in examples
        Revert "pinctrl: qcom: spmi-gpio: make the irqchip immutable"
        pinctrl: imx93: Add MODULE_DEVICE_TABLE()
        pinctrl: sunxi: Add driver for Allwinner D1
        pinctrl: sunxi: Make some layout parameters dynamic
        pinctrl: sunxi: Refactor register/offset calculation
        ...
      5e2e7383
    • Linus Torvalds's avatar
      Merge tag 'apparmor-pr-2022-08-08' of... · 00aa9d0b
      Linus Torvalds authored
      Merge tag 'apparmor-pr-2022-08-08' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
      
      Pull AppArmor updates from John Johansen:
       "This is mostly cleanups and bug fixes with the one bigger change being
        Mathew Wilcox's patch to use XArrays instead of the IDR from the
        thread around the locking weirdness.
      
        Features:
         - Convert secid mapping to XArrays instead of IDR
         - Add a kernel label to use on kernel objects
         - Extend policydb permission set by making use of the xbits
         - Make export of raw binary profile to userspace optional
         - Enable tuning of policy paranoid load for embedded systems
         - Don't create raw_sha1 symlink if sha1 hashing is disabled
         - Allow labels to carry debug flags
      
        Cleanups:
         - Update MAINTAINERS file
         - Use struct_size() helper in kmalloc()
         - Move ptrace mediation to more logical task.{h,c}
         - Resolve uninitialized symbol warnings
         - Remove redundant ret variable
         - Mark alloc_unconfined() as static
         - Update help description of policy hash for introspection
         - Remove some casts which are no-longer required
      
        Bug Fixes:
         - Fix aa_label_asxprint return check
         - Fix reference count leak in aa_pivotroot()
         - Fix memleak in aa_simple_write_to_buffer()
         - Fix kernel doc comments
         - Fix absroot causing audited secids to begin with =
         - Fix quiet_denied for file rules
         - Fix failed mount permission check error message
         - Disable showing the mode as part of a secid to secctx
         - Fix setting unconfined mode on a loaded profile
         - Fix overlapping attachment computation
         - Fix undefined reference to `zlib_deflate_workspacesize'"
      
      * tag 'apparmor-pr-2022-08-08' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor: (34 commits)
        apparmor: Update MAINTAINERS file with new email address
        apparmor: correct config reference to intended one
        apparmor: move ptrace mediation to more logical task.{h,c}
        apparmor: extend policydb permission set by making use of the xbits
        apparmor: allow label to carry debug flags
        apparmor: fix overlapping attachment computation
        apparmor: fix setting unconfined mode on a loaded profile
        apparmor: Fix some kernel-doc comments
        apparmor: Mark alloc_unconfined() as static
        apparmor: disable showing the mode as part of a secid to secctx
        apparmor: Convert secid mapping to XArrays instead of IDR
        apparmor: add a kernel label to use on kernel objects
        apparmor: test: Remove some casts which are no-longer required
        apparmor: Fix memleak in aa_simple_write_to_buffer()
        apparmor: fix reference count leak in aa_pivotroot()
        apparmor: Fix some kernel-doc comments
        apparmor: Fix undefined reference to `zlib_deflate_workspacesize'
        apparmor: fix aa_label_asxprint return check
        apparmor: Fix some kernel-doc comments
        apparmor: Fix some kernel-doc comments
        ...
      00aa9d0b
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 0af5cb34
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Remove the support for -O3 (CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3)
      
       - Fix error of rpm-pkg cross-builds
      
       - Support riscv for checkstack tool
      
       - Re-enable -Wformwat warnings for Clang
      
       - Clean up modpost, Makefiles, and misc scripts
      
      * tag 'kbuild-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
        modpost: remove .symbol_white_list field entirely
        modpost: remove unneeded .symbol_white_list initializers
        modpost: add PATTERNS() helper macro
        modpost: shorten warning messages in report_sec_mismatch()
        Revert "Kbuild, lto, workaround: Don't warn for initcall_reference in modpost"
        modpost: use more reliable way to get fromsec in section_rel(a)()
        modpost: add array range check to sec_name()
        modpost: refactor get_secindex()
        kbuild: set EXIT trap before creating temporary directory
        modpost: remove unused Elf_Sword macro
        Makefile.extrawarn: re-enable -Wformat for clang
        kbuild: add dtbs_prepare target
        kconfig: Qt5: tell the user which packages are required
        modpost: use sym_get_data() to get module device_table data
        modpost: drop executable ELF support
        checkstack: add riscv support for scripts/checkstack.pl
        kconfig: shorten the temporary directory name for cc-option
        scripts: headers_install.sh: Update config leak ignore entries
        kbuild: error out if $(INSTALL_MOD_PATH) contains % or :
        kbuild: error out if $(KBUILD_EXTMOD) contains % or :
        ...
      0af5cb34