On Wed, 4 Mar 2026 at 01:03, Jakub Kicinski <[email protected]> wrote:
>
> On Tue, 3 Mar 2026 19:15:29 +0100 Björn Töpel wrote:
...
Thanks for hacking a look! I'll address all of the above in the
follow-up.
> > + return -EINVAL;
> > +
> > + scoped_guard(mutex, &dev->ethtool->rss_lock) {
> > + xa_for_each(&dev->ethtool->rss_ctx, context, ctx) {
> > + ret =
> > ethtool_rxfh_indir_can_resize(ethtool_rxfh_context_indir(ctx),
>
> 80 char limit width limit is still king in netdev
> please shrink the length of the helpers you're adding?
> And/or take the locks in a normal way..
Hmm, is guard() and friends discouraged in netdev, or ethtool
specific? I'll fix the 100 chars lines (sad face)!
>
> > + ctx->indir_size,
> > new_indir_size);
> > + if (ret)
> > + return ret;
> > + }
> > +
> > + xa_for_each(&dev->ethtool->rss_ctx, context, ctx) {
> > +
> > __ethtool_rxfh_indir_resize(ethtool_rxfh_context_indir(ctx),
> > + ctx->indir_size,
> > new_indir_size);
> > + ctx->indir_size = new_indir_size;
> > + }
> > + }
> > +
> > + xa_for_each(&dev->ethtool->rss_ctx, context, ctx)
> > + ethtool_rss_notify(dev, ETHTOOL_MSG_RSS_NTF, context);
>
> Why a separate loop ?
We can't hold the rss_lock for the notify;
ethnl_default_notify->rss_prepare->... deadlock.
Björn