datapath: Drop synchronize_rcu() in internal dev destroy.
authorJesse Gross <jesse@nicira.com>
Thu, 9 Dec 2010 07:29:10 +0000 (23:29 -0800)
committerJesse Gross <jesse@nicira.com>
Sat, 11 Dec 2010 23:19:47 +0000 (15:19 -0800)
unregister_netdevice() contains a call to synchronize_rcu(), so there
is no need to directly call it ourselves immediately beforehand.
We were relying on the call during unregistration anyways to stop
packets from being transmited on the device, so our version was
both misleading and had a performance penalty.

Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
datapath/vport-internal_dev.c

index c88fb3b..74a7dfd 100644 (file)
@@ -219,8 +219,6 @@ static int internal_dev_destroy(struct vport *vport)
        netif_stop_queue(netdev_vport->dev);
        dev_set_promiscuity(netdev_vport->dev, -1);
 
-       synchronize_rcu();
-
        unregister_netdevice(netdev_vport->dev);
        vport_free(vport);