From: Adrian Bunk 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 _