On Mon, Apr 18, 2016 at 12:19 PM, Hannes Frederic Sowa
<han...@stressinduktion.org> wrote:
> vxlan_get_rx_port requires rtnl_lock to be held.
>
> Cc: Jeff Kirsher <jeffrey.t.kirs...@intel.com>
> Cc: Jesse Brandeburg <jesse.brandeb...@intel.com>
> Cc: Shannon Nelson <shannon.nel...@intel.com>
> Cc: Carolyn Wyborny <carolyn.wybo...@intel.com>
> Cc: Don Skidmore <donald.c.skidm...@intel.com>
> Cc: Bruce Allan <bruce.w.al...@intel.com>
> Cc: John Ronciak <john.ronc...@intel.com>
> Cc: Mitch Williams <mitch.a.willi...@intel.com>
> Signed-off-by: Hannes Frederic Sowa <han...@stressinduktion.org>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c 
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 2976df77bf14f5..b2f2cf40f06a87 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -7192,10 +7192,12 @@ static void ixgbe_service_task(struct work_struct 
> *work)
>                 return;
>         }
>  #ifdef CONFIG_IXGBE_VXLAN
> +       rtnl_lock();
>         if (adapter->flags2 & IXGBE_FLAG2_VXLAN_REREG_NEEDED) {
>                 adapter->flags2 &= ~IXGBE_FLAG2_VXLAN_REREG_NEEDED;
>                 vxlan_get_rx_port(adapter->netdev);
>         }
> +       rtnl_unlock();
>  #endif /* CONFIG_IXGBE_VXLAN */
>         ixgbe_reset_subtask(adapter);
>         ixgbe_phy_interrupt_subtask(adapter);
> --
> 2.5.5
>

Would it be possible to only take the lock inside of the conditional
statement?  There isn't really any need to be holding the rtnl_lock to
check the adapter flag.

- Alex

Reply via email to