All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Hughes <john@Calva.COM>
To: James Bottomley <James.Bottomley@suse.de>
Cc: linux-scsi@vger.kernel.org
Subject: Re: ses enclosure stuff not working with Promise Vtrak J610S JBOD
Date: Wed, 04 Nov 2009 19:01:22 +0100	[thread overview]
Message-ID: <4AF1C172.6080509@Calva.COM> (raw)
In-Reply-To: <1257351654.2697.55.camel@mulgrave.site>

James Bottomley wrote:
> On Wed, 2009-11-04 at 17:12 +0100, John Hughes wrote:
>   
>> # sg_ses -p 0 /dev/sg17
>>   PROMISE   3U-SAS-16-D BP    0107
>>     enclosure services device
>> Supported diagnostic pages:
>>   Supported diagnostic pages [0x0]
>>   Configuration (SES) [0x1]
>>   Enclosure status/control (SES) [0x2]
>>   Threshold In/Out (SES) [0x5]
>>   Enclosure busy (SES-2) [0x9]
>>   Additional (device) element status (SES-2) [0xa]
>>     
>
> This may also be a problem.  My enclosure returns page 7 as well.  The
> traversal routine has special code to try to parse page 10 without a
> page 7 ... I don't think I actually ever tested that ...
>   
As far as I can tell you only use page 7 to get the slot names, but you 
ignore the "addl_desc_ptr" information in page10 if you didn't get page7.

With the following patch I get the "device" directories in the enclosure 
bay directories, even for the SATA drive.  (Maybe this is because the 
SATA drive is behind a so-called "aamux" device).

I also find the "enclosure_device:xxx" link in the 
/sys/block/sdxx/device directory

# ls -l /sys/block/sdaa/device/enclosure_device:13
lrwxrwxrwx 1 root root 0 2009-11-04 18:57 /sys/block/sdaa/device/enclosure_device:13 -> ../../../../../../../../../../../../class/enclosure/4:0:14:0/13

Yay!

diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c
index 55b034b..725a095 100644
--- a/drivers/scsi/ses.c
+++ b/drivers/scsi/ses.c
@@ -389,9 +389,9 @@ static void ses_enclosure_data_process(struct enclosure_devi
                len = (desc_ptr[2] << 8) + desc_ptr[3];
                /* skip past overall descriptor */
                desc_ptr += len + 4;
-               if (ses_dev->page10)
-                       addl_desc_ptr = ses_dev->page10 + 8;
        }
+       if (ses_dev->page10)
+               addl_desc_ptr = ses_dev->page10 + 8;
        type_ptr = ses_dev->page1 + 12 + ses_dev->page1[11];
        components = 0;
        for (i = 0; i < types; i++, type_ptr += 4) {



  reply	other threads:[~2009-11-04 18:01 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-04 13:00 ses enclosure stuff not working with Promise Vtrak J610S JBOD John Hughes
2009-11-04 15:17 ` John Hughes
2009-11-04 15:22 ` James Bottomley
2009-11-04 15:53   ` John Hughes
2009-11-04 16:07     ` James Bottomley
2009-11-04 16:12       ` John Hughes
2009-11-04 16:20         ` James Bottomley
2009-11-04 18:01           ` John Hughes [this message]
2009-11-04 18:05             ` James Bottomley
2009-11-04 18:10               ` John Hughes
2009-11-05  9:41             ` John Hughes
2009-11-05 15:30               ` John Hughes
2009-11-05 15:44                 ` James Bottomley
2009-11-04 15:51 ` John Hughes
2009-11-04 16:54   ` John Hughes
2009-11-04 16:55   ` John Hughes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AF1C172.6080509@Calva.COM \
    --to=john@calva.com \
    --cc=James.Bottomley@suse.de \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.