On Mon, 30 Aug 2004, Gleb Smirnoff wrote: > B> > This causes Giant to be acquired in the event we enter the linker code > B> > (and hence VFS code) via netgraph ngc_send(). It should be safe in this > B> > context as we enter protocol send routines without mutexes held (i.e., why > B> > we're also able to do blocking memory allocation here.) > B> > B> please commit. > > I think Giant should be acquired in linker_load_module(), and this way > we will prevent this panic in other codepaths. For example in > vfs_mount.c, when vfs will be Giant-free. Have I missed something? Well, one of the primary reasons the linker needs Giant here is its use of VFS. I think for now I'd like to acquire Giant in netgraph so as to expose the use of Giant in that piece of the network stack in the calling code. We might want to add GIANT_REQUIRED assertions in the linker code to make sure we trigger assertions even if the linker doesn't hit VFS to make sure potentially hitting Giant is caught. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert_at_fledge.watson.org Principal Research Scientist, McAfee ResearchReceived on Mon Aug 30 2004 - 12:37:36 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:09 UTC