All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <bharrosh@panasas.com>
To: "Sven Köhler" <skoehler@upb.de>,
	"Christoph Hellwig" <hch@infradead.org>,
	"Jeff Garzik" <jeff@garzik.org>
Cc: linux-scsi <linux-scsi@vger.kernel.org>,
	James Bottomley <James.Bottomley@HansenPartnership.com>,
	linux-kernel@vger.kernel.org, Joerg Dorchain <joerg@dorchain.net>,
	Jon Chelton <jchelton@ffpglobal.com>,
	Stefan Priebe - allied internet ag <s.priebe@allied-internet.ag>
Subject: [BUGFIX 2/2] gdth: bugfix for the Timer at exit crash
Date: Tue, 12 Feb 2008 19:40:58 +0200	[thread overview]
Message-ID: <47B1DA2A.1060904@panasas.com> (raw)
In-Reply-To: <47B1D7A8.8010108@panasas.com>


gdth _exit would first remove all cards then stop the timer
and would not sync with the timer function. This caused a crash
in gdth_timer() when module was unloaded.

del_timer_sync the timer before we delete the cards.

NOT YET TESTED

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
---
 drivers/scsi/gdth.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index 8eb78be..103280e 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -3793,6 +3793,8 @@ static void gdth_timeout(ulong data)
     gdth_ha_str *ha;
     ulong flags;
 
+    BUG_ON(list_empty(&gdth_instances));
+
     ha = list_first_entry(&gdth_instances, gdth_ha_str, list);
     spin_lock_irqsave(&ha->smp_lock, flags);
 
@@ -5146,8 +5148,6 @@ static void gdth_remove_one(gdth_ha_str *ha)
 		ha->sdev = NULL;
 	}
 
-	gdth_flush(ha);
-
 	if (shp->irq)
 		free_irq(shp->irq,ha);
 
@@ -5245,14 +5245,15 @@ static void __exit gdth_exit(void)
 {
 	gdth_ha_str *ha;
 
-	list_for_each_entry(ha, &gdth_instances, list)
-		gdth_remove_one(ha);
+	unregister_chrdev(major,"gdth");
+	unregister_reboot_notifier(&gdth_notifier);
 
 #ifdef GDTH_STATISTICS
-	del_timer(&gdth_timer);
+	del_timer_sync(&gdth_timer);
 #endif
-	unregister_chrdev(major,"gdth");
-	unregister_reboot_notifier(&gdth_notifier);
+
+	list_for_each_entry(ha, &gdth_instances, list)
+		gdth_remove_one(ha);
 }
 
 module_init(gdth_init);
-- 
1.5.3.3



  parent reply	other threads:[~2008-02-12 17:42 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-30 19:47 [BUG?] GDTH driver not working after upgrade to 2.6.24 Sven Köhler
2008-01-31 10:08 ` Boaz Harrosh
2008-01-31 10:08   ` Boaz Harrosh
2008-01-31 11:07   ` Sven Köhler
2008-01-31 12:35     ` Boaz Harrosh
2008-01-31 12:35       ` Boaz Harrosh
2008-01-31 16:39       ` Jan Engelhardt
2008-01-31 16:52         ` Boaz Harrosh
2008-02-12 17:30   ` [BUGFIXES 0/2] gdth: fix 2.6.24 driver breakage Boaz Harrosh
2008-02-12 17:30     ` Boaz Harrosh
2008-02-12 17:35     ` [BUGFIX 1/2] gdth: scan for scsi devices Boaz Harrosh
2008-02-12 17:35       ` Boaz Harrosh
2008-02-12 18:05       ` Christoph Hellwig
2008-02-12 17:40     ` Boaz Harrosh [this message]
2008-02-13  7:06       ` [BUGFIX 2/2] gdth: bugfix for the Timer at exit crash Stefan Priebe - allied internet ag
2008-02-13  9:03         ` Boaz Harrosh
2008-02-13 19:38           ` Jan Engelhardt
2008-02-14 15:58             ` Boaz Harrosh
2008-02-13 10:48       ` Boaz Harrosh
2008-02-13 15:44       ` James Bottomley
2008-02-13 15:54         ` Boaz Harrosh
2008-02-13 16:33           ` Boaz Harrosh
2008-02-13 16:35             ` [PATCH ver2] gdth: bugfix for the at-exit problems Boaz Harrosh
2008-02-13 16:45             ` [BUGFIX 2/2] gdth: bugfix for the Timer at exit crash James Bottomley
2008-02-13 16:50               ` Boaz Harrosh
2008-02-13 17:03                 ` James Bottomley
2008-02-13 17:12                   ` Boaz Harrosh
2008-02-13 17:36                     ` James Bottomley
2008-02-14 10:49                       ` Boaz Harrosh
2008-02-14 11:58                         ` [PATCH] gdth: bugfix for the at-exit problems Boaz Harrosh
2008-02-14 16:10                           ` James Bottomley
2008-02-14 16:18                             ` Boaz Harrosh
2008-02-13 17:18                   ` [BUGFIX 2/2] gdth: bugfix for the Timer at exit crash Boaz Harrosh
2008-02-13 17:33                     ` James Bottomley
2008-02-14  6:51                   ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47B1DA2A.1060904@panasas.com \
    --to=bharrosh@panasas.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=hch@infradead.org \
    --cc=jchelton@ffpglobal.com \
    --cc=jeff@garzik.org \
    --cc=joerg@dorchain.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=s.priebe@allied-internet.ag \
    --cc=skoehler@upb.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.