libata: clear saved xfer_mode and ncq_enabled on device detach
PATCH 1/1 libata: clear saved xfer_mode and ncq_enabled on device detach
libata EH saves xfer_mode and ncq_enabled at start to later set DUBIOUS_XFER flag if it has changed. These values need to be cleared on device detach such that hot device swap doesn't accidentally miss DUBIOUS_XFER.
Signed-off-by Tejun Heo <[email protected]>
--- drivers/ata/libata-eh.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/ata/libata-eh.c +4 -1
@@ -1161,6 +1161,7 @@ void ata_eh_detach_dev(struct ata_device {struct ata_link *link = dev->link;struct ata_port *ap = link->ap; +struct ata_eh_context *ehc = &link->eh_context;unsigned long flags;ata_dev_disable (dev);
@@ -1174,9 +1175,11 @@ void ata_eh_detach_dev(struct ata_device ap->pflags |=ATA_PFLAG_SCSI_HOTPLUG ; } -/* clear per-dev EH actions */ +/* clear per-dev EH info */ ata_eh_clear_action (link, dev, &link->eh_info,ATA_EH_PERDEV_MASK );ata_eh_clear_action (link, dev, &link->eh_context.i,ATA_EH_PERDEV_MASK ); + ehc->saved_xfer_mode[dev->devno] =0 ; + ehc->saved_ncq_enabled &= ~(1 << dev->devno);spin_unlock_irqrestore (ap->lock, flags); }
Jeff Garzik
AppliedQuoted 9 lines · Tejun Heo
libata EH saves
xfer_modeandncq_enabledat start to later setDUBIOUS_XFERflag if it has changed. These values need to be cleared on device detach such that hot device swap doesn't accidentally missDUBIOUS_XFER.Signed-off-by Tejun Heo <[email protected]>--- drivers/ata/libata-eh.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
applied