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 c88fb3b393267fd2e498a7e958166e6f2922d5e5..74a7dfdb236d77b729b4fe0f64e8287637dc508f 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);