Alexandru Ardelean
7cd787499d
util_macros.h: fix/rework find_closest() macros
...
commit bc73b4186736341ab5cd2c199da82db6e1134e13 upstream.
A bug was found in the find_closest() (find_closest_descending() is also
affected after some testing), where for certain values with small
progressions, the rounding (done by averaging 2 values) causes an
incorrect index to be returned. The rounding issues occur for
progressions of 1, 2 and 3. It goes away when the progression/interval
between two values is 4 or larger.
It's particularly bad for progressions of 1. For example if there's an
array of 'a = { 1, 2, 3 }', using 'find_closest(2, a ...)' would return 0
(the index of '1'), rather than returning 1 (the index of '2'). This
means that for exact values (with a progression of 1), find_closest() will
misbehave and return the index of the value smaller than the one we're
searching for.
For progressions of 2 and 3, the exact values are obtained correctly; but
values aren't approximated correctly (as one would expect). Starting with
progressions of 4, all seems to be good (one gets what one would expect).
While one could argue that 'find_closest()' should not be used for arrays
with progressions of 1 (i.e. '{1, 2, 3, ...}', the macro should still
behave correctly.
The bug was found while testing the 'drivers/iio/adc/ad7606.c',
specifically the oversampling feature.
For reference, the oversampling values are listed as:
static const unsigned int ad7606_oversampling_avail[7] = {
1, 2, 4, 8, 16, 32, 64,
};
When doing:
1. $ echo 1 > /sys/bus/iio/devices/iio\:device0/oversampling_ratio
$ cat /sys/bus/iio/devices/iio\:device0/oversampling_ratio
1 # this is fine
2. $ echo 2 > /sys/bus/iio/devices/iio\:device0/oversampling_ratio
$ cat /sys/bus/iio/devices/iio\:device0/oversampling_ratio
1 # this is wrong; 2 should be returned here
3. $ echo 3 > /sys/bus/iio/devices/iio\:device0/oversampling_ratio
$ cat /sys/bus/iio/devices/iio\:device0/oversampling_ratio
2 # this is fine
4. $ echo 4 > /sys/bus/iio/devices/iio\:device0/oversampling_ratio
$ cat /sys/bus/iio/devices/iio\:device0/oversampling_ratio
4 # this is fine
And from here-on, the values are as correct (one gets what one would
expect.)
While writing a kunit test for this bug, a peculiar issue was found for the
array in the 'drivers/hwmon/ina2xx.c' & 'drivers/iio/adc/ina2xx-adc.c'
drivers. While running the kunit test (for 'ina226_avg_tab' from these
drivers):
* idx = find_closest([-1 to 2], ina226_avg_tab, ARRAY_SIZE(ina226_avg_tab));
This returns idx == 0, so value.
* idx = find_closest(3, ina226_avg_tab, ARRAY_SIZE(ina226_avg_tab));
This returns idx == 0, value 1; and now one could argue whether 3 is
closer to 4 or to 1. This quirk only appears for value '3' in this
array, but it seems to be a another rounding issue.
* And from 4 onwards the 'find_closest'() works fine (one gets what one
would expect).
This change reworks the find_closest() macros to also check the difference
between the left and right elements when 'x'. If the distance to the right
is smaller (than the distance to the left), the index is incremented by 1.
This also makes redundant the need for using the DIV_ROUND_CLOSEST() macro.
In order to accommodate for any mix of negative + positive values, the
internal variables '__fc_x', '__fc_mid_x', '__fc_left' & '__fc_right' are
forced to 'long' type. This also addresses any potential bugs/issues with
'x' being of an unsigned type. In those situations any comparison between
signed & unsigned would be promoted to a comparison between 2 unsigned
numbers; this is especially annoying when '__fc_left' & '__fc_right'
underflow.
The find_closest_descending() macro was also reworked and duplicated from
the find_closest(), and it is being iterated in reverse. The main reason
for this is to get the same indices as 'find_closest()' (but in reverse).
The comparison for '__fc_right < __fc_left' favors going the array in
ascending order.
For example for array '{ 1024, 512, 256, 128, 64, 16, 4, 1 }' and x = 3, we
get:
__fc_mid_x = 2
__fc_left = -1
__fc_right = -2
Then '__fc_right < __fc_left' evaluates to true and '__fc_i++' becomes 7
which is not quite incorrect, but 3 is closer to 4 than to 1.
This change has been validated with the kunit from the next patch.
Link: https://lkml.kernel.org/r/20241105145406.554365-1-aardelean@baylibre.com
Fixes: 95d119528b ("util_macros.h: add find_closest() macro")
Signed-off-by: Alexandru Ardelean <aardelean@baylibre.com>
Cc: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-14 19:44:43 +01:00
..
amba
avf
bcma
byteorder
can
can: sja1000: fix size of OCR_MODE_MASK define
2022-12-19 12:24:16 +01:00
ceph
clk
crush
decompress
dma
dsa
extcon
firmware
firmware: meson_sm: Rework driver as a proper platform driver
2024-04-13 12:51:26 +02:00
fpga
fsl
gpio
greybus
hsi
i3c
iio
iio: st_sensors: Add a local lock for protecting odr
2022-06-14 18:11:59 +02:00
input
irqchip
isdn
lockd
mailbox
mailbox: zynqmp: Fix typo in IPI documentation
2023-05-17 11:35:55 +02:00
mdio
net: xgene: Move shared header file into include/linux
2023-02-06 07:52:47 +01:00
mfd
mfd: t7l66xb: Drop platform disable callback
2022-08-25 11:18:04 +02:00
mlx4
mlx5
net/mlx5_core: Clean driver version and name
2023-11-28 16:50:17 +00:00
mmc
mmc: core: add helpers mmc_regulator_enable/disable_vqmmc
2023-12-13 18:18:15 +01:00
mtd
mtd: rawnand: protect access to rawnand devices while in suspend
2024-11-17 14:58:51 +01:00
mux
netfilter
netfilter: ipset: fix performance regression in swap operation
2024-02-23 08:25:14 +01:00
netfilter_arp
netfilter_bridge
netfilter: ebtables: reject blobs that don't provide all entry points
2022-09-05 10:27:41 +02:00
netfilter_ipv4
netfilter_ipv6
perf
phy
pinctrl
platform_data
ASoC: Intel: Move soc_intel_is_foo() helpers to a generic header
2024-08-19 05:33:42 +02:00
power
power: supply: bq27xxx: Fix poll_interval handling and races on remove
2023-05-30 12:44:10 +01:00
qed
qed: Improve the stack space of filter_config()
2024-08-19 05:33:30 +02:00
raid
regulator
remoteproc
reset
rpmsg
rtc
sched
kernel/fork: beware of __put_task_struct() calling context
2023-09-23 11:00:03 +02:00
soc
firmware: ti_sci: Replace HTTP links with HTTPS ones
2023-11-20 10:30:12 +01:00
soundwire
spi
spi: Fix deadlock when adding SPI controllers on SPI buses
2024-11-17 14:58:51 +01:00
ssb
sunrpc
SUNRPC: Replace internal use of SOCKWQ_ASYNC_NOSPACE
2024-12-14 19:44:42 +01:00
ulpi
unaligned
usb
usb: typec: bus: verify partner exists in typec_altmode_attention
2023-09-23 11:00:01 +02:00
wimax
8250_pci.h
a.out.h
acct.h
acpi.h
acpi_dma.h
acpi_iort.h
ACPI/IORT: Make iort_msi_map_rid() PCI agnostic
2023-12-13 18:18:10 +01:00
acpi_pmtmr.h
adb.h
adfs_fs.h
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci-remap.h
ahci_platform.h
aio.h
alarmtimer.h
alcor_pci.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
anon_inodes.h
apm-emulation.h
apm_bios.h
apple-gmux.h
apple_bl.h
arch_topology.h
arm-cci.h
arm-smccc.h
arm64: entry: Add vectors that have the bhb mitigation sequences
2022-03-19 13:40:15 +01:00
arm_sdei.h
armada-37xx-rwtm-mailbox.h
ascii85.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h
ata: fix ata_id_has_dipm()
2022-10-26 13:22:39 +02:00
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_suni.h
atm_tcp.h
atmdev.h
atmel-mci.h
atmel-ssc.h
atmel_pdc.h
atomic-fallback.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h
backing-dev.h
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
bio.h
bit_spinlock.h
bitfield.h
bitfield.h: Fix "type of reg too small for mask" test
2022-07-29 17:14:18 +02:00
bitmap.h
fix bitmap corruption on close_range() with CLOSE_RANGE_UNSHARE
2024-09-04 13:14:50 +02:00
bitops.h
ocfs2/dlm: move BITS_TO_BYTES() to bitops.h for wider use
2023-06-09 10:28:54 +02:00
bitrev.h
bits.h
blk-cgroup.h
block: don't merge across cgroup boundaries if blkcg is enabled
2022-04-15 14:18:01 +02:00
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h
blk-pm.h
blk_types.h
blkdev.h
block: return unsigned int from bdev_io_min
2024-12-14 19:44:41 +01:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bottom_half.h
bpf-cgroup.h
bpf.h
bpf: Add map and need_defer parameters to .map_fd_put_ptr()
2024-02-23 08:24:57 +01:00
bpf_lirc.h
bpf_trace.h
bpf_types.h
bpf_verifier.h
bpfilter.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
fs: only do a memory barrier for the first set_buffer_uptodate()
2022-09-15 12:04:49 +02:00
bug.h
build-salt.h
build_bug.h
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup-defs.h
cgroup: Move rcu_head up near the top of cgroup_root
2024-12-14 19:44:35 +01:00
cgroup.h
memcg: fix possible use-after-free in memcg_write_event_control()
2022-12-14 11:30:43 +01:00
cgroup_rdma.h
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-provider.h
clk.h
clk: Fix undefined reference to `clk_rate_exclusive_{get,put}'
2023-08-30 16:27:27 +02:00
clkdev.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h
compat.h
ftruncate: pass a signed offset
2024-07-05 09:08:31 +02:00
compiler-clang.h
compiler-gcc.h
compiler-intel.h
compiler.h
compiler_attributes.h
Fix gcc 4.9 build issue in 5.4.y
2024-08-19 05:33:53 +02:00
compiler_types.h
completion.h
component.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
const.h
container.h
context_tracking.h
context_tracking_state.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
counter.h
counter_enum.h
cper.h
cpu.h
init: Provide arch_cpu_finalize_init()
2023-08-08 19:56:33 +02:00
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h
cpuhotplug.h
hrtimers: Push pending hrtimers away from outgoing CPU earlier
2023-12-13 18:18:09 +01:00
cpuidle.h
cpuidle_haltpoll.h
cpumask.h
bitmap: introduce generic optimized bitmap_size()
2024-09-04 13:14:50 +02:00
cpuset.h
crash_core.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc32poly.h
crc64.h
cred.h
cred: switch to using atomic_long_t
2023-12-20 15:41:18 +01:00
crypto.h
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h
dca.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugfs: regset32: Add Runtime PM support
2023-05-17 11:35:32 +02:00
debugobjects.h
delay.h
delayacct.h
delayed_call.h
devcoredump.h
devfreq-event.h
devfreq.h
PM/devfreq: governor: Add a private governor_data for governor
2023-01-18 11:41:52 +01:00
devfreq_cooling.h
device-mapper.h
dm mpath: pass IO start time to path selector
2024-09-04 13:14:58 +02:00
device.h
driver: platform: Add helper for safer setting of driver_override
2023-11-08 11:23:39 +01:00
device_cgroup.h
devpts_fs.h
digsig.h
dim.h
linux/dim: Do nothing if no time delta between samples
2023-05-30 12:44:01 +01:00
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-bufio.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm9000.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence-chain.h
dma-fence.h
dma-iommu.h
dma-mapping.h
dma-mapping: add generic helpers for mapping sgtable objects
2023-02-25 11:53:25 +01:00
dma-noncoherent.h
dma-mapping: drop the dev argument to arch_sync_dma_for_*
2023-04-05 11:16:43 +02:00
dma-resv.h
dmaengine.h
dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV
2024-02-23 08:25:06 +01:00
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds2782_battery.h
dtlk.h
dw_apb_timer.h
dynamic_debug.h
dyndbg: fix module.dyndbg handling
2022-10-26 13:22:37 +02:00
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h
efi: random: reduce seed size to 32 bytes
2022-11-10 17:57:55 +01:00
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
energy_model.h
err.h
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h
ethernet: Add helper for assigning packet type when dest address does not match device address
2024-05-02 16:18:36 +02:00
ethtool.h
eventfd.h
eventfd: Export eventfd_ctx_do_read()
2023-09-23 10:59:40 +02:00
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fbcon.h
fbcon: Prevent that screen size is smaller than font size
2022-07-12 16:30:47 +02:00
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
file.h
filter.h
bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly
2024-03-26 18:22:15 -04:00
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_proportions.h
font.h
frame.h
objtool: Add support for intra-function calls
2024-04-13 12:51:29 +02:00
freezer.h
frontswap.h
fs.h
mount: warn only once about timestamp range expiration
2024-11-08 16:20:26 +01:00
fs_context.h
fs_enet_pd.h
fs_parser.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_types.h
fs_uart_pd.h
fscache-cache.h
fscache.h
fscrypt.h
fsi-occ.h
fsi-sbefifo.h
fsi.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h
fsnotify: Do not generate events for O_PATH file descriptors
2024-07-18 11:40:51 +02:00
fsnotify_backend.h
fsverity.h
ftrace.h
ftrace: Mark get_lock_parent_ip() __always_inline
2023-04-20 12:07:34 +02:00
ftrace_irq.h
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h
genetlink.h
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
mm, vmscan: prevent infinite loop for costly GFP_NOIO | __GFP_RETRY_MAYFAIL allocations
2024-04-13 12:51:34 +02:00
glob.h
gnss.h
goldfish.h
gpio-pxa.h
gpio.h
gpio_keys.h
greybus.h
hardirq.h
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
HID: fix HID device resource race between HID core and debugging support
2023-12-08 08:44:23 +01:00
hiddev.h
hidraw.h
highmem.h
mm/highmem: Lift memcpy_[to|from]_page to core
2023-01-18 11:41:55 +01:00
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hmm.h
host1x.h
gpu: host1x: mipi: Update tegra_mipi_request() to be node based
2024-03-26 18:22:18 -04:00
hp_sdc.h
hpet.h
hrtimer.h
hrtimer: Report offline hrtimer enqueue
2024-02-23 08:25:08 +01:00
hrtimer_defs.h
htcpld.h
huge_mm.h
hugetlb.h
hugetlb: check for undefined shift on 32 bit architectures
2023-02-22 12:50:39 +01:00
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
random: pull add_hwgenerator_randomness() declaration into random.h
2022-06-22 14:11:12 +02:00
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
hypervisor.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-mux.h
i2c-pxa.h
i2c-smbus.h
i2c.h
i2c: Use IS_REACHABLE() for substituting empty ACPI functions
2024-09-12 11:03:50 +02:00
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idle_inject.h
idr.h
Fix termination state for idr_for_each_entry_ul()
2023-11-20 10:30:15 +01:00
ieee80211.h
ieee802154.h
if_arp.h
net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
2023-09-23 10:59:55 +02:00
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_frad.h
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_rmnet.h
if_tap.h
if_team.h
team: fix null-ptr-deref when team device type is changed
2023-10-10 21:46:37 +02:00
if_tun.h
if_tunnel.h
if_vlan.h
net: add vlan_get_protocol_and_depth() helper
2023-05-30 12:44:01 +01:00
igmp.h
ihex.h
ima.h
ima: Align ima_file_mmap() parameters with mmap_file LSM hook
2023-03-11 16:44:02 +01:00
imx-media.h
in.h
in6.h
indirect_call_wrapper.h
inet.h
inet_diag.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-ish-client-if.h
intel-pti.h
intel-svm.h
intel_rapl.h
intel_th.h
interconnect-provider.h
interconnect.h
interconnect: Add helpers for enabling/disabling a path
2023-08-30 16:27:13 +02:00
interrupt.h
genirq: Add IRQF_NO_AUTOEN for request_irq/nmi()
2023-05-17 11:35:46 +02:00
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io-pgtable.h
io.h
ioc3.h
iocontext.h
iomap.h
iomap: iomap that extends beyond EOF should be marked dirty
2022-09-28 11:03:58 +02:00
iommu-helper.h
iommu.h
iommu: Return right value in iommu_sva_bind_device()
2024-07-05 09:08:16 +02:00
iopoll.h
ioport.h
resource: Add irqresource_disabled()
2023-10-25 11:53:22 +02:00
ioprio.h
iova.h
iommu/iova: Fix module config properly
2022-10-26 13:22:46 +02:00
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi-fru.h
ipmi.h
ipmi_smi.h
ipv6.h
ipv6: make mc_forwarding atomic
2022-04-15 14:18:32 +02:00
ipv6_route.h
irq.h
genirq: Allow irq_chip registration functions to take a const irq_chip
2024-08-19 05:33:45 +02:00
irq_cpustat.h
irq_poll.h
irq_sim.h
irq_work.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
genirq: Allow the PM device to originate from irq domain
2024-08-19 05:33:43 +02:00
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isicom.h
iversion.h
jbd2.h
jbd2: introduce/export functions jbd2_journal_submit|finish_inode_data_buffers()
2024-11-08 16:20:30 +01:00
jhash.h
jiffies.h
time: Fix references to _msecs_to_jiffies() handling of values
2024-12-14 19:44:23 +01:00
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h
panic: Consolidate open-coded panic_on_warn checks
2023-02-06 07:52:50 +01:00
kernel_stat.h
genirq: Fix the return type of kstat_cpu_irqs_sum()
2023-03-11 16:43:38 +01:00
kernelcapi.h
kernfs.h
kexec.h
kexec_file: drop weak attribute from arch_kexec_apply_relocations[_add]
2022-07-02 16:28:50 +02:00
key-type.h
key.h
keyboard.h
keyctl.h
kfifo.h
kfifo: fix kfifo_to_user() return type
2022-08-25 11:18:04 +02:00
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_ns.h
kprobes.h
x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe range
2023-03-11 16:44:02 +01:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h
x86/kvm/vmx: Make noinstr clean
2022-10-07 09:16:54 +02:00
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lantiq.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds-ti-lmu-common.h
leds.h
leds_pwm.h
libata.h
ata: libata-sata: increase PMP SRST timeout to 10s
2023-10-10 21:46:42 +02:00
libfdt.h
libfdt_env.h
libgcc.h
libnvdimm.h
libps2.h
license.h
lightnvm.h
limits.h
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list.h
list: add "list_del_init_careful()" to go with "list_empty_careful()"
2023-06-28 10:18:35 +02:00
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
livepatch.h
llc.h
llist.h
lockdep.h
drm/syncobj: make lockdep complain on WAIT_FOR_SUBMIT v3
2024-03-01 13:13:38 +01:00
lockref.h
log2.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h
lsm: new security_file_ioctl_compat() hook
2024-02-23 08:25:15 +01:00
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
mailbox: forward the hrtimer if not queued and under a lock
2022-06-14 18:11:42 +02:00
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
ext4: fix deadlock due to mbcache entry corruption
2023-01-18 11:41:56 +01:00
mbus.h
mc6821.h
mc146818rtc.h
rtc: mc146818-lib: Fix the AltCentury for AMD platforms
2022-05-25 09:14:32 +02:00
mcb.h
mcb: remove is_added flag from mcb_device struct
2023-10-25 11:53:19 +02:00
mdev.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h
mei_cl_bus.h
mem_encrypt.h
memblock.h
memcontrol.h
memfd.h
memory.h
memory_hotplug.h
mempolicy.h
mempool.h
memremap.h
memstick.h
mic_bus.h
micrel_phy.h
net: phy: mchp: Add support for LAN8814 QUAD PHY
2024-07-05 09:08:27 +02:00
microchipphy.h
migrate.h
migrate_mode.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm-arch-hooks.h
mm.h
mm: add remap_pfn_range_notrack
2024-11-17 14:58:53 +01:00
mm_inline.h
mm_types.h
mm: fix ambiguous comments for better code readability
2024-11-17 14:58:53 +01:00
mm_types_task.h
mman.h
mmap_lock.h
mmap locking API: initial implementation as rwsem wrappers
2022-07-29 17:14:18 +02:00
mmdebug.h
mm: Fix '.data.once' orphan section warning
2022-12-08 11:23:04 +01:00
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h
arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
2022-05-15 19:54:46 +02:00
mnt_namespace.h
mod_devicetable.h
x86/cpu: Add a steppings field to struct x86_cpu_id
2022-10-07 09:16:54 +02:00
module.h
module_signature.h
moduleloader.h
moduleparam.h
params: lift param_set_uint_minmax to common code
2024-06-16 13:28:45 +02:00
mount.h
moxtet.h
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
mroute6.h
mroute_base.h
msdos_fs.h
msg.h
msi.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
new helper: lookup_positive_unlocked()
2023-09-23 10:59:40 +02:00
nd.h
ndctl.h
net.h
netdev_features.h
net: Fix features skip in for_each_netdev_feature()
2022-05-18 09:47:24 +02:00
netdevice.h
net: add DEV_STATS_READ() helper
2023-11-20 10:30:10 +01:00
netfilter.h
Remove DECnet support from kernel
2023-06-21 15:44:10 +02:00
netfilter_bridge.h
netfilter_defs.h
Remove DECnet support from kernel
2023-06-21 15:44:10 +02:00
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
netpoll: Use rcu_access_pointer() in netpoll_poll_lock
2024-12-14 19:44:28 +01:00
nfs.h
nfs3.h
nfs4.h
nfs_fs.h
NFS: swap IO handling is slightly different for O_DIRECT IO
2022-04-15 14:18:35 +02:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h
nfsacl.h
nl802154.h
nls.h
fs/nls: make load_nls() take a const parameter
2023-09-23 10:59:38 +02:00
nmi.h
watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct config
2023-07-27 08:37:10 +02:00
node.h
nodemask.h
nodemask: Fix return values to be unsigned
2022-06-14 18:12:02 +02:00
nospec.h
uaccess: Add speculation barrier to copy_from_user()
2023-02-25 11:53:26 +01:00
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h
ntb_transport.h
nubus.h
numa.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme-tcp.h
nvme-tcp: fix nvme_tcp_term_pdu to match spec
2023-04-05 11:16:38 +02:00
nvme.h
nvme: fixup comment for nvme RDMA Provider Type
2024-07-05 09:08:28 +02:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
objagg.h
mlxsw: spectrum_acl_erp: Fix object nesting warning
2024-08-19 05:33:28 +02:00
of.h
of: Add missing 'Return' section in kerneldoc comments
2023-12-13 18:18:11 +01:00
of_address.h
of_clk.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of/irq: Make of_msi_map_rid() PCI bus agnostic
2023-12-13 18:18:11 +01:00
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
oid_registry.h
olpc-ec.h
omap-dma.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
once: fix section mismatch on clang builds
2022-11-01 19:06:42 +01:00
oom.h
openvswitch.h
oprofile.h
osq_lock.h
overflow.h
overflow: Implement size_t saturating arithmetic helpers
2024-09-04 13:14:51 +02:00
packing.h
padata.h
page-flags-layout.h
page-flags.h
page-isolation.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
pageblock-flags.h
pagemap.h
pagevec.h
pagewalk.h
parman.h
parport.h
parport_pc.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h
pci-ats.h
pci-dma-compat.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci-p2pdma.h
pci.h
PCI: Add PCI_ERROR_RESPONSE and related definitions
2024-07-05 09:08:25 +02:00
pci_hotplug.h
pci_ids.h
PCI: Add function 0 DMA alias quirk for Glenfly Arise chip
2024-11-08 16:20:47 +01:00
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h
perf_event.h
perf/core: Add a new read format to get a number of lost samples
2023-12-13 18:18:15 +01:00
perf_regs.h
personality.h
pfn.h
pfn_t.h
phonet.h
phy.h
phy_fixed.h
phy_led_triggers.h
phylink.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
pl353-smc.h
platform_device.h
driver: platform: Add helper for safer setting of driver_override
2023-11-08 11:23:39 +01:00
plist.h
pm-trace.h
pm.h
pm2301_charger.h
pm_clock.h
pm_domain.h
PM: domains: Restore comment indentation for generic_pm_domain.child_links
2023-05-17 11:36:04 +02:00
pm_opp.h
pm_qos.h
pm_runtime.h
PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend()
2024-02-23 08:25:14 +01:00
pm_wakeirq.h
PM / wakeirq: support enabling wake-up irq after runtime_suspend called
2023-08-11 11:54:00 +02:00
pm_wakeup.h
pmbus.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
fs/select: rework stack allocation hack for clang
2024-03-26 18:22:13 -04:00
posix-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
power_supply.h
power: supply: core: Refactor power_supply_set_input_current_limit_from_supplier()
2023-06-05 08:17:31 +02:00
powercap.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h
pr.h
prandom.h
siphash: use one source of truth for siphash permutations
2022-06-22 14:11:16 +02:00
preempt.h
sched/rt: Provide migrate_disable/enable() inlines
2023-11-20 10:30:12 +01:00
prefetch.h
prime_numbers.h
printk.h
printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h
2023-05-17 11:36:04 +02:00
proc_fs.h
net, proc: Provide PROC_FS=n fallback for proc_create_net_single_write()
2023-01-18 11:41:02 +01:00
proc_ns.h
processor.h
profile.h
projid.h
property.h
psci.h
pseudo_fs.h
psi.h
psi: Fix uaf issue when psi trigger is destroyed while being polled
2022-02-05 12:35:36 +01:00
psi_types.h
psi: Fix uaf issue when psi trigger is destroyed while being polled
2022-02-05 12:35:36 +01:00
psp-sev.h
pstore.h
pstore_ram.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h
ptrace.h
ptrace/xtensa: Replace PT_SINGLESTEP with TIF_SINGLESTEP
2022-06-14 18:11:24 +02:00
purgatory.h
pvclock_gtod.h
pwm.h
pwm: Fix double shift bug
2023-11-28 16:50:16 +00:00
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qcom-geni-se.h
qcom_scm.h
qnx6_fs.h
quota.h
quota: Fix slow quotaoff
2023-10-25 11:53:18 +02:00
quotaops.h
quota: Fix slow quotaoff
2023-10-25 11:53:18 +02:00
radix-tree.h
raid_class.h
scsi: core: raid_class: Remove raid_component_add()
2023-08-30 16:27:27 +02:00
ramfs.h
random.h
random: always mix cycle counter in add_latent_entropy()
2023-02-25 11:53:25 +01:00
range.h
ras.h
ratelimit.h
random: quiet urandom warning ratelimit suppression message
2022-06-29 08:58:45 +02:00
rational.h
rbtree.h
rbtree_augmented.h
rbtree_latch.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h
rcu: add a helper to report consolidated flavor QS
2024-03-26 18:22:25 -04:00
rcupdate_wait.h
rcutiny.h
rcutree.h
rcuwait.h
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
locking/refcount: Consolidate implementations of refcount_t
2022-07-29 17:14:17 +02:00
regmap.h
regmap: Add bulk read/write callbacks into regmap_config
2024-03-15 10:48:20 -04:00
regset.h
relay.h
remoteproc.h
reset-controller.h
reset.h
resource.h
resource_ext.h
restart_block.h
rfkill.h
rhashtable-types.h
rhashtable.h
ring_buffer.h
ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance()
2024-09-12 11:03:56 +02:00
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse
2022-09-05 10:27:46 +02:00
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rpmsg: Fix calling device_lock() on non-initialized device
2023-11-08 11:23:39 +01:00
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
misc: rtsx_usb: use separate command and response buffers
2022-07-12 16:30:49 +02:00
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem.h
s3c_adc_battery.h
sbitmap.h
scatterlist.h
scatterlist: add generic wrappers for iterating over sgtable objects
2023-02-25 11:53:25 +01:00
scc.h
sched.h
kernel/sched: Remove dl_boosted flag comment
2022-09-05 10:27:39 +02:00
sched_clock.h
scif.h
scmi_protocol.h
scpi_protocol.h
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
lsm: new security_file_ioctl_compat() hook
2024-02-23 08:25:15 +01:00
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
selection.h
sem.h
semaphore.h
seq_buf.h
seq_file.h
seq_file_net.h
seqlock.h
seqno-fence.h
serdev.h
serial.h
serial_8250.h
Revert "8250: add support for ASIX devices with a FIFO bug"
2023-07-27 08:37:38 +02:00
serial_bcm63xx.h
serial_core.h
serial: core: fix kernel-doc for uart_port_unlock_irqrestore()
2024-05-02 16:18:37 +02:00
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serio.h
set_memory.h
sfi.h
sfi_acpi.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh: intc: Avoid spurious sizeof-pointer-div warning
2023-03-22 13:28:08 +01:00
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h
shrinker.h
signal.h
signal_types.h
signalfd.h
siox.h
siphash.h
siphash: use one source of truth for siphash permutations
2022-06-22 14:11:16 +02:00
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h
inet: inet_defrag: prevent sk release while still in use
2024-11-08 16:20:26 +01:00
skmsg.h
slab.h
slab_def.h
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h
stackleak.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
stm.h
stmmac.h
net: stmmac: do not stop RX_CLK in Rx LPI state for qcs404 SoC
2023-02-22 12:50:34 +01:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h
string_helpers.h
lib/string_helpers: Introduce string_upper() and string_lower() helpers
2023-05-30 12:44:08 +01:00
stringhash.h
stringify.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h
PM: s2idle: ACPI: Fix wakeup interrupts handling
2022-02-16 12:52:50 +01:00
svga.h
sw842.h
swab.h
swait.h
swap.h
swap_cgroup.h
swap_slots.h
swapfile.h
swapops.h
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscalls.h
ftruncate: pass a signed offset
2024-07-05 09:08:31 +02:00
syscore_ops.h
sysctl.h
sysctl: add a new register_sysctl_init() interface
2023-02-06 07:52:48 +01:00
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tcp: add TCP_INFO status for failed client TFO
2024-07-18 11:40:53 +02:00
tee_drv.h
tee: export teedev_open() and teedev_close_context()
2022-03-02 11:41:04 +01:00
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thread_info.h
threads.h
thunderbolt.h
ti-emif-sram.h
ti_wilink_st.h
tick.h
tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem
2023-05-17 11:35:57 +02:00
tifm.h
timb_dma.h
timb_gpio.h
time.h
time32.h
time64.h
timecounter.h
timekeeper_internal.h
timekeeping.h
timekeeping32.h
timer.h
timers: Rename del_timer_sync() to timer_delete_sync()
2024-04-13 12:51:21 +02:00
timerfd.h
timeriomem-rng.h
timerqueue.h
timerqueue: Use rb_entry_safe() in timerqueue_getnext()
2023-01-18 11:40:53 +01:00
timex.h
timekeeping: Add raw clock fallback for random_get_entropy()
2022-06-22 14:11:15 +02:00
tnum.h
topology.h
sched/topology: Make sched_init_numa() use a set for the deduplicating sort
2022-03-08 19:07:48 +01:00
torture.h
toshiba.h
tpm.h
tpm_command.h
tpm_eventlog.h
efi: tpm: Avoid READ_ONCE() for accessing the event log
2023-01-18 11:42:00 +01:00
trace.h
trace_clock.h
trace_events.h
bpf: kprobe: remove unused declaring of bpf_kprobe_override
2024-08-19 05:33:50 +02:00
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
tracing: Make tracepoint lockdep check actually test something
2023-03-22 13:28:08 +01:00
transport_class.h
ts-nbus.h
tsacct_kern.h
tty.h
tty: Prevent writing chars during tcsetattr TCSADRAIN/FLUSH
2023-05-17 11:36:04 +02:00
tty_driver.h
tty_flip.h
tty: use new tty_insert_flip_string_and_push_buffer() in pty_write()
2022-07-29 17:14:20 +02:00
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h
u64_stats: fix u64_stats_init() for lockdep when used repeatedly in one file
2024-05-02 16:18:28 +02:00
uaccess.h
uaccess: Add minimum bounds check on kernel buffer size
2023-03-11 16:43:56 +01:00
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uio.h
uio_driver.h
umh.h
unicode.h
units.h
units: add the HZ macros
2024-02-23 08:24:47 +01:00
uprobes.h
usb.h
USB: move snd_usb_pipe_sanity_check into the USB core
2024-08-19 05:33:30 +02:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
userfaultfd_k.h
util_macros.h
util_macros.h: fix/rework find_closest() macros
2024-12-14 19:44:43 +01:00
uts.h
utsname.h
uuid.h
vbox_utils.h
verification.h
vermagic.h
vexpress.h
vfio.h
vfio: Introduce interface to flush virqfd inject workqueue
2024-04-13 12:51:34 +02:00
vfs.h
vga_switcheroo.h
vgaarb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h
virtio: unexport virtio_finalize_features
2022-03-16 13:21:48 +01:00
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio: acknowledge all features before access
2022-03-16 13:21:48 +01:00
virtio_console.h
virtio_net.h
net: do not allow gso_size to be set to GSO_BY_FRAGS
2023-08-30 16:27:17 +02:00
virtio_ring.h
virtio_vsock.h
visorbus.h
vlynq.h
vm_event_item.h
vm_sockets.h
vmacache.h
vmalloc.h
vme.h
vmpressure.h
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt.h
vt_buffer.h
linux/vt_buffer.h: allow either builtin or modular for macros
2023-05-17 11:35:46 +02:00
vt_kern.h
vtime.h
w1-gpio.h
w1.h
wait.h
mm: allow a controlled amount of unfairness in the page lock
2023-08-30 16:27:26 +02:00
wait_bit.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h
workqueue: clean up WORK_* constant types, clarify masking
2023-07-27 08:37:29 +02:00
writeback.h
ww_mutex.h
xarray.h
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd.h
zutil.h