On 14.03.2011 18:17, Kurt Van Dijck wrote:
On Mon, Mar 14, 2011 at 05:42:23PM +0100, Eric Dumazet wrote:
quoted
Le lundi 14 mars 2011 à 16:02 +0100, Kurt Van Dijck a écrit :
quoted
I see your point.
The reason I modified this was, as described, checkpatch.pl was complaining.
Anyway, this sequence was protected by a spinlock 'proto_tab_lock'.
I don't think it was a race.
Did I miss something?
As soon as proto_tab[proto] = cp; is done, another thread on another cpu
can read the pointer and follow it.
Hmm, I missed can_create() also uses the spinlock protection, so you're
probably right.
It seems a bit overkill :(
phonet uses RCU for example.
Hello Eric,
the RCU code in phonet is worth to consider. But loading and removing of
protocols is far away from being a hot path ... what would be the advantages
to move to RCU here?
I'll keep that in mind.
Switching CAN protos to RCU is far beyond to goal of this patch :-)
Anyway making the struct proto a const (and set the default defines in the CAN
protocols) is a nice cleanup. Let's wait for the feedback about the RCU from
Eric ... then this patch could be put into mainline independently from the
j1939 protocol.
Thanks,
Oliver