diff options
author | sreekanth.reddy@lsi.com <sreekanth.reddy@lsi.com> | 2012-07-17 14:27:05 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-14 21:00:25 +0400 |
commit | 7a4601c0bfde4ed50c54f30c32c5677e3daec4f9 (patch) | |
tree | 54dcd326a9b53c50fc085940ee0837c8ae36046e /drivers/clocksource | |
parent | 797efad403c63c9a94a8f78e06ccb3aa5b4980a9 (diff) | |
download | linux-7a4601c0bfde4ed50c54f30c32c5677e3daec4f9.tar.xz |
SCSI: mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth command line option to a very small value
commit 338b131a3269881c7431234855c93c219b0979b6 upstream.
If the specified max_queue_depth setting is less than the
expected number of internal commands, then driver will calculate
the queue depth size to a negitive number. This negitive number
is actually a very large number because variable is unsigned
16bit integer. So, the driver will ask for a very large amount of
memory for message frames and resulting into oops as memory
allocation routines will not able to handle such a large request.
So, in order to limit this kind of oops, The driver need to set
the max_queue_depth to a scsi mid layer's can_queue value. Then
the overall message frames required for IO is minimum of either
(max_queue_depth plus internal commands) or the IOC global
credits.
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/clocksource')
0 files changed, 0 insertions, 0 deletions