Linux/linux f4d0ec0fs/erofs super.c internal.h

Merge tag 'erofs-for-7.0-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs

Pull erofs fixes from Gao Xiang:

 - Do not share the page cache if the real @aops differs

 - Fix the incomplete condition for interlaced plain extents

 - Get rid of more unnecessary #ifdefs

* tag 'erofs-for-7.0-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
  erofs: fix interlaced plain identification for encoded extents
  erofs: remove more unnecessary #ifdefs
  erofs: allow sharing page cache with the same aops only
DeltaFile
+35-48fs/erofs/super.c
+7-9fs/erofs/internal.h
+9-5fs/erofs/ishare.c
+5-4fs/erofs/zmap.c
+6-1fs/erofs/inode.c
+62-675 files

Linux/linux d9d32e5drivers/ata libata-eh.c libata-core.c

Merge tag 'ata-7.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux

Pull ata fixes from Niklas Cassel:

 - The newly introduced feature that issues a deferred (non-NCQ) command
   from a workqueue, forgot to consider the case where the deferred QC
   times out. Fix the code to take timeouts into consideration, which
   avoids a use after free (Damien)

 - The newly introduced feature that issues a deferred (non-NCQ) command
   from a workqueue, when unloading the module, calls cancel_work_sync(),
   a function that can sleep, while holding a spin lock. Move the function
   call outside the lock (Damien)

* tag 'ata-7.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
  ata: libata-core: fix cancellation of a port deferred qc work
  ata: libata-eh: correctly handle deferred qc timeouts
DeltaFile
+19-3drivers/ata/libata-eh.c
+3-5drivers/ata/libata-core.c
+22-82 files

Linux/linux 0e335a7fs namespace.c pidfs.c, fs/iomap ioend.c

Merge tag 'vfs-7.0-rc2.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs fixes from Christian Brauner:

 - Fix an uninitialized variable in file_getattr().

   The flags_valid field wasn't initialized before calling
   vfs_fileattr_get(), triggering KMSAN uninit-value reports in fuse

 - Fix writeback wakeup and logging timeouts when DETECT_HUNG_TASK is
   not enabled.

   sysctl_hung_task_timeout_secs is 0 in that case causing spurious
   "waiting for writeback completion for more than 1 seconds" warnings

 - Fix a null-ptr-deref in do_statmount() when the mount is internal

 - Add missing kernel-doc description for the @private parameter in
   iomap_readahead()

    [56 lines not shown]
DeltaFile
+77-62fs/namespace.c
+46-0fs/iomap/ioend.c
+0-13include/linux/fsnotify.h
+4-6fs/pidfs.c
+5-4fs/fs-writeback.c
+3-2fs/eventpoll.c
+135-875 files not shown
+142-9011 files

Linux/linux 4a2d046fs/erofs zmap.c

erofs: fix interlaced plain identification for encoded extents

Only plain data whose start position and on-disk physical length are
both aligned to the block size should be classified as interlaced
plain extents. Otherwise, it must be treated as shifted plain extents.

This issue was found by syzbot using a crafted compressed image
containing plain extents with unaligned physical lengths, which can
cause OOB read in z_erofs_transform_plain().

Reported-and-tested-by: syzbot+d988dc155e740d76a331 at syzkaller.appspotmail.com
Closes: https://lore.kernel.org/r/699d5714.050a0220.cdd3c.03e7.GAE@google.com
Fixes: 1d191b4ca51d ("erofs: implement encoded extent metadata")
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
DeltaFile
+5-4fs/erofs/zmap.c
+5-41 files

Linux/linux bfbc0b5drivers/media/dvb-core dmxdev.c

media: dvb-core: fix wrong reinitialization of ringbuffer on reopen

dvb_dvr_open() calls dvb_ringbuffer_init() when a new reader opens the
DVR device.  dvb_ringbuffer_init() calls init_waitqueue_head(), which
reinitializes the waitqueue list head to empty.

Since dmxdev->dvr_buffer.queue is a shared waitqueue (all opens of the
same DVR device share it), this orphans any existing waitqueue entries
from io_uring poll or epoll, leaving them with stale prev/next pointers
while the list head is reset to {self, self}.

