From 380c3877ae5de888cfb7a59990b9aee5a415295f Mon Sep 17 00:00:00 2001 From: Adrian Bunk Date: Mon, 2 May 2005 01:47:10 +0200 Subject: [SCSI] drivers/scsi/sym53c416.c: fix a wrong check The Coverity checker found that this for loop was wrong. This patch changes it to what seems to be intended. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley --- drivers/scsi/sym53c416.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/scsi/sym53c416.c') diff --git a/drivers/scsi/sym53c416.c b/drivers/scsi/sym53c416.c index f26c3a29e631..ebfddd40ce67 100644 --- a/drivers/scsi/sym53c416.c +++ b/drivers/scsi/sym53c416.c @@ -809,7 +809,7 @@ static int sym53c416_host_reset(Scsi_Cmnd *SCpnt) /* printk("sym53c416_reset\n"); */ base = SCpnt->device->host->io_port; /* search scsi_id - fixme, we shouldnt need to iterate for this! */ - for(i = 0; i < host_index && scsi_id != -1; i++) + for(i = 0; i < host_index && scsi_id == -1; i++) if(hosts[i].base == base) scsi_id = hosts[i].scsi_id; outb(RESET_CHIP, base + COMMAND_REG); -- cgit v1.2.2 From 3471c288036bf0835a82d0b1bbce2002f6e68390 Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Sat, 28 May 2005 07:52:51 -0400 Subject: [SCSI] Remove no-op implementations of SCSI EH hooks Drivers need not implement a hook that returns FAILED, and does nothing else, since the SCSI midlayer code will do that for us. Signed-off-by: James Bottomley --- drivers/scsi/sym53c416.c | 18 ------------------ 1 file changed, 18 deletions(-) (limited to 'drivers/scsi/sym53c416.c') diff --git a/drivers/scsi/sym53c416.c b/drivers/scsi/sym53c416.c index ebfddd40ce67..ca9a04cf4d3f 100644 --- a/drivers/scsi/sym53c416.c +++ b/drivers/scsi/sym53c416.c @@ -785,21 +785,6 @@ int sym53c416_queuecommand(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) return 0; } -static int sym53c416_abort(Scsi_Cmnd *SCpnt) -{ - return FAILED; -} - -static int sym53c416_bus_reset(Scsi_Cmnd *SCpnt) -{ - return FAILED; -} - -static int sym53c416_device_reset(Scsi_Cmnd *SCpnt) -{ - return FAILED; -} - static int sym53c416_host_reset(Scsi_Cmnd *SCpnt) { int base; @@ -865,10 +850,7 @@ static Scsi_Host_Template driver_template = { .detect = sym53c416_detect, .info = sym53c416_info, .queuecommand = sym53c416_queuecommand, - .eh_abort_handler = sym53c416_abort, .eh_host_reset_handler =sym53c416_host_reset, - .eh_bus_reset_handler = sym53c416_bus_reset, - .eh_device_reset_handler =sym53c416_device_reset, .release = sym53c416_release, .bios_param = sym53c416_bios_param, .can_queue = 1, -- cgit v1.2.2 From df0ae2497ddefd72a87f3a3b34ff32455d7d4ae0 Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Sat, 28 May 2005 07:57:14 -0400 Subject: [SCSI] allow sleeping in ->eh_host_reset_handler() Signed-off-by: James Bottomley --- drivers/scsi/sym53c416.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'drivers/scsi/sym53c416.c') diff --git a/drivers/scsi/sym53c416.c b/drivers/scsi/sym53c416.c index ca9a04cf4d3f..ef19adc67eff 100644 --- a/drivers/scsi/sym53c416.c +++ b/drivers/scsi/sym53c416.c @@ -790,6 +790,9 @@ static int sym53c416_host_reset(Scsi_Cmnd *SCpnt) int base; int scsi_id = -1; int i; + unsigned long flags; + + spin_lock_irqsave(&sym53c416_lock, flags); /* printk("sym53c416_reset\n"); */ base = SCpnt->device->host->io_port; @@ -801,6 +804,8 @@ static int sym53c416_host_reset(Scsi_Cmnd *SCpnt) outb(NOOP | PIO_MODE, base + COMMAND_REG); outb(RESET_SCSI_BUS, base + COMMAND_REG); sym53c416_init(base, scsi_id); + + spin_unlock_irqrestore(&sym53c416_lock, flags); return SUCCESS; } -- cgit v1.2.2