Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[3c90x] Fix a3c90x_close() and a3c90x_remove() methods.
Both methods disabled packet tx and rx just to have it enabled again
by calling a3c90x_reset().
Fixed by disabling tx and rx after the call to a3c90x_reset().

Tested by booting Ubuntu intrepid(8.10) directly from gPXE and pxelinux.
Tested on 3c905, 3c905B, 3c905C.

Signed-off-by: Marty Connor <mdc@etherboot.org>
  • Loading branch information
thomil authored and Marty Connor committed Oct 15, 2009
1 parent 1bb4204 commit 584e378
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/drivers/net/3c90x.c
Expand Up @@ -619,13 +619,13 @@ static void a3c90x_remove(struct pci_device *pci)

DBGP("a3c90x_remove\n");

unregister_netdev(netdev);
a3c90x_reset(inf_3c90x);

/* Disable the receiver and transmitter. */
outw(cmdRxDisable, inf_3c90x->IOAddr + regCommandIntStatus_w);
outw(cmdTxDisable, inf_3c90x->IOAddr + regCommandIntStatus_w);

a3c90x_reset(inf_3c90x);
unregister_netdev(netdev);
netdev_nullify(netdev);
netdev_put(netdev);
}
Expand Down Expand Up @@ -845,9 +845,9 @@ static void a3c90x_close(struct net_device *netdev)

DBGP("a3c90x_close\n");

a3c90x_reset(inf_3c90x);
outw(cmdRxDisable, inf_3c90x->IOAddr + regCommandIntStatus_w);
outw(cmdTxDisable, inf_3c90x->IOAddr + regCommandIntStatus_w);
a3c90x_reset(inf_3c90x);
a3c90x_free_resources(inf_3c90x);
}

Expand Down

0 comments on commit 584e378

Please sign in to comment.