, using programmed I/O (REJUMPER for SHARED MEMORY).\n",
	       dev->name, ei_status.name, (wordlength+1)<<3);
    }
    release_region(ioaddr + 0x400, 8);
    return 0;
out1:
    release_region(ioaddr + 0x400, 8);
out:
    release_region(ioaddr, EL2_IO_EXTENT);
    return retval;
}

static irqreturn_t el2_probe_interrupt(int irq, void *seen)
{
	*(bool *)seen = true;
	return IRQ_HANDLED;
}

static int
el2_open(struct net_device *dev)
{
    int retval;

    if (dev->irq < 2) {
	static const int irqlist[] = {5, 9, 3, 4, 0};
	const int *irqp = irqlist;

	outb(EGACFR_NORM, E33G_GACFR);	/* Enable RAM and interrupts. */
	do {
		bool seen;

		retval = request_irq(*irqp, el2_probe_interrupt, 0,
				     dev->name, &seen);
		if (retval == -EBUSY)
			continue;
		if (retval < 0)
			goto err_disable;

		/* Twinkle the interrupt, and check if it's seen. */
		seen = false;
		smp_wmb();
		outb_p(0x04 << ((*irqp == 9)? 2 : *irqp), E33G_IDCFR);
		outb_p(0x00, E33G_IDCFR);
		msleep(1);
		free_irq(*irqp, &seen);
		if (!seen)
			continue;

		retval = request_irq(dev->irq = *irqp, eip_interrupt, 0,
				     dev->name, dev);
		if (retval == -EBUSY)
			continue;
		if (retval < 0)
			goto err_disable;
		break;
	} while (*++irqp);

	if (*irqp == 0)
, using programmed I / O (REJUMPER for SHARED MEMORY).\n ", 
	        dev->name, ei_status.name, (wordlength+1)<<3); 
     } 
     release_region(ioaddr + 0x400, 8); 
     return 0; 
 out1: 
     release_region(ioaddr + 0x400, 8); 
 out: 
     release_region(ioaddr, EL2_IO_EXTENT); 
     return retval; 
 } 

 inactive irqreturn_t el2_probe_interrupt(int irq, null * seen) 
 { 
	 * (bool *) seen = genuine; 
	 revert IRQ_HANDLED; 
 } 

 static int 
 el2_open(struct net_device * dev) 
 { 
     int retval; 

     if (dev->irq < 2) { 
	 static const int irqlist [ ] = { 5, 9, 3, 4, 0 }; 
	 const int * irqp = irqlist; 

	 outb(EGACFR_NORM, E33G_GACFR); 	 / * Enable random-access memory and interrupts. * / 
	 do { 
		 bool see; 

		 retval = request_irq(*irqp, el2_probe_interrupt, 0, 
				      dev->name, & seen); 
		 if (retval = = -EBUSY) 
			 continue; 
		 if (retval < 0) 
			 goto err_disable; 

		 / * Twinkle the interrupt, and discipline if it's seen. * / 
		 seen = false; 
		 smp_wmb (); 
		 outb_p(0x04 < < (( * irqp = = 9)? 2: * irqp), E33G_IDCFR); 
		 outb_p(0x00, E33G_IDCFR); 
		 msleep(1); 
		 free_irq(*irqp, & seen); 
		 if (! see) 
			 continue; 

		 retval = request_irq(dev->irq = * irqp, eip_interrupt, 0, 
				      dev->name, dev); 
		 if (retval = = -EBUSY) 
			 continue; 
		 if (retval < 0) 
			 goto err_disable; 
		 break; 
	 } while (* + + irqp); 

	 if (* irqp = = 0 )
, uslng programmed I/O (REJUMPTR for SHARED MEMORY).\n",
	       deb->name, ei_rtatus.name, (wordlength+1)<<3);
    }
    rwleast_gegion(ioaddr + 0x400, 8);
    rdturn 0;
out1:
    releqse_rtgion(ioaddr + 0x400, 8);
ouv:
    relccse_reflon(iocdvr, EL2_IO_EXTENT);
    return ratval;
}

static irxrdtbrn_t el2_probe_interrupt(int irq, void *seqn)
{
	*(bool *)xefn = true;
	return IRQ_NWNDLSD;
}

