Re: Kernel Locks During Device Probe on 7.0 Current

From: Dave Frantz <imperial_courier_at_yahoo.com>
Date: Fri, 14 Sep 2007 00:24:35 -0700 (PDT)
Okay, I just finished rebuilding the GENERIC kernel
with this patch. All Firewire devices are still
compiled out of the kernel at this point.

When I boot with ACPI on, I get:

subsystem 9000000
   tcov_init(0)... done.
subsystem a000000
   synch_setup(0)... done.
subsystem a800000
   run_interrupt_driven_config_hooks(0)... Calling
0xc09bf490 ... rr232x: no controller detected.
done.
Calling 0xc04695d0 ... done.
Calling 0xc04f29d0 ... acpi_acad0: acline
initialization start
acpi_acad0: On Line
acpi_acad0: acline initialization done, tried 1 times
battery0: battery initialization start
battery0: battery initialization done, tried 1 times

and hangs. If I boot with ACPI off, I get:

subsystem 9000000
   tcov_init(0)... done.
subsystem a000000
   synch_setup(0)... done.
subsystem a800000
   run_interrupt_driven_config_hooks(0)... Calling
0xc09bf490 ... rr232x: no controller detected.
done.
Calling 0xc04695d0 ... done.
Calling 0xc04f29d0 ... 

and it stops.

--- Kip Macy <kip.macy_at_gmail.com> wrote:

> On 9/13/07, Dave Frantz <imperial_courier_at_yahoo.com>
> wrote:
> > I just finished searching the files in
> /usr/src/sys
> > for run_interrupt_driven_config_hooks. The only
> > references I get for this are in
> kern/subr_autoconf.c.
> >
> > Unfortunately, my C-fu is a little weak. I've
> > reproduced the run_interrupt_driven_config_hooks
> > function below. Any ideas on where I should put
> the
> > printf? Is this the right function?
> 
> see inline
> 
> >
> > /* ARGSUSED */
> > static void run_interrupt_driven_config_hooks(void
> > *dummy);
> >
> > static void
> > run_interrupt_driven_config_hooks(dummy)
> >         void *dummy;
> > {
> >         struct intr_config_hook *hook_entry,
> *next_entry;
> >
> >         mtx_lock(&intr_config_hook_lock);
> >         TAILQ_FOREACH_SAFE(hook_entry,
> > &intr_config_hook_list, ich_links,
> >             next_entry) {
> >                 next_entry =
> TAILQ_NEXT(hook_entry, ich_links);
> 
> 
>                    printf("calling %p ... ",
> hook_entry->ich_func);
> 
> 
> >                
> mtx_unlock(&intr_config_hook_lock);
> >                
> (*hook_entry->ich_func)(hook_entry->ich_arg);
> >                 mtx_lock(&intr_config_hook_lock);
> 
>                     printf("done\n");
> 
> 
> >         }
> >
> >         while
> (!TAILQ_EMPTY(&intr_config_hook_list)) {
> >                 msleep(&intr_config_hook_list,
> > &intr_config_hook_lock, PCONFIG,
> >                     "conifhk", 0);
> >         }
> >         mtx_unlock(&intr_config_hook_lock);
> > }
> > SYSINIT(intr_config_hooks,
> SI_SUB_INT_CONFIG_HOOKS,
> > SI_ORDER_FIRST,
> >         run_interrupt_driven_config_hooks, NULL)
> >
> > --- Kip Macy <kip.macy_at_gmail.com> wrote:
> >
> > > >    run_interrupt_driven_config_hooks(0)...
> rr232x:
> > > no
> > > > controllers detected.
> > >
> > > put a printf in
> run_interrupt_driven_config_hooks
> > > printing out the
> > > addresses of the functions,
> > > with something like:
> > > printf("calling %p ...", fun);
> > > (*fun)();
> > > printf("done\n");
> > >
> > > The most likely scenario is one of the drivers
> > > taking you off into the weeds.
> > >
> > >  -Kip
> > >
> > >
> > >
> > > >
> > > > and then it hangs.
> > > >
> > > > I don't think Firewire is causing this,
> > > unfortunately.
> > > > At least not directly.
> > > >
> > > > Thank you very much for your help, by the way.
> > > >
<snip>


       
____________________________________________________________________________________
Got a little couch potato? 
Check out fun summer activities for kids.
http://search.yahoo.com/search?fr=oni_on_mail&p=summer+activities+for+kids&cs=bz 
Received on Fri Sep 14 2007 - 05:24:36 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:17 UTC