The waitqueue and spinlock in dvr_buffer are already properly
initialized once in dvb_dmxdev_init().  The open path only needs to
reset the buffer data pointer, size, and read/write positions.

Replace the dvb_ringbuffer_init() call in dvb_dvr_open() with direct
assignment of data/size and a call to dvb_ringbuffer_reset(), which
properly resets pread, pwrite, and error with correct memory ordering
without touching the waitqueue or spinlock.

    [8 lines not shown]
DeltaFile
+3-1drivers/media/dvb-core/dmxdev.c
+3-11 files

Linux/linux 4a1ddb0fs pidfs.c

pidfs: avoid misleading break

The break would only break out of the scoped_guard() loop, not the
switch statement. It still works correct as is ofc but let's avoid the
confusion.

Reported-by: David Lechner <dlechner at baylibre.com>
Link:: https://lore.kernel.org/cd2153f1-098b-463c-bbc1-5c6ca9ef1f12@baylibre.com
Signed-off-by: Christian Brauner <brauner at kernel.org>
DeltaFile
+4-6fs/pidfs.c
+4-61 files

Linux/linux bf4fde7fs/erofs super.c

erofs: remove more unnecessary #ifdefs

Many #ifdefs can be replaced with IS_ENABLED() to improve code
readability.  No functional changes.

Signed-off-by: Ferry Meng <mengferry at linux.alibaba.com>
Reviewed-by: Gao Xiang <hsiangkao at linux.alibaba.com>
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
DeltaFile
+35-48fs/erofs/super.c
+35-481 files

Linux/linux fdcfce9fs eventpoll.c

eventpoll: Fix integer overflow in ep_loop_check_proc()

If a recursive call to ep_loop_check_proc() hits the `result = INT_MAX`,
an integer overflow will occur in the calling ep_loop_check_proc() at
`result = max(result, ep_loop_check_proc(ep_tovisit, depth + 1) + 1)`,
breaking the recursion depth check.

Fix it by using a different placeholder value that can't lead to an
overflow.

Reported-by: Guenter Roeck <linux at roeck-us.net>
Fixes: f2e467a48287 ("eventpoll: Fix semi-unbounded recursion")
Cc: stable at vger.kernel.org
Signed-off-by: Jann Horn <jannh at google.com>
Link: https://patch.msgid.link/20260223-epoll-int-overflow-v1-1-452f35132224@google.com
Signed-off-by: Christian Brauner <brauner at kernel.org>
DeltaFile
+3-2fs/eventpoll.c
+3-21 files

Linux/linux 55db009drivers/ata libata-core.c

ata: libata-core: fix cancellation of a port deferred qc work

cancel_work_sync() is a sleeping function so it cannot be called with
the spin lock of a port being held. Move the call to this function in
ata_port_detach() after EH completes, with the port lock released,
together with other work cancellation calls.

Fixes: 0ea84089dbf6 ("ata: libata-scsi: avoid Non-NCQ command starvation")
Signed-off-by: Damien Le Moal <dlemoal at kernel.org>
Reviewed-by: Hannes Reinecke <hare at suse.de>
Reviewed-by: Igor Pylypiv <ipylypiv at google.com>
DeltaFile
+3-5drivers/ata/libata-core.c
+3-51 files

Linux/linux eddb98adrivers/ata libata-eh.c

ata: libata-eh: correctly handle deferred qc timeouts

A deferred qc may timeout while waiting for the device queue to drain
to be submitted. In such case, since the qc is not active,
ata_scsi_cmd_error_handler() ends up calling scsi_eh_finish_cmd(),
which frees the qc. But as the port deferred_qc field still references
this finished/freed qc, the deferred qc work may eventually attempt to
call ata_qc_issue() against this invalid qc, leading to errors such as
reported by UBSAN (syzbot run):

UBSAN: shift-out-of-bounds in drivers/ata/libata-core.c:5166:24
shift exponent 4210818301 is too large for 64-bit type 'long long unsigned int'
...
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 ubsan_epilogue+0xa/0x30 lib/ubsan.c:233
 __ubsan_handle_shift_out_of_bounds+0x279/0x2a0 lib/ubsan.c:494

    [19 lines not shown]
