diff options
author | kmacy <kmacy@FreeBSD.org> | 2006-12-17 06:48:40 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2006-12-17 06:48:40 +0000 |
commit | 20611107850a6c1de42880a35271d3a18a4b8811 (patch) | |
tree | 4a10bc4aba837d9f1be450b197838da90973dd1b /sys/amd64/isa/atpic.c | |
parent | ee539b99dcacb73703a09f64d8ada227bb88a165 (diff) | |
download | FreeBSD-src-20611107850a6c1de42880a35271d3a18a4b8811.zip FreeBSD-src-20611107850a6c1de42880a35271d3a18a4b8811.tar.gz |
Newer versions of gcc don't support treating structures passed by value
as if they were really passed by reference. Specifically, the dead stores
elimination pass in the GCC 4.1 optimiser breaks the non-compliant behavior
on which FreeBSD relied. This change brings FreeBSD up to date by switching
trap frames to being explicitly passed by reference.
Reviewed by: kan
Tested by: kan
Diffstat (limited to 'sys/amd64/isa/atpic.c')
-rw-r--r-- | sys/amd64/isa/atpic.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/amd64/isa/atpic.c b/sys/amd64/isa/atpic.c index 1115c92..3a88eda 100644 --- a/sys/amd64/isa/atpic.c +++ b/sys/amd64/isa/atpic.c @@ -494,7 +494,7 @@ atpic_init(void *dummy __unused) SYSINIT(atpic_init, SI_SUB_INTR, SI_ORDER_SECOND + 1, atpic_init, NULL) void -atpic_handle_intr(u_int vector, struct trapframe frame) +atpic_handle_intr(u_int vector, struct trapframe *frame) { struct intsrc *isrc; @@ -521,7 +521,7 @@ atpic_handle_intr(u_int vector, struct trapframe frame) if ((isr & IRQ_MASK(7)) == 0) return; } - intr_execute_handlers(isrc, &frame); + intr_execute_handlers(isrc, frame); } #ifdef DEV_ISA |