Commit Graph

278 Commits

Author SHA1 Message Date
Sid Nayyar
a3fde76f1e ANDROID: enforce symbol import protection
The module loader will check each unsigned module's imported symbols
against the generated list of permitted imports. If any lookup fails,
the module will be rejected and fail to load.

Bug: 393366754
Change-Id: Ifd4d242135eaba1f215f982c5d6e8a76b1fc8522
Signed-off-by: Sid Nayyar <sidnayyar@google.com>
2025-05-28 08:22:31 -07:00
Sid Nayyar
19ee9bccea ANDROID: modpost: generate permitted imports
These are symbols permitted to be imported by unsigned modules.

* kernel/module/internal.h - declares permitted imports
* modpost generates permitted-imports.c - defines permitted imports

Bug: 393366754
Change-Id: I8f884a11b32565e82ace25b61f32c4f23c190670
Signed-off-by: Sid Nayyar <sidnayyar@google.com>
2025-05-28 08:22:31 -07:00
Sid Nayyar
cf33526ab7 ANDROID: enforce symbol export protection
The module loader will check each unsigned module's exported symbols
against the generated list of protected exports. If a match is found,
the module will be rejected and fail to load.

Bug: 393366754
Change-Id: I2157e193042d30880ca603802f3d79daf7498308
Signed-off-by: Sid Nayyar <sidnayyar@google.com>
2025-05-28 08:22:31 -07:00
Sid Nayyar
48559833d1 ANDROID: modpost: generate protected exports
These are symbols that unsigned modules may not export.

* kernel/module/internal.h - declares protected exports
* modpost generates protected-exports.c - defines protected exports

Bug: 393366754
Change-Id: I3e6d630542875e35754126e64bc279313fc131b9
Signed-off-by: Sid Nayyar <sidnayyar@google.com>
2025-05-28 08:22:31 -07:00
Sid Nayyar
54bfd8db38 ANDROID: add MODULE_SIG_PROTECT and MODULE_SIG_PROTECT_LIST options
MODULE_SIG_PROTECT_LIST - list of modules whose exports to protect

MODULE_SIG_PROTECT - readonly, set automatically based on the value of
MODULE_SIG_PROTECT_LIST; used for determining whether symbol exportion
is enabled in scripts, Makefiles and preprocessor directives

Bug: 393366754
Change-Id: I70bb82c24dcd18de5bb3db4924acca5799539fc9
Signed-off-by: Sid Nayyar <sidnayyar@google.com>
2025-05-28 08:22:31 -07:00
Sid Nayyar
255e2003ee Revert "ANDROID: GKI: Add script to generate symbol protection headers"
Bug: 393366754
Change-Id: Ie426f398ff76c1221afc87de68f9ecdb71f15eb7
Signed-off-by: Sid Nayyar <sidnayyar@google.com>
2025-05-28 08:22:31 -07:00
Yifan Hong
c785c4c1ec ANDROID: Revert^2 "Set ALL_KMI_SYMBOLS to CONFIG_UNUSED_KSYMS_WHITELIST."
This reverts commit 386a5a9207.

Reason for revert: fix issue by adding back AARCH variable.

Bug: 406094444
Change-Id: I07c96726b1e9a0d89974cd85dcbc331b090b72da
Signed-off-by: HONG Yifan <elsk@google.com>
2025-04-08 12:34:10 -07:00
Ulises Mendez Martinez
386a5a9207 Revert "ANDROID: Set ALL_KMI_SYMBOLS to CONFIG_UNUSED_KSYMS_WHITELIST."
This reverts commit ddb277b9c7.

Reason for revert: cherry-pick have accidentally removed `AARCH` variable which might break exports protection.

Change-Id: I48586601bee13e52b744654ef09b109f09a5c29d
2025-04-08 10:08:03 -07:00
HONG Yifan
ddb277b9c7 ANDROID: Set ALL_KMI_SYMBOLS to CONFIG_UNUSED_KSYMS_WHITELIST.
Kleaf already generates CONFIG_UNUSED_KSYMS_WHITELIST according to
the list of provided KMI symbol lists (kernel_build.kmi_symbol_list
plus kernel_build.additional_kmi_symbol_lists).
CONFIG_UNUSED_KSYMS_WHITELIST is the source of truth, not the wildcard
here, especially if --user_kmi_symbol_list is set, or
kernel_build.kmi_symbol_list or additional_kmi_symbol_lists contains
files in different directories. Use CONFIG_UNUSED_KSYMS_WHITELIST
directly.

For mainline, CONFIG_UNUSED_KSYMS_WHITELIST is not set, so use
an empty file as a placeholder.

Bug: 406094444
Change-Id: Ia62c7a2e40ca607ac6f0d7e91c732044ec559282
Signed-off-by: HONG Yifan <elsk@google.com>
(cherry picked from commit b100dc1133ad4fbb9fd14c1dd91c00363cab44ec)
2025-04-08 06:14:08 -07:00
Ulises Mendez Martinez
0624b02f57 ANDROID: Update paths for GKI/ABI source files
Bug: 393044622
Change-Id: I25b1d60229adedf1cdc9ef675920d46d4a9cfa72
Signed-off-by: Ulises Mendez Martinez <umendez@google.com>
2025-03-12 05:06:46 -07:00
Giuliano Procida
412b2860b4 ANDROID: GKI: populate ALL_KMI_SYMBOLS for all architectures
This change removes the artificial restriction to amd64 / aarch64.

Bug: 393044622
Bug: 372188974
Change-Id: Id83a6ea1da2b0a362ca7fff1cff895859b0e5974
Signed-off-by: Giuliano Procida <gprocida@google.com>
2025-03-12 05:06:27 -07:00
Giuliano Procida
1dfd260fc2 ANDROID: GKI: simplify ABI file matching
This commit introduces the Makefile variable AARCH to abstract away the
difference between Linux and GKI architecture names.

Bug: 393044622
Bug: 372188974
Change-Id: I345510055ccce7f849ab86f90f3457ac57226efa
Signed-off-by: Giuliano Procida <gprocida@google.com>
2025-03-12 05:05:32 -07:00
Suren Baghdasaryan
9df0fb3258 BACKPORT: alloc_tag: load module tags into separate contiguous memory
When a module gets unloaded there is a possibility that some of the
allocations it made are still used and therefore the allocation tags
corresponding to these allocations are still referenced.  As such, the
memory for these tags can't be freed.  This is currently handled as an
abnormal situation and module's data section is not being unloaded.  To
handle this situation without keeping module's data in memory, allow
codetags with longer lifespan than the module to be loaded into their own
separate memory.  The in-use memory areas and gaps after module unloading
in this separate memory are tracked using maple trees.  Allocation tags
arrange their separate memory so that it is virtually contiguous and that
will allow simple allocation tag indexing later on in this patchset.  The
size of this virtually contiguous memory is set to store up to 100000
allocation tags.

[surenb@google.com: fix empty codetag module section handling]
  Link: https://lkml.kernel.org/r/20241101000017.3856204-1-surenb@google.com
[akpm@linux-foundation.org: update comment, per Dan]
Link: https://lkml.kernel.org/r/20241023170759.999909-4-surenb@google.com
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Borislav Petkov (AMD) <bp@alien8.de>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Daniel Gomez <da.gomez@samsung.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: David Rientjes <rientjes@google.com>
Cc: Dennis Zhou <dennis@kernel.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Kalesh Singh <kaleshsingh@google.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Liam R. Howlett <Liam.Howlett@Oracle.com>
Cc: Luis Chamberlain <mcgrof@kernel.org>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport (Microsoft) <rppt@kernel.org>
Cc: Minchan Kim <minchan@google.com>
Cc: Paul E. McKenney <paulmck@kernel.org>
Cc: Petr Pavlu <petr.pavlu@suse.com>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Sami Tolvanen <samitolvanen@google.com>
Cc: Sourav Panda <souravpanda@google.com>
Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas Huth <thuth@redhat.com>
Cc: Uladzislau Rezki (Sony) <urezki@gmail.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Xiongwei Song <xiongwei.song@windriver.com>
Cc: Yu Zhao <yuzhao@google.com>
Cc: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Conflicts:
        kernel/module/main.c

1. fix merge conflict in module_memory_free() due to the missing ROX
patchset.
2. fix merge conflicts in move_module() due to the missing ROX
patchset.

