1f6ef23429
The inline assembly in drivers/watchdog/hpwdt.c was incredibly broken, and included all the function prologue and epilogue stuff, even though it was itself then inside a C function where the compiler would add its own prologue and epilogue on top of it all. This then just _happened_ to work if you had exactly the right compiler version and exactly the right compiler flags, so that gcc just happened to not create any prologue at all (the gcc-generated epilogue wouldn't matter, since it would never be reached). But the more proper way to fix it is to simply not do this. Move the inline asm to the top level, with no surrounding function at all (the better alternative would be to remove the prologue and make it actually use proper description of the arguments to the inline asm, but that's a bigger change than the one I'm willing to make right now). Tested-by: S.Çağlar Onur <caglar@pardus.org.tr> Acked-by: Thomas Mingarelli <Thomas.Mingarelli@hp.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
acquirewdt.c | ||
advantechwdt.c | ||
alim1535_wdt.c | ||
alim7101_wdt.c | ||
ar7_wdt.c | ||
at32ap700x_wdt.c | ||
at91rm9200_wdt.c | ||
bfin_wdt.c | ||
booke_wdt.c | ||
cpu5wdt.c | ||
davinci_wdt.c | ||
ep93xx_wdt.c | ||
eurotechwdt.c | ||
geodewdt.c | ||
hpwdt.c | ||
i6300esb.c | ||
ib700wdt.c | ||
ibmasr.c | ||
indydog.c | ||
iop_wdt.c | ||
it8712f_wdt.c | ||
iTCO_vendor_support.c | ||
iTCO_wdt.c | ||
ixp4xx_wdt.c | ||
ixp2000_wdt.c | ||
Kconfig | ||
ks8695_wdt.c | ||
machzwd.c | ||
Makefile | ||
mixcomwd.c | ||
mpc8xx_wdt.c | ||
mpc83xx_wdt.c | ||
mpc5200_wdt.c | ||
mpcore_wdt.c | ||
mtx-1_wdt.c | ||
mv64x60_wdt.c | ||
omap_wdt.c | ||
omap_wdt.h | ||
pc87413_wdt.c | ||
pcwd.c | ||
pcwd_pci.c | ||
pcwd_usb.c | ||
pnx4008_wdt.c | ||
rm9k_wdt.c | ||
s3c2410_wdt.c | ||
sa1100_wdt.c | ||
sb_wdog.c | ||
sbc60xxwdt.c | ||
sbc7240_wdt.c | ||
sbc8360.c | ||
sbc_epx_c3.c | ||
sc520_wdt.c | ||
sc1200wdt.c | ||
scx200_wdt.c | ||
shwdt.c | ||
smsc37b787_wdt.c | ||
softdog.c | ||
txx9wdt.c | ||
w83627hf_wdt.c | ||
w83697hf_wdt.c | ||
w83877f_wdt.c | ||
w83977f_wdt.c | ||
wafer5823wdt.c | ||
wd501p.h | ||
wdrtas.c | ||
wdt.c | ||
wdt285.c | ||
wdt977.c | ||
wdt_pci.c |