linux/drivers
Sean Anderson 7aaddea446 iio: xilinx-ams: Unmask interrupts after updating alarms
commit feb500c7ae upstream.

To convert level-triggered alarms into edge-triggered IIO events, alarms
are masked when they are triggered. To ensure we catch subsequent
alarms, we then periodically poll to see if the alarm is still active.
If it isn't, we unmask it. Active but masked alarms are stored in
current_masked_alarm.

If an active alarm is disabled, it will remain set in
current_masked_alarm until ams_unmask_worker clears it. If the alarm is
re-enabled before ams_unmask_worker runs, then it will never be cleared
from current_masked_alarm. This will prevent the alarm event from being
pushed even if the alarm is still active.

Fix this by recalculating current_masked_alarm immediately when enabling
or disabling alarms.

Fixes: d5c70627a7 ("iio: adc: Add Xilinx AMS driver")
Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
Reviewed-by: O'Griofa, Conall <conall.ogriofa@amd.com>
Tested-by: Erim, Salih <Salih.Erim@amd.com>
Acked-by: Erim, Salih <Salih.Erim@amd.com>
Link: https://patch.msgid.link/20250715002847.2035228-1-sean.anderson@linux.dev
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-10-19 16:23:13 +02:00
..
accessibility speakup: Fix sizeof() vs ARRAY_SIZE() bug 2024-06-12 11:02:55 +02:00
acpi ACPI: debug: fix signedness issues in read/write helpers 2025-10-19 16:23:10 +02:00
amba amba: bus: fix refcount leak 2023-09-13 09:42:56 +02:00
android binder: fix UAF caused by offsets overwrite 2024-09-12 11:10:26 +02:00
ata ata: Fix SATA_MOBILE_LPM_POLICY description in Kconfig 2025-08-28 16:26:12 +02:00
atm atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control(). 2025-09-04 15:26:27 +02:00
auxdisplay auxdisplay: charlcd: Partially revert "Move hwidth and bwidth to struct hd44780_common" 2025-06-04 14:40:07 +02:00
base drivers/base/node: fix double free in register_one_node() 2025-10-15 11:56:38 +02:00
bcma Interrupt subsystem updates: 2022-10-12 10:23:24 -07:00
block nbd: restrict sockets to TCP and UDP 2025-10-15 11:56:28 +02:00
bluetooth Bluetooth: btusb: QCA: Fix downloading wrong NVM for WCN6855 GF variant without board ID 2025-07-24 08:51:52 +02:00
bus bus: mhi: host: Do not use uninitialized 'dev' pointer in mhi_init_irq_setup() 2025-10-19 16:23:12 +02:00
cdrom cdrom: rearrange last_media_change check to avoid unintentional overflow 2024-07-11 12:47:10 +02:00
char tpm_tis: Fix incorrect arguments in tpm_tis_probe_irq_single 2025-10-19 16:23:10 +02:00
clk clk: tegra: do not overallocate memory for bpmp clocks 2025-10-19 16:23:07 +02:00
clocksource clocksource/drivers/clps711x: Fix resource leaks in error paths 2025-10-19 16:23:05 +02:00
comedi comedi: Fix use of uninitialized memory in do_insn_ioctl() and do_insnlist_ioctl() 2025-08-28 16:26:14 +02:00
connector connector/cn_proc: Use task_is_in_init_pid_ns() 2022-01-26 18:57:09 -08:00
counter counter: interrupt-cnt: Protect enable/disable OPs with mutex 2025-06-27 11:07:16 +01:00
cpufreq cpufreq: intel_pstate: Fix object lifecycle issue in update_qos_request() 2025-10-19 16:23:12 +02:00
cpuidle cpuidle: governors: menu: Avoid using invalid recent intervals data 2025-10-19 16:23:11 +02:00
crypto crypto: atmel - Fix dma_unmap_sg() direction 2025-10-19 16:23:13 +02:00
cxl cxl/region: Fix region creation for greater than x2 switches 2024-12-27 13:52:53 +01:00
dax dax: delete a stale directory pmem 2024-12-14 19:53:41 +01:00
dca dca: Use PTR_ERR_OR_ZERO() to simplify code 2020-05-15 16:25:20 +02:00
devfreq PM / devfreq: mtk-cci: Fix potential error pointer dereference in probe() 2025-10-15 11:56:27 +02:00
dio drivers: dio: fix possible memory leak in dio_init() 2022-12-31 13:32:38 +01:00
dma dmaengine: dw: dmamux: Fix device reference leak in rzn1_dmamux_route_allocate 2025-09-19 16:29:59 +02:00
dma-buf dma-buf: fix timeout handling in dma_resv_wait_timeout v2 2025-07-10 15:59:53 +02:00
edac minmax: add a few more MIN_T/MAX_T users 2025-10-02 13:40:43 +02:00
eisa EISA: use DEVICE_ATTR_RO() helper macro 2021-06-04 15:28:34 +02:00
extcon extcon: max8997: select IRQ_DOMAIN instead of depending on it 2024-06-12 11:03:41 +02:00
firewire firewire: nosy: ensure user_length is taken into account when fetching packet contents 2024-05-17 11:56:16 +02:00
firmware firmware: meson_sm: fix device leak at probe 2025-10-19 16:23:11 +02:00
fpga fpga: zynq_fpga: Fix the wrong usage of dma_map_sgtable() 2025-08-28 16:26:14 +02:00
fsi fsi: aspeed: Reset master errors after CFAM reset 2023-09-13 09:42:54 +02:00
gnss gnss: replace ida_simple API 2022-06-21 09:30:36 +02:00
gpio gpio: wcd934x: mark the GPIO controller as sleeping 2025-10-19 16:23:10 +02:00
gpu drm/nouveau: fix bad ret code in nouveau_bo_move_prep 2025-10-19 16:23:12 +02:00
greybus greybus: Fix use-after-free bug in gb_interface_release due to race condition. 2024-06-21 14:36:00 +02:00
hid hid: fix I2C read buffer overflow in raw_event() for mcp2221 2025-10-15 11:56:24 +02:00
hsi HSI: ssi_protocol: Fix use after free vulnerability in ssi_protocol Driver Due to Race Condition 2025-04-25 10:43:47 +02:00
hte hte: tegra: Fix missing error code in tegra_hte_test_probe() 2023-11-20 11:51:58 +01:00
hv Drivers: hv: vmbus: Add utility function for querying ring size 2025-07-06 10:57:58 +02:00
hwmon hwmon: (mlxreg-fan) Separate methods of fan setting coming from different subsystems 2025-10-15 11:56:29 +02:00
hwspinlock hwspinlock: Introduce hwspin_lock_bust() 2024-09-08 07:53:09 +02:00
hwtracing coresight: trbe: Return NULL pointer for allocation failures 2025-10-15 11:56:36 +02:00
i2c i2c: designware: Add disabling clocks when probe fails 2025-10-15 11:56:29 +02:00
i3c i3c: master: svc: Recycle unused IBI slot 2025-10-15 11:56:28 +02:00
idle cpuidle, intel_idle: Fix CPUIDLE_FLAG_IBRS 2025-03-13 12:53:11 +01:00
iio iio: xilinx-ams: Unmask interrupts after updating alarms 2025-10-19 16:23:13 +02:00
infiniband RDMA/siw: Always report immediate post SQ errors 2025-10-15 11:56:37 +02:00
input Input: uinput - zero-initialize uinput_ff_upload_compat to avoid info leak 2025-10-15 11:56:41 +02:00
interconnect interconnect: qcom: sc8180x: specify num_nodes 2025-08-15 12:04:55 +02:00
iommu iommu/vt-d: Fix __domain_mapping()'s usage of switch_to_super_page() 2025-09-25 10:58:52 +02:00
ipack Char/Misc and other driver changes for 6.1-rc1 2022-10-08 08:56:37 -07:00
irqchip minmax: don't use max() in situations that want a C constant expression 2025-10-15 11:56:21 +02:00
isdn mISDN: Fix memory leak in dsp_hwec_enable() 2025-09-09 18:54:14 +02:00
leds leds: leds-lp50xx: Handle reg to get correct multi_index 2025-08-28 16:26:00 +02:00
macintosh macintosh/therm_windtunnel: fix module unload. 2024-08-03 08:49:22 +02:00
mailbox mailbox: zynqmp-ipi: Remove dev.parent check in zynqmp_ipi_free_mboxes 2025-10-19 16:23:09 +02:00
mcb mcb: fix a double free bug in chameleon_parse_gdd() 2025-05-02 07:46:57 +02:00
md dm: fix NULL pointer dereference in __dm_suspend() 2025-10-15 11:56:40 +02:00
media media: lirc: Fix error handling in lirc_register() 2025-10-19 16:23:12 +02:00
memory memory: omap-gpmc: drop no compatible check 2025-04-10 14:33:39 +02:00
memstick memstick: Fix deadlock by moving removing flag earlier 2025-08-28 16:26:13 +02:00
message scsi: fusion: Remove unused variable 'rc' 2024-12-14 19:53:40 +01:00
mfd mfd: vexpress-sysreg: Check the return value of devm_gpiochip_add_data() 2025-10-15 11:56:39 +02:00
misc misc: fastrpc: Skip reference for DMA handles 2025-10-15 11:56:40 +02:00
mmc mmc: mvsdio: Fix dma_unmap_sg() nents value 2025-09-25 10:58:53 +02:00
most most: core: Drop device reference after usage in get_channel() 2025-08-28 16:26:14 +02:00
mtd mtd: rawnand: atmel: Fix error handling path in atmel_nand_controller_add_nands 2025-10-15 11:56:38 +02:00
mux mux: Fix struct mux_state kernel-doc comment 2022-02-04 15:47:12 +01:00
net net: fsl_pq_mdio: Fix device node reference leak in fsl_pq_mdio_probe 2025-10-19 16:23:08 +02:00
nfc minmax: make generic MIN() and MAX() macros available everywhere 2025-10-02 13:40:43 +02:00
ntb ntb_hw_amd: Add NTB PCI ID for new gen CPU 2025-05-02 07:47:04 +02:00
nubus nubus: Partially revert proc_create_single_data() conversion 2023-07-05 18:27:37 +01:00
nvdimm libnvdimm/labels: Fix divide error in nd_label_data_init() 2025-06-04 14:40:04 +02:00
nvme nvmet-fc: move lsop put work to nvmet_fc_ls_req_op 2025-10-15 11:56:28 +02:00
nvmem nvmem: layouts: u-boot-env: remove crc32 endianness conversion 2025-07-24 08:51:55 +02:00
of of: module: add buffer overflow check in of_modalias() 2025-05-02 07:47:08 +02:00
opp OPP: OF: Fix an OF node leak in _opp_add_static_v2() 2025-02-21 13:49:02 +01:00
parisc parisc/power: Fix power soft-off button emulation on qemu 2024-01-31 16:16:59 -08:00
parport parport_pc: add support for ASIX AX99100 2025-02-21 13:50:11 +01:00
pci PCI: tegra194: Fix duplicate PLL disable in pex_ep_event_pex_rst_assert() 2025-10-15 11:56:36 +02:00
pcmcia pcmcia: omap_cf: Mark driver struct with __refdata to prevent section mismatch 2025-09-25 10:58:50 +02:00
peci peci: cpu: Fix use-after-free in adev_release() 2022-08-15 20:31:35 +02:00
perf perf: arm_spe: Prevent overflow in PERF_IDX2OFF() 2025-10-15 11:56:25 +02:00
phy phy: ti: omap-usb2: fix device leak at unbind 2025-09-25 10:58:54 +02:00
pinctrl pinctrl: check the return value of pinmux_ops::get_function_name() 2025-10-15 11:56:41 +02:00
platform minmax: make generic MIN() and MAX() macros available everywhere 2025-10-02 13:40:43 +02:00
pnp PNP: ACPI: fix fortify warning 2024-02-05 20:12:47 +00:00
power power: supply: cw2015: Fix a alignment coding style issue 2025-10-15 11:56:27 +02:00
powercap powercap: dtpm_cpu: Fix NULL pointer dereference in get_pd_power_uw() 2025-08-15 12:04:54 +02:00
pps pps: fix warning in pps_register_cdev when register device fail 2025-10-15 11:56:33 +02:00
ps3 powerpc/ps3: Warn on PS3 device errors 2021-06-10 21:44:58 +10:00
ptp ptp: Use ratelimite for freerun error message 2025-08-28 16:25:58 +02:00
pwm pwm: tiehrpwm: Fix corner case in clock divisor calculation 2025-10-15 11:56:28 +02:00
rapidio drivers/rapidio/rio_cm.c: prevent possible heap overwrite 2025-06-27 11:07:36 +01:00
ras RAS/CEC: Reduce offline page threshold for Intel systems 2022-08-22 19:30:02 +02:00
regulator regulator: scmi: Use int type to store negative error codes 2025-10-15 11:56:27 +02:00
remoteproc remoteproc: qcom: q6v5: Avoid disabling handover IRQ twice 2025-10-15 11:56:36 +02:00
reset reset: brcmstb: Enable reset drivers for ARCH_BCM2835 2025-08-28 16:25:53 +02:00
rpmsg rpmsg: qcom_smd: Fix uninitialized return variable in __qcom_smd_send() 2025-06-27 11:07:15 +01:00
rtc rtc: optee: fix memory leak on driver removal 2025-10-19 16:23:06 +02:00
s390 s390/sclp: Fix SCCB present check 2025-08-28 16:26:13 +02:00
sbus module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
scsi scsi: mvsas: Fix use-after-free bugs in mvs_work_queue 2025-10-19 16:23:08 +02:00
sh sh: clk: Fix clk_enable() to return 0 on NULL clk 2024-12-27 13:52:58 +01:00
siox siox: fix possible memory leak in siox_device_add() 2022-11-09 15:40:14 +01:00
slimbus slimbus: messaging: Free transaction ID in delayed interrupt scenario 2025-03-13 12:53:22 +01:00
soc soc: qcom: rpmh-rsc: Unconditionally clear _TRIGGER bit for TCS 2025-10-15 11:56:26 +02:00
soundwire soundwire: stream: restore params when prepare ports fail 2025-08-15 12:05:04 +02:00
spi spi: tegra114: Use value to check for invalid delays 2025-09-09 18:54:24 +02:00
spmi spmi: hisi-spmi-controller: Do not override device identifier 2024-06-21 14:35:55 +02:00
ssb ssb: Fix division by zero issue in ssb_calc_clock_rate 2024-08-29 17:30:27 +02:00
staging staging: axis-fifo: flush RX FIFO on read errors 2025-10-15 11:56:24 +02:00
target scsi: target: target_core_configfs: Add length check to avoid buffer overflow 2025-10-15 11:56:21 +02:00
tc The main MIPS changes for 5.6: 2020-01-31 11:28:31 -08:00
tee tee: optee: ffa: fix a typo of "optee_ffa_api_is_compatible" 2025-09-09 18:54:13 +02:00
thermal thermal/drivers/qcom/lmh: Add missing IRQ includes 2025-10-15 11:56:29 +02:00
thunderbolt thunderbolt: Fix copy+paste error in match_service_id() 2025-08-28 16:26:04 +02:00
tty serial: max310x: Add error checking in probe() 2025-10-15 11:56:30 +02:00
ufs scsi: ufs: exynos: Fix programming of HCI_UTRL_NEXUS_TYPE 2025-08-28 16:26:15 +02:00
uio uio_hv_generic: Let userspace take care of interrupt mask 2025-10-15 11:56:39 +02:00
usb usb: cdns3: cdnsp-pci: remove redundant pci_disable_device() call 2025-10-15 11:56:41 +02:00
vdpa vdpa/mlx5: Fix oversized null mkey longer than 32bit 2025-04-25 10:43:40 +02:00
vfio vfio/mlx5: fix possible overflow in tracking max message size 2025-08-28 16:26:02 +02:00
vhost vhost: vringh: Modify the return value check 2025-10-15 11:56:39 +02:00
video fbcon: Fix OOB access in font allocation 2025-10-02 13:40:41 +02:00
virt minmax: add in_range() macro 2025-10-02 13:40:41 +02:00
virtio virtio_ring: Fix data race by tagging event_triggered as racy for KCSAN 2025-06-04 14:40:01 +02:00
vlynq bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
w1 w1: fix loop in w1_fini() 2023-07-19 16:21:48 +02:00
watchdog watchdog: mpc8xxx_wdt: Reload the watchdog timer when enabling the watchdog 2025-10-15 11:56:34 +02:00
xen xen/manage: Fix suspend error path 2025-10-19 16:23:11 +02:00
zorro proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
Kconfig vme: move back to staging 2022-06-10 15:38:14 +02:00
Makefile hwtracing: hisi_ptt: Add trace function support for HiSilicon PCIe Tune and Trace device 2022-09-08 16:26:17 -06:00