Since you obviously need a write lock here to be sure following
can be done by one cpu only.
You have same problem all over this patch.
Yes, as Dave wrote, this is guarded by RTNL mutex.
+kzalloc(max(sizeof(*ha), L1_CACHE_SIZE), GFP_...) is thus higly recommended here.
+ ha = kzalloc(sizeof(*ha), GFP_ATOMIC);
Also, why GFP_ATOMIC is needed here ?
Yes, it is not needed here. I've copied it here from the original unicast and
multicast add funtion to stay close but as I can see, there is no need for it
there either.
Noted.