2008-02-08 15:38:54

by Alan

[permalink] [raw]
Subject: [PATCH] scsi_error: Fix language abuse.


The word "illegal" has a precise dictionary meaning of "prohibited by
law". The error messages are therefore incorrect as so far nobody has
made SCSI violations a criminal offence.

This corrects scsi to match various other subsystems I've slowly been
ridding of this.

Pedantically-signed-off-by: Alan Cox <[email protected]>

diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.24-mm1/drivers/scsi/constants.c linux-2.6.24-mm1/drivers/scsi/constants.c
--- linux.vanilla-2.6.24-mm1/drivers/scsi/constants.c 2008-02-06 14:14:40.000000000 +0000
+++ linux-2.6.24-mm1/drivers/scsi/constants.c 2008-02-06 14:35:16.000000000 +0000
@@ -606,10 +606,10 @@
{0x2001, "Access denied - initiator pending-enrolled"},
{0x2002, "Access denied - no access rights"},
{0x2003, "Access denied - invalid mgmt id key"},
- {0x2004, "Illegal command while in write capable state"},
+ {0x2004, "Invalid command while in write capable state"},
{0x2005, "Obsolete"},
- {0x2006, "Illegal command while in explicit address mode"},
- {0x2007, "Illegal command while in implicit address mode"},
+ {0x2006, "Invalid command while in explicit address mode"},
+ {0x2007, "Invalid command while in implicit address mode"},
{0x2008, "Access denied - enrollment conflict"},
{0x2009, "Access denied - invalid LU identifier"},
{0x200A, "Access denied - invalid proxy token"},
@@ -620,7 +620,7 @@
{0x2102, "Invalid address for write"},
{0x2103, "Invalid write crossing layer jump"},

- {0x2200, "Illegal function (use 20 00, 24 00, or 26 00)"},
+ {0x2200, "Invalid function (use 20 00, 24 00, or 26 00)"},

{0x2400, "Invalid field in cdb"},
{0x2401, "CDB decryption error"},
@@ -697,7 +697,7 @@
{0x2C02, "Invalid combination of windows specified"},
{0x2C03, "Current program area is not empty"},
{0x2C04, "Current program area is empty"},
- {0x2C05, "Illegal power condition request"},
+ {0x2C05, "Invalid power condition request"},
{0x2C06, "Persistent prevent conflict"},
{0x2C07, "Previous busy status"},
{0x2C08, "Previous task set full status"},
@@ -1014,7 +1014,7 @@
{0x6300, "End of user area encountered on this track"},
{0x6301, "Packet does not fit in available space"},

- {0x6400, "Illegal mode for this track"},
+ {0x6400, "Invalid mode for this track"},
{0x6401, "Invalid packet size"},

{0x6500, "Voltage fault"},
@@ -1124,7 +1124,7 @@
"Not Ready", /* 2: The addressed target is not ready */
"Medium Error", /* 3: Data error detected on the medium */
"Hardware Error", /* 4: Controller or device failure */
- "Illegal Request", /* 5: Error in request */
+ "Invalid Request", /* 5: Error in request */
"Unit Attention", /* 6: Removable medium was changed, or
the target has been reset, or ... */
"Data Protect", /* 7: Access to the data is blocked */


2008-02-08 15:57:50

by James Bottomley

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.


On Fri, 2008-02-08 at 15:32 +0000, Alan Cox wrote:
> The word "illegal" has a precise dictionary meaning of "prohibited by
> law". The error messages are therefore incorrect as so far nobody has
> made SCSI violations a criminal offence.

Um, I'm really reluctant to do this without an incredibly good reason.
Illegal is a defined term under the SCSI standards, and the messages you
are changing actually appear with the word Illegal in the actual
ASC/ASCQ definition. If I accept this patch, you'll no longer be able
to look the messages up in the relevant standard:

http://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf

By a simple text search.

I don't think the pedantry is worth the confusion ...

James

2008-02-08 16:06:50

by Alan

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.

> http://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf
>
> By a simple text search.
>
> I don't think the pedantry is worth the confusion ...

Ok so we should file a formal change request with T10 instead perhaps ?

Alan

2008-02-08 16:07:53

by linux-os (Dick Johnson)

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.



The correct word should be "invalid," in spite of
the fact that the SCSI committee used invalid syntax.

Alan is right. There is nothing illegal in the kernel
and if there is, it must be removed as soon as it
is discovered!


On Fri, 8 Feb 2008, James Bottomley wrote:

