aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2022-09-17 20:05:26 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2022-09-17 20:22:58 +0200
commite2fcf261076bfe00eed678dcfd2f86b4854b5516 (patch)
treedd9024f4e93ff0d74875ca2fed5b78bdf0fff0a7 /include
parentf6a7b166a232949c21eb3c864bc299271add5e45 (diff)
downloadgnumach-e2fcf261076bfe00eed678dcfd2f86b4854b5516.tar.gz
gnumach-e2fcf261076bfe00eed678dcfd2f86b4854b5516.tar.bz2
gnumach-e2fcf261076bfe00eed678dcfd2f86b4854b5516.zip
interrupt: Fix saving irq/ipl when linux drivers are disabled
When Linux drivers are disabled, in hardclock() the linux_timer_intr() call is dropped, and gcc can tail-recursion-optimize the call to clock_interrupt(). To do so, it overwrites the hardclock() parameters to suit the clock_interrupt parameters layout. This however means it thrashes the backups that the interrupt() function had made of irq/ipl, leading to mayhem. interrupt should thus really properly separate its irq/ipl backups from the interrupt function parameters. Thanks a lot to Etienne Brateau for the tricky investigation!
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions