1. 18 Feb, 2008 2 commits
    • James Bottomley's avatar
      [SCSI] aic94xx: fix REQ_TASK_ABORT and REQ_DEVICE_RESET · cb84e2d2
      James Bottomley authored
      This driver has been failing under heavy load with
      
      aic94xx: escb_tasklet_complete: REQ_TASK_ABORT, reason=0x6
      aic94xx: escb_tasklet_complete: Can't find task (tc=4) to abort!
      
      The second message is because the driver fails to identify the task
      it's being asked to abort.  On closer inpection, there's a thinko in
      the for each task loop over pending tasks in both the REQ_TASK_ABORT
      and REQ_DEVICE_RESET cases where it doesn't look at the task on the
      pending list but at the one on the ESCB (which is always NULL).
      
      Fix by looking at the right task.  Also add a print for the case where
      the pending SCB doesn't have a task attached.
      
      Not sure if this will fix all the problems, but it's a definite first
      step.
      
      Cc: Stable Tree <stable@kernel.org>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
      cb84e2d2
    • 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
  2. 15 Feb, 2008 38 commits