RE: [PATCH V5 01/17] scsi: fixing the type for well known LUs

2014-09-25 Thread Subhash Jadavani
  +   * some devices may respond with wrong type for
  +   * well-known logical units. Force well-known type
  +   * to enumerate them correctly.
  +   */
  +  if (scsi_is_wlun(sdev-lun))
  +  sdev-type = TYPE_WLUN;
 }
 ...

 My only concern is that the peripheral device type was included at the
outset in spc3r01 in 2001, so a design that can't get this right might have
other problems.  A print might be justified to report something is amiss:

   if (scsi_is_wlun(sdev-lun)  sdev-type != TYPE_WLUN) {
   sdev_printk(KERN_WARNING, sdev,
   %s: correcting incorrect peripheral device type
0x%x for W-LUN 0x%16phN\n,
   __func__, sdev-type, sdev-lun);
   sdev-type = TYPE_WLUN;
   }

Agreed, will take care of this in next patch revision.


-Original Message-
From: linux-scsi-ow...@vger.kernel.org
[mailto:linux-scsi-ow...@vger.kernel.org] On Behalf Of Elliott, Robert
(Server Storage)
Sent: Wednesday, September 24, 2014 1:50 PM
To: Christoph Hellwig; Dolev Raviv
Cc: james.bottom...@hansenpartnership.com; linux-scsi@vger.kernel.org;
linux-scsi-ow...@vger.kernel.org; linux-arm-...@vger.kernel.org;
santos...@gmail.com; Subhash Jadavani; Sujit Reddy Thumma; Martin K.
Petersen
Subject: RE: [PATCH V5 01/17] scsi: fixing the type for well known LUs


 From: Christoph Hellwig [mailto:h...@infradead.org]
...
 On Wed, Sep 24, 2014 at 06:13:57PM +0300, Dolev Raviv wrote:
  From: Subhash Jadavani subha...@codeaurora.org
 
  Some devices may respond with wrong type for well-known logical units.
  This patch forces well-known type for devices which doesn't report 
  it correct.
 
 This looks fine to me, as the well known LUN addresses seem to be 
 nailed down nicely in t10, but let's see if Martin or Robert disagree..
 
...
  diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c 
  index 56675db..a34db9e 100644
  --- a/drivers/scsi/scsi_scan.c
  +++ b/drivers/scsi/scsi_scan.c
  @@ -805,6 +805,14 @@ static int scsi_add_lun(struct scsi_device 
  *sdev,
 unsigned char *inq_result,
  } else {
  sdev-type = (inq_result[0]  0x1f);
  sdev-removable = (inq_result[1]  0x80)  7;
  +
  +   /*
  +* some devices may respond with wrong type for
  +* well-known logical units. Force well-known type
  +* to enumerate them correctly.
  +*/
  +   if (scsi_is_wlun(sdev-lun))
  +   sdev-type = TYPE_WLUN;
  }
...

My only concern is that the peripheral device type was included at the
outset in spc3r01 in 2001, so a design that can't get this right might have
other problems.  A print might be justified to report something is amiss:

if (scsi_is_wlun(sdev-lun)  sdev-type != TYPE_WLUN) {
sdev_printk(KERN_WARNING, sdev,
%s: correcting incorrect peripheral device type
0x%x for W-LUN 0x%16phN\n,
__func__, sdev-type, sdev-lun);
sdev-type = TYPE_WLUN;
}


---
Rob ElliottHP Server Storage





--
To unsubscribe from this list: send the line unsubscribe linux-scsi in the
body of a message to majord...@vger.kernel.org More majordomo info at
http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH V5 01/17] scsi: fixing the type for well known LUs

2014-09-24 Thread Elliott, Robert (Server Storage)

 From: Christoph Hellwig [mailto:h...@infradead.org]
...
 On Wed, Sep 24, 2014 at 06:13:57PM +0300, Dolev Raviv wrote:
  From: Subhash Jadavani subha...@codeaurora.org
 
  Some devices may respond with wrong type for well-known logical units.
  This patch forces well-known type for devices which doesn't report it
  correct.
 
 This looks fine to me, as the well known LUN addresses seem to be nailed
 down nicely in t10, but let's see if Martin or Robert disagree..
 
...
  diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
  index 56675db..a34db9e 100644
  --- a/drivers/scsi/scsi_scan.c
  +++ b/drivers/scsi/scsi_scan.c
  @@ -805,6 +805,14 @@ static int scsi_add_lun(struct scsi_device *sdev,
 unsigned char *inq_result,
  } else {
  sdev-type = (inq_result[0]  0x1f);
  sdev-removable = (inq_result[1]  0x80)  7;
  +
  +   /*
  +* some devices may respond with wrong type for
  +* well-known logical units. Force well-known type
  +* to enumerate them correctly.
  +*/
  +   if (scsi_is_wlun(sdev-lun))
  +   sdev-type = TYPE_WLUN;
  }
...

My only concern is that the peripheral device type was included
at the outset in spc3r01 in 2001, so a design that can't get this
right might have other problems.  A print might be justified
to report something is amiss:

if (scsi_is_wlun(sdev-lun)  sdev-type != TYPE_WLUN) {
sdev_printk(KERN_WARNING, sdev,
%s: correcting incorrect peripheral device type 0x%x 
for W-LUN 0x%16phN\n,
__func__, sdev-type, sdev-lun);
sdev-type = TYPE_WLUN;
}


---
Rob ElliottHP Server Storage





--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html