linux/drivers/watchdog
Alexander Egorenkov c24def73a2 watchdog: diag288_wdt: get rid of register asm
Using register asm statements has been proven to be very error prone,
especially when using code instrumentation where gcc may add function
calls, which clobbers register contents in an unexpected way.

Therefore, get rid of register asm statements in watchdog code, and make
sure this bug class cannot happen.

Moreover, remove the register r1 from the clobber list because this
register is not changed by DIAG 288.

Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20230203073958.1585738-2-egorenar@linux.ibm.com
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
2023-02-06 15:14:08 +01:00
..
acquirewdt.c compat_ioctl: move WDIOC handling into wdt drivers 2019-10-23 17:23:46 +02:00
advantech_ec_wdt.c watchdog: Add Advantech EC watchdog driver 2022-11-19 15:30:37 +01:00
advantechwdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
alim1535_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
alim7101_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
apple_wdt.c watchdog: Add Apple SoC watchdog driver 2022-01-05 10:38:37 +01:00
ar7_wdt.c watchdog: ar7_wdt: Make use of the helper function devm_platform_ioremap_resource_byname() 2021-10-26 21:31:08 +02:00
arm_smc_wdt.c watchdog: Add new arm_smc_wdt watchdog driver 2020-05-25 08:55:46 +02:00
armada_37xx_wdt.c watchdog: armada_37xx_wdt: Fix .set_timeout callback 2022-10-02 12:55:40 +02:00
asm9260_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4 2019-05-21 11:28:40 +02:00
aspeed_wdt.c watchdog: aspeed: Enable pre-timeout interrupt 2022-11-19 15:30:41 +01:00
at91rm9200_wdt.c watchdog: at91rm9200: Remove #ifdef guards for PM related functions 2022-11-19 15:30:38 +01:00
at91sam9_wdt.c
at91sam9_wdt.h watchdog: sama5d4_wdt: addition of sam9x60 compatible watchdog 2020-01-27 15:55:44 +01:00
ath79_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
bcm47xx_wdt.c
bcm2835_wdt.c watchdog: bcm2835_wdt: consider system-power-controller property 2021-08-22 10:28:08 +02:00
bcm7038_wdt.c watchdog: bcm7038_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:25 +02:00
bcm_kona_wdt.c watchdog: bcm_kona_wdt: Use correct return value for bcm_kona_wdt_probe() 2020-08-05 18:42:46 +02:00
bd9576_wdt.c watchdog: bd9576_wdt: switch to using devm_fwnode_gpiod_get() 2022-10-02 12:55:30 +02:00
booke_wdt.c watchdog: booke_wdt: Replace PPC_FSL_BOOK3E by PPC_E500 2022-09-26 23:00:13 +10:00
cadence_wdt.c watchdog: cadence: Simplify with dev_err_probe() 2020-10-14 15:02:24 +02:00
cpu5wdt.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
cpwd.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
da9052_wdt.c watchdog: da9052_wdt: drop warning after registering device 2019-07-08 15:13:04 +02:00
da9055_wdt.c watchdog: da9055_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:16 +02:00
da9062_wdt.c watchdog: da9062: da9063: prevent pings ahead of machine reset 2021-10-26 21:31:05 +02:00
da9063_wdt.c watchdog: da9063: optionally disable watchdog during suspend 2022-05-21 10:07:31 +02:00
davinci_wdt.c watchdog: davinci: Use div64_ul instead of do_div 2021-12-28 14:03:03 +01:00
db8500_wdt.c watchdog: at91rm9200: Remove #ifdef guards for PM related functions 2022-11-19 15:30:38 +01:00
diag288_wdt.c watchdog: diag288_wdt: get rid of register asm 2023-02-06 15:14:08 +01:00
digicolor_wdt.c watchdog: digicolor_wdt: Remove unused variable in dc_wdt_probe 2019-07-15 08:49:11 +02:00
dw_wdt.c watchdog: dw_wdt: Fix comment typo 2022-07-23 14:26:41 +02:00
ebc-c384_wdt.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
ep93xx_wdt.c watchdog: ep93xx_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:19 +02:00
eurotechwdt.c watchdog: eurotechwdt: Remove redundant word in comments 2022-10-02 12:55:38 +02:00
exar_wdt.c drivers: watchdog: exar_wdt.c fix use after free 2022-10-19 19:49:47 +02:00
f71808e_wdt.c watchdog: f71808e_wdt: Add check for platform_driver_register 2022-07-23 14:18:46 +02:00
ftwdt010_wdt.c watchdog: ftwdt010_wdt: fix test for platform_get_irq() failure 2022-10-02 12:55:36 +02:00
gef_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
geodewdt.c watchdog: geodewdt: remove unneeded break 2020-12-13 16:17:41 +01:00
gpio_wdt.c watchdog: gpio: add support for nowayout option 2019-07-08 19:39:44 +02:00
gxp-wdt.c watchdog: gxp: Add missing MODULE_LICENSE 2022-06-09 12:20:34 +02:00
hpwdt.c watchdog/hpwdt: Include nmi.h only if CONFIG_HPWDT_NMI_DECODING 2022-10-02 12:55:32 +02:00
i6300esb.c watchdog: i6300esb: drop warning after registering device 2019-07-08 15:13:06 +02:00
ib700wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
ibmasr.c compat_ioctl: move WDIOC handling into wdt drivers 2019-10-23 17:23:46 +02:00
ie6xx_wdt.c watchdog: ie6xx_wdt: Use spinlock_t instead of struct spinlock 2019-07-08 20:46:48 +02:00
imgpdc_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
imx2_wdt.c watchdog: imx2_wdg: Alow ping on suspend 2022-03-27 17:04:07 +02:00
imx7ulp_wdt.c watchdog: imx93: add watchdog timer on imx93 2022-10-02 12:55:47 +02:00
imx_sc_wdt.c watchdog: imx_sc_wdt: fix pretimeout 2021-06-21 08:49:14 +02:00
indydog.c compat_ioctl: move WDIOC handling into wdt drivers 2019-10-23 17:23:46 +02:00
intel-mid_wdt.c watchdog: intel-mid_wdt: Postpone IRQ handler registration till SCU is ready 2021-01-25 20:05:32 +02:00
it87_wdt.c watchdog: it87_wdt: remove useless function 2021-06-21 08:49:04 +02:00
it8712f_wdt.c watchdog: it8712f_wdt: remove definition of DEBUG 2021-02-07 14:41:18 +01:00
iTCO_vendor_support.c watchdog: iTCO_wdt: Export vendorsupport 2020-03-10 10:20:27 +01:00
iTCO_vendor.h watchdog: iTCO_wdt: Export vendorsupport 2020-03-10 10:20:27 +01:00
iTCO_wdt.c watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running 2022-11-19 15:30:41 +01:00
ixp4xx_wdt.c watchdog: ixp4xx: Implement restart 2022-03-27 17:04:28 +02:00
jz4740_wdt.c watchdog: jz4740: Fix return value check in jz4740_wdt_probe() 2021-06-21 08:49:11 +02:00
Kconfig watchdog: Add Advantech EC watchdog driver 2022-11-19 15:30:37 +01:00
keembay_wdt.c watchdog: keembay: Typo corrections and other blank operations 2021-06-21 08:48:57 +02:00
kempld_wdt.c watchdog: kempld: Remove #ifdef guards for PM related functions 2022-11-19 15:30:39 +01:00
lantiq_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
loongson1_wdt.c watchdog: loongson1_wdt: drop warning after registering device 2019-07-08 15:13:08 +02:00
lpc18xx_wdt.c watchdog: Fix possible use-after-free by calling del_timer_sync() 2021-06-21 08:49:03 +02:00
m54xx_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
machzwd.c watchdog: Fix fall-through warnings for Clang 2021-05-17 18:56:23 -05:00
Makefile watchdog: Add Advantech EC watchdog driver 2022-11-19 15:30:37 +01:00
max63xx_wdt.c watchdog: max63xx_wdt: Add device tree probing 2021-08-22 10:28:11 +02:00
max77620_wdt.c watchdog: max77620: update Luca Ceresoli's e-mail address 2022-07-23 14:21:23 +02:00
mei_wdt.c mei: fix kdoc in the driver 2021-06-22 12:40:31 +02:00
mena21_wdt.c watchdog: mena21_wdt: drop warning after registering device 2019-07-08 15:13:09 +02:00
menf21bmc_wdt.c watchdog: menf21bmc_wdt: drop warning after registering device 2019-07-08 15:13:10 +02:00
menz69_wdt.c drivers: mcb: use symbol namespaces 2019-11-03 19:54:53 +01:00
meson_gxbb_wdt.c watchdog: meson: keep running if already active 2022-10-02 12:55:41 +02:00
meson_wdt.c watchdog: meson_wdt: Use device_get_match_data() helper 2021-06-21 08:49:05 +02:00
mixcomwd.c compat_ioctl: move WDIOC handling into wdt drivers 2019-10-23 17:23:46 +02:00
mlx_wdt.c watchdog: mlx-wdt: Use regmap_write_bits() 2021-10-26 21:31:10 +02:00
moxart_wdt.c watchdog: moxart_wdt: Convert to use device managed functions and other improvements 2019-05-05 21:02:24 +02:00
mpc8xxx_wdt.c watchdog: mpc8xxx_wdt: Constify static struct watchdog_ops 2021-08-22 10:28:10 +02:00
msc313e_wdt.c watchdog: msc313e: Check if the WDT was running at boot 2022-01-05 10:38:51 +01:00
mt7621_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mtk_wdt.c watchdog: mediatek: mt8188: add wdt support 2022-11-19 15:30:35 +01:00
mtx-1_wdt.c watchdog: mtx-1: drop au1000.h header file 2021-06-21 08:48:58 +02:00
ni903x_wdt.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
nic7018_wdt.c watchdog: nic7018_wdt: drop warning after registering device 2019-07-08 15:13:11 +02:00
npcm_wdt.c watchdog: npcm: Enable clock if provided 2022-10-02 12:55:41 +02:00
nv_tco.c watchdog: Replace HTTP links with HTTPS ones 2020-08-05 18:43:01 +02:00
nv_tco.h watchdog: Replace HTTP links with HTTPS ones 2020-08-05 18:43:01 +02:00
octeon-wdt-main.c linux-watchdog 5.14-rc1 tag 2021-07-07 12:57:46 -07:00
octeon-wdt-nmi.S
of_xilinx_wdt.c watchdog: of_xilinx_wdt: Skip printing pointer value 2021-06-21 08:49:08 +02:00
omap_wdt.c watchdog: omap: Remove #ifdef guards for PM related functions 2022-11-19 15:30:39 +01:00
omap_wdt.h watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
orion_wdt.c watchdog: orion_wdt: support pretimeout on Armada-XP 2022-03-27 17:04:28 +02:00
pc87413_wdt.c watchdog:Fix typo in comment 2022-07-23 14:21:28 +02:00
pcwd_pci.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
pcwd_usb.c watchdog: pcwd_usb: Avoid GFP_ATOMIC where it is not needed 2020-10-14 15:02:22 +02:00
pcwd.c isa: Make the remove callback for isa drivers return void 2021-01-26 07:42:27 +01:00
pic32-dmt.c watchdog: pic32-dmt: drop warning after registering device 2019-07-08 15:13:12 +02:00
pic32-wdt.c watchdog: pic32-wdt: drop warning after registering device 2019-07-08 15:13:12 +02:00
pika_wdt.c compat_ioctl: move WDIOC handling into wdt drivers 2019-10-23 17:23:46 +02:00
pm8916_wdt.c watchdog: pm8916_wdt: Handle watchdog enabled by bootloader 2022-07-23 14:21:28 +02:00
pnx4008_wdt.c watchdog: pnx4008_wdt: allow compile-testing 2019-09-16 22:10:05 +02:00
pretimeout_noop.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pretimeout_panic.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pseries-wdt.c watchdog/pseries-wdt: initial support for H_WATCHDOG-based watchdog timers 2022-07-20 21:57:39 +10:00
qcom-wdt.c watchdog: qcom: Move suspend/resume to suspend_late/resume_early 2021-06-21 08:49:12 +02:00
rave-sp-wdt.c watchdog: rave-sp-wdt: drop warning after registering device 2019-07-08 15:13:14 +02:00
rc32434_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
rdc321x_wdt.c drivers: watchdog: rdc321x_wdt: Fix race condition bugs 2020-10-14 15:02:21 +02:00
realtek_otto_wdt.c watchdog: realtek-otto: add RTL9310 support 2022-07-23 14:21:24 +02:00
renesas_wdt.c watchdog: renesas_wdt: Add R-Car Gen4 support 2022-03-27 17:04:09 +02:00
retu_wdt.c watchdog: retu_wdt: Clean-up by using managed work init 2021-03-23 15:22:40 +01:00
riowd.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
rn5t618_wdt.c watchdog: rn5t618: add support for read out bootstatus 2022-11-19 15:30:40 +01:00
rt2880_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rtd119x_wdt.c watchdog: rtd119x: drop unused module.h include 2019-05-05 21:10:34 +02:00
rti_wdt.c watchdog: rti-wdt:using the pm_runtime_resume_and_get to simplify the code 2022-10-02 12:55:43 +02:00
rza_wdt.c watchdog: rza_wdt: Use semicolons instead of commas 2021-10-26 21:31:10 +02:00
rzg2l_wdt.c watchdog: rzg2l_wdt: Add rzv2m support 2022-10-02 12:55:37 +02:00
rzn1_wdt.c watchdog: Add Renesas RZ/N1 Watchdog driver 2022-05-21 10:09:31 +02:00
s3c2410_wdt.c watchdog: s3c2410_wdt: support exynosautov9 watchdog 2022-10-02 12:55:42 +02:00
sa1100_wdt.c watchdog: sa1100: make variable sa1100dog_driver static 2022-10-02 12:55:39 +02:00
sama5d4_wdt.c watchdog: sama5d4_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:26 +02:00
sb_wdog.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
sbc60xxwdt.c watchdog: Fix possible use-after-free in wdt_startup() 2021-06-21 08:48:59 +02:00
sbc7240_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
sbc8360.c watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
sbc_epx_c3.c compat_ioctl: move WDIOC handling into wdt drivers 2019-10-23 17:23:46 +02:00
sbc_fitpc2_wdt.c watchdog: sbc_fitpc2_wdt: add __user annotations 2020-12-13 16:17:41 +01:00
sbsa_gwdt.c watchdog: sbsa: drop unneeded MODULE_ALIAS 2021-10-26 20:22:51 +02:00
sc520_wdt.c watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff() 2021-06-21 08:49:02 +02:00
sc1200wdt.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sch311x_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
scx200_wdt.c watchdog: scx200_wdt: Use fallthrough pseudo-keyword 2020-08-05 18:42:54 +02:00
shwdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
simatic-ipc-wdt.c watchdog: simatic-ipc-wdt: convert to use P2SB accessor 2022-07-14 10:50:36 +01:00
sl28cpld_wdt.c watchdog: sl28cpld_wdt: Constify static struct watchdog_ops 2021-08-22 10:28:09 +02:00
smsc37b787_wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
softdog.c watchdog: softdog: Add options 'soft_reboot_cmd' and 'soft_active_on_boot' 2020-08-05 18:43:02 +02:00
sp805_wdt.c watchdog: sp805_wdt: fix spelling typo in comment 2022-10-19 19:49:46 +02:00
sp5100_tco.c watchdog: sp5100_tco: Add "action" module parameter 2022-10-02 12:55:48 +02:00
sp5100_tco.h Watchdog: sp5100_tco: Enable Family 17h+ CPUs 2022-03-27 17:04:33 +02:00
sprd_wdt.c watchdog: sprd: change to use usleep_range() instead of busy loop 2020-12-13 16:17:39 +01:00
st_lpc_wdt.c watchdog: st_lpc_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:26 +02:00
stm32_iwdg.c watchdog: stm32_iwdg: drop superfluous error message 2021-10-26 21:31:02 +02:00
stmp3xxx_rtc_wdt.c watchdog: stmp3xxx_rtc_wdt: drop warning after registering device 2019-07-08 15:13:17 +02:00
stpmic1_wdt.c watchdog: stpmic1_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:29 +02:00
sun4v_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sunplus_wdt.c watchdog: Add watchdog driver for Sunplus SP7021 2022-05-08 10:34:05 +02:00
sunxi_wdt.c watchdog: sunxi_wdt: Add support for D1 2021-10-26 21:31:08 +02:00
tegra_wdt.c watchdog: tegra_wdt: Remove #ifdef guards for PM related functions 2022-07-23 14:21:27 +02:00
tqmx86_wdt.c watchdog: tqmx86: Constify static struct watchdog_ops 2021-08-22 10:28:10 +02:00
ts72xx_wdt.c watchdog: ts72xx_wdt: Use 'dev' instead of dereferencing it repeatedly 2019-05-05 21:02:32 +02:00
ts4800_wdt.c watchdog: ts4800_wdt: Fix refcount leak in ts4800_wdt_probe 2022-05-21 10:09:31 +02:00
twl4030_wdt.c watchdog: twl4030: Remove #ifdef guards for PM related functions 2022-11-19 15:30:38 +01:00
txx9wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
uniphier_wdt.c watchdog: uniphier_wdt: drop platform_set_drvdata 2019-05-05 21:02:32 +02:00
via_wdt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
visconti_wdt.c watchdog: Add Toshiba Visconti watchdog driver 2020-10-14 15:22:58 +02:00
w83627hf_wdt.c watchdog: w83627hf_wdt: add bootstatus support 2022-10-02 12:55:34 +02:00
w83877f_wdt.c watchdog: Fix possible use-after-free by calling del_timer_sync() 2021-06-21 08:49:03 +02:00
w83977f_wdt.c watchdog: w83977f_wdt: Fix comment typo 2022-10-02 12:55:39 +02:00
wafer5823wdt.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
watchdog_core.c watchdog: Add tracing events for the most usual watchdog events 2022-10-12 09:47:02 +02:00
watchdog_core.h watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_dev.c watchdog: Add tracing events for the most usual watchdog events 2022-10-12 09:47:02 +02:00
watchdog_hrtimer_pretimeout.c watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_pretimeout.c watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_pretimeout.h
wd501p.h watchdog: convert remaining drivers to use SPDX license identifier 2019-07-08 20:35:11 +02:00
wdat_wdt.c watchdog: wdat_wdt: Set the min and max timeout values properly 2022-10-02 12:55:31 +02:00
wdrtas.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
wdt285.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
wdt977.c watchdog: Use fallthrough pseudo-keyword 2020-08-05 18:42:53 +02:00
wdt_pci.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
wdt.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
wm831x_wdt.c watchdog: wm831x_wdt: Remove GPIO handling 2020-03-18 11:15:24 +01:00
wm8350_wdt.c
xen_wdt.c watchdog: xen_wdt: drop warning after registering device 2019-07-08 15:13:18 +02:00
ziirave_wdt.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00