blob: bbbeefd597470c54dc43dcb1738bdd18419d8ff7 [file] [log] [blame]
From 6e331ac4aa62c2d8a27898b9bf8976f0554b9e52 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 1 Apr 2010 20:20:57 +0200
Subject: [PATCH] net: gianfar: Make RT aware
commit 6e331ac4aa62c2d8a27898b9bf8976f0554b9e52 in tip.
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>
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 8bd3c9f..453cfcf 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
--
1.7.1.1