git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'topic/core-cleanup' into for-linus
[safe/jmp/linux-2.6]
/
drivers
/
net
/
gianfar.c
diff --git
a/drivers/net/gianfar.c
b/drivers/net/gianfar.c
index
df49af3
..
5d3763f
100644
(file)
--- a/
drivers/net/gianfar.c
+++ b/
drivers/net/gianfar.c
@@
-1511,9
+1511,9
@@
static void gfar_halt_nodisable(struct net_device *dev)
tempval |= (DMACTRL_GRS | DMACTRL_GTS);
gfar_write(®s->dmactrl, tempval);
tempval |= (DMACTRL_GRS | DMACTRL_GTS);
gfar_write(®s->dmactrl, tempval);
-
while (!
(gfar_read(®s->ievent) &
- (IEVENT_GRSC | IEVENT_GTSC))
)
-
cpu_relax(
);
+
spin_event_timeout((
(gfar_read(®s->ievent) &
+ (IEVENT_GRSC | IEVENT_GTSC))
==
+
(IEVENT_GRSC | IEVENT_GTSC)), -1, 0
);
}
}
}
}
@@
-1649,6
+1649,7
@@
static void free_skb_resources(struct gfar_private *priv)
sizeof(struct rxbd8) * priv->total_rx_ring_size,
priv->tx_queue[0]->tx_bd_base,
priv->tx_queue[0]->tx_bd_dma_base);
sizeof(struct rxbd8) * priv->total_rx_ring_size,
priv->tx_queue[0]->tx_bd_base,
priv->tx_queue[0]->tx_bd_dma_base);
+ skb_queue_purge(&priv->rx_recycle);
}
void gfar_start(struct net_device *dev)
}
void gfar_start(struct net_device *dev)
@@
-2088,7
+2089,6
@@
static int gfar_close(struct net_device *dev)
disable_napi(priv);
disable_napi(priv);
- skb_queue_purge(&priv->rx_recycle);
cancel_work_sync(&priv->reset_task);
stop_gfar(dev);
cancel_work_sync(&priv->reset_task);
stop_gfar(dev);