Re: RT and pci_lock while reading or writing pci bus configuration.

From: Thomas Gleixner
Date: Mon Feb 20 2006 - 14:41:59 EST


On Mon, 2006-02-20 at 15:42 +0100, Serge Noiraud wrote:
> Hi,
> I have one question :
> In drivers/pci/access.c we have a global lock for pci configuration access.
> In pci_bus_read_config_* or pci_bus_write_config_* functions, we acquire a lock.
> When we call spin_lock_irqsave, we obtain the following message :
> BUG: scheduling while atomic: IRQ 137/0x00000001/6431
> caller is schedule+0x43/0x120
> [<c01050ec>] dump_stack+0x1c/0x20 (20)
> [<c03e7144>] __schedule+0xf44/0x1240 (236)
> [<c03e7483>] schedule+0x43/0x120 (12)
> [<c03e855b>] __down_mutex+0x2bb/0x5f0 (112)
> [<c03ea08c>] _spin_lock_irqsave+0x1c/0x40 (24)
> [<c023670d>] pci_bus_read_config_word+0x2d/0x70 (24)
>
> Do I miss something or is it a BUG ?

Yeah, you missed to paste the full backtrace :)

Preempt count is 1, so you are calling pci_bus_read_config_word() from a
non preemptible context.

tglx


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/