From: "rain.wang" <rain.wang@mic.com.tw>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: Andre Hedrick <andre@linux-ide.org>
Subject: PATCH:ide_do_reset() fix for 2.5.66
Date: Thu, 03 Apr 2003 15:00:32 +0800 [thread overview]
Message-ID: <3E8BDC10.D0195D71@mic.com.tw> (raw)
In-Reply-To: 1048527607.25655.18.camel@irongate.swansea.linux.org.uk
[-- Attachment #1: Type: text/plain, Size: 141 bytes --]
Hi Alan,
I found just changing ide_do_reset() to wait till completion can
handle the handler race. can this be enough?
regards
rain.w
[-- Attachment #2: ide-iops.c.diff --]
[-- Type: text/plain, Size: 1071 bytes --]
--- /usr/src/linux/drivers/ide/ide-iops.c Thu Apr 3 14:13:51 2003
+++ ide-iops.c Thu Apr 3 14:29:47 2003
@@ -1107,6 +1107,10 @@
}
/* done polling */
hwgroup->poll_timeout = 0;
+
+ /* tell ide_do_reset it complete */
+ complete((struct completion *)hwif->hwif_data);
+
return ide_stopped;
}
@@ -1171,6 +1175,10 @@
}
}
hwgroup->poll_timeout = 0; /* done polling */
+
+ /* tell ide_do_reset it complete */
+ complete((struct completion *)hwif->hwif_data);
+
return ide_stopped;
}
@@ -1307,7 +1315,27 @@
ide_startstop_t ide_do_reset (ide_drive_t *drive)
{
- return do_reset1(drive, 0);
+ /*
+ * Waiting for completion needed.
+ */
+ unsigned long flags;
+ ide_hwif_t *hwif;
+ void *old_data;
+ DECLARE_COMPLETION(wait);
+
+ spin_lock_irqsave(&ide_lock, flags);
+ hwif = HWIF(drive);
+
+ old_data = hwif->hwif_data;
+ hwif->hwif_data = &wait;
+
+ (void) do_reset1(drive, 0);
+
+ wait_for_completion(&wait);
+
+ hwif->hwif_data = old_data;
+ spin_unlock_irqrestore(&ide_lock, flags);
+ return ide_stopped;
}
EXPORT_SYMBOL(ide_do_reset);
[-- Attachment #3: ide.c.diff --]
[-- Type: text/plain, Size: 357 bytes --]
--- /usr/src/linux/drivers/ide/ide.c Tue Apr 1 17:26:45 2003
+++ ide.c Thu Apr 3 14:31:38 2003
@@ -1586,8 +1586,6 @@
spin_lock_irqsave(&ide_lock, flags);
DRIVER(drive)->abort(drive, "drive reset");
- if(HWGROUP(drive)->handler)
- BUG();
/* Ensure nothing gets queued after we
drop the lock. Reset will clear the busy */
next prev parent reply other threads:[~2003-04-03 6:49 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-22 14:03 2.5.65-ac2 -- hda/ide trouble on ICH4 Dominik Brodowski
2003-03-22 16:35 ` Alan Cox
2003-03-22 16:25 ` Dominik Brodowski
2003-03-22 17:42 ` Alan Cox
2003-03-22 16:39 ` Jan Dittmer
2003-03-23 1:03 ` Dominik Brodowski
2003-03-23 15:47 ` Alan Cox
2003-03-23 14:59 ` Dominik Brodowski
2003-03-23 18:41 ` Alan Cox
2003-03-23 18:15 ` Dominik Brodowski
2003-03-23 18:25 ` ide: indeed, using list_for_each_entry_safe removes endless looping / hang [Was: Re: 2.5.65-ac2 -- hda/ide trouble on ICH4] Dominik Brodowski
2003-03-23 22:16 ` Jan Dittmer
2003-03-24 11:08 ` PROBLEM: linux-2.5.65-ac3 does not boot whith IDE-drivers Norbert Wolff
2003-03-24 13:54 ` Alan Cox
2003-03-24 9:55 ` ide: indeed, using list_for_each_entry_safe removes endless looping / hang [Was: Re: 2.5.65-ac2 -- hda/ide trouble on ICH4] Alexander Atanasov
2003-03-24 13:59 ` Alan Cox
2003-03-24 16:01 ` Alexander Atanasov
2003-03-24 17:40 ` Alan Cox
2003-03-24 17:24 ` Alexander Atanasov
2003-03-25 4:16 ` Andre Hedrick
2003-03-25 13:59 ` Alan Cox
2003-03-25 20:05 ` Bartlomiej Zolnierkiewicz
2003-03-25 20:24 ` Bartlomiej Zolnierkiewicz
2003-04-03 7:00 ` rain.wang [this message]
2003-04-03 7:16 ` PATCH:ide_do_reset() fix for 2.5.66 Jens Axboe
2003-04-03 8:36 ` PATCH RFC :ide_do_reset() " rain.wang
2003-04-10 3:37 ` [rfc][patch]: fix handler race in HDIO_DRIVE_RESET path for 2.5.67-ac1 rain.wang
2003-03-22 22:03 ` [PATCH] Re: 2.5.65-ac2 -- hda/ide trouble on ICH4 Bartlomiej Zolnierkiewicz
2003-03-22 23:27 ` Alan Cox
2003-03-22 22:33 ` Bartlomiej Zolnierkiewicz
2003-03-23 9:11 ` Dominik Brodowski
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=3E8BDC10.D0195D71@mic.com.tw \
--to=rain.wang@mic.com.tw \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andre@linux-ide.org \
--cc=linux-kernel@vger.kernel.org \
/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.