• R
    [SCSI] aacraid: prohibit access to array container space · da3cc679
    Rajashekhara, Mahesh 提交于
    Problem description:
    --------------------
    
    The issue reported by one of the customer was able to read LBA beyond
    the array reported size with "sg_read" utility. If N is the last block
    address reported, then should not be able to read past N,
    i.e. N+1. But in their case, reported last LBA=143134719.  So should
    not have been able to read with LBA=143134720, but it is read without
    failure, which means reported size to the OS is not correct and is
    less than the actual last block address.
    
    Solution:
    ---------
    
    Firmware layer exposes lesser container capacity than the actual
    one. It exposes [Actual size - Spitfire space(10MB)] to the OS, IO's
    to the 10MB should be prohibited from the Linux driver. Driver checks
    LBA boundary, if its greater than the array reported size then sets
    sensekey to HARDWARE_ERROR and sends the notification to the MID
    layer.
    Signed-off-by: NMahesh Rajashekhara <aacraid@adaptec.com>
    Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
    da3cc679
aachba.c 85.3 KB