浏览代码

bgmac: register napi before the device

napi should get registered before the netdev and not after.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hauke Mehrtens 10 年之前
父节点
当前提交
6216642f20
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      drivers/net/ethernet/broadcom/bgmac.c

+ 3 - 3
drivers/net/ethernet/broadcom/bgmac.c

@@ -1515,6 +1515,8 @@ static int bgmac_probe(struct bcma_device *core)
 	if (core->bus->sprom.boardflags_lo & BGMAC_BFL_ENETADM)
 	if (core->bus->sprom.boardflags_lo & BGMAC_BFL_ENETADM)
 		bgmac_warn(bgmac, "Support for ADMtek ethernet switch not implemented\n");
 		bgmac_warn(bgmac, "Support for ADMtek ethernet switch not implemented\n");
 
 
+	netif_napi_add(net_dev, &bgmac->napi, bgmac_poll, BGMAC_WEIGHT);
+
 	err = bgmac_mii_register(bgmac);
 	err = bgmac_mii_register(bgmac);
 	if (err) {
 	if (err) {
 		bgmac_err(bgmac, "Cannot register MDIO\n");
 		bgmac_err(bgmac, "Cannot register MDIO\n");
@@ -1529,8 +1531,6 @@ static int bgmac_probe(struct bcma_device *core)
 
 
 	netif_carrier_off(net_dev);
 	netif_carrier_off(net_dev);
 
 
-	netif_napi_add(net_dev, &bgmac->napi, bgmac_poll, BGMAC_WEIGHT);
-
 	return 0;
 	return 0;
 
 
 err_mii_unregister:
 err_mii_unregister:
@@ -1549,9 +1549,9 @@ static void bgmac_remove(struct bcma_device *core)
 {
 {
 	struct bgmac *bgmac = bcma_get_drvdata(core);
 	struct bgmac *bgmac = bcma_get_drvdata(core);
 
 
-	netif_napi_del(&bgmac->napi);
 	unregister_netdev(bgmac->net_dev);
 	unregister_netdev(bgmac->net_dev);
 	bgmac_mii_unregister(bgmac);
 	bgmac_mii_unregister(bgmac);
+	netif_napi_del(&bgmac->napi);
 	bgmac_dma_free(bgmac);
 	bgmac_dma_free(bgmac);
 	bcma_set_drvdata(core, NULL);
 	bcma_set_drvdata(core, NULL);
 	free_netdev(bgmac->net_dev);
 	free_netdev(bgmac->net_dev);