diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-15 19:53:15 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-15 19:53:15 -0500 |
| commit | 3feeba1e53f54f726a39da254a5c41e02530255e (patch) | |
| tree | 11be6e023579adb6727884f4cc105c3106a06fb4 /drivers/net/gianfar.c | |
| parent | 7e92214b539ea17ccaf0886d140cbba9801a4d40 (diff) | |
| parent | a58c891a53aca81c78f9cbe0572a301042470e96 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (95 commits)
b44: GFP_DMA skb should not escape from driver
korina: do not use IRQF_SHARED with IRQF_DISABLED
korina: do not stop queue here
korina: fix handling tx_chain_tail
korina: do tx at the right position
korina: do schedule napi after testing for it
korina: rework korina_rx() for use with napi
korina: disable napi on close and restart
korina: reset resource buffer size to 1536
korina: fix usage of driver_data
bnx2x: First slow path interrupt race
bnx2x: MTU Filter
bnx2x: Indirection table initialization index
bnx2x: Missing brackets
bnx2x: Fixing the doorbell size
bnx2x: Endianness issues
bnx2x: VLAN tagged packets without VLAN offload
bnx2x: Protecting the link change indication
bnx2x: Flow control updated before reporting the link
bnx2x: Missing mask when calculating flow control
...
Diffstat (limited to 'drivers/net/gianfar.c')
| -rw-r--r-- | drivers/net/gianfar.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index efcbeb6c8673..ea530673236e 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c | |||
| @@ -1622,10 +1622,18 @@ static int gfar_clean_tx_ring(struct net_device *dev) | |||
| 1622 | static void gfar_schedule_cleanup(struct net_device *dev) | 1622 | static void gfar_schedule_cleanup(struct net_device *dev) |
| 1623 | { | 1623 | { |
| 1624 | struct gfar_private *priv = netdev_priv(dev); | 1624 | struct gfar_private *priv = netdev_priv(dev); |
| 1625 | unsigned long flags; | ||
| 1626 | |||
| 1627 | spin_lock_irqsave(&priv->txlock, flags); | ||
| 1628 | spin_lock(&priv->rxlock); | ||
| 1629 | |||
| 1625 | if (netif_rx_schedule_prep(&priv->napi)) { | 1630 | if (netif_rx_schedule_prep(&priv->napi)) { |
| 1626 | gfar_write(&priv->regs->imask, IMASK_RTX_DISABLED); | 1631 | gfar_write(&priv->regs->imask, IMASK_RTX_DISABLED); |
| 1627 | __netif_rx_schedule(&priv->napi); | 1632 | __netif_rx_schedule(&priv->napi); |
| 1628 | } | 1633 | } |
| 1634 | |||
| 1635 | spin_unlock(&priv->rxlock); | ||
| 1636 | spin_unlock_irqrestore(&priv->txlock, flags); | ||
| 1629 | } | 1637 | } |
| 1630 | 1638 | ||
| 1631 | /* Interrupt Handler for Transmit complete */ | 1639 | /* Interrupt Handler for Transmit complete */ |
