From: Adrian Bunk <bunk@fs.tum.de>

Earlier patch wasn't correct especially in the !CONFIG_SCSI_IZIP_EPP16
case, reading all uses of this array (IMM_MODE_STRING is used to print the
corresponding string in printks).

If I'm not misunderstanding it, CONFIG_SCSI_IZIP_EPP16 means "use 16bit 
even when 32bit is requested".

It seems the right solution is

static char *IMM_MODE_STRING[] =
{
        [IMM_AUTODETECT] = "Autodetect",
        [IMM_NIBBLE]     = "SPP",
        [IMM_PS2]        = "PS/2",
        [IMM_EPP_8]      = "EPP 8 bit",
        [IMM_EPP_16]     = "EPP 16 bit",
#ifdef CONFIG_SCSI_IZIP_EPP16
        [IMM_EPP_32]     = "EPP 16 bit",
#else
        [IMM_EPP_32]     = "EPP 32 bit",
#endif
        [IMM_UNKNOWN]    = "Unknown",
};



 25-akpm/drivers/scsi/imm.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN drivers/scsi/imm.h~imm-fix-fix drivers/scsi/imm.h
--- 25/drivers/scsi/imm.h~imm-fix-fix	Thu Sep  4 11:07:13 2003
+++ 25-akpm/drivers/scsi/imm.h	Thu Sep  4 11:07:13 2003
@@ -100,8 +100,9 @@ static char *IMM_MODE_STRING[] =
 	[IMM_NIBBLE]	 = "SPP",
 	[IMM_PS2]	 = "PS/2",
 	[IMM_EPP_8]	 = "EPP 8 bit",
-#ifdef CONFIG_SCSI_IZIP_EPP16
 	[IMM_EPP_16]	 = "EPP 16 bit",
+#ifdef CONFIG_SCSI_IZIP_EPP16
+	[IMM_EPP_32]	 = "EPP 16 bit",
 #else
 	[IMM_EPP_32]	 = "EPP 32 bit",
 #endif

_