projects
/
wrapfs-5.3.y.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
38ffc1c
)
net/xen-netfront: only napi_synchronize() if running
author
Chas Williams
<3chas3@gmail.com>
Thu, 27 Aug 2015 16:28:46 +0000
(12:28 -0400)
committer
Sasha Levin
<sasha.levin@oracle.com>
Wed, 28 Oct 2015 02:14:20 +0000
(22:14 -0400)
[ Upstream commit
274b045509175db0405c784be85e8cce116e6f7d
]
If an interface isn't running napi_synchronize() will hang forever.
[ 392.248403] rmmod R running task 0 359 343 0x00000000
[ 392.257671]
ffff88003760fc88
ffff880037193b40
ffff880037193160
ffff88003760fc88
[ 392.267644]
ffff880037610000
ffff88003760fcd8
0000000100014c22
ffffffff81f75c40
[ 392.277524]
0000000000bc7010
ffff88003760fca8
ffffffff81796927
ffffffff81f75c40
[ 392.287323] Call Trace:
[ 392.291599] [<
ffffffff81796927
>] schedule+0x37/0x90
[ 392.298553] [<
ffffffff8179985b
>] schedule_timeout+0x14b/0x280
[ 392.306421] [<
ffffffff810f91b9
>] ? irq_free_descs+0x69/0x80
[ 392.314006] [<
ffffffff811084d0
>] ? internal_add_timer+0xb0/0xb0
[ 392.322125] [<
ffffffff81109d07
>] msleep+0x37/0x50
[ 392.329037] [<
ffffffffa00ec79a
>] xennet_disconnect_backend.isra.24+0xda/0x390 [xen_netfront]
[ 392.339658] [<
ffffffffa00ecadc
>] xennet_remove+0x2c/0x80 [xen_netfront]
[ 392.348516] [<
ffffffff81481c69
>] xenbus_dev_remove+0x59/0xc0
[ 392.356257] [<
ffffffff814e7217
>] __device_release_driver+0x87/0x120
[ 392.364645] [<
ffffffff814e7cf8
>] driver_detach+0xb8/0xc0
[ 392.371989] [<
ffffffff814e6e69
>] bus_remove_driver+0x59/0xe0
[ 392.379883] [<
ffffffff814e84f0
>] driver_unregister+0x30/0x70
[ 392.387495] [<
ffffffff814814b2
>] xenbus_unregister_driver+0x12/0x20
[ 392.395908] [<
ffffffffa00ed89b
>] netif_exit+0x10/0x775 [xen_netfront]
[ 392.404877] [<
ffffffff81124e08
>] SyS_delete_module+0x1d8/0x230
[ 392.412804] [<
ffffffff8179a8ee
>] system_call_fastpath+0x12/0x71
Signed-off-by: Chas Williams <3chas3@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/net/xen-netfront.c
patch
|
blob
|
history
diff --git
a/drivers/net/xen-netfront.c
b/drivers/net/xen-netfront.c
index 2b0b4e62f1718b777fec87490ad3fb6d676c6aca..2a64f28b2dad3bd560ca1de207855b0e45b78f8c 100644
(file)
--- a/
drivers/net/xen-netfront.c
+++ b/
drivers/net/xen-netfront.c
@@
-1432,7
+1432,8
@@
static void xennet_disconnect_backend(struct netfront_info *info)
queue->tx_evtchn = queue->rx_evtchn = 0;
queue->tx_irq = queue->rx_irq = 0;
- napi_synchronize(&queue->napi);
+ if (netif_running(info->netdev))
+ napi_synchronize(&queue->napi);
xennet_release_tx_bufs(queue);
xennet_release_rx_bufs(queue);