(cherry picked from commit 0db6f8d7820a4b788565dac8eed52bfc2c3216da)
Bug: 380948583
Change-Id: I1980dffdea3161ad6dc4daa3f4eadf1e7bb77377
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2025-02-12 07:50:05 -08:00
Greg Kroah-Hartman
9634c94147 Merge 6.12.13 into android16-6.12
GKI (arm64) relevant 102 out of 584 changes, affecting 165 files +1491/-594
  4338831b83 coredump: Do not lock during 'comm' reporting [1 file, +2/-2]
  784908004f fs: fix proc_handler for sysctl_nr_open [1 file, +1/-1]
  f83f330fc4 block: retry call probe after request_module in blk_request_module [1 file, +17/-5]
  e278c7ff75 block: check BLK_FEAT_POLL under q_usage_count [2 files, +22/-12]
  d313ff5308 block: don't update BLK_FEAT_POLL in __blk_mq_update_nr_hw_queues [4 files, +22/-26]
  4621771de1 nvme: Add error check for xa_store in nvme_get_effects_log [1 file, +6/-2]
  e8c390a9a5 nvme: Add error path for xa_store in nvme_init_effects [1 file, +22/-4]
  68303b5d38 select: Fix unbalanced user_access_end() [1 file, +2/-2]
  1e8c151fb2 nvme: fix bogus kzalloc() return check in nvme_init_effects_log() [1 file, +1/-1]
  e4b64d34a4 sched/fair: Untangle NEXT_BUDDY and pick_next_task() [2 files, +11/-2]
  5bb4039f77 sched/fair: Fix value reported by hot tasks pulled in /proc/schedstat [2 files, +14/-4]
  fd2818c5e0 sched: Split out __schedule() deactivate task logic into a helper [1 file, +40/-27]
  3f1215588b sched: psi: pass enqueue/dequeue flags to psi callbacks directly [3 files, +53/-44]
  10a7d3e734 psi: Fix race when task wakes up before psi_sched_switch() adjusts flags [2 files, +7/-3]
  ebaeca33d3 HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections [1 file, +2/-0]
  7d68c20638 OPP: add index check to assert to avoid buffer overflow in _read_freq() [1 file, +27/-15]
  ff2def2518 OPP: fix dev_pm_opp_find_bw_*() when bandwidth table not initialized [1 file, +13/-2]
  82bd38bd54 net_sched: sch_sfq: handle bigger packets [1 file, +13/-26]
  7d8947f215 net_sched: sch_sfq: don't allow 1 packet limit [1 file, +4/-0]
  e561d1a2ba clk: fix an OF node reference leak in of_clk_get_parent_name() [1 file, +3/-1]
  bd1bb30b9f HID: multitouch: fix support for Goodix PID 0x01e9 [1 file, +1/-1]
  d474a73856 inetpeer: remove create argument of inet_getpeer_v[46]() [7 files, +11/-12]
  dc4fd82dad inetpeer: remove create argument of inet_getpeer() [2 files, +5/-13]
  4622e45097 inetpeer: update inetpeer timestamp in inet_getpeer() [1 file, +4/-8]
  9345b588f8 inetpeer: do not get a refcount in inet_getpeer() [7 files, +32/-29]
  4f8344fce9 udp: Deal with race between UDP socket address change and rehash [2 files, +106/-0]
  a7175e363a dt-bindings: clock: imx93: Drop IMX93_CLK_END macro definition [1 file, +0/-1]
  036f2f5109 dt-bindings: clock: imx93: Add SPDIF IPG clk [1 file, +1/-0]
  5078123528 regulator: of: Implement the unwind path of of_regulator_match() [1 file, +13/-1]
  8937f5e38a ax25: rcu protect dev->ax25_ptr [7 files, +35/-20]
  3d62a5037f OPP: OF: Fix an OF node leak in _opp_add_static_v2() [1 file, +3/-1]
  a3bdd14936 HID: fix generic desktop D-Pad controls [2 files, +18/-20]
  a8251d3a4c mfd: syscon: Fix race in device_node_get_regmap() [1 file, +10/-9]
  984e7d2aa0 wifi: mac80211: Fix common size calculation for ML element [1 file, +3/-8]
  df2f2d9199 Bluetooth: btbcm: Fix NULL deref in btbcm_get_board_name() [1 file, +3/-0]
  f98ccd7d77 dev: Acquire netdev_rename_lock before restoring dev->name in dev_change_name(). [1 file, +2/-0]
  33e2168788 net: let net.core.dev_weight always be non-zero [1 file, +4/-1]
  b382ab9b88 net: avoid race between device unregistration and ethnl ops [1 file, +1/-1]
  73c7e1d689 net: sched: Disallow replacing of child qdisc from one parent to another [1 file, +4/-0]
  d7fe7e1bbe netfilter: nf_tables: fix set size with rbtree backend [3 files, +96/-2]
  5213efec90 net: sched: refine software bypass handling in tc_run [8 files, +55/-45]
  a0753466f0 tcp_cubic: fix incorrect HyStart round start detection [1 file, +5/-3]
  b7de862bda crypto: api - Fix boot-up self-test race [1 file, +2/-2]
  b002750000 bpf: bpf_local_storage: Always use bpf_mem_alloc in PREEMPT_RT [1 file, +6/-2]
  eb2e58484b rhashtable: Fix potential deadlock by moving schedule_work outside lock [1 file, +6/-4]
  8e7d29b698 bpf: Use refcount_t instead of atomic_t for mmap_count [1 file, +4/-4]
  b777b14c2a bpf: Reject struct_ops registration that uses module ptr and the module btf_id is missing [3 files, +26/-5]
  78b9778349 bpf: Send signals asynchronously if !preemptible [1 file, +1/-1]
  0e272fe6a0 bpf: tcp: Mark bpf_load_hdr_opt() arg2 as read-write [1 file, +1/-1]
  f939008a52 rhashtable: Fix rhashtable_try_insert test [1 file, +7/-5]
  33e47d9573 bpf: Cancel the running bpf_timer through kworker for PREEMPT_RT [1 file, +16/-2]
  6cffdf4838 of: property: Avoiding using uninitialized variable @imaplen in parse_interrupt_map() [1 file, +1/-1]
  92ed1efb6a of: reserved-memory: Do not make kmemleak ignore freed address [1 file, +2/-1]
  9a0fe62f93 of: reserved_mem: Restructure how the reserved memory regions are processed [3 files, +122/-54]
  e61977c714 of/fdt: Restore possibility to use both ACPI and FDT from bootloader [1 file, +1/-9]
  45e1246e5c PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy() [1 file, +1/-1]
  58465dfc42 media: uvcvideo: Propagate buf->error to userspace [1 file, +2/-1]
  a2c80a1881 PCI: qcom: Update ICC and OPP values after Link Up event [1 file, +2/-0]
  a665fab63d PCI: dwc: Always stop link in the dw_pcie_suspend_noirq [1 file, +1/-0]
  0e0ac81d51 scsi: ufs: bsg: Delete bsg_dev when setting up bsg fails [1 file, +1/-0]
  4896402780 erofs: fix potential return value overflow of z_erofs_shrink_scan() [1 file, +1/-2]
  565611d101 module: Extend the preempt disabled section in dereference_symbol_descriptor(). [1 file, +1/-1]
  fd41b2e9aa module: Don't fail module loading when setting ro_after_init section RO failed [1 file, +4/-3]
  1614e75d1a driver core: class: Fix wild pointer dereferences in API class_dev_iter_next() [1 file, +8/-1]
  b35a3edc7c serial: 8250: Adjust the timeout for FIFO mode [1 file, +26/-6]
  87fdd4c447 xfrm: replay: Fix the update of replay_esn->oseq_hi for GSO [1 file, +6/-4]
  2a64cff2aa xfrm: Add support for per cpu xfrm state handling. [6 files, +112/-22]
  aa48a18fdb xfrm: Cache used outbound xfrm states at the policy. [3 files, +71/-0]
  5e4334dc39 xfrm: Add an inbound percpu state cache. [6 files, +70/-7]
  a16871c783 xfrm: state: fix out-of-bounds read during lookup [1 file, +70/-19]
  6945701ca1 xfrm: delete intermediate secpath entry in packet offload mode [1 file, +13/-3]
  24ac5b7524 regulator: core: Add missing newline character [1 file, +1/-1]
  a099834a51 ipmr: do not call mr_mfc_uses_dev() for unres entries [1 file, +0/-3]
  3b732c60a0 PM: hibernate: Add error handling for syscore_suspend() [1 file, +6/-1]
  e468aace40 xfrm: Don't disable preemption while looking up cache state. [1 file, +1/-3]
  3e44707da8 ptp: Properly handle compat ioctls [1 file, +4/-0]
  a68d7a9fb8 ethtool: Fix set RXNFC command with symmetric RSS hash [1 file, +1/-1]
  a06bb37d65 vsock: Allow retrying on connect() failure [1 file, +5/-0]
  1dd823a46e tcp: correct handling of extreme memory squeeze [1 file, +6/-3]
  557707906d net: xdp: Disallow attaching device-bound programs in generic mode [1 file, +4/-0]
  a23834b782 genksyms: fix memory leak when the same symbol is added from source [2 files, +15/-2]
  52f0a28e17 genksyms: fix memory leak when the same symbol is read from *.symref file [3 files, +9/-5]
  206d8e0242 io_uring/uring_cmd: use cached cmd_op in io_uring_cmd_sock() [1 file, +1/-1]
  6e26ca1818 kconfig: fix file name in warnings when loading KCONFIG_DEFCONFIG_LIST [1 file, +4/-2]
  e4e8ed67e0 kconfig: fix memory leak in sym_warn_unmet_dep() [1 file, +1/-0]
  00d1943fe4 f2fs: Introduce linear search for dentries [3 files, +45/-19]
  e0216c39b4 ALSA: usb-audio: Add delay quirk for iBasso DC07 Pro [1 file, +2/-0]
  f395b7efce net: usb: rtl8150: enable basic endpoint checking [1 file, +22/-0]
  ae069cd2ba usb: xhci: Fix NULL pointer dereference on certain command aborts [1 file, +2/-1]
  ebba1bebf0 usb: dwc3: core: Defer the probe until USB power supply ready [1 file, +21/-9]
  01c74aeac2 usb: dwc3: Skip resume if pm_runtime_set_active() fails [1 file, +4/-1]
  ce5c91a1b2 usb: typec: tcpm: set SRC_SEND_CAPABILITIES timeout to PD_T_SENDER_RESPONSE [1 file, +1/-1]
  15b50cbc6f usb: typec: tcpci: Prevent Sink disconnection before vPpsShutdown in SPR PPS [3 files, +16/-8]
  f2013d19b7 remoteproc: core: Fix ida_free call while not allocated [1 file, +7/-7]
  d1f8e69eec media: uvcvideo: Fix double free in error path [1 file, +1/-0]
  8de4e5a922 of: reserved-memory: Warn for missing static reserved memory regions [1 file, +5/-0]
  698943070e dma-mapping: save base/size instead of pointer to shared DMA pool [1 file, +8/-6]
  78b366aa0e xfrm: Add error handling when nla_put_u32() returns an error [1 file, +4/-1]
  364d7e7f30 xfrm: Fix acquire state insertion. [1 file, +1/-0]
  1cf2177959 ethtool: Fix access to uninitialized fields in set RXNFC command [1 file, +2/-1]
  c3a3741db8 memcg: fix soft lockup in the OOM process [2 files, +13/-2]
  333f128224 ethtool: ntuple: fix rss + ring_cookie check [1 file, +1/-1]

