On Tue, 2016-01-26 at 16:22 -0500, Bob Copeland wrote: > > void mesh_path_flush_by_nexthop(struct sta_info *sta) > { > [...] > rhashtable_walk_start(&iter); It seems you need to check the return value here? > while ((mpath = rhashtable_walk_next(&iter))) { > if (IS_ERR(mpath) && PTR_ERR(mpath) == -EAGAIN) > continue; > if (IS_ERR(mpath)) > break; > > if (rcu_access_pointer(mpath->next_hop) == sta) > __mesh_path_del(tbl, mpath); > } > rhashtable_walk_stop(&iter); > [...] > } > > ...this still relies on the rcu read lock inside _walk_start and > _walk_stop, though. At least that's kinda hidden in walk_start/stop though ;-) johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html