]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ldmvsw: stop the clean timer at beginning of remove
authorShannon Nelson <shannon.nelson@oracle.com>
Mon, 15 May 2017 15:33:06 +0000 (08:33 -0700)
committerShannon Nelson <shannon.nelson@oracle.com>
Wed, 31 May 2017 23:43:50 +0000 (16:43 -0700)
Stop the clean timer earlier to be sure there's no asynchronous
interference while stopping the port.

Orabug: 25748241

Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com>
Reviewed-by: Tushar Dave <tushar.n.dave@oracle.com>
Signed-off-by: Allen Pais <allen.pais@oracle.com>
drivers/net/ethernet/sun/ldmvsw.c

index 080604c5ef3dd67bf20942238c3c6bf90abd7821..8c27e86e57f6521c021f554fd66ab9fce54fdd04 100644 (file)
@@ -418,6 +418,7 @@ static int vsw_port_remove(struct vio_dev *vdev)
 
        if (port) {
                del_timer_sync(&port->vio.timer);
+               del_timer_sync(&port->clean_timer);
 
                napi_disable(&port->napi);
                unregister_netdev(port->dev);
@@ -425,7 +426,6 @@ static int vsw_port_remove(struct vio_dev *vdev)
                list_del_rcu(&port->list);
 
                synchronize_rcu();
-               del_timer_sync(&port->clean_timer);
                spin_lock_irqsave(&port->vp->lock, flags);
                sunvnet_port_rm_txq_common(port);
                spin_unlock_irqrestore(&port->vp->lock, flags);