From: Stanislaw Gruszka <sgruszka@xxxxxxxxxx> Date: Wed, 22 Mar 2017 16:08:33 +0100 > Commit 2ae0f17df1cd ("genetlink: use idr to track families") replaced > > if (++n < fams_to_skip) > continue; > into: > > if (n++ < fams_to_skip) > continue; > > This subtle change cause that on retry ctrl_dumpfamily() call we omit > one family that failed to do ctrl_fill_info() on previous call, because > cb->args[0] = n number counts also family that failed to do > ctrl_fill_info(). > > Patch fixes the problem and avoid confusion in the future just decrease > n counter when ctrl_fill_info() fail. > > User visible problem caused by this bug is failure to get access to > some genetlink family i.e. nl80211. However problem is reproducible > only if number of registered genetlink families is big enough to > cause second call of ctrl_dumpfamily(). > > Cc: Xose Vazquez Perez <xose.vazquez@xxxxxxxxx> > Cc: Larry Finger <Larry.Finger@xxxxxxxxxxxx> > Cc: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > Fixes: 2ae0f17df1cd ("genetlink: use idr to track families") > Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx> Applied and queued up for -stable, thanks.