1. 30 12月, 2008 1 次提交
  2. 30 7月, 2008 1 次提交
  3. 25 6月, 2008 1 次提交
  4. 20 4月, 2008 1 次提交
  5. 18 2月, 2008 1 次提交
    • Y
      [SCSI] ses: fix data corruption · 691b4773
      Yinghai Lu 提交于
      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: NYinghai Lu <yinghai.lu@sun.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      691b4773
  6. 12 2月, 2008 1 次提交
  7. 08 2月, 2008 1 次提交
    • J
      [SCSI] ses: add new Enclosure ULD · 9927c688
      James Bottomley 提交于
      This adds support to SCSI for enclosure services devices. It also makes
      use of the enclosure services added in an earlier patch to display the
      enclosure topology in sysfs.
      
      At the moment, the enclosures are SAS specific, but if anyone actually
      has a non-SAS enclosure that follows the SES-2 standard, we can add that
      as well.
      
      On my Vitesse based system, the enclosures show up like this:
      
      sparkweed:~# ls -l /sys/class/enclosure/0\:0\:1\:0/
      total 0
      -r--r--r-- 1 root root 4096 2008-02-03 15:44 components
      lrwxrwxrwx 1 root root    0 2008-02-03 15:44 device -> ../../../devices/pci0000:01/0000:01:02.0/host0/port-0:0/expander-0:0/port-0:0:12/end_device-0:0:12/target0:0:1/0:0:1:0
      drwxr-xr-x 2 root root    0 2008-02-03 15:44 SLOT 000
      drwxr-xr-x 2 root root    0 2008-02-03 15:44 SLOT 001
      drwxr-xr-x 2 root root    0 2008-02-03 15:44 SLOT 002
      drwxr-xr-x 2 root root    0 2008-02-03 15:44 SLOT 003
      drwxr-xr-x 2 root root    0 2008-02-03 15:44 SLOT 004
      drwxr-xr-x 2 root root    0 2008-02-03 15:44 SLOT 005
      lrwxrwxrwx 1 root root    0 2008-02-03 15:44 subsystem -> ../../enclosure
      --w------- 1 root root 4096 2008-02-03 15:44 uevent
      
      And the individual occupied slots like this:
      
      sparkweed:~# ls -l /sys/class/enclosure/0\:0\:1\:0/SLOT\ 001/
      total 0
      -rw-r--r-- 1 root root 4096 2008-02-03 15:45 active
      lrwxrwxrwx 1 root root    0 2008-02-03 15:45 device -> ../../../../devices/pci0000:01/0000:01:02.0/host0/port-0:0/expander-0:0/port-0:0:11/end_device-0:0:11/target0:0:0/0:0:0:0
      -rw-r--r-- 1 root root 4096 2008-02-03 15:45 fault
      -rw-r--r-- 1 root root 4096 2008-02-03 15:45 locate
      -rw-r--r-- 1 root root 4096 2008-02-03 15:45 status
      lrwxrwxrwx 1 root root    0 2008-02-03 15:45 subsystem -> ../../../enclosure_component
      -r--r--r-- 1 root root 4096 2008-02-03 15:45 type
      --w------- 1 root root 4096 2008-02-03 15:45 uevent
      
      You can flash the various blinky lights by echoing to the fault and locate files.
      
      >From the device's point of view, you can see it has an enclosure like this:
      
      sparkweed:~# ls /sys/class/scsi_disk/0\:0\:0\:0/device/
      block:sda                     generic        queue_depth          state
      bsg:0:0:0:0                   iocounterbits  queue_type           subsystem
      bus                           iodone_cnt     rescan               timeout
      delete                        ioerr_cnt      rev                  type
      device_blocked                iorequest_cnt  scsi_device:0:0:0:0  uevent
      driver                        modalias       scsi_disk:0:0:0:0    vendor
      enclosure_component:SLOT 001  model          scsi_generic:sg0
      evt_media_change              power          scsi_level
      
      Note the enclosure_component:SLOT 001 which shows where in the enclosure
      this device fits.
      
      The astute will notice that I'm using SCSI VPD Inquiries to identify the
      devices.  This, unfortunately, won't work for SATA devices unless we do
      some really nasty hacking about on the SAT because the only think that
      knows the SAS addresses for SATA devices is libsas, not libata where the
      SAT resides.
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      9927c688