[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1165238866.3664.43.camel@localhost>
Date: Mon, 04 Dec 2006 08:27:46 -0500
From: jamal <hadi@...erus.ca>
To: Patrick McHardy <kaber@...sh.net>
Cc: David Miller <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [XFRM] Optimize SA dumping
On Mon, 2006-04-12 at 13:36 +0100, Patrick McHardy wrote:
> jamal wrote:
> > for (i = 0; i <= xfrm_state_hmask; i++) {
> > hlist_for_each_entry(x, entry, xfrm_state_bydst+i, bydst) {
> > + if (count && send_x != last_x) {
> > + err = func(send_x, count, data);
> > + if (err)
> > + goto out;
> > + send_x = NULL;
> > + }
> > if (!xfrm_id_proto_match(x->id.proto, proto))
> > continue;
>
> After you sent send_x and set it to NULL, it will be different from
> last_x (since that is != NULL) and the NULL pointer will be given
> to func() when continuing here.
>
This one you lost me. Can you give me an example? one or two SAs found?
In any case, if i go the done callback approach, I can get rid of all
this tracking thing ...
cheers,
jamal
> > - err = func(x, --count, data);
> > - if (err)
> > - goto out;
> > +
> > + if (!count) {
> > + last_x = send_x = x;
> > + } else {
> > + send_x = last_x;
> > + last_x = x;
> > + }
> > + count++;
> > }
> > }
>
>
>
>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists