bug in m8260_mask_and_ack() in Linux/PPC 2.4.x ??
Murray Jensen
Murray.Jensen at cmst.csiro.au
Wed Oct 25 14:32:28 EST 2000
Either I'm going crazy, or this code in m8260_mask_and_ack(), in
arch/ppc/kernel/ppc8260_pic.c from the 2.4.x Linux/PPC source, is wrong...
--- arch/ppc/kernel/ppc8260_pic.c-dist Wed Oct 25 12:30:37 2000
+++ arch/ppc/kernel/ppc8260_pic.c Wed Oct 25 13:36:29 2000
@@ -79,7 +79,7 @@
sipnr = &(immr->im_intctl.ic_sipnrh);
ppc_cached_irq_mask[word] &= ~(1 << (31 - bit));
simr[word] = ppc_cached_irq_mask[word];
- sipnr[word] = 1 << bit;
+ sipnr[word] = 1 << (31 - bit);
}
struct hw_interrupt_type ppc8260_pic = {
In my MPC8260 User Manual, the SIMR_[HL] and SIPNR_[HL] have the same
bits in the same positions. Unless this has been changed in errata or
something, the 1 << bit is wrong, it should be 1 << (31 - bit). It seems
like a big obvious bug - maybe m8260_mask_and_ack() is never used...
Could someone confirm this please? Cheers!
Murray...
--
Murray Jensen, CSIRO Manufacturing Sci & Tech, Phone: +61 3 9662 7763
Locked Bag No. 9, Preston, Vic, 3072, Australia. Fax: +61 3 9662 7853
Internet: Murray.Jensen at cmst.csiro.au (old address was mjj at mlb.dmt.csiro.au)
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list