提交 be0976be 编写于 作者: J Jeff Garzik 提交者: Jeff Garzik

[netdrvr] kill sync_irq-before-freq_irq pattern

synchronize_irq() is superfluous when free_irq() call immediately follows it,
because free_irq() also does a synchronize_irq() call of its own.
Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
上级 28cd4289
...@@ -1213,7 +1213,6 @@ static int cp_close (struct net_device *dev) ...@@ -1213,7 +1213,6 @@ static int cp_close (struct net_device *dev)
spin_unlock_irqrestore(&cp->lock, flags); spin_unlock_irqrestore(&cp->lock, flags);
synchronize_irq(dev->irq);
free_irq(dev->irq, dev); free_irq(dev->irq, dev);
cp_free_rings(cp); cp_free_rings(cp);
......
...@@ -2231,7 +2231,6 @@ static int rtl8139_close (struct net_device *dev) ...@@ -2231,7 +2231,6 @@ static int rtl8139_close (struct net_device *dev)
spin_unlock_irqrestore (&tp->lock, flags); spin_unlock_irqrestore (&tp->lock, flags);
synchronize_irq (dev->irq); /* racy, but that's ok here */
free_irq (dev->irq, dev); free_irq (dev->irq, dev);
rtl8139_tx_clear (tp); rtl8139_tx_clear (tp);
......
...@@ -1753,7 +1753,7 @@ rio_close (struct net_device *dev) ...@@ -1753,7 +1753,7 @@ rio_close (struct net_device *dev)
/* Stop Tx and Rx logics */ /* Stop Tx and Rx logics */
writel (TxDisable | RxDisable | StatsDisable, ioaddr + MACCtrl); writel (TxDisable | RxDisable | StatsDisable, ioaddr + MACCtrl);
synchronize_irq (dev->irq);
free_irq (dev->irq, dev); free_irq (dev->irq, dev);
del_timer_sync (&np->timer); del_timer_sync (&np->timer);
......
...@@ -1739,7 +1739,6 @@ static int netdrv_close (struct net_device *dev) ...@@ -1739,7 +1739,6 @@ static int netdrv_close (struct net_device *dev)
spin_unlock_irqrestore (&tp->lock, flags); spin_unlock_irqrestore (&tp->lock, flags);
synchronize_irq (dev->irq);
free_irq (dev->irq, dev); free_irq (dev->irq, dev);
netdrv_tx_clear (dev); netdrv_tx_clear (dev);
......
...@@ -1437,7 +1437,6 @@ static int tsi108_close(struct net_device *dev) ...@@ -1437,7 +1437,6 @@ static int tsi108_close(struct net_device *dev)
dev_kfree_skb(skb); dev_kfree_skb(skb);
} }
synchronize_irq(data->irq_num);
free_irq(data->irq_num, dev); free_irq(data->irq_num, dev);
/* Discard the RX ring. */ /* Discard the RX ring. */
......
...@@ -334,8 +334,6 @@ enum state_values { ...@@ -334,8 +334,6 @@ enum state_values {
#define TYPHOON_RESET_TIMEOUT_NOSLEEP ((6 * 1000000) / TYPHOON_UDELAY) #define TYPHOON_RESET_TIMEOUT_NOSLEEP ((6 * 1000000) / TYPHOON_UDELAY)
#define TYPHOON_WAIT_TIMEOUT ((1000000 / 2) / TYPHOON_UDELAY) #define TYPHOON_WAIT_TIMEOUT ((1000000 / 2) / TYPHOON_UDELAY)
#define typhoon_synchronize_irq(x) synchronize_irq(x)
#if defined(NETIF_F_TSO) #if defined(NETIF_F_TSO)
#define skb_tso_size(x) (skb_shinfo(x)->gso_size) #define skb_tso_size(x) (skb_shinfo(x)->gso_size)
#define TSO_NUM_DESCRIPTORS 2 #define TSO_NUM_DESCRIPTORS 2
...@@ -2143,7 +2141,6 @@ typhoon_close(struct net_device *dev) ...@@ -2143,7 +2141,6 @@ typhoon_close(struct net_device *dev)
printk(KERN_ERR "%s: unable to stop runtime\n", dev->name); printk(KERN_ERR "%s: unable to stop runtime\n", dev->name);
/* Make sure there is no irq handler running on a different CPU. */ /* Make sure there is no irq handler running on a different CPU. */
typhoon_synchronize_irq(dev->irq);
free_irq(dev->irq, dev); free_irq(dev->irq, dev);
typhoon_free_rx_rings(tp); typhoon_free_rx_rings(tp);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册