DeltaFile
+19-3drivers/ata/libata-eh.c
+19-31 files

Linux/linux 7dff99bdrivers/char random.c, kernel/configs debug.config

Remove WARN_ALL_UNSEEDED_RANDOM kernel config option

This config option goes way back - it used to be an internal debug
option to random.c (at that point called DEBUG_RANDOM_BOOT), then was
renamed and exposed as a config option as CONFIG_WARN_UNSEEDED_RANDOM,
and then further renamed to the current CONFIG_WARN_ALL_UNSEEDED_RANDOM.

It was all done with the best of intentions: the more limited
rate-limited reports were reporting some cases, but if you wanted to see
all the gory details, you'd enable this "ALL" option.

However, it turns out - perhaps not surprisingly - that when people
don't care about and fix the first rate-limited cases, they most
certainly don't care about any others either, and so warning about all
of them isn't actually helping anything.

And the non-ratelimited reporting causes problems, where well-meaning
people enable debug options, but the excessive flood of messages that
nobody cares about will hide actual real information when things go

    [24 lines not shown]
DeltaFile
+0-27lib/Kconfig.debug
+1-11drivers/char/random.c
+0-1kernel/configs/debug.config
+1-393 files

Linux/linux 551d442include/linux gfp.h

default_gfp(): avoid using the "newfangled" __VA_OPT__ trick

The default_gfp() helper that I added is not wrong, but it turns out
that it causes unnecessary headaches for 'sparse' which doesn't support
the use of __VA_OPT__ (introduced in C++20 and C23, and supported by gcc
and clang for a long time).

We do already use __VA_OPT__ in some other cases in the kernel (drm/xe
and btrfs), but it has been fairly limited.  Now it triggers for pretty
much everything, and sparse ends up not working at all.

We can use the traditional gcc ',##__VA_ARGS__' syntax instead: it may
not be the "C standard" way and is slightly less natural in this
context, but it is the traditional model for this and avoids the sparse
problem.

Reported-and-tested-by: Ricardo Ribalda <ribalda at chromium.org>
Reported-and-tested-by: Richard Fitzgerald <rf at opensource.cirrus.com>
Reported-by: Ben Dooks <ben.dooks at codethink.co.uk>

    [2 lines not shown]
DeltaFile
+2-2include/linux/gfp.h
+2-21 files

Linux/linux 03c0d03fs/erofs internal.h ishare.c

erofs: allow sharing page cache with the same aops only

Inode with identical data but different @aops cannot be mixed
because the page cache is managed by different subsystems (e.g.,
@aops for compressed on-disk inodes cannot handle plain on-disk
inodes).

In this patch, we never allow inodes to share the page cache
among plain, compressed, and fileio cases. When a shared inode
is created, we initialize @aops that is the same as the initial
real inode, and subsequent inodes cannot share the page cache
if the inferred @aops differ from the corresponding shared inode.

This is reasonable as a first step because, in typical use cases,
if an inode is compressible, it will fall into compressed
inodes across different filesystem images unless users use plain
filesystems. However, in that cases, users will use plain
filesystems all the time.


    [4 lines not shown]
DeltaFile
+7-9fs/erofs/internal.h
+9-5fs/erofs/ishare.c
+6-1fs/erofs/inode.c
+22-153 files

Linux/linux 6de23f8. Makefile

Linux 7.0-rc1
DeltaFile
+3-3Makefile
+3-31 files

Linux/linux fbf3380fs/f2fs compress.c, fs/verity verify.c

Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux

Pull fsverity fixes from Eric Biggers:

 - Fix a build error on parisc

 - Remove the non-large-folio-aware function fsverity_verify_page()

* tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux:
  fsverity: fix build error by adding fsverity_readahead() stub
  fsverity: remove fsverity_verify_page()
  f2fs: make f2fs_verify_cluster() partially large-folio-aware
  f2fs: remove unnecessary ClearPageUptodate in f2fs_verify_cluster()
DeltaFile
+7-8include/linux/fsverity.h
+5-6fs/f2fs/compress.c
+2-2fs/verity/verify.c
+14-163 files

Linux/linux 75e1f66lib/crypto/powerpc aes.h

