diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-02 13:40:40 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-02 13:40:40 -0400 |
commit | db7a89db5e3bc6ba131965183577b15fd6fc92cc (patch) | |
tree | 3379e5ceced69c41b24c68d571a103b71c246b14 /drivers/net/qla3xxx.c | |
parent | 2910ca6f8ae69648623b3c05b79be87dd7bda73d (diff) | |
parent | f662fe5a0b144efadbfc00e8040e603ec318746e (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:
dm9601: Fix receive MTU
mv643xx_eth: Do not modify struct netdev tx_queue_len
qla3xxx: bugfix: Fix VLAN rx completion handling.
qla3xxx: bugfix: Add memory barrier before accessing rx completion.
Diffstat (limited to 'drivers/net/qla3xxx.c')
-rwxr-xr-x | drivers/net/qla3xxx.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c index 69da95b5ad0c..ea151315050c 100755 --- a/drivers/net/qla3xxx.c +++ b/drivers/net/qla3xxx.c | |||
@@ -2248,6 +2248,13 @@ static int ql_tx_rx_clean(struct ql3_adapter *qdev, | |||
2248 | qdev->rsp_consumer_index) && (work_done < work_to_do)) { | 2248 | qdev->rsp_consumer_index) && (work_done < work_to_do)) { |
2249 | 2249 | ||
2250 | net_rsp = qdev->rsp_current; | 2250 | net_rsp = qdev->rsp_current; |
2251 | rmb(); | ||
2252 | /* | ||
2253 | * Fix 4032 chipe undocumented "feature" where bit-8 is set if the | ||
2254 | * inbound completion is for a VLAN. | ||
2255 | */ | ||
2256 | if (qdev->device_id == QL3032_DEVICE_ID) | ||
2257 | net_rsp->opcode &= 0x7f; | ||
2251 | switch (net_rsp->opcode) { | 2258 | switch (net_rsp->opcode) { |
2252 | 2259 | ||
2253 | case OPCODE_OB_MAC_IOCB_FN0: | 2260 | case OPCODE_OB_MAC_IOCB_FN0: |