--- linux/drivers/scsi/imm.c Sun Sep 30 14:26:07 2001 +++ linux-rb/drivers/scsi/imm.c Sun Dec 2 20:45:20 2001 @@ -137,7 +137,7 @@ if (!pb) { printk("imm: parport reports no devices.\n"); - spin_lock_irq(&io_request_lock); + spin_lock_irq(&hreg->host_lock); return 0; } retry_entry: @@ -163,7 +163,7 @@ "pardevice is owning the port for too longtime!\n", i); parport_unregister_device (imm_hosts[i].dev); - spin_lock_irq(&io_request_lock); + spin_lock_irq(&hreg->host_lock); return 0; } } @@ -219,13 +219,13 @@ } if (nhosts == 0) { if (try_again == 1) { - spin_lock_irq(&io_request_lock); + spin_lock_irq(&hreg->host_lock); return 0; } try_again = 1; goto retry_entry; } else { - spin_lock_irq (&io_request_lock); + spin_lock_irq (&hreg->host_lock); return 1; /* return number of hosts detected */ } } @@ -948,10 +948,10 @@ if (cmd->SCp.phase > 0) imm_pb_release(cmd->host->unique_id); - spin_lock_irqsave(&io_request_lock, flags); + spin_lock_irqsave(&cmd->host->host_lock, flags); tmp->cur_cmd = 0; cmd->scsi_done(cmd); - spin_unlock_irqrestore(&io_request_lock, flags); + spin_unlock_irqrestore(&cmd->host->host_lock, flags); return; }