Merge tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux

Pull crypto library fix from Eric Biggers:
 "Fix a big endian specific issue in the PPC64-optimized AES code"

* tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux:
  lib/crypto: powerpc/aes: Fix rndkey_from_vsx() on big endian CPUs
DeltaFile
+7-5lib/crypto/powerpc/aes.h
+7-51 files

Linux/linux aaf96df. CREDITS

CREDITS: Add -next to Stephen Rothwell's entry

Stephen retired and stepped back from -next maintainership, update his
entry in CREDITS to recognise his 18 years of hard work making it what
it is today and all the impact it's had on our development process.

Also update to his current GnuPG key while we're here.

Acked-by: Stephen Rothwell <sfr at canb.auug.org.au>
Acked-by: SeongJae Park <sj at kernel.org>
Reviewed-by: Randy Dunlap <rdunlap at infradead.org>
Signed-off-by: Mark Brown <broonie at kernel.org>
Acked-by: Krzysztof Kozlowski <krzk at kernel.org>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
DeltaFile
+2-1CREDITS
+2-11 files

Linux/linux 746b9efcrypto/asymmetric_keys Kconfig

x509: select CONFIG_CRYPTO_LIB_SHA256

The x509 public key code gained a dependency on the sha256 hash
implementation, causing a rare link time failure in randconfig
builds:

  arm-linux-gnueabi-ld: crypto/asymmetric_keys/x509_public_key.o: in function `x509_get_sig_params':
  x509_public_key.c:(.text.x509_get_sig_params+0x12): undefined reference to `sha256'
  arm-linux-gnueabi-ld: (sha256): Unknown destination type (ARM/Thumb) in crypto/asymmetric_keys/x509_public_key.o
  x509_public_key.c:(.text.x509_get_sig_params+0x12): dangerous relocation: unsupported relocation

Select the necessary library code from Kconfig.

Fixes: 2c62068ac86b ("x509: Separately calculate sha256 for blacklist")
Signed-off-by: Arnd Bergmann <arnd at arndb.de>
Signed-off-by: David Howells <dhowells at redhat.com>
Reviewed-by: Eric Biggers <ebiggers at kernel.org>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
DeltaFile
+1-0crypto/asymmetric_keys/Kconfig
+1-01 files

Linux/linux fd1d6b9lib decompress_unxz.c

xz: fix arm fdt compile error for kmalloc replacement

