Messages in this thread |  | | | Date | Thu, 08 Jan 2009 13:22:58 -0800 | | From | "Justin P. Mattock" <> | | Subject | Re: [fix] Too async libata breakage |
| |
Arjan van de Ven wrote: >>> Additional async_synchronize_full() helps and box boot to the end. >>> > > Hi Linus, > > can you add the patch below to your tree? This makes the > async_synchronize_full() a real absolute async barrier, rather than > just synchronizing the work scheduled upto the starting point. > It's a bit too much for some cases (so later on I might introduce the > softer synchronization again) but it solves some real problems > for people so this should go into -rc1 please... > > >From ca1827b142e41b54c612026b3c0b5d239f21a715 Mon Sep 17 00:00:00 2001 > From: Arjan van de Ven <arjan@linux.intel.com> > Date: Thu, 8 Jan 2009 12:35:11 -0800 > Subject: [PATCH] async: make async_synchronize_full() more serializing > > turns out that there are real problems with allowing async > tasks that are scheduled from async tasks to run after > the async_synchronize_full() returns. > > This patch makes the _full more strict and a complete > synchronization. Later I might need to add back a lighter > form of synchronization for other uses.. but not right now. > > Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> > --- > kernel/async.c | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/kernel/async.c b/kernel/async.c > index 9737338..64cc916 100644 > --- a/kernel/async.c > +++ b/kernel/async.c > @@ -206,7 +206,9 @@ EXPORT_SYMBOL_GPL(async_schedule_special); > > void async_synchronize_full(void) > { > - async_synchronize_cookie(next_cookie); > + do { > + async_synchronize_cookie(next_cookie); > + } while (!list_empty(&async_running) || !list_empty(&async_pending)); > } > EXPORT_SYMBOL_GPL(async_synchronize_full); > > I'm getting this as well, happens three to two times in a row, then I'll get a good bootup. going to try and see if I can grab a log with ohci1394
regards;
Justin P. Mattock
|  |