[Intel-wired-lan] [PATCH] igb: reinit_locked() should be called with rtnl_lock
Kirsher, Jeffrey T
jeffrey.t.kirsher at intel.com
Thu Jul 2 20:05:31 UTC 2020
> -----Original Message-----
> From: Francesco Ruggeri <fruggeri at arista.com>
> Sent: Thursday, July 2, 2020 12:35
> To: Kirsher, Jeffrey T <jeffrey.t.kirsher at intel.com>
> Cc: Jakub Kicinski <kuba at kernel.org>; David Miller <davem at davemloft.net>;
> open list <linux-kernel at vger.kernel.org>; netdev <netdev at vger.kernel.org>;
> intel-wired-lan at lists.osuosl.org
> Subject: Re: [PATCH] igb: reinit_locked() should be called with rtnl_lock
>
> > Do not worry about the other Intel drivers, I have our developers looking at
> each of our drivers for the locking issue.
> >
> > @David Miller - I am picking up this patch
>
> There seems to be a second race, independent from the original one, that
> results in a divide error:
>
> kworker reboot -f tx packet
>
> igb_reset_task
> __igb_shutdown
> rtnl_lock()
> ...
> igb_clear_interrupt_scheme
> igb_free_q_vectors
> adapter->num_tx_queues = 0
> ...
> rtnl_unlock()
> rtnl_lock()
> igb_reinit_locked
> igb_down
> igb_up
> netif_tx_start_all_queues
> dev_hard_start_xmit
> igb_xmit_frame
> igb_tx_queue_mapping
> Panics on
> r_idx % adapter->num_tx_queues
>
> Using in igb_reset_task a logic similar to the one in ixgbe_reset_subtask (bailing
> if __IGB_DOWN or __IGB_RESETTING is set) seems to avoid the panic.
> That logic was first introduced in ixgbe as part of commit 2f90b8657ec ('ixgbe:
> this patch adds support for DCB to the kernel and ixgbe driver').
> Both fixes seem to be needed.
So will you be sending a v2 of your patch to include the second fix?
More information about the Intel-wired-lan
mailing list