hermes_write_regn(hw, EVACK, events); 
hermes_write_regn(hw, EVACK, evstat); 
irqreturn_t orinoco_interrupt(int irq, void *dev_id, struct pt_regs *regs){	struct net_device *dev = (struct net_device *)dev_id;	struct orinoco_private *priv = netdev_priv(dev);	hermes_t *hw = &priv->hw;	int count = MAX_IRQLOOPS_PER_IRQ;	u16 evstat, events;	/* These are used to detect a runaway interrupt situation */	/* If we get more than MAX_IRQLOOPS_PER_JIFFY iterations in a jiffy,	 * we panic and shut down the hardware */	static int last_irq_jiffy = 0; /* jiffies value the last time					* we were called */	static int loops_this_jiffy = 0;	unsigned long flags;	if (orinoco_lock(priv, &flags) != 0) {		/* If hw is unavailable - we don't know if the irq was		 * for us or not */		return IRQ_HANDLED;	}	evstat = hermes_read_regn(hw, EVSTAT);	events = evstat & hw->inten;	if (! events) {		orinoco_unlock(priv, &flags);		return IRQ_NONE;	}		if (jiffies != last_irq_jiffy)		loops_this_jiffy = 0;	last_irq_jiffy = jiffies;	while (events && count--) {		if (++loops_this_jiffy > MAX_IRQLOOPS_PER_JIFFY) {			printk(KERN_WARNING "%s: IRQ handler is looping too "			       "much! Resetting.\n", dev->name);			/* Disable interrupts for now */			hermes_set_irqmask(hw, 0);			schedule_work(&priv->reset_work);			break;		}		/* Check the card hasn't been removed */		if (! hermes_present(hw)) {			DEBUG(0, "orinoco_interrupt(): card removed\n");			break;		}		if (events & HERMES_EV_TICK)			__orinoco_ev_tick(dev, hw);		if (events & HERMES_EV_WTERR)			__orinoco_ev_wterr(dev, hw);		if (events & HERMES_EV_INFDROP)			__orinoco_ev_infdrop(dev, hw);		if (events & HERMES_EV_INFO)			__orinoco_ev_info(dev, hw);		if (events & HERMES_EV_RX)			__orinoco_ev_rx(dev, hw);		if (events & HERMES_EV_TXEXC)			__orinoco_ev_txexc(dev, hw);		if (events & HERMES_EV_TX)			__orinoco_ev_tx(dev, hw);		if (events & HERMES_EV_ALLOC)			__orinoco_ev_alloc(dev, hw);				hermes_write_regn(hw, EVACK, events);		evstat = hermes_read_regn(hw, EVSTAT);		events = evstat & hw->inten;	};	orinoco_unlock(priv, &flags);	return IRQ_HANDLED;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/84d8a2fb56b1d3c915591a2c1aa321b783c7d00f/orinoco.c/clean/drivers/net/wireless/orinoco.c