Re: [PATCH net v2] usbnet: cap max_mtu for drivers without bind callback
From: Jakub Kicinski
Date: Thu Jul 30 2026 - 17:04:27 EST
On Thu, 30 Jul 2026 09:30:57 +0200 Laurent Vivier wrote:
> On 7/30/26 02:52, Jakub Kicinski wrote:
> > On Mon, 27 Jul 2026 09:23:04 +0200 Laurent Vivier wrote:
> >> - if ((dev->driver_info->flags & FLAG_NOMAXMTU) == 0 &&
> >> - net->max_mtu > (dev->hard_mtu - net->hard_header_len))
> >> + if (dev->driver_info->flags & FLAG_NOMAXMTU)
> >> + net->max_mtu = ETH_MAX_MTU;
> >> + else
> >> net->max_mtu = dev->hard_mtu - net->hard_header_len;
> >
> > Sashikos point out that this will causes issues for existing drivers in
> > both directions. Some drivers explicitly set max_mtu. So we need to move
> > the
> >
> > net->max_mtu = ETH_MAX_MTU;
> >
> > line before the call to ->bind ?
>
> So you mean like my v1?
No, there should be no conditional stuff on the non-bind path.
Init the max_mtu to net->mtu like you do in v2.
Override it to ETH_MAX_MTU _under if (info->bind)_
And I think that's it - the conditions can stay as they are right now?
What I'm getting at is after the patch the code should say "we have
some extra MTU discovery path for drivers with info->bind, all
remaining drivers get net->mtu". I think the change I described above
will make that clear.