> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of Michal > Kubiak > Sent: Thursday, May 16, 2024 10:11 PM > To: intel-wired-...@lists.osuosl.org > Cc: Drewek, Wojciech <wojciech.dre...@intel.com>; net...@vger.kernel.org; > Kubiak, Michal <michal.kub...@intel.com>; Fijalkowski, Maciej > <maciej.fijalkow...@intel.com> > 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 <wojciech.dre...@intel.com> > Signed-off-by: Michal Kubiak <michal.kub...@intel.com> > --- > drivers/net/ethernet/intel/i40e/i40e_main.c | 19 ++++++++++++++----- > 1 file changed, 14 insertions(+), 5 deletions(-) >
Tested-by: George Kuruvinakunnel <george.kuruvinakun...@intel.com>