Re: rtalloc()/rtfree() problems on CURRENT

From: Gleb Smirnoff (glebius_at_cell.sick.ru)
Date: 02/24/04

  • Next message: Andre Oppermann: "Re: rtalloc()/rtfree() problems on CURRENT"
    Date: Tue, 24 Feb 2004 14:51:36 +0300
    To: Andre Oppermann <andre@freebsd.org>
    
    

      Andre,

      I can provide you with any additional information,
    since I have crashdump saved. I can dig into the problem myself
    if you give me some pointers where to look at.

    On Tue, Feb 24, 2004 at 11:14:59AM +0100, Andre Oppermann wrote:
    A> Gleb Smirnoff wrote:
    A> >
    A> > Dear sirs,
    A> >
    A> > please take a look at the following problem. I've been
    A> > successfully using the following code on STABLE and 5.1-RELEASE:
    A> >
    A> > struct route ro;
    A> > struct sockaddr_in *sin;
    A> >
    A> > bzero((caddr_t)&ro, sizeof(ro));
    A> > sin = (struct sockaddr_in *)&ro.ro_dst;
    A> > sin->sin_len = sizeof(*sin);
    A> > sin->sin_family = AF_INET;
    A> > sin->sin_addr = fle->r.r_dst;
    A> > rtalloc(&ro);
    A>
    A> Most of the time, if you don't need a cloned route allocated, you can
    A> just use rtalloc_ign(&ro, RTF_CLONING) to just get a reference to the
    A> existing rtentry. Not allocating a new cloned route saves work and
    A> time for the rtalloc code.
    A>
    A> > if (ro.ro_rt != NULL) {
    A> > struct rtentry *rt = ro.ro_rt;
    A> >
    A> > /* here some read-only things are done with rt */
    A>
    A> Maybe you do some nasty things to rt here?
    A>
    A> > rtfree(ro.ro_rt);
    A> > }
    A> >
    A> > But on CURRENT rtfree() causes panic. Here is backtrace:
    A> ...
    A> > Does this mean that something is broken in CURRENT or I am doing something wrong?
    A>
    A> rtalloc() and rtfree() are used quite often in the network code and
    A> otherwise work fine. The odds are high that you are doing something
    A> wrong.
    A>
    A> --
    A> Andre

    -- 
    Totus tuus, Glebius.
    GLEBIUS-RIPN GLEB-RIPE
    _______________________________________________
    freebsd-net@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-net
    To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
    

  • Next message: Andre Oppermann: "Re: rtalloc()/rtfree() problems on CURRENT"

    Relevant Pages

    • Re: rtalloc()/rtfree() problems on CURRENT
      ... A> Most of the time, if you don't need a cloned route allocated, you can ... A> time for the rtalloc code. ... So if using rtalloc_ignI do not need to call rtfree()? ... I don't:) Exact code is given at end of the mail. ...
      (freebsd-net)
    • Re: rtalloc()/rtfree() problems on CURRENT
      ... > Dear sirs, ... Most of the time, if you don't need a cloned route allocated, you can ... time for the rtalloc code. ... > But on CURRENT rtfree() causes panic. ...
      (freebsd-net)
    • Re: rtalloc()/rtfree() problems on CURRENT
      ... > A> Most of the time, if you don't need a cloned route allocated, you can ... > A> time for the rtalloc code. ... You still have to call rtfree() to decrement the refcount of the rtentry. ... I don't:) Exact code is given at end of the mail. ...
      (freebsd-net)