Did I miss something, or is this a bug?
Your understanding is correct. I think this is a bug.
Do you actually see the bug happening? So far it has never hit me, but maybe
due to the drivers that are loaded on my configuration.
(IIRC) When I wrote the Vrc-5074 support, I thought about this as well.
But then I noticed that this was already done by the upper PCI layer. Is this
You're right. It's not a problem. The code that disables interrupts right
here in drivers/pci/pci.c:
#define PCI_OP(rw,size,type) \
int pci_##rw##_config_##size (struct pci_dev *dev, int pos, type value) \
int res; \
unsigned long flags; \
if (PCI_##size##_BAD) return PCIBIOS_BAD_REGISTER_NUMBER; \
spin_lock_irqsave(&pci_lock, flags); \
res = dev->bus->ops->rw##_##size(dev, pos, value); \
spin_unlock_irqrestore(&pci_lock, flags); \
return res; \
I don't know why I missed that...
Thanks for the reply!