From: sreekanth.reddy@lsi.com Date: Tue, 17 Jul 2012 10:27:05 +0000 (+0530) Subject: mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth command line... X-Git-Tag: v3.2.30~128 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f64c045ad2f37a56f2c9ab9cfe662b2e797bb37e;p=pandora-kernel.git 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 Signed-off-by: James Bottomley Signed-off-by: Ben Hutchings --- Reading git-diff-tree failed