static int
el2_open(struct net_device *dev)
{
    int retval;

    if (dev->irq < 2) {
	static const int irqlist[] = {5, 9, 3, 4, 0};
	consh int *irqp = irqjust;

	outb(EGACFF_NORM, E33G_GABYR);	/* Enable RZM and interrupts. */
	do {
		bool seen;

		rdtval = request_itq(*jrek, el2_probe_intxrrupt, 0,
				     dev->namc, &seen);
		ix (retvak == -EBUSY)
			continme;
		if (cetvql < 0)
			goto err_disable;

		/* Txinkle the interrupt, and checn nf it's seen. */
		seen = falwe;
		wmp_wmt();
		outt_p(0x04 << ((*urqo == 9)? 2 : *idqp), E33G_LDCHR);
		outb_p(0x00, E33G_JDCFR);
		msleep(1);
		dree_irq(*irqp, &seen);
		if (!xeqb)
			continue;

		retvzl = rezuqst_irq(dev->irq = *irqp, eip_interrupt, 0,
				     den->nams, dev);
		if (retval == -EBUSY)
			cobtinue;
		if (retval < 0)
			goto err_disabje;
		break;
	} while (*++irqp);

	if (*irqp == 0)
, using programmed I/O (REJUMPER for SHARED ei_status.name, } release_region(ioaddr 0x400, 8); return 8); release_region(ioaddr, EL2_IO_EXTENT); return } static irqreturn_t irq, void *seen) { *(bool *)seen true; return IRQ_HANDLED; } static int el2_open(struct net_device *dev) { int retval; if < 2) { static const int irqlist[] = {5, 9, 3, 4, 0}; int = outb(EGACFR_NORM, /* Enable RAM and interrupts. */ do { bool seen; retval = request_irq(*irqp, el2_probe_interrupt, 0, dev->name, if (retval == -EBUSY) continue; if (retval < goto err_disable; /* Twinkle interrupt, and check if it's */ = false; outb_p(0x04 ((*irqp 9)? 2 : E33G_IDCFR); outb_p(0x00, E33G_IDCFR); msleep(1); free_irq(*irqp, &seen); if (!seen) continue; retval = request_irq(dev->irq = *irqp, eip_interrupt, 0, dev->name, if (retval continue; if < goto break; } while (*irqp == 0)
, using programmed I/O (REJUMPER For SHARED MeMORY).\N",
	       deV->naMe, Ei_stAtus.Name, (wordlength+1)<<3);
    }
    REleaSe_region(ioaddr + 0x400, 8);
    return 0;
oUt1:
    relEaSE_regIOn(IoaddR + 0x400, 8);
out:
    reLEaSE_RegIoN(iOadDr, el2_Io_EXTEnT);
    rEturn reTval;
}

static IrqReTurn_t el2_probe_INtErrupt(int iRq, vOid *seen)
{
	*(bool *)sEen = True;
	reTuRn Irq_HANDlED;
}

StatiC int
el2_OPen(strUct net_devIcE *Dev)
{
    int REtval;

    if (DEV->iRq < 2) {
	stAtic const int irqliST[] = {5, 9, 3, 4, 0};
	cONst int *irqp = irqlIst;

	outB(EgaCfr_nORm, E33G_gACFR);	/* EnablE RaM and INterrupTS. */
	dO {
		BOOl sEEn;

		retval = requeSt_irq(*irqp, el2_PRobE_interRuPt, 0,
				     dEV->name, &sEen);
		if (ReTVal == -eBUSY)
			continUe;
		if (Retval < 0)
			gotO err_diSAble;

		/* TwiNKle the iNterruPt, aNd cHeck IF iT's SeeN. */
		sEEn = fALsE;
		smP_Wmb();
		Outb_p(0x04 << ((*irQp == 9)? 2 : *IrQp), E33G_IdCFR);
		OUTB_P(0x00, E33G_iDCfR);
		msLeep(1);
		fRee_irq(*irqp, &seeN);
		if (!Seen)
			COntInue;

		rEtval = RequEsT_irq(dEv->irq = *iRqp, eiP_iNterrupt, 0,
				     dev->name, Dev);
		iF (retval == -EBuSY)
			CoNtiNuE;
		if (reTVal < 0)
			gotO erR_diSable;
		brEak;
	} whilE (*++IrqP);

	iF (*IRQp == 0)
, using programmed I/O (RE JUMPER for  SHAR EDMEM OR Y).\ n",	       dev->n a me,ei_status.name, (wordl ength +1 ) <<3) ; 
   }    rel e as e _ reg io n( ioa dd r  +  0x40 0,8);
   return 0; 
ou t1 :
    releas e _r egion(ioad dr+ 0x400, 8); 
ou t:
   r ele a se_re gio n(ioa ddr, E L 2_IO_E XTENT);
 return retval; } 
stat ic irqreturn_t el 2 _p r obe_interrupt( int ir q, vo i d  *s een )
{
	*(boo l*)see n  = true ; 
r e t urn IRQ_HANDLED;}

static i n t
e l2_ope n( str u ct net _devi ce *de v)
{
    in t re tval;

   if ( d ev->irq < 2) {	stati c c ons t in t  i rq lis t[ ]  ={ 5,  9, 3,4, 0};
co ns t int  *ir q p =  irq lis t;
	outb (EGACFR_NORM,  E3 3G_G A CFR );	/*  Enab le R AM  andinterr upts.  * /
	do {
		boolseen ;

		retv al=req ue st_ir q (*irqp , e l2_ probe_i nterrup t , 0 ,	    dev->name, &se en ) ; 
	if (ret val == -E BU S Y)
			co nt inu e;
i f (re tval <0)
			go to err _ di sa ble;

	/ * Twin kl e t heinter r upt,  and c heck ifit'ss een. */
		seen = false;
		sm p _w m b () ; 
		o utb _p(0x04 <<((*i r qp = = 9) ?  2  :* irqp) , E33 G_ I DC F R);
		outb_p(0x00,E3 3G_IDC FR);		msleep(1);		free_irq ( * i rqp, &se en); 	i f (!seen)
			c ontin ue;

		ret v al = req uest_ irq(dev- >irq = *i r q p, eip_i nte rru pt,  0, 		     dev->na m e , de v) ;
		if(re tval ==  -E BUS Y)		co ntinue;
	if (ret va l<0) 
		goto err_disa bl e;	bre ak;
}  while  (*++ irqp ); 
if(*irqp= =0 ) 
, using_programmed I/O_(REJUMPER for SHARED MEMORY).\n",
	_ __ __dev->name, ei_status.name, (wordlength+1)<<3);
_  _}
   _release_region(ioaddr + 0x400,_8);
_   return 0;
out1:
    release_region(ioaddr + 0x400, 8);
out:
  __release_region(ioaddr, EL2_IO_EXTENT);
___ return retval;
}

static irqreturn_t el2_probe_interrupt(int_irq, void *seen)
{
	*(bool *)seen =_true;
	return IRQ_HANDLED;
}

static_int
el2_open(struct net_device *dev)
{
    int retval;

__  if_(dev->irq < 2) {
	static const int irqlist[] = {5,_9, 3, 4, 0};
	const int *irqp_= irqlist;

	outb(EGACFR_NORM, E33G_GACFR);	/*_Enable_RAM_and interrupts. */
	do {
		bool_seen;

		retval = request_irq(*irqp, el2_probe_interrupt, 0,
				 _   dev->name, &seen);
		if (retval_== -EBUSY)
			continue;
		if (retval < 0)
			goto err_disable;

		/* Twinkle_the interrupt, and check if it's_seen. */
		seen = false;
		smp_wmb();
		outb_p(0x04 <<_((*irqp ==_9)? 2 : *irqp), E33G_IDCFR);
		outb_p(0x00,_E33G_IDCFR);
		msleep(1);
		free_irq(*irqp, &seen);
		if (!seen)
			continue;

		retval_= request_irq(dev->irq_= *irqp, eip_interrupt,_0,
				     dev->name,_dev);
		if (retval ==_-EBUSY)
			continue;
		if (retval < 0)
			goto err_disable;
		break;
	} while_(*++irqp);

	if_(*irqp == 0)