summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2010-04-01 20:20:57 +0200
committerThomas Gleixner <tglx@linutronix.de>2010-04-02 11:15:05 +0200
commit6e331ac4aa62c2d8a27898b9bf8976f0554b9e52 (patch)
treea3219b26e414888878a39e04a0bd508c97598f0e
parentac4d7f0bed9b03204539de81c8b62b35c9f4e16a (diff)
downloadlwn-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.c4
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