diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2010-04-01 20:20:57 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-04-02 11:15:05 +0200 |
commit | 6e331ac4aa62c2d8a27898b9bf8976f0554b9e52 (patch) | |
tree | a3219b26e414888878a39e04a0bd508c97598f0e | |
parent | ac4d7f0bed9b03204539de81c8b62b35c9f4e16a (diff) | |
download | lwn-6e331ac4aa62c2d8a27898b9bf8976f0554b9e52.tar.gz lwn-6e331ac4aa62c2d8a27898b9bf8976f0554b9e52.zip |
net: gianfar: Make RT aware
The adjust_link() disables interrupts before taking the queue
locks. On RT those locks are converted to "sleeping" locks and
therefor the local_irq_save/restore must be converted to
local_irq_save/restore_nort.
Reported-by: Xianghua Xiao <xiaoxianghua@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Xianghua Xiao <xiaoxianghua@gmail.com>
-rw-r--r-- | drivers/net/gianfar.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 8bd3c9f17532..453cfcfd1471 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -2717,7 +2717,7 @@ static void adjust_link(struct net_device *dev) struct phy_device *phydev = priv->phydev; int new_state = 0; - local_irq_save(flags); + local_irq_save_nort(flags); lock_tx_qs(priv); if (phydev->link) { @@ -2785,7 +2785,7 @@ static void adjust_link(struct net_device *dev) if (new_state && netif_msg_link(priv)) phy_print_status(phydev); unlock_tx_qs(priv); - local_irq_restore(flags); + local_irq_restore_nort(flags); } /* Update the hash table based on the current list of multicast |