>
> On Fri, 2008-02-08 at 15:32 +0000, Alan Cox wrote:
>> The word "illegal" has a precise dictionary meaning of "prohibited by
>> law". The error messages are therefore incorrect as so far nobody has
>> made SCSI violations a criminal offence.
>
> Um, I'm really reluctant to do this without an incredibly good reason.
> Illegal is a defined term under the SCSI standards, and the messages you
> are changing actually appear with the word Illegal in the actual
> ASC/ASCQ definition. If I accept this patch, you'll no longer be able
> to look the messages up in the relevant standard:
>
> http://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf
>
> By a simple text search.
>
> I don't think the pedantry is worth the confusion ...
>
> James
>

Cheers,
Dick Johnson
Penguin : Linux version 2.6.22.1 on an i686 machine (5588.29 BogoMips).
My book : http://www.AbominableFirebug.com/
_


****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to [email protected] - and destroy all copies of this information, including any attachments, without reading or disclosing them.

Thank you.

2008-02-08 16:27:37

by Mark Hounschell

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.

linux-os (Dick Johnson) wrote:
>
> The correct word should be "invalid," in spite of
> the fact that the SCSI committee used invalid syntax.
>
> Alan is right. There is nothing illegal in the kernel
> and if there is, it must be removed as soon as it
> is discovered!
>

il?le?gal (-lgl)
adj.
1. Prohibited by law.
*2. Prohibited by official rules: an illegal pass in football.
*3. Unacceptable to or not performable by a computer: an illegal operation.

Mark

2008-02-08 16:28:20

by James Bottomley

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.

On Fri, 2008-02-08 at 15:59 +0000, Alan Cox wrote:
> > http://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf
> >
> > By a simple text search.
> >
> > I don't think the pedantry is worth the confusion ...
>
> Ok so we should file a formal change request with T10 instead perhaps ?

As long as that "we" is royal, be my guest and go ahead.

If you set up the correct legal trust, your heirs and assigns can submit
the patch just as soon as T10 accepts the change ...

James

2008-02-09 01:33:23

by Douglas Gilbert

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.

Alan Cox wrote:
> The word "illegal" has a precise dictionary meaning of "prohibited by
> law".

Also "contrary to or forbidden by official rules, regulations, etc".
So word meanings are like standards, there are so many to choose
from.

The error messages are therefore incorrect as so far nobody has
> made SCSI violations a criminal offence.

Most USB mass storage implementations should result in jail
terms for the responsible parties.

> This corrects scsi to match various other subsystems I've slowly been
> ridding of this.
>
> Pedantically-signed-off-by: Alan Cox <[email protected]>

Please don't do this.

> - {0x2004, "Illegal command while in write capable state"},
> + {0x2004, "Invalid command while in write capable state"},

Several reasons:
1) Those strings appear in an international standard.
In this case SPC-3 ANSI INCITS 408-2005.
2) The way that INCITS standard (and others) is structured,
the relevant part of the text refers to a specific
additional sense code + qualifier instance by _name_
(e.g. "Illegal command while in write capable state")
not by number (e.g. 0x20,0x4). So given the Alan Cox
rendition of that string in a log, a diligent debugger
would need to get to constants.c to find the corresponding
asc/ascq numeric sequence, then search Annex D of SPC-3
to find the t10.org version of that string, then search
the body of SPC-3 and other t10 device class specific
standards for a match on the t10 string.
Vendor product manuals would tend to use the t10.org
strings as well.
3) I maintain constants.c and I do that with the help
of a program that compares t10's tables (specifically
http://www.t10.org/lists/asc-num.txt ) with the table
in constants.c . I'm glad to send you a copy so you
can take over maintaining the sanitized list and
cope with the abuse that may follow.


If you feel strongly about this then you could take it
up with ANSI or BS (a great acronym IMO).

Doug Gilbert


> diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.24-mm1/drivers/scsi/constants.c linux-2.6.24-mm1/drivers/scsi/constants.c
> --- linux.vanilla-2.6.24-mm1/drivers/scsi/constants.c 2008-02-06 14:14:40.000000000 +0000
> +++ linux-2.6.24-mm1/drivers/scsi/constants.c 2008-02-06 14:35:16.000000000 +0000
> @@ -606,10 +606,10 @@
> {0x2001, "Access denied - initiator pending-enrolled"},
> {0x2002, "Access denied - no access rights"},
> {0x2003, "Access denied - invalid mgmt id key"},
> - {0x2004, "Illegal command while in write capable state"},
> + {0x2004, "Invalid command while in write capable state"},
> {0x2005, "Obsolete"},
> - {0x2006, "Illegal command while in explicit address mode"},
> - {0x2007, "Illegal command while in implicit address mode"},
> + {0x2006, "Invalid command while in explicit address mode"},
> + {0x2007, "Invalid command while in implicit address mode"},
> {0x2008, "Access denied - enrollment conflict"},
> {0x2009, "Access denied - invalid LU identifier"},
> {0x200A, "Access denied - invalid proxy token"},
> @@ -620,7 +620,7 @@
> {0x2102, "Invalid address for write"},
> {0x2103, "Invalid write crossing layer jump"},
>
> - {0x2200, "Illegal function (use 20 00, 24 00, or 26 00)"},
> + {0x2200, "Invalid function (use 20 00, 24 00, or 26 00)"},
>
> {0x2400, "Invalid field in cdb"},
> {0x2401, "CDB decryption error"},
> @@ -697,7 +697,7 @@
> {0x2C02, "Invalid combination of windows specified"},
> {0x2C03, "Current program area is not empty"},
> {0x2C04, "Current program area is empty"},
> - {0x2C05, "Illegal power condition request"},
> + {0x2C05, "Invalid power condition request"},
> {0x2C06, "Persistent prevent conflict"},
> {0x2C07, "Previous busy status"},
> {0x2C08, "Previous task set full status"},
> @@ -1014,7 +1014,7 @@
> {0x6300, "End of user area encountered on this track"},
> {0x6301, "Packet does not fit in available space"},
>
> - {0x6400, "Illegal mode for this track"},
> + {0x6400, "Invalid mode for this track"},
> {0x6401, "Invalid packet size"},
>
> {0x6500, "Voltage fault"},
> @@ -1124,7 +1124,7 @@
> "Not Ready", /* 2: The addressed target is not ready */
> "Medium Error", /* 3: Data error detected on the medium */
> "Hardware Error", /* 4: Controller or device failure */
> - "Illegal Request", /* 5: Error in request */
> + "Invalid Request", /* 5: Error in request */
> "Unit Attention", /* 6: Removable medium was changed, or
> the target has been reset, or ... */
> "Data Protect", /* 7: Access to the data is blocked */
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>

2008-02-09 08:02:49

by Luben Tuikov

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.

--- On Fri, 2/8/08, Alan Cox <[email protected]> wrote:
> The word "illegal" has a precise dictionary
> meaning of "prohibited by
> law". The error messages are therefore incorrect as so
> far nobody has
> made SCSI violations a criminal offence.
>
> This corrects scsi to match various other subsystems
> I've slowly been
> ridding of this.
>
> Pedantically-signed-off-by: Alan Cox
> <[email protected]>

Alan,

In standards and in hardware specs, from which the meaning of
"illegal" is borrowed from (into standards), "illegal" doesn't
necessarily mean "invalid", and cannot be substituted for.
This is exactly why this particular word is used in the ASC/ASCQ
assignments. It exposes an underlying behaviour.

For example:

> - {0x2004, "Illegal command while in write capable state"},
> + {0x2004, "Invalid command while in write capable state"},

Consider this: the command itself can be very perfectly "valid",
e.g. the SCB contents, format, etc., but certainly "illegal".

Similarly for the rest of this patch.

Luben

2008-02-09 13:57:18

by Alan

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.

On Fri, 08 Feb 2008 20:32:54 -0500
Douglas Gilbert <[email protected]> wrote:

> Alan Cox wrote:
> > The word "illegal" has a precise dictionary meaning of "prohibited by
> > law".
>
> Also "contrary to or forbidden by official rules, regulations, etc".

The OED I have here doesn't seem to think so, however if the words are
the ones used in the T10 documentation then I'm happy to drop the patch.

Alan

2008-02-10 23:24:22

by Douglas Gilbert

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.

Alan Cox wrote:
> On Fri, 08 Feb 2008 20:32:54 -0500
> Douglas Gilbert <[email protected]> wrote:
>
>> Alan Cox wrote:
>>> The word "illegal" has a precise dictionary meaning of "prohibited by
>>> law".
>> Also "contrary to or forbidden by official rules, regulations, etc".
>
> The OED I have here doesn't seem to think so, however if the words are
> the ones used in the T10 documentation then I'm happy to drop the patch.

