I've just has a chance to test the changes you made... unfortunately I could not test the latest CVS version as I couldn't get 2.6.13 to boot on my hardware... some problem with lvm... Instead I basically took the changes you made to dvb_ca_en50221.c and put them into my source tree which is fedora core 3's 2.6.12-1.1372 kernel. When I booted up and run vlc I got the following error in /var/log/messages.... Jul 26 17:12:25 bloodhound kernel: Debug: sleeping function called from invalid context at arch/i386/lib/usercopy.c:601 Jul 26 17:12:25 bloodhound kernel: in_atomic():0, irqs_disabled():1 Jul 26 17:12:25 bloodhound kernel: [<c011ed91>] __might_sleep+0x9d/0xae Jul 26 17:12:25 bloodhound kernel: [<c01d2f11>] copy_to_user+0x18/0x5f Jul 26 17:12:25 bloodhound kernel: [<e099f67b>] dvb_ringbuffer_pkt_read+0xea/0x111 [dvb_core] Jul 26 17:12:25 bloodhound kernel: [<e099b399>] dvb_ca_en50221_io_read+0x18f/0x3ae [dvb_core] Jul 26 17:12:25 bloodhound kernel: [<c0172415>] poll_freewait+0x34/0x3c Jul 26 17:12:25 bloodhound kernel: [<c0160a9f>] vfs_read+0x106/0x108 Jul 26 17:12:25 bloodhound kernel: [<c0160ce1>] sys_read+0x41/0x6a Jul 26 17:12:25 bloodhound kernel: [<c0103fe9>] syscall_call+0x7/0xb I get one of these roughly every second. Do the changes you made require more changes than the ones in dvb_ca_en50221.c? I then modified the kernel adding in my modifications and didn't get any IRQ messages including the NMI releated one. I have noticed that cat /proc/interrupts now shows... [root@bloodhound php]# cat /proc/interrupts CPU0 CPU1 0: 155663 158340 IO-APIC-edge timer 1: 6 4 IO-APIC-edge i8042 8: 1 0 IO-APIC-edge rtc 9: 0 1 IO-APIC-level acpi 12: 51 50 IO-APIC-edge i8042 15: 1186 1257 IO-APIC-edge ide1 169: 0 0 IO-APIC-level uhci_hcd:usb2 177: 4004 3309 IO-APIC-level ioc0 185: 17 13 IO-APIC-level ioc1 193: 18717 18 IO-APIC-level eth0 201: 0 0 IO-APIC-level saa7146 (0) 209: 1890 843 IO-APIC-level saa7146 (1) 217: 0 2 IO-APIC-level saa7146 (2) 225: 0 0 IO-APIC-level ehci_hcd:usb1 233: 0 0 IO-APIC-level uhci_hcd:usb3 NMI: 0 0 LOC: 307139 307581 ERR: 0 MIS: 0 which is completely different to what it was showing before. I assume that the new kernel supports the hardware better somehow. I'll do some more testing but I believe that the NMI issue has been resolved. If you want me to test any more changes to fix the above error I am happy to. Mike On 7/25/05, Andrew de Quincey <adq_dvb@xxxxxxxxxxxxx> wrote: > On Monday 25 July 2005 15:08, Michael Ditum wrote: > > Thanks for that Andrew, I'll try the latest CVS version in a while, > > I'm currently having trouble getting 2.6.13 booting at the moment... > > I'll have a look to see if your modification are ok once I've got that > > booting. > > > > Back to the other IRQ problem... > > > > I've done some more testing. I've now tested it on 2 servers which > > have similar, but not exactly the same, hardware. It occurs on our HP > > Proliant ML350 G4 and our HP Proliant ML370 G4. > > > > The problem only seems to occur on bootup from a poweroff. If I > > reboot, it then starts working correctly until I power it off. > > > > 2 different print outs to /var/log/messages depending on if the card > > has a CI or not. > > > > With: > > > > Jul 13 16:27:34 bloodhound kernel: Uhhuh. NMI received. Dazed and > > confused, but trying to continue > > Jul 13 16:27:34 bloodhound kernel: You probably have a hardware > > problem with your RAM chips > > Jul 13 16:27:34 bloodhound kernel: irq 11: nobody cared! > > Jul 13 16:27:34 bloodhound kernel: [<c014efc4>] __report_bad_irq+0x24/0x7d > > Jul 13 16:27:34 bloodhound kernel: [<c014f0a6>] note_interrupt+0x6b/0x89 > > [snip] > > > 10: 11805 XT-PIC ioc0, ioc1, saa7146 (0), saa7146 (1), > > uhci_hcd:usb3, uhci_hcd:usb4 > > 11: 3900000 XT-PIC ehci_hcd:usb1, uhci_hcd:usb2, > > uhci_hcd:usb5, eth0 > > [snip] > > Bear with me - its been a year or so since I messed about with ACPI. > > So you're getting IRQ 11 when you shouldn't be effectively. Since its > happening on two servers, this is likely either a kernel bug or a BIOS bug. I > take it the cards work fine on other (non-HP) machines? > > AFAIR, the motherboard chipset of modern machines can usually be reprogrammed > to route IRQs to a variety of destinations. This looks like linux thinks the > IRQ for your DVB cards is 10 when actually your motherboard chipset is set up > for IRQ 11. > > In legacy (non-ACPI) mode linux has a set of functions for each chipset for > configuring IRQ routing. It may be that there is a bug in this, or else this > is a newer chipset it doesn't quite know everything about (some manufactuers > don't release this documentation :( ). Or else your BIOS is setting it up > wrongly... I'm sorry I can't remember the exact details. > > You're running your motherboard in legacy (non-ACPI) mode. Have you tried > using ACPI under linux? Under ACPI, linux executes a set of virtual machine > instructions on startup. This configures the hardware without linux having to > have specific support for that chipset. > > Another possibility might be to upgrade the bios. >