• sreekanth.reddy@lsi.com's avatar
    mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth command... · f64c045a
    sreekanth.reddy@lsi.com authored
    mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth command line option to a very small value
    
    commit 338b131a 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: default avatarSreekanth Reddy <sreekanth.reddy@lsi.com>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    f64c045a
mpt2sas_base.c 128 KB