diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-02 18:08:32 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-02 18:08:32 -0500 |
commit | 97be852f81c5bb114aab31974af2c061eb86a6de (patch) | |
tree | 701a9c88eef7fc3692150f5dd7edb226a6089173 /drivers/net/depca.c | |
parent | cdb54fac35812a21943f0e506e8e3b94b469a77c (diff) | |
parent | aae343d493df965ac3abec1bd97cccfe44a7d920 (diff) |
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (118 commits)
[netdrvr] skge: build fix
[PATCH] NetXen: driver cleanup, removed unnecessary __iomem type casts
[PATCH] PHY: Add support for configuring the PHY connection interface
[PATCH] chelesio: transmit locking (plus bug fix).
[PATCH] chelsio: statistics improvement
[PATCH] chelsio: add MSI support
[PATCH] chelsio: use standard CRC routines
[PATCH] chelsio: cleanup pm3393 code
[PATCH] chelsio: add 1G swcixw aupport
[PATCH] chelsio: add support for other 10G boards
[PATCH] chelsio: remove unused mutex
[PATCH] chelsio: use kzalloc
[PATCH] chelsio: whitespace fixes
[PATCH] amd8111e use standard CRC lib
[PATCH] sky2: msi enhancements.
[PATCH] sky2: kfree_skb_any needed
[PATCH] sky2: fixes for Yukon EC_U chip revisions
[PATCH] sky2: add Dlink 560SX id
[PATCH] sky2: receive error handling fix
[PATCH] skge: don't clear MC state on link down
...
Diffstat (limited to 'drivers/net/depca.c')
-rw-r--r-- | drivers/net/depca.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/drivers/net/depca.c b/drivers/net/depca.c index f87f6e3dc721..5113eef755b9 100644 --- a/drivers/net/depca.c +++ b/drivers/net/depca.c | |||
@@ -1252,24 +1252,22 @@ static void set_multicast_list(struct net_device *dev) | |||
1252 | struct depca_private *lp = (struct depca_private *) dev->priv; | 1252 | struct depca_private *lp = (struct depca_private *) dev->priv; |
1253 | u_long ioaddr = dev->base_addr; | 1253 | u_long ioaddr = dev->base_addr; |
1254 | 1254 | ||
1255 | if (dev) { | 1255 | netif_stop_queue(dev); |
1256 | netif_stop_queue(dev); | 1256 | while (lp->tx_old != lp->tx_new); /* Wait for the ring to empty */ |
1257 | while (lp->tx_old != lp->tx_new); /* Wait for the ring to empty */ | ||
1258 | |||
1259 | STOP_DEPCA; /* Temporarily stop the depca. */ | ||
1260 | depca_init_ring(dev); /* Initialize the descriptor rings */ | ||
1261 | 1257 | ||
1262 | if (dev->flags & IFF_PROMISC) { /* Set promiscuous mode */ | 1258 | STOP_DEPCA; /* Temporarily stop the depca. */ |
1263 | lp->init_block.mode |= PROM; | 1259 | depca_init_ring(dev); /* Initialize the descriptor rings */ |
1264 | } else { | ||
1265 | SetMulticastFilter(dev); | ||
1266 | lp->init_block.mode &= ~PROM; /* Unset promiscuous mode */ | ||
1267 | } | ||
1268 | 1260 | ||
1269 | LoadCSRs(dev); /* Reload CSR3 */ | 1261 | if (dev->flags & IFF_PROMISC) { /* Set promiscuous mode */ |
1270 | InitRestartDepca(dev); /* Resume normal operation. */ | 1262 | lp->init_block.mode |= PROM; |
1271 | netif_start_queue(dev); /* Unlock the TX ring */ | 1263 | } else { |
1264 | SetMulticastFilter(dev); | ||
1265 | lp->init_block.mode &= ~PROM; /* Unset promiscuous mode */ | ||
1272 | } | 1266 | } |
1267 | |||
1268 | LoadCSRs(dev); /* Reload CSR3 */ | ||
1269 | InitRestartDepca(dev); /* Resume normal operation. */ | ||
1270 | netif_start_queue(dev); /* Unlock the TX ring */ | ||
1273 | } | 1271 | } |
1274 | 1272 | ||
1275 | /* | 1273 | /* |