* [net] ixgbe: fix possible deadlock in ixgbe_service_task()
@ 2019-08-05 20:04 Jeff Kirsher
2019-08-06 21:51 ` David Miller
0 siblings, 1 reply; 4+ messages in thread
From: Jeff Kirsher @ 2019-08-05 20:04 UTC (permalink / raw)
To: davem; +Cc: Taehee Yoo, netdev, nhorman, sassmann, Andrew Bowers, Jeff Kirsher
From: Taehee Yoo <ap420073@gmail.com>
ixgbe_service_task() calls unregister_netdev() under rtnl_lock().
But unregister_netdev() internally calls rtnl_lock().
So deadlock would occur.
Fixes: 59dd45d550c5 ("ixgbe: firmware recovery mode")
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index cbaf712d6529..3386e752e458 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7898,9 +7898,7 @@ static void ixgbe_service_task(struct work_struct *work)
}
if (ixgbe_check_fw_error(adapter)) {
if (!test_bit(__IXGBE_DOWN, &adapter->state)) {
- rtnl_lock();
unregister_netdev(adapter->netdev);
- rtnl_unlock();
}
ixgbe_service_event_complete(adapter);
return;
--
2.21.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [net] ixgbe: fix possible deadlock in ixgbe_service_task()
2019-08-05 20:04 [net] ixgbe: fix possible deadlock in ixgbe_service_task() Jeff Kirsher
@ 2019-08-06 21:51 ` David Miller
2019-08-07 6:08 ` Taehee Yoo
0 siblings, 1 reply; 4+ messages in thread
From: David Miller @ 2019-08-06 21:51 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: ap420073, netdev, nhorman, sassmann, andrewx.bowers
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Mon, 5 Aug 2019 13:04:03 -0700
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index cbaf712d6529..3386e752e458 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -7898,9 +7898,7 @@ static void ixgbe_service_task(struct work_struct *work)
> }
> if (ixgbe_check_fw_error(adapter)) {
> if (!test_bit(__IXGBE_DOWN, &adapter->state)) {
> - rtnl_lock();
> unregister_netdev(adapter->netdev);
> - rtnl_unlock();
> }
Please remove the (now unnecessary) curly braces for this basic block.
Thank you.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [net] ixgbe: fix possible deadlock in ixgbe_service_task()
2019-08-06 21:51 ` David Miller
@ 2019-08-07 6:08 ` Taehee Yoo
2019-08-08 16:36 ` Jeff Kirsher
0 siblings, 1 reply; 4+ messages in thread
From: Taehee Yoo @ 2019-08-07 6:08 UTC (permalink / raw)
To: David Miller; +Cc: jeffrey.t.kirsher, Netdev, nhorman, sassmann, andrewx.bowers
On Wed, 7 Aug 2019 at 08:36, David Miller <davem@davemloft.net> wrote:
>
Hi David
Thank you for the review!
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Mon, 5 Aug 2019 13:04:03 -0700
>
> > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> > index cbaf712d6529..3386e752e458 100644
> > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> > @@ -7898,9 +7898,7 @@ static void ixgbe_service_task(struct work_struct *work)
> > }
> > if (ixgbe_check_fw_error(adapter)) {
> > if (!test_bit(__IXGBE_DOWN, &adapter->state)) {
> > - rtnl_lock();
> > unregister_netdev(adapter->netdev);
> > - rtnl_unlock();
> > }
>
> Please remove the (now unnecessary) curly braces for this basic block.
>
I will send a v2 patch.
Thank you!
> Thank you.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [net] ixgbe: fix possible deadlock in ixgbe_service_task()
2019-08-07 6:08 ` Taehee Yoo
@ 2019-08-08 16:36 ` Jeff Kirsher
0 siblings, 0 replies; 4+ messages in thread
From: Jeff Kirsher @ 2019-08-08 16:36 UTC (permalink / raw)
To: Taehee Yoo, David Miller; +Cc: Netdev, nhorman, sassmann, andrewx.bowers
[-- Attachment #1: Type: text/plain, Size: 1206 bytes --]
On Wed, 2019-08-07 at 15:08 +0900, Taehee Yoo wrote:
> On Wed, 7 Aug 2019 at 08:36, David Miller <davem@davemloft.net>
> wrote:
>
> Hi David
> Thank you for the review!
>
> > From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> > Date: Mon, 5 Aug 2019 13:04:03 -0700
> >
> > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> > > b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> > > index cbaf712d6529..3386e752e458 100644
> > > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> > > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> > > @@ -7898,9 +7898,7 @@ static void ixgbe_service_task(struct
> > > work_struct *work)
> > > }
> > > if (ixgbe_check_fw_error(adapter)) {
> > > if (!test_bit(__IXGBE_DOWN, &adapter->state)) {
> > > - rtnl_lock();
> > > unregister_netdev(adapter->netdev);
> > > - rtnl_unlock();
> > > }
> >
> > Please remove the (now unnecessary) curly braces for this basic
> > block.
> >
>
> I will send a v2 patch.
> Thank you!
I have already created a v2 on your behalf Taechee and will submit to
Dave here shortly.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-08-08 16:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-05 20:04 [net] ixgbe: fix possible deadlock in ixgbe_service_task() Jeff Kirsher
2019-08-06 21:51 ` David Miller
2019-08-07 6:08 ` Taehee Yoo
2019-08-08 16:36 ` Jeff Kirsher
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.