On Tue, Jan 19, 2016 at 09:04:32AM +0100, Henning Rogge wrote: > err = -ENXIO; > -enddel: > +enddelpath: Concur about it being better to leave this label alone, also the diff looks weird because it continues: > + mesh_paths_generation++; > + spin_unlock(&tbl->hashwlock[hash_idx]); > + read_unlock_bh(&pathtbl_resize_lock); > + return err; > +} [...] > + err = -ENXIO; > +enddelmpp: > mesh_paths_generation++; > spin_unlock(&tbl->hashwlock[hash_idx]); > read_unlock_bh(&pathtbl_resize_lock); At first I wondered why the last half of the function was changed, but then I saw that. Shouldn't the above be "mpp_paths_generation++;"? In general I'd like to merge these two into one function; the only thing different is the initial table pointer that gets dereferenced and the generation counter (and now the labels). So something like this should be doable: static int mesh_table_delete(struct ieee80211_sub_if_data *sdata, struct mesh_table *tbl, const u8 *addr) { /* basically what mesh_path_del is today */ } int mesh_path_del(...) { tbl = resize_dereference_mesh_paths(); ret = mesh_table_delete(sdata, tbl, addr); mesh_paths_generation++; return ret; } int mpp_path_del(...) { tbl = resize_dereference_mpp_paths(); ret = mesh_table_delete(sdata, tbl, addr); mpp_paths_generation++; return ret; } -- Bob Copeland %% http://bobcopeland.com/ -- 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