From f7b742cb42d96e106a57879871837001ac29c2f0 Mon Sep 17 00:00:00 2001 From: Philip J Kelleher Date: Mon, 25 Feb 2013 13:09:40 -0600 Subject: [PATCH] --- yaml --- r: 361973 b: refs/heads/master c: 1ebfd109822ea35b71aee4efe9ddc2e1b9ac0ed7 h: refs/heads/master i: 361971: 845e7000a72ce8794e34f2d1a9b307d4adc0de28 v: v3 --- [refs] | 2 +- trunk/drivers/block/rsxx/core.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index c2fd2dbf8a6d..eeed3d7762f5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9bb3c4469e317919b0fde8c0e0a3ebe7bd2cf167 +refs/heads/master: 1ebfd109822ea35b71aee4efe9ddc2e1b9ac0ed7 diff --git a/trunk/drivers/block/rsxx/core.c b/trunk/drivers/block/rsxx/core.c index b82ee7baf0e8..cbbdff113f46 100644 --- a/trunk/drivers/block/rsxx/core.c +++ b/trunk/drivers/block/rsxx/core.c @@ -538,9 +538,6 @@ static void rsxx_pci_remove(struct pci_dev *dev) rsxx_disable_ier_and_isr(card, CR_INTR_EVENT); spin_unlock_irqrestore(&card->irq_lock, flags); - /* Prevent work_structs from re-queuing themselves. */ - card->halt = 1; - cancel_work_sync(&card->event_work); rsxx_destroy_dev(card); @@ -549,6 +546,10 @@ static void rsxx_pci_remove(struct pci_dev *dev) spin_lock_irqsave(&card->irq_lock, flags); rsxx_disable_ier_and_isr(card, CR_INTR_ALL); spin_unlock_irqrestore(&card->irq_lock, flags); + + /* Prevent work_structs from re-queuing themselves. */ + card->halt = 1; + free_irq(dev->irq, card); if (!force_legacy)