[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1341344200.2413.4.camel@nayuki.kepstin.ca>
Date: Tue, 03 Jul 2012 15:36:40 -0400
From: Calvin Walton <calvin.walton@...stin.ca>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Andi Kleen <andi@...stfloor.org>, Jiri Kosina <jkosina@...e.cz>,
linux-kernel@...r.kernel.org, shemminger@...tta.com
Subject: Re: long boot delays caused by 070ad7e7 floppy change
On Tue, 2012-07-03 at 12:12 -0700, Linus Torvalds wrote:
> What happens if you add a
>
> cancel_delayed_work(&fd_timeout);
>
> to before the queue_delayed_work() in __reschedule_timeout()? Does
> that possibly make the delay really be 3 seconds?
Yes, it does...
[ 0.718571] floppy0: reschedule timeout lock fdc
[ 1.650956] Refined TSC clocksource calibration: 2698.760 MHz.
[ 1.651109] Switching to clocksource tsc
[ 3.724664] floppy0: reschedule timeout do wakeup
[ 3.724815] floppy0: no floppy controllers found
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index cce7df3..c8064e4 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -678,6 +678,8 @@ static void __reschedule_timeout(int drive, const char *message)
} else
delay = UDP->timeout;
+ cancel_delayed_work(&fd_timeout);
+
queue_delayed_work(floppy_wq, &fd_timeout, delay);
if (UDP->flags & FD_DEBUG)
DPRINT("reschedule timeout %s\n", message);
Of course, a 3 second delay at this point in boot is still a fairly big
bit of waiting, given how fast everything else is nowadays.
--
Calvin Walton <calvin.walton@...stin.ca>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists