From: bugzilla-daemon@bugzilla.kernel.org
To: linux-scsi@vger.kernel.org
Subject: [Bug 80711] [PATCH]SG_FLAG_LUN_INHIBIT is no longer implemented and there's not way to prevent the kernel from using the 2nd cdb byte for the LUN
Date: Fri, 22 Aug 2014 17:29:35 +0000 [thread overview]
Message-ID: <bug-80711-11613-cgWy7xBT3K@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-80711-11613@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=80711
--- Comment #17 from Alan Stern <stern@rowland.harvard.edu> ---
On Fri, 22 Aug 2014, James Bottomley wrote:
> On Fri, 2014-08-22 at 10:53 -0400, Alan Stern wrote:
> > Sending the initial INQUIRY command to LUNs larger than 0 involves a
> > chicken-and-egg problem -- we don't know whether to fill in the LUN
> > bits in the command until we know the SCSI level, and we don't know the
> > SCSI level until the INQUIRY response is received. The solution we
> > have been using is to store the most recently discovered level in the
> > target structure, and use it as a default. If probing starts with LUN
> > 0, and if all the LUNs have similar levels, this ought to work.
> >
> > Except for one thing: The code does store the default level in the
> > scsi_target, but forgets to copy it back into each newly allocated
> > scsi_device! I added a line to do that into the patch.
> > --- usb-3.16.orig/include/scsi/scsi_host.h
> > +++ usb-3.16/include/scsi/scsi_host.h
> > @@ -695,6 +695,9 @@ struct Scsi_Host {
> > /* The controller does not support WRITE SAME */
> > unsigned no_write_same:1;
> >
> > + /* The transport requires the LUN bits NOT to be stored in CDB[1] */
> > + unsigned no_scsi2_lun_in_cdb:1;
>
> I think Christoph mentioned shortening this flag length, but personally
> I'm not that bothered.
It was shorter in the original version of the patch, but I decided to
make it a little longer to match the name of the new scsi_device flag
added in this version.
> > --- usb-3.16.orig/drivers/scsi/scsi_scan.c
> > +++ usb-3.16/drivers/scsi/scsi_scan.c
> > @@ -257,6 +257,7 @@ static struct scsi_device *scsi_alloc_sd
> >
> > sdev->sdev_gendev.parent = get_device(&starget->dev);
> > sdev->sdev_target = starget;
> > + sdev->scsi_level = starget->scsi_level;
>
> Why is this necessary? Isn't this set correctly in scsi_probe_lun? The
> target level is actually set from the device level.
The reason was mentioned in the quoted text at the start of this email.
In greater detail: Yes, sdev->scsi_level is set correctly in
scsi_probe_lun, but only _after_ the INQUIRY data has been received
(because the level is part of the INQUIRY data). So how can the
INQUIRY CDB be set up correctly before we know the device's level?
(When the current code sends an INQUIRY for LUN 1, it will _not_ put
the LUN bits in CDB[1] -- even if LUN 0 reported SCSI-2. That doesn't
seem right.)
My answer is to use a default level copied from the target. The
target's level in turn was set from the previously probed device...
which means that the first device to be probed gets a default level of
SCSI-2. That's okay as long as the first device probed is LUN 0.
Hmmm, but now I see the patch doesn't set a default value for the new
sdev->lun_in_cdb flag. That needs to be fixed...
> Other than this, I'm fine with the code ... you can add the acked by
> from me when we resolve the above question.
Okay. It's true that this issue is only tangentially related to the
main point of the patch. It could be removed and addressed later.
Alan Stern
--
You are receiving this mail because:
You are the assignee for the bug.
next prev parent reply other threads:[~2014-08-22 17:29 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-20 0:37 [Bug 80711] New: SG_FLAG_LUN_INHIBIT is no longer implemented and there's not way to prevent the kernel from using the 2nd cdb byte for the LUN bugzilla-daemon
2014-07-20 14:13 ` [Bug 80711] " bugzilla-daemon
2014-07-21 9:05 ` bugzilla-daemon
2014-07-22 16:13 ` Christoph Hellwig
2014-07-29 15:57 ` [Bug 80711] [PATCH]SG_FLAG_LUN_INHIBIT " bugzilla-daemon
2014-08-06 13:29 ` Douglas Gilbert
2014-08-06 19:32 ` Christoph Hellwig
2014-08-06 20:02 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1408061545030.1145-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2014-08-06 20:25 ` Alan Stern
2014-08-07 6:39 ` Christoph Hellwig
2014-08-07 15:58 ` Alan Stern
2014-08-19 17:56 ` Christoph Hellwig
2014-08-20 19:15 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1408201507280.1959-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2014-08-21 14:41 ` Douglas Gilbert
2014-08-21 14:42 ` Christoph Hellwig
2014-08-21 17:31 ` Alan Stern
2014-08-21 21:43 ` Martin K. Petersen
2014-08-21 21:57 ` Christoph Hellwig
[not found] ` <20140821215744.GA29651-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2014-08-22 14:53 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1408221044450.967-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2014-08-22 15:05 ` Christoph Hellwig
[not found] ` <20140822150508.GA1321-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2014-08-22 15:26 ` Alan Stern
2014-08-22 15:08 ` Martin K. Petersen
2014-08-22 15:39 ` James Bottomley
2014-08-22 17:29 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1408221249360.967-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2014-08-24 15:04 ` Christoph Hellwig
2014-08-25 14:44 ` Alan Stern
2014-08-25 19:39 ` James Bottomley
[not found] ` <1408995547.3629.7.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2014-08-25 20:12 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1408251545580.1385-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2014-08-25 21:19 ` Alan Stern
2014-08-25 21:30 ` James Bottomley
2014-08-06 13:37 ` bugzilla-daemon
2014-08-06 20:09 ` bugzilla-daemon
2014-08-06 20:25 ` bugzilla-daemon
2014-08-06 21:16 ` bugzilla-daemon
2014-08-07 15:58 ` bugzilla-daemon
2014-08-07 16:10 ` bugzilla-daemon
2014-08-20 19:15 ` bugzilla-daemon
2014-08-21 14:41 ` bugzilla-daemon
2014-08-21 17:31 ` bugzilla-daemon
2014-08-21 21:43 ` bugzilla-daemon
2014-08-22 14:53 ` bugzilla-daemon
2014-08-22 15:08 ` bugzilla-daemon
2014-08-22 15:26 ` bugzilla-daemon
2014-08-22 17:29 ` bugzilla-daemon [this message]
2014-08-25 14:44 ` bugzilla-daemon
2014-08-25 20:12 ` bugzilla-daemon
2014-08-25 21:19 ` bugzilla-daemon
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=bug-80711-11613-cgWy7xBT3K@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@bugzilla.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox