• Yinghai Lu's avatar
    [SCSI] ses: fix data corruption · 691b4773
    Yinghai Lu authored
    one system: initrd get courrupted:
    
    RAMDISK: Compressed image found at block 0
    RAMDISK: incomplete write (-28 != 2048) 134217728
    crc error
    VFS: Mounted root (ext2 filesystem).
    Freeing unused kernel memory: 388k freed
    init_special_inode: bogus i_mode (177777)
    Warning: unable to open an initial console.
    init_special_inode: bogus i_mode (177777)
    init_special_inode: bogus i_mode (177777)
    Kernel panic - not syncing: No init found.  Try passing init= option to kernel.
    
    bisected to
    commit 9927c688
    Author: James Bottomley <James.Bottomley@HansenPartnership.com>
    Date:   Sun Feb 3 15:48:56 2008 -0600
    
        [SCSI] ses: add new Enclosure ULD
    
    changes:
    1. change char to unsigned char to avoid type change later.
    2. preserve len for page1
    3. need to move desc_ptr even the entry is not enclosure_component_device/raid.
       so keep desc_ptr on right position
    4. record page7 len, and double check if desc_ptr out of boundary before touch.
    5. fix typo in subenclosure checking: should use hdr_buf instead.
    
    [jejb: style fixes]
    Signed-off-by: default avatarYinghai Lu <yinghai.lu@sun.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
    691b4773
ses.c 15.9 KB