OSDN Git Service

[PATCH] sata_nv: add hotplug support
authorTejun Heo <htejun@gmail.com>
Sat, 17 Jun 2006 06:49:56 +0000 (15:49 +0900)
committerJeff Garzik <jeff@garzik.org>
Tue, 20 Jun 2006 08:59:22 +0000 (04:59 -0400)
Add hotplug support.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/scsi/sata_nv.c

index 2a1bd85..19deaa4 100644 (file)
@@ -69,7 +69,8 @@ enum {
        NV_INT_PORT_SHIFT               = 4,    /* each port occupies 4 bits */
 
        NV_INT_ALL                      = 0x0f,
-       NV_INT_MASK                     = NV_INT_DEV,
+       NV_INT_MASK                     = NV_INT_DEV |
+                                         NV_INT_ADDED | NV_INT_REMOVED,
 
        /* INT_CONFIG */
        NV_INT_CONFIG                   = 0x12,
@@ -324,6 +325,12 @@ static int nv_host_intr(struct ata_port *ap, u8 irq_stat)
        struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag);
        int handled;
 
+       /* freeze if hotplugged */
+       if (unlikely(irq_stat & (NV_INT_ADDED | NV_INT_REMOVED))) {
+               ata_port_freeze(ap);
+               return 1;
+       }
+
        /* bail out if not our interrupt */
        if (!(irq_stat & NV_INT_DEV))
                return 0;