Delete unnecessary save/restore of rap in interrupt handler and statistics.
tested ia32 and ppc64.
Signed-off-by: Don Fry <brazilnut@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
struct net_device *dev = dev_id;
struct pcnet32_private *lp;
unsigned long ioaddr;
struct net_device *dev = dev_id;
struct pcnet32_private *lp;
unsigned long ioaddr;
int boguscnt = max_interrupt_work;
int must_restart;
int boguscnt = max_interrupt_work;
int must_restart;
- rap = lp->a.read_rap(ioaddr);
while ((csr0 = lp->a.read_csr(ioaddr, 0)) & 0x8f00 && --boguscnt >= 0) {
if (csr0 == 0xffff) {
break; /* PCMCIA remove happened */
while ((csr0 = lp->a.read_csr(ioaddr, 0)) & 0x8f00 && --boguscnt >= 0) {
if (csr0 == 0xffff) {
break; /* PCMCIA remove happened */
/* Set interrupt enable. */
lp->a.write_csr(ioaddr, 0, 0x0040);
/* Set interrupt enable. */
lp->a.write_csr(ioaddr, 0, 0x0040);
- lp->a.write_rap(ioaddr, rap);
if (netif_msg_intr(lp))
printk(KERN_DEBUG "%s: exiting interrupt, csr0=%#4.4x.\n",
if (netif_msg_intr(lp))
printk(KERN_DEBUG "%s: exiting interrupt, csr0=%#4.4x.\n",
{
struct pcnet32_private *lp = dev->priv;
unsigned long ioaddr = dev->base_addr;
{
struct pcnet32_private *lp = dev->priv;
unsigned long ioaddr = dev->base_addr;
unsigned long flags;
spin_lock_irqsave(&lp->lock, flags);
unsigned long flags;
spin_lock_irqsave(&lp->lock, flags);
- saved_addr = lp->a.read_rap(ioaddr);
lp->stats.rx_missed_errors = lp->a.read_csr(ioaddr, 112);
lp->stats.rx_missed_errors = lp->a.read_csr(ioaddr, 112);
- lp->a.write_rap(ioaddr, saved_addr);
spin_unlock_irqrestore(&lp->lock, flags);
return &lp->stats;
spin_unlock_irqrestore(&lp->lock, flags);
return &lp->stats;