[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <48CC1ACA.6070101@garzik.org>
Date: Sat, 13 Sep 2008 15:55:54 -0400
From: Jeff Garzik <jeff@...zik.org>
To: Matthew Wilcox <matthew@....cx>
CC: xiong.huang@...eros.com, jie.yang@...eros.com,
netdev@...r.kernel.org
Subject: Re: [PATCH] Don't take the mdio_lock in atl1e_probe
Matthew Wilcox wrote:
> 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@...ux.intel.com>
>
> diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
> index 82d7be1..ba22a51 100644
> --- a/drivers/net/atl1e/atl1e_main.c
> +++ b/drivers/net/atl1e/atl1e_main.c
> @@ -2389,9 +2389,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 */
applied
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists