On 16/02/14 14:39, Antonio Quartulli wrote: > On 16/02/14 13:01, Linus Lüssing wrote: >> @@ -371,12 +372,13 @@ static int __batadv_interface_tx(struct sk_buff *skb, \ >> >> #ifndef netdev_master_upper_dev_get_rcu >> #define netdev_master_upper_dev_get_rcu(dev) \ >> - NULL; \ >> + upper; \ >> if (dev->priv_flags & IFF_BRIDGE_PORT) { \ >> rcu_read_unlock(); \ >> dev_hold(dev); \ >> return dev; \ >> - } >> + } else \ >> + dev = NULL; >> > > Following your patch the code in multicast.c will become: > > 172 do { > 173 upper = upper; > if (dev->priv_flags & IFF_BRIDGE_PORT) { > rcu_read_unlock(); > dev_hold(dev); > return dev; > } else > dev = NULL; > 174 } while (upper && !(upper->priv_flags & IFF_EBRIDGE)); > > am I wrong or this is going to break the while? I think there is a > missing '}'. > I was wrong. I just dreamt of a '{' after "else". Forget about this comment. Cheers, -- Antonio Quartulli