Commit e60bf806 authored by David S. Miller's avatar David S. Miller

Merge branch 'bgmac'

Hauke Mehrtens says:

====================
bgmac: some fixes to napi usage

I compared the napi documentation with the bgmac driver and found some
problems in that driver. These two patches should fix the problems.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 852c5d9c 43f159c6
...@@ -1167,10 +1167,10 @@ static int bgmac_poll(struct napi_struct *napi, int weight) ...@@ -1167,10 +1167,10 @@ static int bgmac_poll(struct napi_struct *napi, int weight)
bgmac->int_status = 0; bgmac->int_status = 0;
} }
if (handled < weight) if (handled < weight) {
napi_complete(napi); napi_complete(napi);
bgmac_chip_intrs_on(bgmac); bgmac_chip_intrs_on(bgmac);
}
return handled; return handled;
} }
...@@ -1515,6 +1515,8 @@ static int bgmac_probe(struct bcma_device *core) ...@@ -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) ...@@ -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) ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment