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

Reply via email to