• sreekanth.reddy@lsi.com's avatar
    [SCSI] mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth... · 338b131a
    sreekanth.reddy@lsi.com authored
    [SCSI] mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth command line option to a very small value
    
    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: default avatarSreekanth Reddy <sreekanth.reddy@lsi.com>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
    338b131a
mpt2sas_base.c 131 KB