Merge branch 'netdev_unregister_races'
authorDavid S. Miller <davem@davemloft.net>
Sat, 11 Jul 2015 01:16:37 +0000 (18:16 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 11 Jul 2015 01:16:37 +0000 (18:16 -0700)
commit7234e030194ccc27c48d3bde1ad66e1729c55a7d
tree8868fe137839c66fcef2a435d8d1b38fd0cd7533
parenta7d35f9d73e9ffa74a02304b817e579eec632f67
parent2c17d27c36dcce2b6bf689f41a46b9e909877c21
Merge branch 'netdev_unregister_races'

Julian Anastasov says:

====================
net: fixes for device unregistration

Test script from Eric W. Biederman can catch a problem
where packets from backlog are processed long after the last
synchronize_net call. This can be reproduced after few tests
if commit 381c759d9916 ("ipv4: Avoid crashing in ip_error")
is reverted for the test. Incoming packets do not hold
reference to device but even if they do, subsystems do not
expect packets to fly during and after the NETDEV_UNREGISTER
event.

The first fix has the cost of netif_running check in fast path.
The second fix calls rcu_read_lock while local IRQ is disabled,
I hope this is not against the rules.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>