Subject: Re: [PATCH 2/3] [VLAN]: Update iif when receiving via VLAN device

From: Ben Greear <[email-masked]>
Date: Fri, 30 Jun 2006 08:40:00 -0700

jamal wrote:
> On Fri, 2006-30-06 at 16:15 +0200, Thomas Graf wrote:

>>You agreed in
>>your last posting that the 3rd option, being that not caring about
>>whether a device might disappear but having a way to check for it,
>>is what we agreed on and what makes most sense, 
> 
> 
> yes, i recalled that as the last discussion we had.
> 
> 
>>yet you fail to see
>>that using ifindex is exactly what reflects this descision.
>>
> 
> 
> The choice is between using an ifindex and a pointer to the device. 
> Why is it solvable via an ifindex but not a device pointer?
> I may have misunderstood you, so look at this as a fresh opportunity to
> enlighten me. Forget about all the discussion weve had thus far.

If you use a pointer, without taking it's reference, then that device
can go away, and leave you with a stale memory access, ie kernel crash
or worse.

If you take a reference for every packet (which means an atomic op), then
you slow down every packet, even those that will never use the reference.

If you instead use the if-index, then you do not need to take a reference
for every packet, but only when you actually want to look at that device.
If the device has since disappeared, then you get a null when trying to find
by reference, and the code can take appropriate action.  No chance for
access of stale memory.

Ben

-- 
Ben Greear <[email-masked]>
Candela Technologies Inc  http://www.candelatech.com