One option is to remove the functionality of making netgraph load kernel modules.. I think this is outside the scope of netgraph really.... Gleb Smirnoff wrote: >On Mon, Aug 30, 2004 at 10:35:05AM -0400, Robert Watson wrote: >R> > B> > This causes Giant to be acquired in the event we enter the linker code >R> > B> > (and hence VFS code) via netgraph ngc_send(). It should be safe in this >R> > B> > context as we enter protocol send routines without mutexes held (i.e., why >R> > B> > we're also able to do blocking memory allocation here.) >R> > B> >R> > B> please commit. >R> > >R> > I think Giant should be acquired in linker_load_module(), and this way >R> > we will prevent this panic in other codepaths. For example in >R> > vfs_mount.c, when vfs will be Giant-free. Have I missed something? >R> >R> Well, one of the primary reasons the linker needs Giant here is its use of >R> VFS. I think for now I'd like to acquire Giant in netgraph so as to >R> expose the use of Giant in that piece of the network stack in the calling >R> code. We might want to add GIANT_REQUIRED assertions in the linker code >R> to make sure we trigger assertions even if the linker doesn't hit VFS to >R> make sure potentially hitting Giant is caught. > >OK. Then commit it pls. > > >Received on Mon Aug 30 2004 - 16:21:48 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:09 UTC