neigh: use NEIGH_VAR_INIT in ndo_neigh_setup functions.
When ndo_neigh_setup is called, the bitfield used by NEIGH_VAR_SET is not initialized yet. This might cause confusion for the people who use NEIGH_VAR_SET in ndo_neigh_setup. So rather introduce NEIGH_VAR_INIT for usage in ndo_neigh_setup. Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d6e2640473
commit
89740ca74f
|
@ -92,6 +92,11 @@ static inline void neigh_var_set(struct neigh_parms *p, int index, int val)
|
|||
}
|
||||
|
||||
#define NEIGH_VAR(p, attr) ((p)->data[NEIGH_VAR_ ## attr])
|
||||
|
||||
/* In ndo_neigh_setup, NEIGH_VAR_INIT should be used.
|
||||
* In other cases, NEIGH_VAR_SET should be used.
|
||||
*/
|
||||
#define NEIGH_VAR_INIT(p, attr, val) (NEIGH_VAR(p, attr) = val)
|
||||
#define NEIGH_VAR_SET(p, attr, val) neigh_var_set(p, NEIGH_VAR_ ## attr, val)
|
||||
|
||||
static inline void neigh_parms_data_state_setall(struct neigh_parms *p)
|
||||
|
|
|
@ -172,14 +172,14 @@ EXPORT_SYMBOL(hippi_mac_addr);
|
|||
int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
|
||||
{
|
||||
/* Never send broadcast/multicast ARP messages */
|
||||
NEIGH_VAR_SET(p, MCAST_PROBES, 0);
|
||||
NEIGH_VAR_INIT(p, MCAST_PROBES, 0);
|
||||
|
||||
/* In IPv6 unicast probes are valid even on NBMA,
|
||||
* because they are encapsulated in normal IPv6 protocol.
|
||||
* Should be a generic flag.
|
||||
*/
|
||||
if (p->tbl->family != AF_INET6)
|
||||
NEIGH_VAR_SET(p, UCAST_PROBES, 0);
|
||||
NEIGH_VAR_INIT(p, UCAST_PROBES, 0);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(hippi_neigh_setup_dev);
|
||||
|
|
Loading…
Reference in New Issue