Align to the commit bf4afc53b77a ("Convert 'alloc_obj' family to use the
new default GFP_KERNEL argument") update the 'kmalloc_obj' declaration
for userspace to fix below compile error:

  In file included from arch/arm/boot/compressed/../../../../lib/decompress_unxz.c:241,
                   from arch/arm/boot/compressed/decompress.c:56:
  arch/arm/boot/compressed/../../../../lib/xz/xz_dec_stream.c: In function 'xz_dec_init':
  arch/arm/boot/compressed/../../../../lib/xz/xz_dec_stream.c:787:28: error: implicit declaration of function 'kmalloc_obj'; did you mean 'kmalloc'? [-Wimplicit-function-declaration]
     787 |         struct xz_dec *s = kmalloc_obj(*s);
         |                            ^~~~~~~~~~~
         |                            kmalloc

Signed-off-by: Haiyue Wang <haiyuewa at 163.com>
Fixes: 69050f8d6d07 ("treewide: Replace kmalloc with kmalloc_obj for non-scalar types")
Fixes: bf4afc53b77a ("Convert 'alloc_obj' family to use the new default GFP_KERNEL argument")
Reviewed-by: Kees Cook <kees at kernel.org>
Acked-by: Lasse Collin <lasse.collin at tukaani.org>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
DeltaFile
+2-2lib/decompress_unxz.c
+2-21 files

Linux/linux 5f2eac7Documentation/devicetree/bindings/rtc motorola,cpcap-rtc.yaml cpcap-rtc.txt, drivers/rtc rtc-zynqmp.c rtc-loongson.c

Merge tag 'rtc-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux

Pull RTC updates from Alexandre Belloni:

 - loongson: Loongson-2K0300 support

 - s35390a: nvmem support

 - zynqmp: rework calibration

* tag 'rtc-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  rtc: ds1390: fix number of bytes read from RTC
  rtc: class: Remove duplicate check for alarm
  rtc: optee: simplify OP-TEE context match
  rtc: interface: Alarm race handling should not discard preceding error
  rtc: s35390a: implement nvmem support
  rtc: loongson: Add Loongson-2K0300 support
  dt-bindings: rtc: loongson: Document Loongson-2K0300 compatible
  dt-bindings: rtc: loongson: Correct Loongson-1C interrupts property

    [11 lines not shown]
DeltaFile
+41-34drivers/rtc/rtc-zynqmp.c
+47-24drivers/rtc/rtc-loongson.c
+32-0drivers/rtc/rtc-s35390a.c
+32-0Documentation/devicetree/bindings/rtc/motorola,cpcap-rtc.yaml
+0-18Documentation/devicetree/bindings/rtc/cpcap-rtc.txt
+13-0Documentation/devicetree/bindings/rtc/loongson,rtc.yaml
+165-768 files not shown
+178-8814 files

Linux/linux 1dd4191rust Makefile, rust/kernel/irq request.rs

Merge tag 'rust-fixes-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux

Pull rust fixes from Miguel Ojeda:
 "Toolchain and infrastructure:

   - Pass '-Zunstable-options' flag required by the future Rust 1.95.0

   - Fix 'objtool' warning for Rust 1.84.0

  'kernel' crate:

   - 'irq' module: add missing bound detected by the future Rust 1.95.0

   - 'list' module: add missing 'unsafe' blocks and placeholder safety
     comments to macros (an issue for future callers within the crate)

  'pin-init' crate:

   - Clean Clippy warning that changed behavior in the future Rust

    [8 lines not shown]
DeltaFile
+16-9rust/kernel/list/impl_list_item_mod.rs
+9-3rust/kernel/irq/request.rs
+2-2rust/pin-init/src/lib.rs
+2-1tools/objtool/check.c
+3-0rust/Makefile
+32-155 files

Linux/linux d2ba6e9include/rv da_monitor.h

Merge tag 'trace-rv-7.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull runtime verifier fix from Steven Rostedt:

 - Fix multiple definition of __pcpu_unique_da_mon_this

   After refactoring monitors, we used static per-cpu variables with the
   same names across different per-cpu monitors. This is explicitly
   disallowed for modules on some architectures (alpha) or if
   CONFIG_DEBUG_FORCE_WEAK_PER_CPU is enabled (e.g. Fedora's debug
   kernel). Make sure all those variables have different names to avoid
   compilation issues.

* tag 'trace-rv-7.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  rv: Fix multiple definition of __pcpu_unique_da_mon_this
DeltaFile
+11-5include/rv/da_monitor.h
+11-51 files

Linux/linux 189f164drivers/gpu/drm/amd/pm/powerplay/hwmgr process_pptables_v1_0.c, drivers/net/ethernet/intel/idpf idpf_txrx.c

Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses

Conversion performed via this Coccinelle script:

  // SPDX-License-Identifier: GPL-2.0-only
  // Options: --include-headers-for-types --all-includes --include-headers --keep-comments
  virtual patch

  @gfp depends on patch && !(file in "tools") && !(file in "samples")@
  identifier ALLOC = {kmalloc_obj,kmalloc_objs,kmalloc_flex,
                    kzalloc_obj,kzalloc_objs,kzalloc_flex,
                    kvmalloc_obj,kvmalloc_objs,kvmalloc_flex,
                    kvzalloc_obj,kvzalloc_objs,kvzalloc_flex};
  @@

        ALLOC(...
  -             , GFP_KERNEL
        )


    [9 lines not shown]
DeltaFile
+9-18drivers/scsi/lpfc/lpfc_init.c
+8-14drivers/scsi/be2iscsi/be_main.c
+7-13drivers/staging/media/atomisp/pci/sh_css.c
+7-11drivers/net/ethernet/intel/idpf/idpf_txrx.c
+6-9drivers/scsi/mpt3sas/mpt3sas_base.c
+6-9drivers/gpu/drm/amd/pm/powerplay/hwmgr/process_pptables_v1_0.c
+43-74409 files not shown
+612-833415 files

Linux/linux 32a92f8drivers/gpu/drm/amd/display/dc/clk_mgr clk_mgr.c, drivers/gpu/drm/amd/display/dc/resource/dcn302 dcn302_resource.c

Convert more 'alloc_obj' cases to default GFP_KERNEL arguments

This converts some of the visually simpler cases that have been split
over multiple lines.  I only did the ones that are easy to verify the
resulting diff by having just that final GFP_KERNEL argument on the next
line.

Somebody should probably do a proper coccinelle script for this, but for
me the trivial script actually resulted in an assertion failure in the
middle of the script.  I probably had made it a bit _too_ trivial.

So after fighting that far a while I decided to just do some of the
syntactically simpler cases with variations of the previous 'sed'
scripts.

The more syntactically complex multi-line cases would mostly really want
whitespace cleanup anyway.

Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
DeltaFile
+14-28drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c
+12-24drivers/pci/hotplug/ibmphp_pci.c
+9-18drivers/gpu/drm/amd/display/dc/resource/dcn302/dcn302_resource.c
+9-18drivers/gpu/drm/amd/display/dc/resource/dcn303/dcn303_resource.c
+8-16drivers/net/ethernet/intel/idpf/idpf_txrx.c
+7-14drivers/gpu/drm/amd/pm/powerplay/hwmgr/processpptables.c
+59-118820 files not shown
+1,211-2,422826 files

Linux/linux bf4afc5drivers/net/wireless/marvell mwl8k.c, drivers/net/wireless/ti/wl1251 acx.c

Convert 'alloc_obj' family to use the new default GFP_KERNEL argument

This was done entirely with mindless brute force, using

    git grep -l '\<k[vmz]*alloc_objs*(.*, GFP_KERNEL)' |
        xargs sed -i 's/\(alloc_objs*(.*\), GFP_KERNEL)/\1)/'

to convert the new alloc_obj() users that had a simple GFP_KERNEL
argument to just drop that argument.

Note that due to the extreme simplicity of the scripting, any slightly
more complex cases spread over multiple lines would not be triggered:
they definitely exist, but this covers the vast bulk of the cases, and
the resulting diff is also then easier to check automatically.

For the same reason the 'flex' versions will be done as a separate
conversion.

Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
DeltaFile
+51-51drivers/net/wireless/ti/wlcore/acx.c
+40-40drivers/net/wireless/marvell/mwl8k.c
+35-35drivers/net/wireless/ti/wl1251/acx.c
+26-26drivers/scsi/hpsa.c
+25-25drivers/net/wireless/ti/wlcore/cmd.c
+24-24lib/test_bpf.c
+201-2016,667 files not shown
+13,013-13,0136,673 files

Linux/linux 323bbfcdrivers/net/ethernet/engleder tsnep_selftests.c, fs/nfsd blocklayout.c

Convert 'alloc_flex' family to use the new default GFP_KERNEL argument

This is the exact same thing as the 'alloc_obj()' version, only much
smaller because there are a lot fewer users of the *alloc_flex()
interface.

As with alloc_obj() version, this was done entirely with mindless brute
force, using the same script, except using 'flex' in the pattern rather
than 'objs*'.

Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
DeltaFile
+7-7net/wireless/nl80211.c
+5-5net/sched/cls_u32.c
+4-4lib/assoc_array.c
+3-3net/wireless/reg.c
+3-3drivers/net/ethernet/engleder/tsnep_selftests.c
+3-3fs/nfsd/blocklayout.c
+25-25304 files not shown
+352-352310 files

Linux/linux e19e1b4include/linux slab.h gfp.h

add default_gfp() helper macro and use it in the new *alloc_obj() helpers

Most simple allocations use GFP_KERNEL, and with the new allocation
helpers being introduced, let's just take advantage of that to simplify
that default case.

It's a numbers game:

    git grep 'alloc_obj(' |
        sed 's/.*\(GFP_[_A-Z]*\).*/\1/' |
        sort | uniq -c | sort -n | tail

shows that about 90% of all those new allocator instances just use that
standard GFP_KERNEL.

Those helpers are already macros, and we can easily just make it be the
default case when the gfp argument is missing.

And yes, we could do that for all the legacy interfaces too, but let's

    [8 lines not shown]
DeltaFile
+24-24include/linux/slab.h
+4-0include/linux/gfp.h
+28-242 files

Linux/linux fa5c82finclude/linux slab.h overflow.h

slab.h: disable completely broken overflow handling in flex allocations

Commit 69050f8d6d07 ("treewide: Replace kmalloc with kmalloc_obj for
non-scalar types") started using the new allocation helpers, and in the
process showed that they were completely non-working.

The overflow logic in overflows_flex_counter_type() is completely the
wrong way around, and that broke __alloc_flex() completely.  By chance,
the resulting code was then such a mess that clang generated
sufficiently garbage code that objtool warned about it all.  Which made
it somewhat quicker to narrow things down.

While fixing overflows_flex_counter_type() would presumably fix this
all, I'm excising the whole broken overflow logic from __alloc_flex(),
because we don't want that kind of code in basic allocation functions
anyway.

That (no longer) broken overflows_flex_counter_type() thing needs to be
inserted into the actual __set_flex_counter() logic in the unlikely case

    [7 lines not shown]
DeltaFile
+1-5include/linux/slab.h
+1-1include/linux/overflow.h
+2-62 files

Linux/linux 8934827drivers/net/ethernet/intel/idpf idpf_txrx.c, drivers/net/wireless/marvell mwl8k.c

Merge tag 'kmalloc_obj-treewide-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux

Pull kmalloc_obj conversion from Kees Cook:
 "This does the tree-wide conversion to kmalloc_obj() and friends using
  coccinelle, with a subsequent small manual cleanup of whitespace
  alignment that coccinelle does not handle.

  This uncovered a clang bug in __builtin_counted_by_ref(), so the
  conversion is preceded by disabling that for current versions of
  clang.  The imminent clang 22.1 release has the fix.

  I've done allmodconfig build tests for x86_64, arm64, i386, and arm. I
  did defconfig builds for alpha, m68k, mips, parisc, powerpc, riscv,
  s390, sparc, sh, arc, csky, xtensa, hexagon, and openrisc"

* tag 'kmalloc_obj-treewide-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
  kmalloc_obj: Clean up after treewide replacements
  treewide: Replace kmalloc with kmalloc_obj for non-scalar types
  compiler_types: Disable __builtin_counted_by_ref for Clang
DeltaFile
+51-52drivers/net/wireless/ti/wlcore/acx.c
+42-47drivers/scsi/lpfc/lpfc_init.c
+40-40drivers/net/wireless/marvell/mwl8k.c
+37-43drivers/net/ethernet/intel/idpf/idpf_txrx.c
+35-41net/wireless/nl80211.c
+38-37drivers/staging/rtl8723bs/core/rtw_cmd.c
+243-2608,012 files not shown
+20,062-20,9148,018 files

Linux/linux c7decectools/perf builtin-sched.c, tools/perf/arch/x86/annotate instructions.c

Merge tag 'perf-tools-for-v7.0-1-2026-02-21' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools

Pull perf tools updates from Arnaldo Carvalho de Melo:

 - Introduce 'perf sched stats' tool with record/report/diff workflows
   using schedstat counters

 - Add a faster libdw based addr2line implementation and allow selecting
   it or its alternatives via 'perf config addr2line.style='

 - Data-type profiling fixes and improvements including the ability to
   select fields using 'perf report''s -F/-fields, e.g.:

     'perf report --fields overhead,type'

 - Add 'perf test' regression tests for Data-type profiling with C and
   Rust workloads

 - Fix srcline printing with inlines in callchains, make sure this has

    [70 lines not shown]
DeltaFile
+1,129-0tools/perf/pmu-events/intel_metrics.py
+1,106-0tools/perf/pmu-events/arch/x86/amdzen6/floating-point.json
+1,033-1tools/perf/builtin-sched.c
+820-0tools/perf/util/annotate-arch/annotate-x86.c
+0-783tools/perf/arch/x86/annotate/instructions.c
+523-0tools/perf/pmu-events/arch/x86/amdzen6/load-store.json
+4,611-784337 files not shown
+18,409-7,187343 files