lk2.5.53 ide-scsi
PATCH 1/1 lk2.5.53 ide-scsi
Willem's main ide-scsi patch got into lk 2.5.53 but not
his rev1.patch (oops on reset). It is re-packaged as the ide-scsi_2553wr2.diff attachment. His patch to cleanly unregister sysfs entries didn't make it intodrivers/ide/ide.c so it is attached as well.
Doug Gilbert
drivers/scsi/ide-scsi.c2553wr2 renamed from drivers/scsi/ide-scsi.c +3 -1
@@ -289,6 +289,7 @@ pc->timeout = jiffies + WAIT_READY; /* NOTE! Save the failed packet command in "rq->buffer" */ rq->buffer = (void *) failed_command->special; + pc->scsi_cmd = ((idescsi_pc_t *) failed_command->special)->scsi_cmd; if (test_bit(IDESCSI_LOG_CMD, &scsi->log)) { printk ("ide-scsi: %s: queue cmd = ", drive->name); hexdump(pc->c, 6);
@@ -876,7 +877,8 @@ /* is cmd active? * need to lock so this stuff doesn't change under us */ spin_lock_irqsave(&ide_lock, flags); - if (scsi->pc && scsi->pc->scsi_cmd->serial_number == cmd->serial_number) { + if (scsi->pc && scsi->pc->scsi_cmd && + scsi->pc->scsi_cmd->serial_number == cmd->serial_number) { /* yep - let's give it some more time - * we can do that, we're in _our_ error kernel thread */ spin_unlock_irqrestore(&ide_lock, flags);
drivers/ide/ide.c2552willem renamed from drivers/ide/ide.c +2 -0
@@ -2314,6 +2314,8 @@ { ide_drive_t *drive; + driver_unregister(&driver->gen_driver); + spin_lock(&drivers_lock); list_del(&driver->drivers); spin_unlock(&drivers_lock);