Re: x86: runtime waring in pcibios_fwaddrmap_lookup

From: Bjorn Helgaas
Date: Mon May 14 2012 - 16:22:22 EST


On Sun, May 13, 2012 at 06:15:18PM +0300, Meelis Roos wrote:
> > > Thanks for the quick response Meelis (unlike myself; I've been consumed
> > > with a hard deadline task recently - sorry).
>
> Not so quick this time - I had to replace the HDD and then recreate the
> failing config. Took 2.4-rc7 as a base. This gives us another data point
> - it does not warn on SMP but warns only on UP.

I think that's the critical point; thanks for mentioning it :)

The following patch should fix it. Can you confirm?

commit d7d1398aa087445ce04a1b1d45c4de7485590f57
Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Date: Mon May 14 12:01:26 2012 -0600

x86/PCI: only check for spinlock being held in SMP kernels

spin_is_locked() is always false on UP kernels: spin_lock_irqsave() does no
locking, so we can't tell whether the lock is held or not. Therefore,
this warning is only valid for SMP kernels.

Reported-and-tested-by: Meelis Roos <mroos@xxxxxxxx>
CC: Myron Stowe <myron.stowe@xxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>

diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index 831971e..dd8ca6f 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -57,7 +57,7 @@ static struct pcibios_fwaddrmap *pcibios_fwaddrmap_lookup(struct pci_dev *dev)
{
struct pcibios_fwaddrmap *map;

- WARN_ON(!spin_is_locked(&pcibios_fwaddrmap_lock));
+ WARN_ON_SMP(!spin_is_locked(&pcibios_fwaddrmap_lock));

list_for_each_entry(map, &pcibios_fwaddrmappings, list)
if (map->dev == dev)
--
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/