On Tue, Oct 11, 2005 at 03:07:49PM -0700, Brooks Davis wrote: > On Wed, Oct 12, 2005 at 10:06:02AM +1300, Andrew Thompson wrote: > > On Mon, Oct 10, 2005 at 01:29:00PM -0700, Brooks Davis wrote: > > > On Mon, Oct 10, 2005 at 03:22:08PM +1300, Andrew Thompson wrote: > > > > I have been testing this patch and I think it fixes all the problems > > > > discussed. > > > > > > > > > > I don't see any reason why you can't just replace the specific destroy > > > calls with calls to ifc_simple_destroy(). That would avoid expanding > > > the API. > > > > I have updated the patch and yes, its a nicer way to do it. Please > > review. > > > > Ive run through interations of create/kldunload with bridge, disc, > > faith, gif, gre and ppp with extra printf's and its freeing correctly. > > This looks good to me, thanks for working on this and doing the > <ifn>_destory removals. Let's see about getting this committed. > There was one problem where pflog0 would loop on EINVAL since it was a precloned device, livelocking the system. This addition fixes it, it was either this or a dying flag. void if_clone_detach(struct if_clone *ifc) { + struct ifc_simple_data *ifcs = ifc->ifc_data; IF_CLONERS_LOCK(); LIST_REMOVE(ifc, ifc_list); if_cloners_count--; IF_CLONERS_UNLOCK(); + /* Allow all to be destroyed */ + ifcs->ifcs_minifs = 0; + IF_CLONE_REMREF(ifc); }Received on Tue Oct 11 2005 - 21:40:20 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:45 UTC