Re: [PATCH net] team: Move team device type change at the end of team_port_add

Jakub Kicinski
2025-11-12T01:13:45Z

On Wed, 12 Nov 2025 02:34:44 +0200 Nikola Z. Ivanov wrote:
> Attempting to add a port device that is already up will expectedly fail,
> but not before modifying the team device header_ops.
>
> In the case of the syzbot reproducer the gre0 device is
> already in state UP when it attempts to add it as a
> port device of team0, this fails but before that
> header_ops->create of team0 is changed from eth_header to ipgre_header
> in the call to team_dev_type_check_change.
>
> Later when we end up in ipgre_header() struct *ip_tunnel points to nonsense
> as the private data of the device still holds a struct team.
>
> Move team_dev_type_check_change down where all other checks have passed
> as it changes the dev type with no way to restore it in case
> one of the checks that follow it fail.

Since this is a bug fix it must have a Fixes tag pointing to first
commit where the issue could be reproduced.

Please make sure to have a quick read of (at least the tl;dr of)
https://www.kernel.org/doc/html/next/process/maintainer-netdev.html
before reposting.
--
pw-bot: cr