}
(*tt_data)->flags = BATADV_NO_FLAGS;
- (*tt_data)->ttvn = atomic_read(&orig_node->last_ttvn);
+ (*tt_data)->ttvn = READ_ONCE(orig_node->last_ttvn);
(*tt_data)->num_vlan = htons(num_vlan);
tt_vlan = (*tt_data)->vlan_data;
if (!hdr)
return -ENOBUFS;
- last_ttvn = atomic_read(&orig->orig_node->last_ttvn);
+ last_ttvn = READ_ONCE(orig->orig_node->last_ttvn);
if (nla_put(msg, BATADV_ATTR_TT_ADDRESS, ETH_ALEN, common->addr) ||
nla_put(msg, BATADV_ATTR_ORIG_ADDRESS, ETH_ALEN,
if (!res_dst_orig_node)
goto out;
- orig_ttvn = (u8)atomic_read(&req_dst_orig_node->last_ttvn);
+ orig_ttvn = READ_ONCE(req_dst_orig_node->last_ttvn);
req_ttvn = tt_data->ttvn;
/* this node doesn't have the requested data */
orig_node->tt_buff = NULL;
spin_unlock_bh(&orig_node->tt_buff_lock);
- atomic_set(&orig_node->last_ttvn, ttvn);
+ WRITE_ONCE(orig_node->last_ttvn, ttvn);
out:
batadv_orig_node_put(orig_node);
batadv_tt_save_orig_buffer(bat_priv, orig_node, tt_change,
batadv_tt_len(tt_num_changes));
- atomic_set(&orig_node->last_ttvn, ttvn);
+ WRITE_ONCE(orig_node->last_ttvn, ttvn);
}
/**
struct batadv_tvlv_tt_change *tt_change,
u16 tt_num_changes, u8 ttvn)
{
- u8 orig_ttvn = (u8)atomic_read(&orig_node->last_ttvn);
+ u8 orig_ttvn = READ_ONCE(orig_node->last_ttvn);
struct batadv_tvlv_tt_vlan_data *tt_vlan;
bool full_table = true;
bool has_tt_init;
if (!batadv_tt_global_add(bat_priv, orig_node, addr, vid,
BATADV_TT_CLIENT_TEMP,
- atomic_read(&orig_node->last_ttvn)))
+ READ_ONCE(orig_node->last_ttvn)))
return false;
batadv_dbg(BATADV_DBG_TT, bat_priv,
batadv_tt_global_add(bat_priv, orig_node, roaming_adv->client,
ntohs(roaming_adv->vid), BATADV_TT_CLIENT_ROAM,
- atomic_read(&orig_node->last_ttvn) + 1);
+ READ_ONCE(orig_node->last_ttvn) + 1);
out:
batadv_orig_node_put(orig_node);