Re: 3C905b partial lockup in 2.4.5-pre5 and up to 2.4.6-pre1

Jeff Garzik
2001-06-11T16:05:35Z

Andrew Morton wrote:
>
> Jeff Garzik wrote:
> >
> > "David S. Miller" wrote:
> > >
> > > Andrew Morton writes:
> > > > It'd need to be callable from interrupt context - otherwise
> > > > each device/driver which has link status change interrupts
> > > > will need to implement some form of interrupt->process context
> > > > trick.
> > >
> > > Well, we could make the netif_carrier_*() implementation do the
> > > "interrupt->process context" trick.
> > >
> > > Jamal can feel free to post what he has.
> >
> > If we have any problems with context we can always use schedule_task()
>
> Yep. With dev_hold() and dev_put() to avoid module removal
> races. One would also have to be sure that the right things
> happen if the interface is downed between the interrupt and
> execution of the schedule_task() callback.

Why not call MOD_INC_USE_COUNT and MOD_DEC_USE_COUNT? It makes it much
more obvious you are closing a race related to modules, and it goes away
when the module is built into the kernel.

(as a tangent, I have run into cases where it would be nice to always
have a module ref count, whether or not you were built into the kernel.
this would be ok with me...)

--
Jeff Garzik | Andre the Giant has a posse.
Building 1024 |
MandrakeSoft |