BUG: spinlock wrong CPU on CPU#1, fgBT878/1849 (Not tainted)

Alan McIvor alan.mcivor at reveal.co.nz
Sun Apr 30 23:55:27 UTC 2006


Hi,

I'm trying to upgrade a device driver from FC2 to FC5 and am running
into the problem shown below. This is on a hyperthreading P4 3GHz
running kernel 2.6.15-1.2054_FC5smp. It also happens using kernel
2.6.16-1.2096_FC5smp. There are 16 devices in the machine. For each
there is a fgBT878 process, running at the max SCHED_FIFO
priority. If I reduce the number of devices to 1 or 2, the problem
doesn't appear to happen (i.e., with 16 devices the panic happens
pretty much straight away, with 1 or 2 devices I have run for an
hour). I have no problems with a non-SMP kernel.

What sort of errors should I be looking for in my driver code?

Thanks
Alan McIvor
Reveal Limited


[root at d915 ~]# ok
ok
BUG: spinlock wrong CPU on CPU#1, fgBT878/1849 (Not tainted)
 lock: d01b7ef0, .magic: dead4ead, .owner: fgBT878/1849, .owner_cpu: 0
 [<c01d6501>] spin_bug+0x87/0xe9     [<c01d65ba>] _raw_spin_unlock+0x57/0x6c
 [<c02f2232>] _spin_unlock_irqrestore+0x8/0xc     [<d01b0ab0>] bttv_do_ioctl+0x3d7/0x74e [bt878_c]
 [<c011d6a9>] activate_task+0x9d/0xaa     [<c011da09>] try_to_wake_up+0x353/0x35d
 [<d01aa34d>] video_usercopy+0x119/0x18d [videodev]     [<c011c78f>] __wake_up_common+0x2f/0x53
 [<c02f2156>] __down+0xce/0x107     [<c0136bb7>] hrtimer_cancel+0xa/0x10
 [<c02f1b37>] schedule_hrtimer+0x33/0x6e     [<c011da13>] default_wake_function+0x0/0xc
 [<d01b06d6>] bttv_ioctl+0xe/0x11 [bt878_c]     [<d01b06d9>] bttv_do_ioctl+0x0/0x74e [bt878_c]
 [<c01717c3>] do_ioctl+0x47/0x5d     [<c0171a23>] vfs_ioctl+0x24a/0x25c
 [<c0171a7d>] sys_ioctl+0x48/0x5f     [<c0103d25>] sysenter_past_esp+0x56/0x79
Kernel panic - not syncing: bad locking
 [<c01234b6>] panic+0x3e/0x174     [<c01d6524>] spin_bug+0xaa/0xe9
 [<c01d65ba>] _raw_spin_unlock+0x57/0x6c     [<c02f2232>] _spin_unlock_irqrestore+0x8/0xc
 [<d01b0ab0>] bttv_do_ioctl+0x3d7/0x74e [bt878_c]     [<c011d6a9>] activate_task+0x9d/0xaa
 [<c011da09>] try_to_wake_up+0x353/0x35d     [<d01aa34d>] video_usercopy+0x119/0x18d [videodev]
 [<c011c78f>] __wake_up_common+0x2f/0x53     [<c02f2156>] __down+0xce/0x107
 [<c0136bb7>] hrtimer_cancel+0xa/0x10     [<c02f1b37>] schedule_hrtimer+0x33/0x6e
 [<c011da13>] default_wake_function+0x0/0xc     [<d01b06d6>] bttv_ioctl+0xe/0x11 [bt878_c]
 [<d01b06d9>] bttv_do_ioctl+0x0/0x74e [bt878_c]     [<c01717c3>] do_ioctl+0x47/0x5d
 [<c0171a23>] vfs_ioctl+0x24a/0x25c     [<c0171a7d>] sys_ioctl+0x48/0x5f
 [<c0103d25>] sysenter_past_esp+0x56/0x79
     <0>BUG: spinlock lockup on CPU#0, swapper/0, d01b7ef0 (Not tainted)
 [<c01d6727>] _raw_spin_lock+0xb9/0xd7
 [<d01b0263>] bttv_irq+0x36d/0x42e [bt878_c]     [<c01456fe>] handle_IRQ_event+0x23/0x4c
 [<c01457b4>] __do_IRQ+0x8d/0xdd     [<c0105e8e>] do_IRQ+0x60/0x7b
 =======================
 [<c010474e>] common_interrupt+0x1a/0x20     [<c0102f2e>] mwait_idle+0x1f/0x33
 [<c0102ef6>] cpu_idle+0x8f/0xa8     [<c03c8715>] start_kernel+0x2fe/0x304




More information about the fedora-list mailing list