]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
i40e: Relax i40e_xsk_wakeup's return value when PF is busy
authorMaciej Fijalkowski <maciej.fijalkowski@intel.com>
Wed, 5 Feb 2020 04:58:32 +0000 (05:58 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Feb 2020 07:38:50 +0000 (08:38 +0100)
[ Upstream commit c77e9f09143822623dd71a0fdc84331129e97c3a ]

Return -EAGAIN instead of -ENETDOWN to provide a slightly milder
information to user space so that an application will know to retry the
syscall when __I40E_CONFIG_BUSY bit is set on pf->state.

Fixes: b3873a5be757 ("net/i40e: Fix concurrency issues between config flow and XSK")
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Björn Töpel <bjorn.topel@intel.com>
Link: https://lore.kernel.org/bpf/20200205045834.56795-2-maciej.fijalkowski@intel.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/i40e/i40e_xsk.c

index f73cd917c44f72740c3339bd042d3c6e2f70ace9..3156de786d95596050360319f5552d3d74d4e5f0 100644 (file)
@@ -791,7 +791,7 @@ int i40e_xsk_wakeup(struct net_device *dev, u32 queue_id, u32 flags)
        struct i40e_ring *ring;
 
        if (test_bit(__I40E_CONFIG_BUSY, pf->state))
-               return -ENETDOWN;
+               return -EAGAIN;
 
        if (test_bit(__I40E_VSI_DOWN, vsi->state))
                return -ENETDOWN;