NVMe: Fix warning in free_irq
Matthew Wilcox [Sun, 27 Mar 2011 12:52:06 +0000 (08:52 -0400)]
We need to clear the affinity mask before calling free_irq()

Reported-by: Shane Michael Matthews <shane.matthews@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>

drivers/block/nvme.c

index 014a7f6..bcc780a 100644 (file)
@@ -781,8 +781,10 @@ static int adapter_delete_sq(struct nvme_dev *dev, u16 sqid)
 static void nvme_free_queue(struct nvme_dev *dev, int qid)
 {
        struct nvme_queue *nvmeq = dev->queues[qid];
+       int vector = dev->entry[nvmeq->cq_vector].vector;
 
-       free_irq(dev->entry[nvmeq->cq_vector].vector, nvmeq);
+       irq_set_affinity_hint(vector, NULL);
+       free_irq(vector, nvmeq);
 
        /* Don't tell the adapter to delete the admin queue */
        if (qid) {