Changes in 6.12.13
	coredump: Do not lock during 'comm' reporting
	powerpc/book3s64/hugetlb: Fix disabling hugetlb when fadump is active
	dlm: fix removal of rsb struct that is master and dir record
	dlm: fix srcu_read_lock() return type to int
	afs: Fix EEXIST error returned from afs_rmdir() to be ENOTEMPTY
	afs: Fix directory format encoding struct
	afs: Fix cleanup of immediately failed async calls
	fs: fix proc_handler for sysctl_nr_open
	block: copy back bounce buffer to user-space correctly in case of split
	block: retry call probe after request_module in blk_request_module
	ps3disk: Do not use dev->bounce_size before it is set
	nbd: don't allow reconnect after disconnect
	pstore/blk: trivial typo fixes
	block: check BLK_FEAT_POLL under q_usage_count
	block: don't update BLK_FEAT_POLL in __blk_mq_update_nr_hw_queues
	nvme-tcp: Fix I/O queue cpu spreading for multiple controllers
	nvme: Add error check for xa_store in nvme_get_effects_log
	powerpc/pseries/iommu: IOMMU incorrectly marks MMIO range in DDW
	selftests/powerpc: Fix argument order to timer_sub()
	nvme: Add error path for xa_store in nvme_init_effects
	btrfs: improve the warning and error message for btrfs_remove_qgroup()
	partitions: ldm: remove the initial kernel-doc notation
	btrfs: subpage: fix the bitmap dump of the locked flags
	select: Fix unbalanced user_access_end()
	nvme: fix bogus kzalloc() return check in nvme_init_effects_log()
	afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call
	perf/core: Save raw sample data conditionally based on sample type
	sched/fair: Untangle NEXT_BUDDY and pick_next_task()
	sched/fair: Fix value reported by hot tasks pulled in /proc/schedstat
	sched: Fix race between yield_to() and try_to_wake_up()
	x86/cpu: Enable SD_ASYM_PACKING for PKG domain on AMD
	x86/topology: Use x86_sched_itmt_flags for PKG domain unconditionally
	sched: Split out __schedule() deactivate task logic into a helper
	sched: psi: pass enqueue/dequeue flags to psi callbacks directly
	psi: Fix race when task wakes up before psi_sched_switch() adjusts flags
	drm/v3d: Fix performance counter source settings on V3D 7.x
	drm/rockchip: vop2: fix rk3588 dp+dsi maxclk verification
	drm/msm/dp: set safe_to_exit_level before printing it
	drm/msm/hdmi: simplify code in pll_get_integloop_gain
	drm/etnaviv: Fix page property being used for non writecombine buffers
	HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections
	drm/amd/pm: Fix an error handling path in vega10_enable_se_edc_force_stall_config()
	drm/amdgpu: Fix potential NULL pointer dereference in atomctrl_get_smc_sclk_range_table
	drm/rockchip: vop2: Fix cluster windows alpha ctrl regsiters offset
	drm/rockchip: vop2: Fix the mixer alpha setup for layer 0
	drm/panthor: Preserve the result returned by panthor_fw_resume()
	drm/rockchip: vop2: Fix the windows switch between different layers
	printk: Defer legacy printing when holding printk_cpu_sync
	drm/connector: Allow clearing HDMI infoframes
	drm/rockchip: vop2: Set AXI id for rk3588
	drm/rockchip: vop2: Setup delay cycle for Esmart2/3
	drm/rockchip: vop2: Check linear format for Cluster windows on rk3566/8
	drm/rockchip: vop2: Add check for 32 bpp format for rk3588
	drm/rockchip: vop2: include rockchip_drm_drv.h
	drm/amdgpu/vcn: reset fw_shared under SRIOV
	OPP: add index check to assert to avoid buffer overflow in _read_freq()
	OPP: fix dev_pm_opp_find_bw_*() when bandwidth table not initialized
	drm/msm/dpu: provide DSPP and correct LM config for SDM670
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8150
	drm/msm/dpu: link DSPP_2/_3 blocks on SC8180X
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8250
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8350
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8550
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8650
	drm/msm/dpu: link DSPP_2/_3 blocks on X1E80100
	drm/msm: Check return value of of_dma_configure()
	drm/msm: don't clean up priv->kms prematurely
	drm/msm/mdp4: correct LCDC regulator name
	drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
	drm/amdgpu: tear down ttm range manager for doorbell in amdgpu_ttm_fini()
	Revert "drm/amdgpu/gfx9: put queue resets behind a debug option"
	drm/amdgpu: fix gpu recovery disable with per queue reset
	genirq: Make handle_enforce_irqctx() unconditionally available
	ipmi: ipmb: Add check devm_kasprintf() returned value
	wifi: ath11k: Fix unexpected return buffer manager error for WCN6750/WCN6855
	wifi: rtlwifi: rtl8821ae: phy: restore removed code to fix infinite loop
	wifi: rtlwifi: do not complete firmware loading needlessly
	wifi: rtlwifi: rtl8192se: rise completion of firmware loading as last step
	wifi: rtlwifi: wait for firmware loading before releasing memory
	wifi: rtlwifi: fix init_sw_vars leak when probe fails
	wifi: rtlwifi: usb: fix workqueue leak when probe fails
	wifi: wcn36xx: fix channel survey memory allocation size
	clk: renesas: cpg-mssr: Fix 'soc' node handling in cpg_mssr_reserved_init()
	wifi: cfg80211: tests: Fix potential NULL dereference in test_cfg80211_parse_colocated_ap()
	selftests/bpf: Actuate tx_metadata_len in xdp_hw_metadata
	net_sched: sch_sfq: handle bigger packets
	net_sched: sch_sfq: don't allow 1 packet limit
	spi: zynq-qspi: Add check for clk_enable()
	rxrpc: Fix handling of received connection abort
	dt-bindings: mmc: controller: clarify the address-cells description
	clk: fix an OF node reference leak in of_clk_get_parent_name()
	dt-bindings: leds: class-multicolor: Fix path to color definitions
	wifi: rtlwifi: remove unused check_buddy_priv
	wifi: rtlwifi: destroy workqueue at rtl_deinit_core
	wifi: rtlwifi: fix memory leaks and invalid access at probe error path
	wifi: rtlwifi: pci: wait for firmware loading before releasing memory
	HID: multitouch: fix support for Goodix PID 0x01e9
	regulator: dt-bindings: mt6315: Drop regulator-compatible property
	wifi: brcmfmac: add missing header include for brcmf_dbg
	module: Convert default symbol namespace to string literal
	hwmon: (nct6775): Actually make use of the HWMON_NCT6775 symbol namespace
	ACPI: fan: cleanup resources in the error path of .probe()
	cpupower: fix TSC MHz calculation
	dt-bindings: mfd: bd71815: Fix rsense and typos
	leds: netxbig: Fix an OF node reference leak in netxbig_leds_get_of_pdata()
	inetpeer: remove create argument of inet_getpeer_v[46]()
	inetpeer: remove create argument of inet_getpeer()
	inetpeer: update inetpeer timestamp in inet_getpeer()
	inetpeer: do not get a refcount in inet_getpeer()
	pwm: stm32-lp: Add check for clk_enable()
	cpufreq: schedutil: Fix superfluous updates caused by need_freq_update
	selftests: ktap_helpers: Fix uninitialized variable
	ptr_ring: do not block hard interrupts in ptr_ring_resize_multiple()
	net: airoha: Fix error path in airoha_probe()
	gpio: pca953x: log an error when failing to get the reset GPIO
	cpufreq: qcom: Fix qcom_cpufreq_hw_recalc_rate() to query LUT if LMh IRQ is not available
	cpufreq: qcom: Implement clk_ops::determine_rate() for qcom_cpufreq* clocks
	udp: Deal with race between UDP socket address change and rehash
	clk: imx8mp: Fix clkout1/2 support
	dt-bindings: clock: imx93: Drop IMX93_CLK_END macro definition
	dt-bindings: clock: Add i.MX91 clock support
	dt-bindings: clock: imx93: Add SPDIF IPG clk
	clk: imx93: Move IMX93_CLK_END macro to clk driver
	clk: imx: add i.MX91 clk
	clk: imx93: Add IMX93_CLK_SPDIF_IPG clock
	arm64: dts: imx93: Use IMX93_CLK_SPDIF_IPG as SPDIF IPG clock
	clk: imx: Apply some clks only for i.MX93
	clk: qcom: camcc-x1e80100: Set titan_top_gdsc as the parent GDSC of subordinate GDSCs
	team: prevent adding a device which is already a team device lower
	dt-bindings: clock: sunxi: Export PLL_VIDEO_2X and PLL_MIPI
	clk: sunxi-ng: a64: drop redundant CLK_PLL_VIDEO0_2X and CLK_PLL_MIPI
	clk: sunxi-ng: a64: stop force-selecting PLL-MIPI as TCON0 parent
	regulator: of: Implement the unwind path of of_regulator_match()
	ax25: rcu protect dev->ax25_ptr
	net/mlx5: HWS, fix definer's HWS_SET32 macro for negative offset
	OPP: OF: Fix an OF node leak in _opp_add_static_v2()
	ipmi: ssif_bmc: Fix new request loss when bmc ready for a response
	wifi: ath12k: fix tx power, max reg power update to firmware
	clk: qcom: gcc-sdm845: Do not use shared clk_ops for QUPs
	HID: hid-thrustmaster: Fix warning in thrustmaster_probe by adding endpoint check
	HID: fix generic desktop D-Pad controls
	leds: cht-wcove: Use devm_led_classdev_register() to avoid memory leak
	mfd: syscon: Fix race in device_node_get_regmap()
	samples/landlock: Fix possible NULL dereference in parse_path()
	wifi: mt76: mt7996: fix invalid interface combinations
	wifi: wlcore: fix unbalanced pm_runtime calls
	wifi: rtw89: handle entity active flag per PHY
	wifi: rtw89: chan: manage active interfaces
	wifi: rtw89: tweak setting of channel and TX power for MLO
	wifi: rtw89: fix proceeding MCC with wrong scanning state after sequence changes
	wifi: rtw89: chan: fix soft lockup in rtw89_entity_recalc_mgnt_roles()
	wifi: rtw89: avoid to init mgnt_entry list twice when WoWLAN failed
	wifi: rtw89: mcc: consider time limits not divisible by 1024
	wifi: rtw89: fix race between cancel_hw_scan and hw_scan completion
	hwmon: Fix help text for aspeed-g6-pwm-tach
	wifi: mt76: mt7925: fix off by one in mt7925_load_clc()
	wifi: mt76: mt7915: Fix mesh scan on MT7916 DBDC
	wifi: iwlwifi: fw: read STEP table from correct UEFI var
	wifi: iwlwifi: mvm: avoid NULL pointer dereference
	wifi: iwlwifi: mvm: don't count mgmt frames as MPDU
	wifi: mac80211: prohibit deactivating all links
	wifi: cfg80211: Move cfg80211_scan_req_add_chan() n_channels increment earlier
	wifi: mac80211: fix tid removal during mesh forwarding
	wifi: mac80211: Fix common size calculation for ML element
	wifi: mac80211: don't flush non-uploaded STAs
	clk: ralink: mtmips: remove duplicated 'xtal' clock for Ralink SoC RT3883
	clk: thead: Fix clk gate registration to pass flags
	clk: thead: Add CLK_IGNORE_UNUSED to fix TH1520 boot
	clk: thead: Fix cpu2vp_clk for TH1520 AP_SUBSYS clocks
	net/smc: fix data error when recvmsg with MSG_PEEK flag
	landlock: Handle weird files
	wifi: mt76: mt76u_vendor_request: Do not print error messages when -EPROTO
	wifi: mt76: mt7921: fix using incorrect group cipher after disconnection.
	wifi: mt76: mt7915: Fix an error handling path in mt7915_add_interface()
	wifi: mt76: mt7925: fix NULL deref check in mt7925_change_vif_links
	wifi: mt76: mt7925: fix wrong band_idx setting when enable sniffer mode
	wifi: mt76: mt7925: fix get wrong chip cap from incorrect pointer
	wifi: mt76: mt7925: fix the invalid ip address for arp offload
	wifi: mt76: mt7996: fix overflows seen when writing limit attributes
	wifi: mt76: mt7915: fix overflows seen when writing limit attributes
	wifi: mt76: connac: Extend mt76_connac_mcu_uni_add_dev for MLO
	wifi: mt76: mt7925: Fix incorrect MLD address in bss_mld_tlv for MLO support
	wifi: mt76: mt7925: Fix incorrect WCID assignment for MLO
	wifi: mt76: mt7925: Fix incorrect WCID phy_idx assignment
	wifi: mt76: mt7925: fix wrong parameter for related cmd of chan info
	wifi: mt76: mt7925: Fix CNM Timeout with Single Active Link in MLO
	wifi: mt76: mt7925: Enhance mt7925_mac_link_bss_add to support MLO
	wifi: mt76: Enhance mt7925_mac_link_sta_add to support MLO
	wifi: mt76: mt7925: Update mt7925_mcu_sta_update for BC in ASSOC state
	wifi: mt76: mt7925: Update mt792x_rx_get_wcid for per-link STA
	wifi: mt76: mt7925: Update mt7925_unassign_vif_chanctx for per-link BSS
	wifi: mt76: mt7925: Update secondary link PS flow
	wifi: mt76: mt7925: Init secondary link PM state
	wifi: mt76: mt7925: Update mt7925_mcu_uni_[tx,rx]_ba for MLO
	wifi: mt76: mt7925: Cleanup MLO settings post-disconnection
	wifi: mt76: mt7925: Properly handle responses for commands with events
	wifi: mt76: mt7996: fix rx filter setting for bfee functionality
	wifi: mt76: only enable tx worker after setting the channel
	wifi: mt76: mt7915: firmware restart on devices with a second pcie link
	wifi: mt76: mt7915: fix omac index assignment after hardware reset
	wifi: mt76: mt7915: fix register mapping
	wifi: mt76: mt7996: fix register mapping
	wifi: mt76: mt7996: add max mpdu len capability
	wifi: mt76: mt7996: fix the capability of reception of EHT MU PPDU
	wifi: mt76: mt7996: fix HE Phy capability
	wifi: mt76: mt7996: fix incorrect indexing of MIB FW event
	wifi: mt76: mt7996: fix definition of tx descriptor
	wifi: mt76: mt7996: fix ldpc setting
	i2c: designware: Actually make use of the I2C_DW_COMMON and I2C_DW symbol namespaces
	cpufreq: ACPI: Fix max-frequency computation
	selftests: timers: clocksource-switch: Adapt progress to kselftest framework
	selftests: harness: fix printing of mismatch values in __EXPECT()
	wifi: cfg80211: adjust allocation of colocated AP data
	Bluetooth: btbcm: Fix NULL deref in btbcm_get_board_name()
	Bluetooth: btrtl: check for NULL in btrtl_setup_realtek()
	inet: ipmr: fix data-races
	clk: analogbits: Fix incorrect calculation of vco rate delta
	dev: Acquire netdev_rename_lock before restoring dev->name in dev_change_name().
	pwm: stm32: Add check for clk_enable()
	selftests/landlock: Fix build with non-default pthread linking
	selftests/landlock: Fix error message
	net: let net.core.dev_weight always be non-zero
	net/mlxfw: Drop hard coded max FW flash image size
	octeon_ep: remove firmware stats fetch in ndo_get_stats64
	octeon_ep_vf: remove firmware stats fetch in ndo_get_stats64
	net: avoid race between device unregistration and ethnl ops
	net: sched: Disallow replacing of child qdisc from one parent to another
	netfilter: nf_tables: fix set size with rbtree backend
	netfilter: nft_flow_offload: update tcp state flags under lock
	net: sched: refine software bypass handling in tc_run
	net: ethernet: ti: am65-cpsw: fix freeing IRQ in am65_cpsw_nuss_remove_tx_chns()
	tcp_cubic: fix incorrect HyStart round start detection
	net/rose: prevent integer overflows in rose_setsockopt()
	platform/mellanox: mlxbf-pmc: incorrect type in assignment
	platform/x86: x86-android-tablets: make platform data be static
	pinctrl: samsung: Fix irq handling if an error occurs in exynos_irq_demux_eint16_31()
	libbpf: don't adjust USDT semaphore address if .stapsdt.base addr is missing
	ASoC: cs40l50: Use *-y for Makefile
	ASoC: mediatek: mt8365: Use *-y for Makefile
	ASoC: wcd937x: Use *-y for Makefile
	tools/testing/selftests/bpf/test_tc_tunnel.sh: Fix wait for server bind
	libbpf: Fix segfault due to libelf functions not setting errno
	ASoC: Intel: sof_sdw: correct mach_params->dmic_num
	ASoC: sun4i-spdif: Add clock multiplier settings
	selftests/bpf: Fix fill_link_info selftest on powerpc
	iommu/arm-smmuv3: Update comments about ATS and bypass
	crypto: tegra - do not transfer req when tegra init fails
	crypto: api - Fix boot-up self-test race
	crypto: caam - use JobR's space to access page 0 regs
	perf header: Fix one memory leakage in process_bpf_btf()
	perf header: Fix one memory leakage in process_bpf_prog_info()
	perf bpf: Fix two memory leakages when calling perf_env__insert_bpf_prog_info()
	ASoC: renesas: rz-ssi: Use only the proper amount of dividers
	perf expr: Initialize is_test value in expr__ctx_new()
	pinctrl: nomadik: Add check for clk_enable()
	ktest.pl: Remove unused declarations in run_bisect_test function
	bpf: bpf_local_storage: Always use bpf_mem_alloc in PREEMPT_RT
	rhashtable: Fix potential deadlock by moving schedule_work outside lock
	crypto: hisilicon/sec2 - fix for aead icv error
	crypto: hisilicon/sec2 - fix for aead invalid authsize
	crypto: ixp4xx - fix OF node reference leaks in init_ixp_crypto()
	crypto: iaa - Fix IAA disabling that occurs when sync_mode is set to 'async'
	bpf: Use refcount_t instead of atomic_t for mmap_count
	ALSA: seq: Make dependency on UMP clearer
	bpf: Reject struct_ops registration that uses module ptr and the module btf_id is missing
	padata: fix sysfs store callback check
	selftests/bpf: Avoid generating untracked files when running bpf selftests
	perf top: Don't complain about lack of vmlinux when not resolving some kernel samples
	perf maps: Fix display of kernel symbols
	perf machine: Don't ignore _etext when not a text symbol
	perf namespaces: Introduce nsinfo__set_in_pidns()
	perf namespaces: Fixup the nsinfo__in_pidns() return type, its bool
	ASoC: Intel: avs: Do not readq() u32 registers
	ASoC: Intel: avs: Fix the minimum firmware version numbers
	ASoC: Intel: avs: Fix theoretical infinite loop
	ASoC: Intel: avs: Fix init-config parsing
	perf MANIFEST: Add arch/*/include/uapi/asm/bpf_perf_event.h to the perf tarball
	ALSA: hda: Fix compilation of snd_hdac_adsp_xxx() helpers
	perf report: Fix misleading help message about --demangle
	pinctrl: stm32: Add check for clk_enable()
	pinctrl: amd: Take suspend type into consideration which pins are non-wake
	perf inject: Fix use without initialization of local variables
	ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 83LC
	ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 83JX, 83MC and 83NM
	bpf: Send signals asynchronously if !preemptible
	selftests/bpf: Fix btf leak on new btf alloc failure in btf_distill test
	libbpf: Fix return zero when elf_begin failed
	libbpf: Fix incorrect traversal end type ID when marking BTF_IS_EMBEDDED
	bpf: tcp: Mark bpf_load_hdr_opt() arg2 as read-write
	iommu/amd: Remove unused amd_iommu_domain_update()
	ALSA: hda/realtek - Fixed headphone distorted sound on Acer Aspire A115-31 laptop
	tools: Sync if_xdp.h uapi tooling header
	perf lock: Fix parse_lock_type which only retrieve one lock flag
	padata: fix UAF in padata_reorder
	padata: add pd get/put refcnt helper
	padata: avoid UAF for reorder_work
	rhashtable: Fix rhashtable_try_insert test
	smb: client: fix oops due to unset link speed
	cifs: Use cifs_autodisable_serverino() for disabling CIFS_MOUNT_SERVER_INUM in readdir.c
	bpf: Cancel the running bpf_timer through kworker for PREEMPT_RT
	soc: atmel: fix device_node release in atmel_soc_device_init()
	ARM: at91: pm: change BU Power Switch to automatic mode
	ARM: dts: imx7-tqma7: add missing vs-supply for LM75A (rev. 01xxx)
	arm64: dts: mediatek: mt8186: Move wakeup to MTU3 to get working suspend
	arm64: dts: mt8183: set DMIC one-wire mode on Damu
	arm64: dts: mediatek: mt8516: fix GICv2 range
	arm64: dts: mediatek: mt8516: fix wdt irq type
	arm64: dts: mediatek: mt8516: add i2c clock-div property
	arm64: dts: mediatek: mt8516: reserve 192 KiB for TF-A
	ARM: dts: stm32: Increase CPU core voltage on STM32MP13xx DHCOR SoM
	ARM: dts: stm32: Fix IPCC EXTI declaration on stm32mp151
	RDMA/mlx4: Avoid false error about access to uninitialized gids array
	arm64: dts: renesas: rzg3s-smarc: Fix the debug serial alias
	rdma/cxgb4: Prevent potential integer overflow on 32bit
	arm64: dts: mediatek: mt8173-evb: Drop regulator-compatible property
	arm64: dts: mediatek: mt8173-elm: Drop regulator-compatible property
	arm64: dts: mediatek: mt8192-asurada: Drop regulator-compatible property
	arm64: dts: mediatek: mt8195-cherry: Drop regulator-compatible property
	arm64: dts: mediatek: mt8195-demo: Drop regulator-compatible property
	arm64: dts: medaitek: mt8395-nio-12l: Drop regulator-compatible property
	arm64: dts: mediatek: mt8395-genio-1200-evk: Drop regulator-compatible property
	arm64: dts: mediatek: mt8173-elm: Fix MT6397 PMIC sub-node names
	arm64: dts: mediatek: mt8173-evb: Fix MT6397 PMIC sub-node names
	ARM: dts: aspeed: yosemite4: correct the compatible string of adm1272
	ARM: dts: aspeed: yosemite4: Add required properties for IOE on fan boards
	ARM: dts: aspeed: yosemite4: correct the compatible string for max31790
	arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb"
	RDMA/rxe: Fix mismatched max_msg_sz
	arm64: dts: mediatek: mt8183: kenzo: Support second source touchscreen
	arm64: dts: mediatek: mt8183: willow: Support second source touchscreen
	RDMA/srp: Fix error handling in srp_add_port
	arm64: dts: mediatek: mt8195: Remove suspend-breaking reset from pcie1
	ARM: dts: stm32: Deduplicate serial aliases and chosen node for STM32MP15xx DHCOM SoM
	ARM: dts: stm32: Swap USART3 and UART8 alias on STM32MP15xx DHCOM SoM
	memory: tegra20-emc: fix an OF node reference bug in tegra_emc_find_node_by_ram_code()
	arm64: dts: mediatek: mt8183-kukui-jacuzzi: Drop pp3300_panel voltage settings
	arm64: dts: qcom: msm8996-xiaomi-gemini: Fix LP5562 LED1 reg property
	arm64: dts: qcom: sa8775p: Update sleep_clk frequency
	arm64: defconfig: remove obsolete CONFIG_SM_DISPCC_8650
	arm64: dts: qcom: msm8996: Fix up USB3 interrupts
	arm64: dts: qcom: msm8994: Describe USB interrupts
	arm64: dts: qcom: sm7225-fairphone-fp4: Drop extra qcom,msm-id value
	arm64: dts: qcom: msm8916: correct sleep clock frequency
	arm64: dts: qcom: msm8939: correct sleep clock frequency
	arm64: dts: qcom: msm8994: correct sleep clock frequency
	arm64: dts: qcom: qcs404: correct sleep clock frequency
	arm64: dts: qcom: q[dr]u1000: correct sleep clock frequency
	arm64: dts: qcom: qrb4210-rb2: correct sleep clock frequency
	arm64: dts: qcom: sc7280: correct sleep clock frequency
	arm64: dts: qcom: sdx75: correct sleep clock frequency
	arm64: dts: qcom: sm4450: correct sleep clock frequency
	arm64: dts: qcom: sm6125: correct sleep clock frequency
	arm64: dts: qcom: sm6375: correct sleep clock frequency
	arm64: dts: qcom: sm8250: correct sleep clock frequency
	arm64: dts: qcom: sm8350: correct sleep clock frequency
	arm64: dts: qcom: sm8450: correct sleep clock frequency
	arm64: dts: qcom: sm8550: correct sleep clock frequency
	arm64: dts: qcom: sm8650: correct sleep clock frequency
	arm64: dts: qcom: x1e80100: correct sleep clock frequency
	arm64: dts: qcom: sm8650: Fix CDSP context banks unit addresses
	ARM: dts: microchip: sama5d29_curiosity: Add no-1-8-v property to sdmmc0 node
	ARM: dts: microchip: sama5d27_wlsom1_ek: Add no-1-8-v property to sdmmc0 node
	arm64: dts: ti: k3-am62: Remove duplicate GICR reg
	arm64: dts: ti: k3-am62a: Remove duplicate GICR reg
	arm64: dts: rockchip: Fix sdmmc access on rk3308-rock-s0 v1.1 boards
	arm64: dts: allwinner: a64: explicitly assign clock parent for TCON0
	RDMA/bnxt_re: Fix to drop reference to the mmap entry in case of error
	RDMA/rtrs: Add missing deinit() call
	RDMA/hns: Clean up the legacy CONFIG_INFINIBAND_HNS
	ARM: omap1: Fix up the Retu IRQ on Nokia 770
	arm64: dts: qcom: qcm6490-shift-otter: remove invalid orientation-switch
	arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Convert mezzanine riser to dtso
	arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: remove disabled ov7251 camera
	arm64: dts: qcom: sc7180-trogdor-quackingstick: add missing avee-supply
	arm64: dts: qcom: sc7180-trogdor-pompom: rename 5v-choke thermal zone
	arm64: dts: qcom: sc7180: change labels to lower-case
	arm64: dts: qcom: sc7180: fix psci power domain node names
	arm64: dts: qcom: sm8150-microsoft-surface-duo: fix typos in da7280 properties
	arm64: dts: qcom: sc8280xp: Fix up remoteproc register space sizes
	firmware: qcom: scm: Cleanup global '__scm' on probe failures
	arm64: dts: mediatek: mt7988: Add missing clock-div property for i2c
	dts: arm64: mediatek: mt8195: Remove MT8183 compatible for OVL
	arm64: dts: mediatek: add per-SoC compatibles for keypad nodes
	arm64: dts: qcom: sc8280xp: Fix interrupt type of camss interrupts
	arm64: dts: qcom: sdm845: Fix interrupt types of camss interrupts
	arm64: dts: qcom: sm8250: Fix interrupt types of camss interrupts
	arm64: dts: marvell: cn9131-cf-solidwan: fix cp1 comphy links
	ARM: dts: mediatek: mt7623: fix IR nodename
	arm64: dts: rockchip: fix num-channels property of wolfvision pf5 mic
	arm64: dts: ti: k3-am642-hummingboard-t: Convert overlay to board dts
	fbdev: omapfb: Fix an OF node leak in dss_of_port_get_parent_device()
	arm64: tegra: Fix DMA ID for SPI2
	arm64: dts: qcom: x1e80100-romulus: Update firmware nodes
	i3c: dw: Fix use-after-free in dw_i3c_master driver due to race condition
	RDMA/mlx5: Fix indirect mkey ODP page count
	of: property: Avoiding using uninitialized variable @imaplen in parse_interrupt_map()
	of: reserved-memory: Do not make kmemleak ignore freed address
	efi: sysfb_efi: fix W=1 warnings when EFI is not set
	RDMA/cxgb4: Notify rdma stack for IB_EVENT_QP_LAST_WQE_REACHED event
	RDMA/rxe: Fix the warning "__rxe_cleanup+0x12c/0x170 [rdma_rxe]"
	iommu: iommufd: fix WARNING in iommufd_device_unbind
	iommufd/iova_bitmap: Fix shift-out-of-bounds in iova_bitmap_offset_to_index()
	spi: omap2-mcspi: Correctly handle devm_clk_get_optional() errors
	of: reserved_mem: Restructure how the reserved memory regions are processed
	of/fdt: Restore possibility to use both ACPI and FDT from bootloader
	media: rc: iguanair: handle timeouts
	media: lmedm04: Handle errors for lme2510_int_read
	PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy()
	remoteproc: mtk_scp: Only populate devices for SCP cores
	media: marvell: Add check for clk_enable()
	media: i2c: imx290: Register 0x3011 varies between imx327 and imx290
	media: i2c: imx412: Add missing newline to prints
	media: i2c: ov9282: Correct the exposure offset
	media: mipi-csis: Add check for clk_enable()
	media: camif-core: Add check for clk_enable()
	media: uvcvideo: Propagate buf->error to userspace
	mtd: rawnand: brcmnand: fix status read of brcmnand_waitfunc
	mtd: hyperbus: hbmc-am654: fix an OF node reference leak
	media: nxp: imx8-isi: fix v4l2-compliance test errors
	watchdog: rti_wdt: Fix an OF node leak in rti_wdt_probe()
	staging: media: imx: fix OF node leak in imx_media_add_of_subdevs()
	media: dvb-usb-v2: af9035: fix ISO C90 compilation error on af9035_i2c_master_xfer
	PCI: rcar-ep: Fix incorrect variable used when calling devm_request_mem_region()
	PCI: imx6: Configure PHY based on Root Complex or Endpoint mode
	PCI: imx6: Skip controller_id generation logic for i.MX7D
	PCI: imx6: Deassert apps_reset in imx_pcie_deassert_core_reset()
	PCI: imx6: Add missing reference clock disable logic
	PCI: qcom: Update ICC and OPP values after Link Up event
	PCI: dwc: Always stop link in the dw_pcie_suspend_noirq
	PCI: endpoint: pci-epf-test: Set dma_chan_rx pointer to NULL on error
	PCI: endpoint: pci-epf-test: Fix check for DMA MEMCPY test
	PCI: microchip: Add support for using either Root Port 1 or 2
	PCI: microchip: Set inbound address translation for coherent or non-coherent mode
	scsi: mpt3sas: Set ioc->manu_pg11.EEDPTagMode directly to 1
	scsi: ufs: bsg: Delete bsg_dev when setting up bsg fails
	scsi: mpi3mr: Fix possible crash when setting up bsg fails
	firewire: test: Fix potential null dereference in firewire kunit test
	erofs: get rid of erofs_{find,insert}_workgroup
	erofs: move erofs_workgroup operations into zdata.c
	erofs: sunset `struct erofs_workgroup`
	erofs: fix potential return value overflow of z_erofs_shrink_scan()
	ocfs2: mark dquot as inactive if failed to start trans while releasing dquot
	nilfs2: do not force clear folio if buffer is referenced
	nilfs2: protect access to buffers with no active references
	nilfs2: handle errors that nilfs_prepare_chunk() may return
	module: Extend the preempt disabled section in dereference_symbol_descriptor().
	module: Don't fail module loading when setting ro_after_init section RO failed
	driver core: class: Fix wild pointer dereferences in API class_dev_iter_next()
	tty: mips_ejtag_fdc: fix one more u8 warning
	serial: 8250: Adjust the timeout for FIFO mode
	nfs: fix incorrect error handling in LOCALIO
	NFSv4.2: fix COPY_NOTIFY xdr buf size calculation
	NFSv4.2: mark OFFLOAD_CANCEL MOVEABLE
	LoongArch: Fix warnings during S3 suspend
	tools/bootconfig: Fix the wrong format specifier
	xfrm: replay: Fix the update of replay_esn->oseq_hi for GSO
	xfrm: Add support for per cpu xfrm state handling.
	xfrm: Cache used outbound xfrm states at the policy.
	xfrm: Add an inbound percpu state cache.
	xfrm: state: fix out-of-bounds read during lookup
	dmaengine: ti: edma: fix OF node reference leaks in edma_driver
	xfrm: delete intermediate secpath entry in packet offload mode
	rtc: tps6594: Fix integer overflow on 32bit systems
	rtc: pcf85063: fix potential OOB write in PCF85063 NVMEM read
	rtc: loongson: clear TOY_MATCH0_REG in loongson_rtc_isr()
	ubifs: skip dumping tnc tree when zroot is null
	regulator: core: Add missing newline character
	net: airoha: Fix wrong GDM4 register definition
	net: hns3: fix oops when unload drivers paralleling
	gpio: mxc: remove dead code after switch to DT-only
	net: phy: marvell-88q2xxx: Fix temperature measurement with reset-gpios
	net: fec: implement TSO descriptor cleanup
	ipmr: do not call mr_mfc_uses_dev() for unres entries
	PM: hibernate: Add error handling for syscore_suspend()
	perf trace: Fix BPF loading failure (-E2BIG)
	xfrm: Don't disable preemption while looking up cache state.
	idpf: add read memory barrier when checking descriptor done bit
	idpf: fix transaction timeouts on reset
	idpf: Acquire the lock before accessing the xn->salt
	idpf: convert workqueues to unbound
	ice: fix ice_parser_rt::bst_key array size
	ice: rework of dump serdes equalizer values feature
	ice: extend dump serdes equalizer values feature
	ice: remove invalid parameter of equalizer
	iavf: allow changing VLAN state without calling PF
	s390/mm: Allow large pages for KASAN shadow mapping
	net/ncsi: use dev_set_mac_address() for Get MC MAC Address handling
	net: rose: fix timer races against user threads
	net: netdevsim: try to close UDP port harness races
	tools: ynl: c: correct reverse decode of empty attrs
	selftests: mptcp: extend CFLAGS to keep options from environment
	selftests: net/{lib,openvswitch}: extend CFLAGS to keep options from environment
	rxrpc, afs: Fix peer hash locking vs RCU callback
	vxlan: Fix uninit-value in vxlan_vnifilter_dump()
	net: davicom: fix UAF in dm9000_drv_remove
	ptp: Properly handle compat ioctls
	net: ethtool: only allow set_rxnfc with rss + ring_cookie if driver opts in
	ethtool: Fix set RXNFC command with symmetric RSS hash
	net: stmmac: Limit the number of MTL queues to hardware capability
	net: stmmac: Limit FIFO size by hardware capability
	s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init()
	perf trace: Fix runtime error of index out of bounds
	perf test: Skip syscall enum test if no landlock syscall
	Bluetooth: btusb: mediatek: Add locks for usb_driver_claim_interface()
	Bluetooth: btnxpuart: Fix glitches seen in dual A2DP streaming
	vsock: Allow retrying on connect() failure
	bgmac: reduce max frame size to support just MTU 1500
	tcp: correct handling of extreme memory squeeze
	net: xdp: Disallow attaching device-bound programs in generic mode
	net: ravb: Fix missing rtnl lock in suspend/resume path
	net: sh_eth: Fix missing rtnl lock in suspend/resume path
	net: hsr: fix fill_frame_info() regression vs VLAN packets
	genksyms: fix memory leak when the same symbol is added from source
	genksyms: fix memory leak when the same symbol is read from *.symref file
	hostfs: fix string handling in __dentry_name()
	tools/power turbostat: Allow using cpu device in perf counters on hybrid platforms
	tools/power turbostat: Fix PMT mmaped file size rounding
	RISC-V: Mark riscv_v_init() as __init
	ASoC: rockchip: i2s_tdm: Re-add the set_sysclk callback
	io_uring/uring_cmd: use cached cmd_op in io_uring_cmd_sock()
	ASoC: amd: acp: Fix possible deadlock
	tools/power turbostat: Fix forked child affinity regression
	cifs: Validate EAs for WSL reparse points
	cifs: Fix getting and setting SACLs over SMB1
	kconfig: fix file name in warnings when loading KCONFIG_DEFCONFIG_LIST
	kconfig: fix memory leak in sym_warn_unmet_dep()
	hexagon: fix using plain integer as NULL pointer warning in cmpxchg
	hexagon: Fix unbalanced spinlock in die()
	f2fs: Introduce linear search for dentries
	md/md-bitmap: factor behind write counters out from bitmap_{start/end}write()
	md/md-bitmap: remove the last parameter for bimtap_ops->endwrite()
	md: add a new callback pers->bitmap_sector()
	md/raid5: implement pers->bitmap_sector()
	md/md-bitmap: move bitmap_{start, end}write to md upper layer
	Revert "SUNRPC: Reduce thread wake-up rate when receiving large RPC messages"
	kbuild: switch from lz4c to lz4 for compression
	netfilter: nf_tables: reject mismatching sum of field_len with set key length
	drm/amd/display: Reduce accessing remote DPCD overhead
	selftests/rseq: Fix handling of glibc without rseq support
	selftests/ftrace: Fix to use remount when testing mount GID option
	ktest.pl: Check kernelrelease return in get_version
	xfs: check for dead buffers in xfs_buf_find_insert
	xfs: don't shut down the filesystem for media failures beyond end of log
	ALSA: usb-audio: Add delay quirk for iBasso DC07 Pro
	net: usb: rtl8150: enable basic endpoint checking
	usb: xhci: Fix NULL pointer dereference on certain command aborts
	drivers/card_reader/rtsx_usb: Restore interrupt based detection
	usb: gadget: f_tcm: Fix Get/SetInterface return value
	usb: dwc3-am62: Fix an OF node leak in phy_syscon_pll_refclk()
	usb: dwc3: core: Defer the probe until USB power supply ready
	usb: dwc3: Skip resume if pm_runtime_set_active() fails
	usb: typec: tcpm: set SRC_SEND_CAPABILITIES timeout to PD_T_SENDER_RESPONSE
	usb: typec: tcpci: Prevent Sink disconnection before vPpsShutdown in SPR PPS
	clk: qcom: gcc-x1e80100: Do not turn off usb_2 controller GDSC
	mptcp: consolidate suboption status
	mptcp: pm: only set fullmesh for subflow endp
	mptcp: handle fastopen disconnect correctly
	mptcp: blackhole only if 1st SYN retrans w/o MPC is accepted
	RDMA/mlx5: Fix implicit ODP use after free
	remoteproc: core: Fix ida_free call while not allocated
	media: uvcvideo: Fix double free in error path
	pps: Fix a use-after-free
	usb: gadget: f_tcm: Don't free command immediately
	staging: media: max96712: fix kernel oops when removing module
	media: imx-jpeg: Fix potential error pointer dereference in detach_pm()
	powerpc/pseries/iommu: Don't unset window if it was never set
	md/md-bitmap: Synchronize bitmap_get_stats() with bitmap lifetime
	btrfs: output the reason for open_ctree() failure
	of: reserved-memory: Warn for missing static reserved memory regions
	dma-mapping: save base/size instead of pointer to shared DMA pool
	xfrm: Add error handling when nla_put_u32() returns an error
	xfrm: Fix acquire state insertion.
	ethtool: Fix access to uninitialized fields in set RXNFC command
	Revert "s390/mm: Allow large pages for KASAN shadow mapping"
	selftests/bpf: Add test to verify tailcall and freplace restrictions
	ASoC: da7213: Initialize the mutex
	s390: Add '-std=gnu11' to decompressor and purgatory CFLAGS
	drm/amd/display: Add hubp cache reset when powergating
	KVM: x86: Plumb in the vCPU to kvm_x86_ops.hwapic_isr_update()
	memcg: fix soft lockup in the OOM process
	LoongArch: Change 8 to 14 for LOONGARCH_MAX_{BRP,WRP}
	btrfs: do proper folio cleanup when run_delalloc_nocow() failed
	ethtool: ntuple: fix rss + ring_cookie check
	Linux 6.12.13

Change-Id: I0b4278d2911ea7c72e068418ed56d1514b393980
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-02-10 07:46:27 -08:00
Christophe Leroy
fd41b2e9aa module: Don't fail module loading when setting ro_after_init section RO failed
[ Upstream commit 110b1e070f1d50f5217bd2c758db094998bb7b77 ]

Once module init has succeded it is too late to cancel loading.
If setting ro_after_init data section to read-only fails, all we
can do is to inform the user through a warning.

Reported-by: Thomas Gleixner <tglx@linutronix.de>
Closes: https://lore.kernel.org/all/20230915082126.4187913-1-ruanjinjie@huawei.com/
Fixes: d1909c0221 ("module: Don't ignore errors from set_memory_XX()")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Link: https://lore.kernel.org/r/d6c81f38da76092de8aacc8c93c4c65cb0fe48b8.1733427536.git.christophe.leroy@csgroup.eu
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-02-08 09:57:58 +01:00
Matthew Maurer
d594916ce6 FROMGIT: modpost: Allow extended modversions without basic MODVERSIONS
If you know that your kernel modules will only ever be loaded by a newer
kernel, you can disable BASIC_MODVERSIONS to save space. This also
allows easy creation of test modules to see how tooling will respond to
modules that only have the new format.

Signed-off-by: Matthew Maurer <mmaurer@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit e8639b7ef0f871753b4262ec0eacd3da29eebcee
 https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild)

Change-Id: I952fdb8fabba6d1e354d2f9d21f1d0b29404ae3e
Bug: 347787665
Signed-off-by: Matthew Maurer <mmaurer@google.com>
2025-01-14 00:20:38 -08:00
Matthew Maurer
5585de48c3 FROMGIT: modpost: Produce extended MODVERSIONS information
Generate both the existing modversions format and the new extended one
when running modpost. Presence of this metadata in the final .ko is
guarded by CONFIG_EXTENDED_MODVERSIONS.

We no longer generate an error on long symbols in modpost if
CONFIG_EXTENDED_MODVERSIONS is set, as they can now be appropriately
encoded in the extended section. These symbols will be skipped in the
previous encoding. An error will still be generated if
CONFIG_EXTENDED_MODVERSIONS is not set.

Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit fc7d5e3210ae083a29ce224ffce18eaf3d1c645a
 https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild)

Change-Id: I599c2f318a8438c7da3fe8e627b92b62f107fc59
Bug: 347787665
Signed-off-by: Matthew Maurer <mmaurer@google.com>
2025-01-14 00:20:38 -08:00
Matthew Maurer
c9726318d3 FROMGIT: modules: Support extended MODVERSIONS info
Adds a new format for MODVERSIONS which stores each field in a separate
ELF section. This initially adds support for variable length names, but
could later be used to add additional fields to MODVERSIONS in a
backwards compatible way if needed. Any new fields will be ignored by
old user tooling, unlike the current format where user tooling cannot
tolerate adjustments to the format (for example making the name field
longer).

Since PPC munges its version records to strip leading dots, we reproduce
the munging for the new format. Other architectures do not appear to
have architecture-specific usage of this information.

Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 54ac1ac8edeb74ff87fc880d1ee58785bdcbe323
 https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild)
Signed-off-by: Matthew Maurer <mmaurer@google.com>

Change-Id: I28d6e2c3a43e67f3ea1a7f794f77759c6093f1dc
Signed-off-by: Matthew Maurer <mmaurer@google.com>
2025-01-14 00:20:38 -08:00
Sami Tolvanen
1e7815837f FROMGIT: kbuild: Add gendwarfksyms as an alternative to genksyms
When MODVERSIONS is enabled, allow selecting gendwarfksyms as the
implementation, but default to genksyms.

Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 9c3681f9b9fd12cdbc4a542df599f1837512f3d5
 https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild)
Bug: 347787665
Signed-off-by: Matthew Maurer <mmaurer@google.com>

Change-Id: Id6279538db7fc1616dc6a1a4b980df271e8df087
Signed-off-by: Matthew Maurer <mmaurer@google.com>
2025-01-14 00:20:38 -08:00
Sami Tolvanen
cf4c955a9c FROMGIT: tools: Add gendwarfksyms
Add a basic DWARF parser, which uses libdw to traverse the debugging
information in an object file and looks for functions and variables.
In follow-up patches, this will be expanded to produce symbol versions
for CONFIG_MODVERSIONS from DWARF.

Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Reviewed-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit f28568841ae0a0dd48dfc5400aaebedf10a54d10
 https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild)
Bug: 347787665
Signed-off-by: Matthew Maurer <mmaurer@google.com>

Change-Id: I2635541b5ab5dd93356e3ceedb83985132338a0e
Signed-off-by: Matthew Maurer <mmaurer@google.com>
2025-01-14 00:20:38 -08:00
Masahiro Yamada
5134a9e0d7 FROMGIT: module: get symbol CRC back to unsigned
Commit 71810db27c ("modversions: treat symbol CRCs as 32 bit
quantities") changed the CRC fields to s32 because the __kcrctab and
__kcrctab_gpl sections contained relative references to the actual
CRC values stored in the .rodata section when CONFIG_MODULE_REL_CRCS=y.

Commit 7b4537199a ("kbuild: link symbol CRCs at final link, removing
CONFIG_MODULE_REL_CRCS") removed this complexity. Now, the __kcrctab
and __kcrctab_gpl sections directly contain the CRC values in all cases.

The genksyms tool outputs unsigned 32-bit CRC values, so u32 is preferred
over s32.

No functional changes are intended.

Regardless of this change, the CRC value is assigned to the u32 variable
'crcval' before the comparison, as seen in kernel/module/version.c:

    crcval = *crc;

It was previously mandatory (but now optional) in order to avoid sign
extension because the following line previously compared 'unsigned long'
and 's32':

    if (versions[i].crc == crcval)
            return 1;

versions[i].crc is still 'unsigned long' for backward compatibility.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Petr Pavlu <petr.pavlu@suse.com>
(cherry picked from commit 1cd9502ee9275c6176a7312863f939cca9506114
 https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild)
Bug: 347787665
Signed-off-by: Matthew Maurer <mmaurer@google.com>

Change-Id: Iac934e2803de1e4befd7e99180edfb6d77c2e6fb
Signed-off-by: Matthew Maurer <mmaurer@google.com>
2025-01-14 00:20:38 -08:00
Giuliano Procida
d2d0d17001 ANDROID: GKI: load vendor modules without tainting the kernel
GKI repurposes module signing to distinguish GKI and vendor modules.
It was unhelpful and sometimes confusing to taint the kernel when
loading vendor modules.

Bug: 232430739
Bug: 383260800
Change-Id: If05a9e7d8e28954eba0472149fe312045c9c4fad
Signed-off-by: Giuliano Procida <gprocida@google.com>
(cherry picked from commit 23313da5700f038f95a82a695392e5bb5b550ba6)
2025-01-09 04:35:40 -08:00
Matthew Maurer
387971588b FROMGIT: module: Reformat struct for code style
Using commas to declare struct members makes adding new members to this
struct not as nice with patch management.

Test results linux-modules-kpd succeed [0].

Change-Id: Ibff21edb1af452a41486c1e3d1f0815c05ca3979
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
[mcgrof: add automated test results from kdevops using KPD ]
Link: https://github.com/linux-kdevops/linux-modules-kpd/actions/runs/11420095343 # [0]
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit 2295cf87ed5a6da4564034e4f8ebcce0a0a021ed kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
e9f2fa03d3 FROMGIT: module: Additional validation in elf_validity_cache_strtab
Validate properties of the strtab that are depended on elsewhere, but
were previously unchecked:
* String table nonempty (offset 0 is valid)
* String table has a leading NUL (offset 0 corresponds to "")
* String table is NUL terminated (strfoo functions won't run out of the
  table while reading).
* All symbols names are inbounds of the string table.

Change-Id: I986b77fe9de77226c271dee528e44edd8a2d5cee
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit d979e3dffa93c9284f244ef64f7a68042c2f8b80 kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
de4c6d5b31 FROMGIT: module: Factor out elf_validity_cache_strtab
This patch only moves the existing strtab population to a function.
Validation comes in a following patch, this is split out to make the new
validation checks more clearly separated.

Change-Id: Idbce6e31c98c0641a2cc3cf6ae85a6a38ac843bd
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit 837031e052af32c747906238fb1feb87778e4fe0 kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
3158d3f337 FROMGIT: module: Group section index calculations together
Group all the index detection together to make the parent function
easier to read.

Change-Id: Ifc0dc5b134d7b82ca390d9a0cbde1fc2f04ead55
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit f3f561218bb60afd6d3e3b26add39ff46de89c83 kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
a12cb510f1 FROMGIT: module: Factor out elf_validity_cache_index_str
Pull out index validation for the symbol string section.

Note that this does not validate the *contents* of the string table,
only shape and presence of the section.

Change-Id: Idcfa9fff876e2071d1ffbd4bac8c5410adcf0234
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit 0a9395334496d3be8bde491e46087540cb8f141d kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
d487c4ca16 FROMGIT: module: Factor out elf_validity_cache_index_sym
Centralize symbol table detection and property validation.

Change-Id: I0d570d317fff30923031f5381ab71741fb0b4b2e
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit 9bd4982cf7d65f4c9e0793d5a8fda6ad838e8554 kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
ffaca6ab0a FROMGIT: module: Factor out elf_validity_cache_index_mod
Centralize .gnu.linkonce.this_module detection and property validation.

Change-Id: I00d3ac25fbea68a0dcfc7d3cc2f1219bc0548a1c
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit 0be41a9367d1fbb16b4b57d81082341af114bad7 kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
5ce14d51d0 FROMGIT: module: Factor out elf_validity_cache_index_info
Centralize .modinfo detection and property validation.

Change-Id: Id1e0b959e644d191db8bfa280c12c05b5ae7a9d5
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit fbc0e4e482aac7f2b0d20f0a11f6d5eeda346fda kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
3112326a5f FROMGIT: module: Factor out elf_validity_cache_secstrings
Factor out the validation of section names.

There are two behavioral changes:

1. Previously, we did not validate non-SHF_ALLOC sections.
   This may have once been safe, as find_sec skips non-SHF_ALLOC
   sections, but find_any_sec, which will be used to load BTF if that is
   enabled, ignores the SHF_ALLOC flag. Since there's no need to support
   invalid section names, validate all of them, not just SHF_ALLOC
   sections.
2. Section names were validated *after* accessing them for the purposes
   of detecting ".modinfo" and ".gnu.linkonce.this_module". They are now
   checked prior to the access, which could avoid bad accesses with
   malformed modules.

Change-Id: Ia951a6ec89d114184913262c839b42ffcfd6a5e9
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit 3c5700aeabd87e81d9153a7666b28d0e405c6c88 kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
b86e9d4333 FROMGIT: module: Factor out elf_validity_cache_sechdrs
Factor out and document the validation of section headers.

Because we now validate all section offsets and lengths before accessing
them, we can remove the ad-hoc checks.

Change-Id: I82593053b5520a91fbd5de14c009e78ea6ebe64c
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit c92aab819d56d51631f0484ed7af11d9d8ff4cb0 kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
be900714c7 FROMGIT: module: Factor out elf_validity_ehdr
Factor out verification of the ELF header and document what is checked.

Change-Id: I9a1a2bdc669c2b3c32aeb35cd0f1fcb2b7440a54
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit 90f8f312db720dbabec7c6258ef580b50129cc21 kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthew Maurer
adea69172f FROMGIT: module: Take const arg in validate_section_offset
`validate_section_offset` doesn't modify the info passed in. Make this
clear by adjusting the type signature.

Change-Id: Iab00d0efdf2b2e8e5dd412cfb07c8a0d5f758c97
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
(cherry picked from commit f43922162184f2bd54d87c1b5e97cf72d0dd1290 kernel/git/modules/linux.git modules-next)
Bug: 347787665
2024-11-13 22:12:15 +00:00
Matthias Maennich
63a18b7e0d Merge 3efc57369a ("Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm") into android-mainline
Steps on the way to 6.12-rc1

Bug: 367265496
Change-Id: I267a0c6bfbc8e3742e3d1b8ef43d11f3ed1725eb
Signed-off-by: Matthias Maennich <maennich@google.com>
2024-10-04 00:18:42 +00:00
Matthias Maennich
0e65cf24a0 Merge aa486552a1 ("Merge tag 'memblock-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock") into android-mainline
Steps on the way to 6.12-rc1

Bug: 367265496
Change-Id: I4a4b6fec7b7f189f30a2ce5c650c73d3dda6945d
Signed-off-by: Matthias Maennich <maennich@google.com>
2024-10-03 20:41:35 +00:00
Matthias Maennich
c9d1089922 Merge f8ffbc365f ("Merge tag 'pull-stable-struct_fd' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs") into android-mainline
Steps on the way to 6.12-rc1

Bug: 367265496
Change-Id: Ia35c8df80c389ca4f4f32c649da7d33a25e2fe23
Signed-off-by: Matthias Maennich <maennich@google.com>
2024-09-30 23:57:29 +00:00
Linus Torvalds
6f81a446f8 Merge tag 'modules-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux
Pull module updates from Luis Chamberlain:
 "There are a few fixes / cleanups from Vincent, Chunhui, and Petr, but
  the most important part of this pull request is the Rust community
  stepping up to help maintain both C / Rust code for future Rust module
  support. We grow the set of modules maintainers by three now, and with
  this hope to scale to help address what's needed to properly support
  future Rust module support.

  A lot of exciting stuff coming in future kernel releases.

  This has been on linux-next for ~ 3 weeks now with no issues"

* tag 'modules-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
  module: Refine kmemleak scanned areas
  module: abort module loading when sysfs setup suffer errors
  MAINTAINERS: scale modules with more reviewers
  module: Clean up the description of MODULE_SIG_<type>
  module: Split modules_install compression and in-kernel decompression
2024-09-28 09:06:15 -07:00
Linus Torvalds
1f9c4a9967 Kbuild: make MODVERSIONS support depend on not being a compile test build
Currently the Rust support is gated on not having MODVERSIONS enabled,
and as a result an "allmodconfig" build will disable Rust build tests.

While MODVERSIONS configurations are worth build testing, the feature is
not actually meaningful unless you run the result, and I'd rather get
build coverage of Rust than MODVERSIONS.  So let's disable MODVERSIONS
for build testing until the Rust side clears up.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2024-09-25 11:08:28 -07:00
Matthias Maennich
8ab8a434ea Merge d58db3f3a0 ("Merge tag 'docs-6.12' of git://git.lwn.net/linux") into android-mainline
Steps on the way to 6.12-rc1

Bug: 367265496
Change-Id: If60ec1a650903bc7f1e176954ae2cc19590f580c
Signed-off-by: Matthias Maennich <maennich@google.com>
2024-09-25 09:06:53 +00:00
Linus Torvalds
f8ffbc365f Merge tag 'pull-stable-struct_fd' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull 'struct fd' updates from Al Viro:
 "Just the 'struct fd' layout change, with conversion to accessor
  helpers"

* tag 'pull-stable-struct_fd' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  add struct fd constructors, get rid of __to_fd()
  struct fd: representation change
  introduce fd_file(), convert all accessors to it.
2024-09-23 09:35:36 -07:00
Linus Torvalds
5ba202a7c9 Merge tag 'x86-build-2024-09-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 build updates from Thomas Gleixner:
 "Updates for KCOV instrumentation on x86:

   - Prevent spurious KCOV coverage in common_interrupt()

   - Fixup the KCOV Makefile directive which got stale due to a source
     file rename

   - Exclude stack unwinding from KCOV as it creates large amounts of
     uninteresting coverage

   - Provide a self test to validate that KCOV coverage of the interrupt
     handling code starts not before preempt count got updated"

* tag 'x86-build-2024-09-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86: Ignore stack unwinding in KCOV
  module: Fix KCOV-ignored file name
  kcov: Add interrupt handling self test
  x86/entry: Remove unwanted instrumentation in common_interrupt()
2024-09-17 12:40:34 +02:00
Vincent Donnefort
b319cea805 module: Refine kmemleak scanned areas
commit ac3b432839 ("module: replace module_layout with module_memory")
introduced a set of memory regions for the module layout sharing the
same attributes. However, it didn't update the kmemleak scanned areas
which intended to limit kmemleak scan to sections containing writable
data. This means sections such as .text and .rodata are scanned by
kmemleak.

Refine the scanned areas for modules by limiting it to MOD_TEXT and
MOD_INIT_TEXT mod_mem regions.

CC: Song Liu <song@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
2024-09-13 09:55:17 -07:00
Chunhui Li
ce47f7cbbc module: abort module loading when sysfs setup suffer errors
When insmod a kernel module, if fails in add_notes_attrs or
add_sysfs_attrs such as memory allocation fail, mod_sysfs_setup
will still return success, but we can't access user interface
on android device.

Patch for make mod_sysfs_setup can check the error of
add_notes_attrs and add_sysfs_attrs

[mcgrof: the section stuff comes from linux history.git [0]]
Fixes: 3f7b0672086b ("Module section offsets in /sys/module") [0]
Fixes: 6d76013381 ("Add /sys/module/name/notes")
Acked-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Petr Pavlu <petr.pavlu@suse.com>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202409010016.3XIFSmRA-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202409072018.qfEzZbO7-lkp@intel.com/
Link: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=3f7b0672086b97b2d7f322bdc289cbfa203f10ef [0]
Signed-off-by: Xion Wang <xion.wang@mediatek.com>
Signed-off-by: Chunhui Li <chunhui.li@mediatek.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
2024-09-13 09:55:17 -07:00
Lee Jones
ac37f41e88 Merge tag 'v6.11-rc3' into android-mainline
Linux 6.11-rc3

Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I514576a36c870fdc69a1763b6ac0222b2968eaf5
2024-09-03 07:16:47 +00:00
Petr Pavlu
f94ce04e54 module: Clean up the description of MODULE_SIG_<type>
The MODULE_SIG_<type> config choice has an inconsistent prompt styled as
a question and lengthy option names.

Simplify the prompt and option names to be consistent with other module
options.

Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
2024-08-19 15:11:20 -07:00
Petr Pavlu
c7ff693fa2 module: Split modules_install compression and in-kernel decompression
The kernel configuration allows specifying a module compression mode. If
one is selected then each module gets compressed during
'make modules_install' and additionally one can also enable support for
a respective direct in-kernel decompression support. This means that the
decompression support cannot be enabled without the automatic compression.

Some distributions, such as the (open)SUSE family, use a signer service for
modules. A build runs on a worker machine but signing is done by a separate
locked-down server that is in possession of the signing key. The build
invokes 'make modules_install' to create a modules tree, collects
information about the modules, asks the signer service for their signature,
appends each signature to the respective module and compresses all modules.

When using this arrangment, the 'make modules_install' step produces
unsigned+uncompressed modules and the distribution's own build recipe takes
care of signing and compression later.

The signing support can be currently enabled without automatically signing
modules during 'make modules_install'. However, the in-kernel decompression
support can be selected only after first enabling automatic compression
during this step.

To allow only enabling the in-kernel decompression support without the
automatic compression during 'make modules_install', separate the
compression options similarly to the signing options, as follows:

> Enable loadable module support
[*] Module compression
      Module compression type (GZIP)  --->
[*]   Automatically compress all modules
[ ]   Support in-kernel module decompression

* "Module compression" (MODULE_COMPRESS) is a new main switch for the
  compression/decompression support. It replaces MODULE_COMPRESS_NONE.
* "Module compression type" (MODULE_COMPRESS_<type>) chooses the
  compression type, one of GZ, XZ, ZSTD.
* "Automatically compress all modules" (MODULE_COMPRESS_ALL) is a new
  option to enable module compression during 'make modules_install'. It
  defaults to Y.
* "Support in-kernel module decompression" (MODULE_DECOMPRESS) enables
  in-kernel decompression.

Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Acked-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
2024-08-19 15:11:20 -07:00
Lee Jones
1dfbe413d2 Merge 6706415bf9 ("Merge tag 'gfs2-v6.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2") into android-mainline
Steps on the way to v6.11-rc1

Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I6810160c1188e3aeb621a7227aba3e3497e321e8
2024-08-14 14:06:42 +00:00
Al Viro
1da91ea87a introduce fd_file(), convert all accessors to it.
For any changes of struct fd representation we need to
turn existing accesses to fields into calls of wrappers.
Accesses to struct fd::flags are very few (3 in linux/file.h,
1 in net/socket.c, 3 in fs/overlayfs/file.c and 3 more in
explicit initializers).
	Those can be dealt with in the commit converting to
new layout; accesses to struct fd::file are too many for that.
	This commit converts (almost) all of f.file to
fd_file(f).  It's not entirely mechanical ('file' is used as
a member name more than just in struct fd) and it does not
even attempt to distinguish the uses in pointer context from
those in boolean context; the latter will be eventually turned
into a separate helper (fd_empty()).

	NOTE: mass conversion to fd_empty(), tempting as it
might be, is a bad idea; better do that piecewise in commit
that convert from fdget...() to CLASS(...).

[conflicts in fs/fhandle.c, kernel/bpf/syscall.c, mm/memcontrol.c
caught by git; fs/stat.c one got caught by git grep]
[fs/xattr.c conflict]

Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2024-08-12 22:00:43 -04:00
Linus Torvalds
2124d84db2 module: make waiting for a concurrent module loader interruptible
The recursive aes-arm-bs module load situation reported by Russell King
is getting fixed in the crypto layer, but this in the meantime fixes the
"recursive load hangs forever" by just making the waiting for the first
module load be interruptible.

This should now match the old behavior before commit 9b9879fc03
("modules: catch concurrent module loads, treat them as idempotent"),
which used the different "wait for module to be ready" code in
module_patient_check_exists().

End result: a recursive module load will still block, but now a signal
will interrupt it and fail the second module load, at which point the
first module will successfully complete loading.

Fixes: 9b9879fc03 ("modules: catch concurrent module loads, treat them as idempotent")
Cc: Russell King <linux@armlinux.org.uk>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2024-08-09 08:33:28 -07:00