diff options
author | Benjamin Li <benjamin.li@qlogic.com> | 2007-02-26 11:06:42 -0800 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-02-27 04:21:45 -0500 |
commit | e8f4df2491d07fc369e9d631e0638da03a9b3a38 (patch) | |
tree | dc4b183711b05b7717e36cf5fb2c5b915b357c45 /drivers/net/qla3xxx.h | |
parent | 63b66d12de57d8455615d9f619e18824137ed547 (diff) | |
download | linux-stable-e8f4df2491d07fc369e9d631e0638da03a9b3a38.tar.gz linux-stable-e8f4df2491d07fc369e9d631e0638da03a9b3a38.tar.bz2 linux-stable-e8f4df2491d07fc369e9d631e0638da03a9b3a38.zip |
qla3xxx: Kernic Panic on pSeries under stress conditions
To reproduce this panic consistently, we run an intensive network
application like 'netperf'. After waiting for a couple of seconds,
you will see a stack trace and a kernel panic where we are calling
pci_unmap_single() in ql_poll().
Changes:
1) Check the flags on the Response MAC IO Control block to check for
errors
2) Ensure that if we are on the 4022 we only use one segment
3) Before, we were reading the memory mapped producer index register
everytime we iterated in the loop when clearing the queue. We should
only be iterating to a known point, not as the producer index
is being updated.
Signed-off-by: Benjamin Li <benjamin.li@qlogic.com>
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/qla3xxx.h')
-rwxr-xr-x | drivers/net/qla3xxx.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/qla3xxx.h b/drivers/net/qla3xxx.h index 40913d2c7097..34cd6580fd07 100755 --- a/drivers/net/qla3xxx.h +++ b/drivers/net/qla3xxx.h @@ -1194,7 +1194,7 @@ struct ql3_adapter { struct net_rsp_iocb *rsp_current; u16 rsp_consumer_index; u16 reserved_06; - u32 *prsp_producer_index; + volatile u32 *prsp_producer_index; u32 rsp_producer_index_phy_addr_high; u32 rsp_producer_index_phy_addr_low; |