From 65f1f91eeb87d7efb6954f265dc362504149a15a Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Sat, 17 Jun 2006 15:49:56 +0900 Subject: [PATCH] --- yaml --- r: 29530 b: refs/heads/master c: 5a44efff4f8fe8139c0c4166ad5aae5f2fa5bced h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/sata_nv.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index a7d2b0611f18..f67cdf583cb4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 39f8758259868a01ecad29b4379661dd3f21881f +refs/heads/master: 5a44efff4f8fe8139c0c4166ad5aae5f2fa5bced diff --git a/trunk/drivers/scsi/sata_nv.c b/trunk/drivers/scsi/sata_nv.c index 2a1bd85404e0..19deaa42fbf0 100644 --- a/trunk/drivers/scsi/sata_nv.c +++ b/trunk/drivers/scsi/sata_nv.c @@ -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;