diff options
Diffstat (limited to 'drivers/net/lib8390.c')
| -rw-r--r-- | drivers/net/lib8390.c | 290 | 
1 files changed, 127 insertions, 163 deletions
diff --git a/drivers/net/lib8390.c b/drivers/net/lib8390.c index 17b75e5f1b0a..05ae21435bfd 100644 --- a/drivers/net/lib8390.c +++ b/drivers/net/lib8390.c @@ -36,7 +36,7 @@    Paul Gortmaker	: tweak ANK's above multicast changes a bit.    Paul Gortmaker	: update packet statistics for v2.1.x    Alan Cox		: support arbitrary stupid port mappings on the -  			  68K Macintosh. Support >16bit I/O spaces +			  68K Macintosh. Support >16bit I/O spaces    Paul Gortmaker	: add kmod support for auto-loading of the 8390  			  module by all drivers that require it.    Alan Cox		: Spinlocking work, added 'BUG_83C690' @@ -58,8 +58,8 @@  #include <linux/string.h>  #include <linux/bitops.h>  #include <asm/system.h> -#include <asm/uaccess.h> -#include <asm/io.h> +#include <linux/uaccess.h> +#include <linux/io.h>  #include <asm/irq.h>  #include <linux/delay.h>  #include <linux/errno.h> @@ -108,7 +108,6 @@ int ei_debug = 1;  /* Index to functions. */  static void ei_tx_intr(struct net_device *dev);  static void ei_tx_err(struct net_device *dev); -void ei_tx_timeout(struct net_device *dev);  static void ei_receive(struct net_device *dev);  static void ei_rx_overrun(struct net_device *dev); @@ -206,19 +205,19 @@ static int __ei_open(struct net_device *dev)  	struct ei_device *ei_local = netdev_priv(dev);  	if (dev->watchdog_timeo <= 0) -		 dev->watchdog_timeo = TX_TIMEOUT; +		dev->watchdog_timeo = TX_TIMEOUT;  	/*  	 *	Grab the page lock so we own the register set, then call  	 *	the init function.  	 */ -      	spin_lock_irqsave(&ei_local->page_lock, flags); +	spin_lock_irqsave(&ei_local->page_lock, flags);  	__NS8390_init(dev, 1);  	/* Set the flag before we drop the lock, That way the IRQ arrives  	   after its set and we get no silly warnings */  	netif_start_queue(dev); -      	spin_unlock_irqrestore(&ei_local->page_lock, flags); +	spin_unlock_irqrestore(&ei_local->page_lock, flags);  	ei_local->irqlock = 0;  	return 0;  } @@ -238,9 +237,9 @@ static int __ei_close(struct net_device *dev)  	 *	Hold the page lock during close  	 */ -      	spin_lock_irqsave(&ei_local->page_lock, flags); +	spin_lock_irqsave(&ei_local->page_lock, flags);  	__NS8390_init(dev, 0); -      	spin_unlock_irqrestore(&ei_local->page_lock, flags); +	spin_unlock_irqrestore(&ei_local->page_lock, flags);  	netif_stop_queue(dev);  	return 0;  } @@ -267,12 +266,12 @@ static void __ei_tx_timeout(struct net_device *dev)  	isr = ei_inb(e8390_base+EN0_ISR);  	spin_unlock_irqrestore(&ei_local->page_lock, flags); -	printk(KERN_DEBUG "%s: Tx timed out, %s TSR=%#2x, ISR=%#2x, t=%d.\n", -		dev->name, (txsr & ENTSR_ABT) ? "excess collisions." : -		(isr) ? "lost interrupt?" : "cable problem?", txsr, isr, tickssofar); +	netdev_dbg(dev, "Tx timed out, %s TSR=%#2x, ISR=%#2x, t=%d\n", +		   (txsr & ENTSR_ABT) ? "excess collisions." : +		   (isr) ? "lost interrupt?" : "cable problem?", +		   txsr, isr, tickssofar); -	if (!isr && !dev->stats.tx_packets) -	{ +	if (!isr && !dev->stats.tx_packets) {  		/* The 8390 probably hasn't gotten on the cable yet. */  		ei_local->interface_num ^= 1;   /* Try a different xcvr.  */  	} @@ -344,27 +343,22 @@ static netdev_tx_t __ei_start_xmit(struct sk_buff *skb,  	 * card, leaving a substantial gap between each transmitted packet.  	 */ -	if (ei_local->tx1 == 0) -	{ +	if (ei_local->tx1 == 0) {  		output_page = ei_local->tx_start_page;  		ei_local->tx1 = send_length;  		if (ei_debug  &&  ei_local->tx2 > 0) -			printk(KERN_DEBUG "%s: idle transmitter tx2=%d, lasttx=%d, txing=%d.\n", -				dev->name, ei_local->tx2, ei_local->lasttx, ei_local->txing); -	} -	else if (ei_local->tx2 == 0) -	{ +			netdev_dbg(dev, "idle transmitter tx2=%d, lasttx=%d, txing=%d\n", +				   ei_local->tx2, ei_local->lasttx, ei_local->txing); +	} else if (ei_local->tx2 == 0) {  		output_page = ei_local->tx_start_page + TX_PAGES/2;  		ei_local->tx2 = send_length;  		if (ei_debug  &&  ei_local->tx1 > 0) -			printk(KERN_DEBUG "%s: idle transmitter, tx1=%d, lasttx=%d, txing=%d.\n", -				dev->name, ei_local->tx1, ei_local->lasttx, ei_local->txing); -	} -	else -	{	/* We should never get here. */ +			netdev_dbg(dev, "idle transmitter, tx1=%d, lasttx=%d, txing=%d\n", +				   ei_local->tx1, ei_local->lasttx, ei_local->txing); +	} else {			/* We should never get here. */  		if (ei_debug) -			printk(KERN_DEBUG "%s: No Tx buffers free! tx1=%d tx2=%d last=%d\n", -				dev->name, ei_local->tx1, ei_local->tx2, ei_local->lasttx); +			netdev_dbg(dev, "No Tx buffers free! tx1=%d tx2=%d last=%d\n", +				   ei_local->tx1, ei_local->tx2, ei_local->lasttx);  		ei_local->irqlock = 0;  		netif_stop_queue(dev);  		ei_outb_p(ENISR_ALL, e8390_base + EN0_IMR); @@ -382,22 +376,18 @@ static netdev_tx_t __ei_start_xmit(struct sk_buff *skb,  	ei_block_output(dev, send_length, data, output_page); -	if (! ei_local->txing) -	{ +	if (!ei_local->txing) {  		ei_local->txing = 1;  		NS8390_trigger_send(dev, send_length, output_page); -		if (output_page == ei_local->tx_start_page) -		{ +		if (output_page == ei_local->tx_start_page) {  			ei_local->tx1 = -1;  			ei_local->lasttx = -1; -		} -		else -		{ +		} else {  			ei_local->tx2 = -1;  			ei_local->lasttx = -2;  		} -	} -	else ei_local->txqueue++; +	} else +		ei_local->txqueue++;  	if (ei_local->tx1  &&  ei_local->tx2)  		netif_stop_queue(dev); @@ -410,8 +400,8 @@ static netdev_tx_t __ei_start_xmit(struct sk_buff *skb,  	spin_unlock(&ei_local->page_lock);  	enable_irq_lockdep_irqrestore(dev->irq, &flags); - -	dev_kfree_skb (skb); +	skb_tx_timestamp(skb); +	dev_kfree_skb(skb);  	dev->stats.tx_bytes += send_length;  	return NETDEV_TX_OK; @@ -442,15 +432,13 @@ static irqreturn_t __ei_interrupt(int irq, void *dev_id)  	spin_lock(&ei_local->page_lock); -	if (ei_local->irqlock) -	{ +	if (ei_local->irqlock) {  		/*  		 * This might just be an interrupt for a PCI device sharing  		 * this line  		 */ -		printk("%s: Interrupted while interrupts are masked!" -			   " isr=%#2x imr=%#2x.\n", -			   dev->name, ei_inb_p(e8390_base + EN0_ISR), +		netdev_err(dev, "Interrupted while interrupts are masked! isr=%#2x imr=%#2x\n", +			   ei_inb_p(e8390_base + EN0_ISR),  			   ei_inb_p(e8390_base + EN0_IMR));  		spin_unlock(&ei_local->page_lock);  		return IRQ_NONE; @@ -459,15 +447,14 @@ static irqreturn_t __ei_interrupt(int irq, void *dev_id)  	/* Change to page 0 and read the intr status reg. */  	ei_outb_p(E8390_NODMA+E8390_PAGE0, e8390_base + E8390_CMD);  	if (ei_debug > 3) -		printk(KERN_DEBUG "%s: interrupt(isr=%#2.2x).\n", dev->name, +		netdev_dbg(dev, "interrupt(isr=%#2.2x)\n",  			   ei_inb_p(e8390_base + EN0_ISR));  	/* !!Assumption!! -- we stay in page 0.	 Don't break this. */  	while ((interrupts = ei_inb_p(e8390_base + EN0_ISR)) != 0 && -	       ++nr_serviced < MAX_SERVICE) -	{ +	       ++nr_serviced < MAX_SERVICE) {  		if (!netif_running(dev)) { -			printk(KERN_WARNING "%s: interrupt from stopped card\n", dev->name); +			netdev_warn(dev, "interrupt from stopped card\n");  			/* rmk - acknowledge the interrupts */  			ei_outb_p(interrupts, e8390_base + EN0_ISR);  			interrupts = 0; @@ -475,8 +462,7 @@ static irqreturn_t __ei_interrupt(int irq, void *dev_id)  		}  		if (interrupts & ENISR_OVER)  			ei_rx_overrun(dev); -		else if (interrupts & (ENISR_RX+ENISR_RX_ERR)) -		{ +		else if (interrupts & (ENISR_RX+ENISR_RX_ERR)) {  			/* Got a good (?) packet. */  			ei_receive(dev);  		} @@ -486,35 +472,30 @@ static irqreturn_t __ei_interrupt(int irq, void *dev_id)  		else if (interrupts & ENISR_TX_ERR)  			ei_tx_err(dev); -		if (interrupts & ENISR_COUNTERS) -		{ +		if (interrupts & ENISR_COUNTERS) {  			dev->stats.rx_frame_errors += ei_inb_p(e8390_base + EN0_COUNTER0);  			dev->stats.rx_crc_errors   += ei_inb_p(e8390_base + EN0_COUNTER1); -			dev->stats.rx_missed_errors+= ei_inb_p(e8390_base + EN0_COUNTER2); +			dev->stats.rx_missed_errors += ei_inb_p(e8390_base + EN0_COUNTER2);  			ei_outb_p(ENISR_COUNTERS, e8390_base + EN0_ISR); /* Ack intr. */  		}  		/* Ignore any RDC interrupts that make it back to here. */  		if (interrupts & ENISR_RDC) -		{  			ei_outb_p(ENISR_RDC, e8390_base + EN0_ISR); -		}  		ei_outb_p(E8390_NODMA+E8390_PAGE0+E8390_START, e8390_base + E8390_CMD);  	} -	if (interrupts && ei_debug) -	{ +	if (interrupts && ei_debug) {  		ei_outb_p(E8390_NODMA+E8390_PAGE0+E8390_START, e8390_base + E8390_CMD); -		if (nr_serviced >= MAX_SERVICE) -		{ +		if (nr_serviced >= MAX_SERVICE) {  			/* 0xFF is valid for a card removal */ -			if(interrupts!=0xFF) -				printk(KERN_WARNING "%s: Too much work at interrupt, status %#2.2x\n", -				   dev->name, interrupts); +			if (interrupts != 0xFF) +				netdev_warn(dev, "Too much work at interrupt, status %#2.2x\n", +					    interrupts);  			ei_outb_p(ENISR_ALL, e8390_base + EN0_ISR); /* Ack. most intrs. */  		} else { -			printk(KERN_WARNING "%s: unknown interrupt %#2x\n", dev->name, interrupts); +			netdev_warn(dev, "unknown interrupt %#2x\n", interrupts);  			ei_outb_p(0xff, e8390_base + EN0_ISR); /* Ack. all intrs. */  		}  	} @@ -554,30 +535,32 @@ static void ei_tx_err(struct net_device *dev)  	unsigned char tx_was_aborted = txsr & (ENTSR_ABT+ENTSR_FU);  #ifdef VERBOSE_ERROR_DUMP -	printk(KERN_DEBUG "%s: transmitter error (%#2x): ", dev->name, txsr); +	netdev_dbg(dev, "transmitter error (%#2x):", txsr);  	if (txsr & ENTSR_ABT) -		printk("excess-collisions "); +		pr_cont(" excess-collisions ");  	if (txsr & ENTSR_ND) -		printk("non-deferral "); +		pr_cont(" non-deferral ");  	if (txsr & ENTSR_CRS) -		printk("lost-carrier "); +		pr_cont(" lost-carrier ");  	if (txsr & ENTSR_FU) -		printk("FIFO-underrun "); +		pr_cont(" FIFO-underrun ");  	if (txsr & ENTSR_CDH) -		printk("lost-heartbeat "); -	printk("\n"); +		pr_cont(" lost-heartbeat "); +	pr_cont("\n");  #endif  	ei_outb_p(ENISR_TX_ERR, e8390_base + EN0_ISR); /* Ack intr. */  	if (tx_was_aborted)  		ei_tx_intr(dev); -	else -	{ +	else {  		dev->stats.tx_errors++; -		if (txsr & ENTSR_CRS) dev->stats.tx_carrier_errors++; -		if (txsr & ENTSR_CDH) dev->stats.tx_heartbeat_errors++; -		if (txsr & ENTSR_OWC) dev->stats.tx_window_errors++; +		if (txsr & ENTSR_CRS) +			dev->stats.tx_carrier_errors++; +		if (txsr & ENTSR_CDH) +			dev->stats.tx_heartbeat_errors++; +		if (txsr & ENTSR_OWC) +			dev->stats.tx_window_errors++;  	}  } @@ -603,52 +586,45 @@ static void ei_tx_intr(struct net_device *dev)  	 */  	ei_local->txqueue--; -	if (ei_local->tx1 < 0) -	{ +	if (ei_local->tx1 < 0) {  		if (ei_local->lasttx != 1 && ei_local->lasttx != -1) -			printk(KERN_ERR "%s: bogus last_tx_buffer %d, tx1=%d.\n", -				ei_local->name, ei_local->lasttx, ei_local->tx1); +			pr_err("%s: bogus last_tx_buffer %d, tx1=%d\n", +			       ei_local->name, ei_local->lasttx, ei_local->tx1);  		ei_local->tx1 = 0; -		if (ei_local->tx2 > 0) -		{ +		if (ei_local->tx2 > 0) {  			ei_local->txing = 1;  			NS8390_trigger_send(dev, ei_local->tx2, ei_local->tx_start_page + 6);  			dev->trans_start = jiffies;  			ei_local->tx2 = -1,  			ei_local->lasttx = 2; -		} -		else ei_local->lasttx = 20, ei_local->txing = 0; -	} -	else if (ei_local->tx2 < 0) -	{ +		} else +			ei_local->lasttx = 20, ei_local->txing = 0; +	} else if (ei_local->tx2 < 0) {  		if (ei_local->lasttx != 2  &&  ei_local->lasttx != -2) -			printk("%s: bogus last_tx_buffer %d, tx2=%d.\n", -				ei_local->name, ei_local->lasttx, ei_local->tx2); +			pr_err("%s: bogus last_tx_buffer %d, tx2=%d\n", +			       ei_local->name, ei_local->lasttx, ei_local->tx2);  		ei_local->tx2 = 0; -		if (ei_local->tx1 > 0) -		{ +		if (ei_local->tx1 > 0) {  			ei_local->txing = 1;  			NS8390_trigger_send(dev, ei_local->tx1, ei_local->tx_start_page);  			dev->trans_start = jiffies;  			ei_local->tx1 = -1;  			ei_local->lasttx = 1; -		} -		else +		} else  			ei_local->lasttx = 10, ei_local->txing = 0; -	} -//	else printk(KERN_WARNING "%s: unexpected TX-done interrupt, lasttx=%d.\n", -//			dev->name, ei_local->lasttx); +	} /* else +		netdev_warn(dev, "unexpected TX-done interrupt, lasttx=%d\n", +			    ei_local->lasttx); +*/  	/* Minimize Tx latency: update the statistics after we restart TXing. */  	if (status & ENTSR_COL)  		dev->stats.collisions++;  	if (status & ENTSR_PTX)  		dev->stats.tx_packets++; -	else -	{ +	else {  		dev->stats.tx_errors++; -		if (status & ENTSR_ABT) -		{ +		if (status & ENTSR_ABT) {  			dev->stats.tx_aborted_errors++;  			dev->stats.collisions += 16;  		} @@ -682,8 +658,7 @@ static void ei_receive(struct net_device *dev)  	struct e8390_pkt_hdr rx_frame;  	int num_rx_pages = ei_local->stop_page-ei_local->rx_start_page; -	while (++rx_pkt_count < 10) -	{ +	while (++rx_pkt_count < 10) {  		int pkt_len, pkt_stat;  		/* Get the rx page (incoming packet pointer). */ @@ -702,9 +677,11 @@ static void ei_receive(struct net_device *dev)  		   Keep quiet if it looks like a card removal. One problem here  		   is that some clones crash in roughly the same way.  		 */ -		if (ei_debug > 0  &&  this_frame != ei_local->current_page && (this_frame!=0x0 || rxing_page!=0xFF)) -			printk(KERN_ERR "%s: mismatched read page pointers %2x vs %2x.\n", -				   dev->name, this_frame, ei_local->current_page); +		if (ei_debug > 0 && +		    this_frame != ei_local->current_page && +		    (this_frame != 0x0 || rxing_page != 0xFF)) +			netdev_err(dev, "mismatched read page pointers %2x vs %2x\n", +				   this_frame, ei_local->current_page);  		if (this_frame == rxing_page)	/* Read all the frames? */  			break;				/* Done for now */ @@ -730,46 +707,39 @@ static void ei_receive(struct net_device *dev)  			continue;  		} -		if (pkt_len < 60  ||  pkt_len > 1518) -		{ +		if (pkt_len < 60  ||  pkt_len > 1518) {  			if (ei_debug) -				printk(KERN_DEBUG "%s: bogus packet size: %d, status=%#2x nxpg=%#2x.\n", -					   dev->name, rx_frame.count, rx_frame.status, +				netdev_dbg(dev, "bogus packet size: %d, status=%#2x nxpg=%#2x\n", +					   rx_frame.count, rx_frame.status,  					   rx_frame.next);  			dev->stats.rx_errors++;  			dev->stats.rx_length_errors++; -		} -		 else if ((pkt_stat & 0x0F) == ENRSR_RXOK) -		{ +		} else if ((pkt_stat & 0x0F) == ENRSR_RXOK) {  			struct sk_buff *skb;  			skb = dev_alloc_skb(pkt_len+2); -			if (skb == NULL) -			{ +			if (skb == NULL) {  				if (ei_debug > 1) -					printk(KERN_DEBUG "%s: Couldn't allocate a sk_buff of size %d.\n", -						   dev->name, pkt_len); +					netdev_dbg(dev, "Couldn't allocate a sk_buff of size %d\n", +						   pkt_len);  				dev->stats.rx_dropped++;  				break; -			} -			else -			{ -				skb_reserve(skb,2);	/* IP headers on 16 byte boundaries */ +			} else { +				skb_reserve(skb, 2);	/* IP headers on 16 byte boundaries */  				skb_put(skb, pkt_len);	/* Make room */  				ei_block_input(dev, pkt_len, skb, current_offset + sizeof(rx_frame)); -				skb->protocol=eth_type_trans(skb,dev); -				netif_rx(skb); +				skb->protocol = eth_type_trans(skb, dev); +				if (!skb_defer_rx_timestamp(skb)) +					netif_rx(skb);  				dev->stats.rx_packets++;  				dev->stats.rx_bytes += pkt_len;  				if (pkt_stat & ENRSR_PHY)  					dev->stats.multicast++;  			} -		} -		else -		{ +		} else {  			if (ei_debug) -				printk(KERN_DEBUG "%s: bogus packet: status=%#2x nxpg=%#2x size=%d\n", -					   dev->name, rx_frame.status, rx_frame.next, +				netdev_dbg(dev, "bogus packet: status=%#2x nxpg=%#2x size=%d\n", +					   rx_frame.status, rx_frame.next,  					   rx_frame.count);  			dev->stats.rx_errors++;  			/* NB: The NIC counts CRC, frame and missed errors. */ @@ -780,8 +750,8 @@ static void ei_receive(struct net_device *dev)  		/* This _should_ never happen: it's here for avoiding bad clones. */  		if (next_frame >= ei_local->stop_page) { -			printk("%s: next frame inconsistency, %#2x\n", dev->name, -				   next_frame); +			netdev_notice(dev, "next frame inconsistency, %#2x\n", +				      next_frame);  			next_frame = ei_local->rx_start_page;  		}  		ei_local->current_page = next_frame; @@ -821,7 +791,7 @@ static void ei_rx_overrun(struct net_device *dev)  	ei_outb_p(E8390_NODMA+E8390_PAGE0+E8390_STOP, e8390_base+E8390_CMD);  	if (ei_debug > 1) -		printk(KERN_DEBUG "%s: Receiver overrun.\n", dev->name); +		netdev_dbg(dev, "Receiver overrun\n");  	dev->stats.rx_over_errors++;  	/* @@ -844,8 +814,7 @@ static void ei_rx_overrun(struct net_device *dev)  	 * step is vital, and skipping it will cause no end of havoc.  	 */ -	if (was_txing) -	{ +	if (was_txing) {  		unsigned char tx_completed = ei_inb_p(e8390_base+EN0_ISR) & (ENISR_TX+ENISR_TX_ERR);  		if (!tx_completed)  			must_resend = 1; @@ -869,7 +838,7 @@ static void ei_rx_overrun(struct net_device *dev)  	 */  	ei_outb_p(E8390_TXCONFIG, e8390_base + EN0_TXCR);  	if (must_resend) -    		ei_outb_p(E8390_NODMA + E8390_PAGE0 + E8390_START + E8390_TRANS, e8390_base + E8390_CMD); +		ei_outb_p(E8390_NODMA + E8390_PAGE0 + E8390_START + E8390_TRANS, e8390_base + E8390_CMD);  }  /* @@ -886,11 +855,11 @@ static struct net_device_stats *__ei_get_stats(struct net_device *dev)  	if (!netif_running(dev))  		return &dev->stats; -	spin_lock_irqsave(&ei_local->page_lock,flags); +	spin_lock_irqsave(&ei_local->page_lock, flags);  	/* Read the counter registers, assuming we are in page 0. */ -	dev->stats.rx_frame_errors += ei_inb_p(ioaddr + EN0_COUNTER0); -	dev->stats.rx_crc_errors   += ei_inb_p(ioaddr + EN0_COUNTER1); -	dev->stats.rx_missed_errors+= ei_inb_p(ioaddr + EN0_COUNTER2); +	dev->stats.rx_frame_errors  += ei_inb_p(ioaddr + EN0_COUNTER0); +	dev->stats.rx_crc_errors    += ei_inb_p(ioaddr + EN0_COUNTER1); +	dev->stats.rx_missed_errors += ei_inb_p(ioaddr + EN0_COUNTER2);  	spin_unlock_irqrestore(&ei_local->page_lock, flags);  	return &dev->stats; @@ -929,13 +898,11 @@ static void do_set_multicast_list(struct net_device *dev)  	int i;  	struct ei_device *ei_local = netdev_priv(dev); -	if (!(dev->flags&(IFF_PROMISC|IFF_ALLMULTI))) -	{ +	if (!(dev->flags&(IFF_PROMISC|IFF_ALLMULTI))) {  		memset(ei_local->mcfilter, 0, 8);  		if (!netdev_mc_empty(dev))  			make_mc_bits(ei_local->mcfilter, dev); -	} -	else +	} else  		memset(ei_local->mcfilter, 0xFF, 8);	/* mcast set to accept-all */  	/* @@ -954,23 +921,23 @@ static void do_set_multicast_list(struct net_device *dev)  	if (netif_running(dev))  		ei_outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR);  	ei_outb_p(E8390_NODMA + E8390_PAGE1, e8390_base + E8390_CMD); -	for(i = 0; i < 8; i++) -	{ +	for (i = 0; i < 8; i++) {  		ei_outb_p(ei_local->mcfilter[i], e8390_base + EN1_MULT_SHIFT(i));  #ifndef BUG_83C690 -		if(ei_inb_p(e8390_base + EN1_MULT_SHIFT(i))!=ei_local->mcfilter[i]) -			printk(KERN_ERR "Multicast filter read/write mismap %d\n",i); +		if (ei_inb_p(e8390_base + EN1_MULT_SHIFT(i)) != ei_local->mcfilter[i]) +			netdev_err(dev, "Multicast filter read/write mismap %d\n", +				   i);  #endif  	}  	ei_outb_p(E8390_NODMA + E8390_PAGE0, e8390_base + E8390_CMD); -  	if(dev->flags&IFF_PROMISC) -  		ei_outb_p(E8390_RXCONFIG | 0x18, e8390_base + EN0_RXCR); +	if (dev->flags&IFF_PROMISC) +		ei_outb_p(E8390_RXCONFIG | 0x18, e8390_base + EN0_RXCR);  	else if (dev->flags & IFF_ALLMULTI || !netdev_mc_empty(dev)) -  		ei_outb_p(E8390_RXCONFIG | 0x08, e8390_base + EN0_RXCR); -  	else -  		ei_outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR); - } +		ei_outb_p(E8390_RXCONFIG | 0x08, e8390_base + EN0_RXCR); +	else +		ei_outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR); +}  /*   *	Called without lock held. This is invoked from user context and may @@ -1042,8 +1009,8 @@ static void __NS8390_init(struct net_device *dev, int startp)  	    ? (0x48 | ENDCFG_WTS | (ei_local->bigendian ? ENDCFG_BOS : 0))  	    : 0x48; -	if(sizeof(struct e8390_pkt_hdr)!=4) -    		panic("8390.c: header struct mispacked\n"); +	if (sizeof(struct e8390_pkt_hdr) != 4) +		panic("8390.c: header struct mispacked\n");  	/* Follow National Semi's recommendations for initing the DP83902. */  	ei_outb_p(E8390_NODMA+E8390_PAGE0+E8390_STOP, e8390_base+E8390_CMD); /* 0x21 */  	ei_outb_p(endcfg, e8390_base + EN0_DCFG);	/* 0x48 or 0x49 */ @@ -1067,11 +1034,11 @@ static void __NS8390_init(struct net_device *dev, int startp)  	/* Copy the station address into the DS8390 registers. */  	ei_outb_p(E8390_NODMA + E8390_PAGE1 + E8390_STOP, e8390_base+E8390_CMD); /* 0x61 */ -	for(i = 0; i < 6; i++) -	{ +	for (i = 0; i < 6; i++) {  		ei_outb_p(dev->dev_addr[i], e8390_base + EN1_PHYS_SHIFT(i)); -		if (ei_debug > 1 && ei_inb_p(e8390_base + EN1_PHYS_SHIFT(i))!=dev->dev_addr[i]) -			printk(KERN_ERR "Hw. address read/write mismap %d\n",i); +		if (ei_debug > 1 && +		    ei_inb_p(e8390_base + EN1_PHYS_SHIFT(i)) != dev->dev_addr[i]) +			netdev_err(dev, "Hw. address read/write mismap %d\n", i);  	}  	ei_outb_p(ei_local->rx_start_page, e8390_base + EN1_CURPAG); @@ -1080,8 +1047,7 @@ static void __NS8390_init(struct net_device *dev, int startp)  	ei_local->tx1 = ei_local->tx2 = 0;  	ei_local->txing = 0; -	if (startp) -	{ +	if (startp) {  		ei_outb_p(0xff,  e8390_base + EN0_ISR);  		ei_outb_p(ENISR_ALL,  e8390_base + EN0_IMR);  		ei_outb_p(E8390_NODMA+E8390_PAGE0+E8390_START, e8390_base+E8390_CMD); @@ -1099,14 +1065,12 @@ static void NS8390_trigger_send(struct net_device *dev, unsigned int length,  								int start_page)  {  	unsigned long e8390_base = dev->base_addr; - 	struct ei_device *ei_local __attribute((unused)) = netdev_priv(dev); +	struct ei_device *ei_local __attribute((unused)) = netdev_priv(dev);  	ei_outb_p(E8390_NODMA+E8390_PAGE0, e8390_base+E8390_CMD); -	if (ei_inb_p(e8390_base + E8390_CMD) & E8390_TRANS) -	{ -		printk(KERN_WARNING "%s: trigger_send() called with the transmitter busy.\n", -			dev->name); +	if (ei_inb_p(e8390_base + E8390_CMD) & E8390_TRANS) { +		netdev_warn(dev, "trigger_send() called with the transmitter busy\n");  		return;  	}  	ei_outb_p(length & 0xff, e8390_base + EN0_TCNTLO);  |