nfp: make sure to cancel port refresh on the error path
authorJakub Kicinski <jakub.kicinski@netronome.com>
Fri, 9 Jun 2017 03:56:10 +0000 (20:56 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Jun 2017 16:52:07 +0000 (12:52 -0400)
If very last stages of netdev registering and init fail some
other netdevs and devlink ports may have been visible to user
space before we torn them back down.  In this case there is a
slight chance user may have triggered port refresh.  We need
to make sure the async work is cancelled.

We have to cancel after releasing pf->lock, so we will always
try to cancel, regardless of which part of probe has failed.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/netronome/nfp/nfp_net_main.c

index 5f27703060c242b0b2d49f49dce0a72b49b48a50..cdd25dc5988d835f75009feb407cc38012ff59d7 100644 (file)
@@ -813,6 +813,7 @@ err_ctrl_unmap:
        nfp_cpp_area_release_free(pf->data_vnic_bar);
 err_unlock:
        mutex_unlock(&pf->lock);
+       cancel_work_sync(&pf->port_refresh_work);
        return err;
 }