The OED (Oxford English dictionary) seems to be at odds
with most other online dictionaries with respect to the
word illegal. I find the following 'illegal' entry
(at http://www.askoxford.com) daft:
"USAGE Both illegal and unlawful can mean 'contrary to
or forbidden by law', but unlawful has a broader meaning
'not permitted by rules': thus handball in soccer is
unlawful, but not illegal."

So if we followed the OED's advice then SCSI's "illegal
request" would become "unlawful request". I'm yet to
see the word "unlawful" in any technical standard ...

Doug Gilbert


2008-02-10 23:47:34

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.

On Sat, Feb 09, 2008 at 01:50:20PM +0000, Alan Cox wrote:
> On Fri, 08 Feb 2008 20:32:54 -0500 Douglas Gilbert <[email protected]> wrote:
> > Alan Cox wrote:
> > > The word "illegal" has a precise dictionary meaning of "prohibited by
> > > law".
> >
> > Also "contrary to or forbidden by official rules, regulations, etc".
>
> The OED I have here doesn't seem to think so, however if the words are
> the ones used in the T10 documentation then I'm happy to drop the patch.

Not everyone believes in the OED's definitions. I prefer Chambers (in
general), which has the (online) definition:

illegal adj
1 against the law; not legal. Also called unlawful.
2 not authorized by law or by specific rules which apply.
ETYMOLOGY: 17c: from Latin illegalis.

I believe the second definition would apply here.

--
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."

2008-02-11 16:08:17

by linux-os (Dick Johnson)

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.


On Fri, 8 Feb 2008, Mark Hounschell wrote:

> linux-os (Dick Johnson) wrote:
>>
>> The correct word should be "invalid," in spite of
>> the fact that the SCSI committee used invalid syntax.
>>
>> Alan is right. There is nothing illegal in the kernel
>> and if there is, it must be removed as soon as it
>> is discovered!
>>
>
> il?le?gal (-lgl)
> adj.
> 1. Prohibited by law.
> *2. Prohibited by official rules: an illegal pass in football.
> *3. Unacceptable to or not performable by a computer: an illegal operation.
>
> Mark

Many early computer programmers including myself, while writing
error messages in early software, did not understand that computer
programmers do not make law so we called bad operations "illegal."

Once you are called to testify in a court of law, about some
message your code wrote to the screen just before a factory
burned down, you start to be much more careful about the syntax.

I advise that, regardless of the rewrite of dictionaries and,
in fact, the rewrite of history, whenever possible we use
the correct message syntax. Dictionaries pick up "common usage"
in spite of the fact that it is wrong. See "irregardless" and
other abortions which now exist in the dictionary.


Cheers,
Dick Johnson
Penguin : Linux version 2.6.22.1 on an i686 machine (5588.28 BogoMips).
My book : http://www.AbominableFirebug.com/
_

****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to [email protected] - and destroy all copies of this information, including any attachments, without reading or disclosing them.

Thank you.

2008-02-11 17:14:22

by Benny Halevy

[permalink] [raw]
Subject: Re: [PATCH] scsi_error: Fix language abuse.

Seriously, can't you just add a disclaimer to the README file?

In http://lkml.org/lkml/2008/2/9/29, Luben Tuikov made an interesting
point that in many cases "illegal" refers to a valid value that violates
the specification, so the term "invalid" may be technically incorrect.

Benny

On Feb. 11, 2008, 18:07 +0200, "linux-os (Dick Johnson)" <[email protected]> wrote:
> On Fri, 8 Feb 2008, Mark Hounschell wrote:
>
>> linux-os (Dick Johnson) wrote:
>>> The correct word should be "invalid," in spite of
>>> the fact that the SCSI committee used invalid syntax.
>>>
>>> Alan is right. There is nothing illegal in the kernel
>>> and if there is, it must be removed as soon as it
>>> is discovered!
>>>
>> il?le?gal (-lgl)
>> adj.
>> 1. Prohibited by law.
>> *2. Prohibited by official rules: an illegal pass in football.
>> *3. Unacceptable to or not performable by a computer: an illegal operation.
>>
>> Mark
>
> Many early computer programmers including myself, while writing
> error messages in early software, did not understand that computer
> programmers do not make law so we called bad operations "illegal."
>
> Once you are called to testify in a court of law, about some
> message your code wrote to the screen just before a factory
> burned down, you start to be much more careful about the syntax.
>
> I advise that, regardless of the rewrite of dictionaries and,
> in fact, the rewrite of history, whenever possible we use
> the correct message syntax. Dictionaries pick up "common usage"
> in spite of the fact that it is wrong. See "irregardless" and
> other abortions which now exist in the dictionary.
>
>
> Cheers,
> Dick Johnson
> Penguin : Linux version 2.6.22.1 on an i686 machine (5588.28 BogoMips).
> My book : http://www.AbominableFirebug.com/
> _
>
> ****************************************************************
> The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to [email protected] - and destroy all copies of this information, including any attachments, without reading or disclosing them.
>
> Thank you.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html