diff options
author | Anatolij Gustschin <agust@denx.de> | 2009-12-12 14:52:21 +0100 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-01-17 12:16:17 -0600 |
commit | f1053a7ca9ce095d95bcc1cf41684c5e4f3e7751 (patch) | |
tree | 4e364d0eb39830d53048925fcc4adfb73deb39dc /drivers/message | |
parent | cacb6dc3d7fea751879a225c15e48228415e6359 (diff) | |
download | linux-stable-f1053a7ca9ce095d95bcc1cf41684c5e4f3e7751.tar.gz linux-stable-f1053a7ca9ce095d95bcc1cf41684c5e4f3e7751.tar.bz2 linux-stable-f1053a7ca9ce095d95bcc1cf41684c5e4f3e7751.zip |
[SCSI] mptsas: Fix issue with chain pools allocation on katmai
Since commit 9d2e9d66a3f032667934144cd61c396ba49f090d
mptsas driver fails to allocate memory for the MPT chain buffers
for second LSI adapter on PPC440SPe Katmai platform:
...
ioc1: LSISAS1068E B3: Capabilities={Initiator}
mptbase: ioc1: ERROR - Unable to allocate Reply, Request, Chain Buffers!
mptbase: ioc1: ERROR - didn't initialize properly! (-3)
mptsas: probe of 0002:31:00.0 failed with error -3
This commit increased MPT_FC_CAN_QUEUE value but initChainBuffers()
doesn't differentiate between SAS and FC causing increased allocation
for SAS case, too. Later pci_alloc_consistent() fails to allocate
increased chain buffer pool size for SAS case.
Provide a fix by looking at the bus type and using appropriate
MPT_SAS_CAN_QUEUE value while calculation of the number of chain
buffers.
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Acked-by: Kashyap Desai <kashyap.desai@lsi.com>
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/message')
-rw-r--r-- | drivers/message/fusion/mptbase.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index 85bc6a685e36..44d2037e9e56 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c @@ -4330,6 +4330,8 @@ initChainBuffers(MPT_ADAPTER *ioc) if (ioc->bus_type == SPI) num_chain *= MPT_SCSI_CAN_QUEUE; + else if (ioc->bus_type == SAS) + num_chain *= MPT_SAS_CAN_QUEUE; else num_chain *= MPT_FC_CAN_QUEUE; |