From: Stanislaw Gruszka <[email protected]>
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 <[email protected]>
> Cc: Larry Finger <[email protected]>
> Cc: Johannes Berg <[email protected]>
> Fixes: 2ae0f17df1cd ("genetlink: use idr to track families")
> Signed-off-by: Stanislaw Gruszka <[email protected]>
Applied and queued up for -stable, thanks.