Message ID | 20081011100501.7ff818ce@osprey.hogchain.net |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
From: Jay Cliburn <jacliburn@bellsouth.net> Date: Sat, 11 Oct 2008 10:05:01 -0500 > From: Matthew Wilcox <matthew@wil.cx> > > Upstream commit: f382a0a8e9403c6d7f8b2cfa21e41fefb5d0c9bd > > This fixes bug 11736. > > http://marc.info/?l=linux-netdev&m=122367387219316&w=2 > > Lockdep warns about the mdio_lock taken with interrupts enabled then > later taken from interrupt context. Initially, I considered changing > these to spin_lock_irq/spin_unlock_irq, but then I looked at > atl1e_phy_init() and saw that it calls msleep(). Sleeping while > holding a spinlock is not allowed either. > > In the probe path, we haven't registered the interrupt handler, so > it can't poke at this card yet. It's before we call register_netdev(), > so I don't think any other threads can reach this card either. If I'm > right, we don't need a spinlock at all. > > Signed-off-by: Matthew Wilcox <willy@linux.intel.com> > Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat, Oct 11, 2008 at 11:08:16AM -0700, David Miller wrote: > From: Jay Cliburn <jacliburn@bellsouth.net> > Date: Sat, 11 Oct 2008 10:05:01 -0500 > > > From: Matthew Wilcox <matthew@wil.cx> > > > > Upstream commit: f382a0a8e9403c6d7f8b2cfa21e41fefb5d0c9bd > > > > This fixes bug 11736. > > > > http://marc.info/?l=linux-netdev&m=122367387219316&w=2 > > > > Lockdep warns about the mdio_lock taken with interrupts enabled then > > later taken from interrupt context. Initially, I considered changing > > these to spin_lock_irq/spin_unlock_irq, but then I looked at > > atl1e_phy_init() and saw that it calls msleep(). Sleeping while > > holding a spinlock is not allowed either. > > > > In the probe path, we haven't registered the interrupt handler, so > > it can't poke at this card yet. It's before we call register_netdev(), > > so I don't think any other threads can reach this card either. If I'm > > right, we don't need a spinlock at all. > > > > Signed-off-by: Matthew Wilcox <willy@linux.intel.com> > > Signed-off-by: Jeff Garzik <jgarzik@redhat.com> > > Signed-off-by: David S. Miller <davem@davemloft.net> Does this mean you will forward this to -stable in a bunch of network patches? Or should I take it now? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Greg KH <greg@kroah.com> Date: Wed, 15 Oct 2008 15:15:37 -0700 > On Sat, Oct 11, 2008 at 11:08:16AM -0700, David Miller wrote: > > From: Jay Cliburn <jacliburn@bellsouth.net> > > Date: Sat, 11 Oct 2008 10:05:01 -0500 > > > > > From: Matthew Wilcox <matthew@wil.cx> > > > > > > Upstream commit: f382a0a8e9403c6d7f8b2cfa21e41fefb5d0c9bd > > > > > > This fixes bug 11736. > > > > > > http://marc.info/?l=linux-netdev&m=122367387219316&w=2 > > > > > > Lockdep warns about the mdio_lock taken with interrupts enabled then > > > later taken from interrupt context. Initially, I considered changing > > > these to spin_lock_irq/spin_unlock_irq, but then I looked at > > > atl1e_phy_init() and saw that it calls msleep(). Sleeping while > > > holding a spinlock is not allowed either. > > > > > > In the probe path, we haven't registered the interrupt handler, so > > > it can't poke at this card yet. It's before we call register_netdev(), > > > so I don't think any other threads can reach this card either. If I'm > > > right, we don't need a spinlock at all. > > > > > > Signed-off-by: Matthew Wilcox <willy@linux.intel.com> > > > Signed-off-by: Jeff Garzik <jgarzik@redhat.com> > > > > Signed-off-by: David S. Miller <davem@davemloft.net> > > Does this mean you will forward this to -stable in a bunch of network > patches? Or should I take it now? Please take this one now, t hanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Oct 15, 2008 at 03:41:45PM -0700, David Miller wrote: > From: Greg KH <greg@kroah.com> > Date: Wed, 15 Oct 2008 15:15:37 -0700 > > > On Sat, Oct 11, 2008 at 11:08:16AM -0700, David Miller wrote: > > > From: Jay Cliburn <jacliburn@bellsouth.net> > > > Date: Sat, 11 Oct 2008 10:05:01 -0500 > > > > > > > From: Matthew Wilcox <matthew@wil.cx> > > > > > > > > Upstream commit: f382a0a8e9403c6d7f8b2cfa21e41fefb5d0c9bd > > > > > > > > This fixes bug 11736. > > > > > > > > http://marc.info/?l=linux-netdev&m=122367387219316&w=2 > > > > > > > > Lockdep warns about the mdio_lock taken with interrupts enabled then > > > > later taken from interrupt context. Initially, I considered changing > > > > these to spin_lock_irq/spin_unlock_irq, but then I looked at > > > > atl1e_phy_init() and saw that it calls msleep(). Sleeping while > > > > holding a spinlock is not allowed either. > > > > > > > > In the probe path, we haven't registered the interrupt handler, so > > > > it can't poke at this card yet. It's before we call register_netdev(), > > > > so I don't think any other threads can reach this card either. If I'm > > > > right, we don't need a spinlock at all. > > > > > > > > Signed-off-by: Matthew Wilcox <willy@linux.intel.com> > > > > Signed-off-by: Jeff Garzik <jgarzik@redhat.com> > > > > > > Signed-off-by: David S. Miller <davem@davemloft.net> > > > > Does this mean you will forward this to -stable in a bunch of network > > patches? Or should I take it now? > > Please take this one now, t hanks. Will do, thanks for the quick response. greg k-h -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c index 7685b99..9b60352 100644 --- a/drivers/net/atl1e/atl1e_main.c +++ b/drivers/net/atl1e/atl1e_main.c @@ -2390,9 +2390,7 @@ static int __devinit atl1e_probe(struct pci_dev *pdev, } /* Init GPHY as early as possible due to power saving issue */ - spin_lock(&adapter->mdio_lock); atl1e_phy_init(&adapter->hw); - spin_unlock(&adapter->mdio_lock); /* reset the controller to * put the device in a known good starting state */ err = atl1e_reset_hw(&adapter->hw);