On Friday, November 19, 2010 4:09:28 pm Jung-uk Kim wrote: > On Friday 19 November 2010 02:43 pm, Attilio Rao wrote: > > Author: attilio > > Date: Fri Nov 19 19:43:56 2010 > > New Revision: 215544 > > URL: http://svn.freebsd.org/changeset/base/215544 > > > > Log: > > Scan the list in reverse order for the shutdown handlers of > > loaded modules. This way, when there is a dependency between two > > modules, the handler of the latter probed runs first. > > > > This is a similar approach as the modules are unloaded in the > > same linkerfile. > > > > Sponsored by: Sandvine Incorporated > > Submitted by: Nima Misaghian <nmisaghian at sandvine dot com> > > MFC after: 1 week > > Hmm... It is not directly related but I was thinking about doing > similar things for sys/kern/subr_bus.c. What do you think about the > attached patch?
Hmm, the patches for suspend and resume that I had for this took the opposite order, they did suspend in forward order, but resume in backwards order. Like so: --- //depot/vendor/freebsd/src/sys/kern/subr_bus.c 2010-11-17 22:30:24.000000000 0000 +++ //depot/user/jhb/acpipci/kern/subr_bus.c 2010-11-19 17:19:02.000000000 00 @@ -3426,9 +3429,9 @@ TAILQ_FOREACH(child, &dev->children, link) { error = DEVICE_SUSPEND(child); if (error) { - for (child2 = TAILQ_FIRST(&dev->children); - child2 && child2 != child; - child2 = TAILQ_NEXT(child2, link)) + for (child2 = TAILQ_PREV(child, device_list, link); + child2 != NULL; + child2 = TAILQ_PREV(child2, device_list, link)) DEVICE_RESUME(child2); return (error); } @@ -3447,7 +3450,7 @@ { device_t child; - TAILQ_FOREACH(child, &dev->children, link) { + TAILQ_FOREACH_REVERSE(child, &dev->children, device_list, link) { DEVICE_RESUME(child); /* if resume fails, there's nothing we can usefully do... */ } (Likely mangled whitespace.) I couldn't convince myself which order was "more" correct for suspend and resume. -- John Baldwin _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"