> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of Michal > Kubiak > Sent: Thursday, May 16, 2024 10:11 PM > To: [email protected] > Cc: Drewek, Wojciech <[email protected]>; [email protected]; > Kubiak, Michal <[email protected]>; Fijalkowski, Maciej > <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-net] i40e: Fix XDP program unloading > while > removing the driver > > The commit 6533e558c650 ("i40e: Fix reset path while removing the driver") > introduced a new PF state "__I40E_IN_REMOVE" to block modifying the XDP > program while the driver is being removed. > Unfortunately, such a change is useful only if the ".ndo_bpf()" > callback was called out of the rmmod context because unloading the existing > XDP > program is also a part of driver removing procedure. > In other words, from the rmmod context the driver is expected to unload the > XDP > program without reporting any errors. Otherwise, the kernel warning with > callstack > is printed out to dmesg. > > Example failing scenario: > 1. Load the i40e driver. > 2. Load the XDP program. > 3. Unload the i40e driver (using "rmmod" command). > > Fix this by improving checks in ".ndo_bpf()" to determine if that callback > was called > from the removing context and if the kernel wants to unload the XDP program. > Allow for unloading the XDP program in such a case. > > Fixes: 6533e558c650 ("i40e: Fix reset path while removing the driver") > Reviewed-by: Wojciech Drewek <[email protected]> > Signed-off-by: Michal Kubiak <[email protected]> > --- > drivers/net/ethernet/intel/i40e/i40e_main.c | 19 ++++++++++++++----- > 1 file changed, 14 insertions(+), 5 deletions(-) >
Tested-by: George Kuruvinakunnel <[email protected]>
