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])
|
#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)
|
#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)
|
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)
|
int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
|
||||||
{
|
{
|
||||||
/* Never send broadcast/multicast ARP messages */
|
/* 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,
|
/* In IPv6 unicast probes are valid even on NBMA,
|
||||||
* because they are encapsulated in normal IPv6 protocol.
|
* because they are encapsulated in normal IPv6 protocol.
|
||||||
* Should be a generic flag.
|
* Should be a generic flag.
|
||||||
*/
|
*/
|
||||||
if (p->tbl->family != AF_INET6)
|
if (p->tbl->family != AF_INET6)
|
||||||
NEIGH_VAR_SET(p, UCAST_PROBES, 0);
|
NEIGH_VAR_INIT(p, UCAST_PROBES, 0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(hippi_neigh_setup_dev);
|
EXPORT_SYMBOL(hippi_neigh_setup_dev);
|
||||||
|
|
Loading…
Reference in New Issue