Re: 2.6.1-rc1: SCSI: `TIMEOUT' redefined

From: Andrew Morton
Date: Tue Jan 06 2004 - 17:41:26 EST


Adrian Bunk <bunk@xxxxxxxxx> wrote:
>
> On Wed, Dec 31, 2003 at 12:36:49AM -0800, Linus Torvalds wrote:
> >...
> > Summary of changes from v2.6.0 to v2.6.1-rc1
> > ============================================
> >...
> > Patrick Mansfield:
> > o consolidate and log scsi command on send and completion
> >...
>
> This adds a #define TIMEOUT to scsi.h conflicting with a different
> TIMEOUT #define in drivers/scsi/eata_generic.h:

eww, bad idea. I count more than twenty #defines of TIMEOUT in the kernel
tree.

We should change scsi.h - "TIMEOUT" is waaay too collision-prone.

In fact, a lot of those identifiers are quite poorly chosen:

#define NEEDS_RETRY 0x2001
#define SUCCESS 0x2002
#define FAILED 0x2003
#define QUEUED 0x2004
#define SOFT_ERROR 0x2005
#define ADD_TO_MLQUEUE 0x2006
#define TIMEOUT 0x2007

That's just asking for it.

This untested patch purports to fix just the TIMEOUT thing:

(hmm, SD_TIMEOUT is already taken, too).


diff -puN drivers/scsi/scsi.c~scsi-rename-TIMEOUT drivers/scsi/scsi.c
--- 25/drivers/scsi/scsi.c~scsi-rename-TIMEOUT Tue Jan 6 14:37:24 2004
+++ 25-akpm/drivers/scsi/scsi.c Tue Jan 6 14:37:35 2004
@@ -441,7 +441,7 @@ void scsi_log_completion(struct scsi_cmn
case FAILED:
printk("FAILED ");
break;
- case TIMEOUT:
+ case SD_CMD_TIMEOUT:
/*
* If called via scsi_times_out.
*/
diff -puN drivers/scsi/scsi_error.c~scsi-rename-TIMEOUT drivers/scsi/scsi_error.c
--- 25/drivers/scsi/scsi_error.c~scsi-rename-TIMEOUT Tue Jan 6 14:37:24 2004
+++ 25-akpm/drivers/scsi/scsi_error.c Tue Jan 6 14:37:45 2004
@@ -164,7 +164,7 @@ int scsi_delete_timer(struct scsi_cmnd *
**/
void scsi_times_out(struct scsi_cmnd *scmd)
{
- scsi_log_completion(scmd, TIMEOUT);
+ scsi_log_completion(scmd, SD_CMD_TIMEOUT);
if (unlikely(!scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD))) {
panic("Error handler thread not present at %p %p %s %d",
scmd, scmd->device->host, __FILE__, __LINE__);
diff -puN include/scsi/scsi.h~scsi-rename-TIMEOUT include/scsi/scsi.h
--- 25/include/scsi/scsi.h~scsi-rename-TIMEOUT Tue Jan 6 14:37:24 2004
+++ 25-akpm/include/scsi/scsi.h Tue Jan 6 14:37:54 2004
@@ -302,7 +302,7 @@ struct scsi_lun {
#define QUEUED 0x2004
#define SOFT_ERROR 0x2005
#define ADD_TO_MLQUEUE 0x2006
-#define TIMEOUT 0x2007
+#define SD_CMD_TIMEOUT 0x2007

/*
* Midlevel queue return values.

_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/