diff options
Diffstat (limited to 'drivers/net/wan')
| -rw-r--r-- | drivers/net/wan/cosa.c | 4 | ||||
| -rw-r--r-- | drivers/net/wan/dlci.c | 5 | ||||
| -rw-r--r-- | drivers/net/wan/dscc4.c | 2 | ||||
| -rw-r--r-- | drivers/net/wan/farsync.c | 144 | ||||
| -rw-r--r-- | drivers/net/wan/hd64570.c | 1 | ||||
| -rw-r--r-- | drivers/net/wan/hd64570.h | 4 | ||||
| -rw-r--r-- | drivers/net/wan/hd64572.c | 1 | ||||
| -rw-r--r-- | drivers/net/wan/hd64572.h | 2 | ||||
| -rw-r--r-- | drivers/net/wan/hostess_sv11.c | 2 | ||||
| -rw-r--r-- | drivers/net/wan/lmc/lmc_main.c | 5 | ||||
| -rw-r--r-- | drivers/net/wan/pc300too.c | 1 | ||||
| -rw-r--r-- | drivers/net/wan/pci200syn.c | 1 | ||||
| -rw-r--r-- | drivers/net/wan/sbni.c | 90 | ||||
| -rw-r--r-- | drivers/net/wan/sdla.c | 4 | ||||
| -rw-r--r-- | drivers/net/wan/sealevel.c | 2 | ||||
| -rw-r--r-- | drivers/net/wan/wanxl.c | 2 | ||||
| -rw-r--r-- | drivers/net/wan/x25_asy.c | 6 | ||||
| -rw-r--r-- | drivers/net/wan/x25_asy.h | 2 | ||||
| -rw-r--r-- | drivers/net/wan/z85230.h | 27 | 
19 files changed, 97 insertions, 208 deletions
diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c index 84734a80509..83c39e2858b 100644 --- a/drivers/net/wan/cosa.c +++ b/drivers/net/wan/cosa.c @@ -1521,11 +1521,7 @@ static int cosa_reset_and_read_id(struct cosa_data *cosa, char *idstring)  	cosa_putstatus(cosa, 0);  	cosa_getdata8(cosa);  	cosa_putstatus(cosa, SR_RST); -#ifdef MODULE  	msleep(500); -#else -	udelay(5*100000); -#endif  	/* Disable all IRQs from the card */  	cosa_putstatus(cosa, 0); diff --git a/drivers/net/wan/dlci.c b/drivers/net/wan/dlci.c index 0d1c7592efa..19f7cb2cdef 100644 --- a/drivers/net/wan/dlci.c +++ b/drivers/net/wan/dlci.c @@ -71,12 +71,9 @@ static int dlci_header(struct sk_buff *skb, struct net_device *dev,  		       const void *saddr, unsigned len)  {  	struct frhdr		hdr; -	struct dlci_local	*dlp;  	unsigned int		hlen;  	char			*dest; -	dlp = netdev_priv(dev); -  	hdr.control = FRAD_I_UI;  	switch (type)  	{ @@ -107,11 +104,9 @@ static int dlci_header(struct sk_buff *skb, struct net_device *dev,  static void dlci_receive(struct sk_buff *skb, struct net_device *dev)  { -	struct dlci_local *dlp;  	struct frhdr		*hdr;  	int					process, header; -	dlp = netdev_priv(dev);  	if (!pskb_may_pull(skb, sizeof(*hdr))) {  		netdev_notice(dev, "invalid data no header\n");  		dev->stats.rx_errors++; diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c index 851dc7b7e8b..288610df205 100644 --- a/drivers/net/wan/dscc4.c +++ b/drivers/net/wan/dscc4.c @@ -699,8 +699,6 @@ static void dscc4_free1(struct pci_dev *pdev)  	for (i = 0; i < dev_per_card; i++)  		unregister_hdlc_device(dscc4_to_dev(root + i)); -	pci_set_drvdata(pdev, NULL); -  	for (i = 0; i < dev_per_card; i++)  		free_netdev(root[i].dev);  	kfree(root); diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c index 3f0c4f26875..1f041271f7f 100644 --- a/drivers/net/wan/farsync.c +++ b/drivers/net/wan/farsync.c @@ -26,6 +26,7 @@  #include <linux/ioport.h>  #include <linux/init.h>  #include <linux/interrupt.h> +#include <linux/delay.h>  #include <linux/if.h>  #include <linux/hdlc.h>  #include <asm/io.h> @@ -678,7 +679,6 @@ static inline void  fst_cpureset(struct fst_card_info *card)  {  	unsigned char interrupt_line_register; -	unsigned long j = jiffies + 1;  	unsigned int regval;  	if (card->family == FST_FAMILY_TXU) { @@ -696,16 +696,12 @@ fst_cpureset(struct fst_card_info *card)  		/*  		 * We are delaying here to allow the 9054 to reset itself  		 */ -		j = jiffies + 1; -		while (jiffies < j) -			/* Do nothing */ ; +		usleep_range(10, 20);  		outw(0x240f, card->pci_conf + CNTRL_9054 + 2);  		/*  		 * We are delaying here to allow the 9054 to reload its eeprom  		 */ -		j = jiffies + 1; -		while (jiffies < j) -			/* Do nothing */ ; +		usleep_range(10, 20);  		outw(0x040f, card->pci_conf + CNTRL_9054 + 2);  		if (pci_write_config_byte @@ -886,20 +882,18 @@ fst_rx_dma_complete(struct fst_card_info *card, struct fst_port_info *port,   *      Receive a frame through the DMA   */  static inline void -fst_rx_dma(struct fst_card_info *card, dma_addr_t skb, -	   dma_addr_t mem, int len) +fst_rx_dma(struct fst_card_info *card, dma_addr_t dma, u32 mem, int len)  {  	/*  	 * This routine will setup the DMA and start it  	 */ -	dbg(DBG_RX, "In fst_rx_dma %lx %lx %d\n", -	    (unsigned long) skb, (unsigned long) mem, len); +	dbg(DBG_RX, "In fst_rx_dma %x %x %d\n", (u32)dma, mem, len);  	if (card->dmarx_in_progress) {  		dbg(DBG_ASS, "In fst_rx_dma while dma in progress\n");  	} -	outl(skb, card->pci_conf + DMAPADR0);	/* Copy to here */ +	outl(dma, card->pci_conf + DMAPADR0);	/* Copy to here */  	outl(mem, card->pci_conf + DMALADR0);	/* from here */  	outl(len, card->pci_conf + DMASIZ0);	/* for this length */  	outl(0x00000000c, card->pci_conf + DMADPR0);	/* In this direction */ @@ -915,20 +909,19 @@ fst_rx_dma(struct fst_card_info *card, dma_addr_t skb,   *      Send a frame through the DMA   */  static inline void -fst_tx_dma(struct fst_card_info *card, unsigned char *skb, -	   unsigned char *mem, int len) +fst_tx_dma(struct fst_card_info *card, dma_addr_t dma, u32 mem, int len)  {  	/*  	 * This routine will setup the DMA and start it.  	 */ -	dbg(DBG_TX, "In fst_tx_dma %p %p %d\n", skb, mem, len); +	dbg(DBG_TX, "In fst_tx_dma %x %x %d\n", (u32)dma, mem, len);  	if (card->dmatx_in_progress) {  		dbg(DBG_ASS, "In fst_tx_dma while dma in progress\n");  	} -	outl((unsigned long) skb, card->pci_conf + DMAPADR1);	/* Copy from here */ -	outl((unsigned long) mem, card->pci_conf + DMALADR1);	/* to here */ +	outl(dma, card->pci_conf + DMAPADR1);	/* Copy from here */ +	outl(mem, card->pci_conf + DMALADR1);	/* to here */  	outl(len, card->pci_conf + DMASIZ1);	/* for this length */  	outl(0x000000004, card->pci_conf + DMADPR1);	/* In this direction */ @@ -1405,9 +1398,7 @@ do_bottom_half_tx(struct fst_card_info *card)  					card->dma_len_tx = skb->len;  					card->dma_txpos = port->txpos;  					fst_tx_dma(card, -						   (char *) card-> -						   tx_dma_handle_card, -						   (char *) +						   card->tx_dma_handle_card,  						   BUF_OFFSET(txBuffer[pi]  							      [port->txpos][0]),  						   skb->len); @@ -1972,6 +1963,7 @@ fst_get_iface(struct fst_card_info *card, struct fst_port_info *port,  	}  	i = port->index; +	memset(&sync, 0, sizeof(sync));  	sync.clock_rate = FST_RDL(card, portConfig[i].lineSpeed);  	/* Lucky card and linux use same encoding here */  	sync.clock_type = FST_RDB(card, portConfig[i].internalClock) == @@ -2371,7 +2363,7 @@ static char *type_strings[] = {  	"FarSync TE1"  }; -static void +static int  fst_init_card(struct fst_card_info *card)  {  	int i; @@ -2382,24 +2374,21 @@ fst_init_card(struct fst_card_info *card)  	 * we'll have to revise it in some way then.  	 */  	for (i = 0; i < card->nports; i++) { -                err = register_hdlc_device(card->ports[i].dev); -                if (err < 0) { -			int j; +		err = register_hdlc_device(card->ports[i].dev); +		if (err < 0) {  			pr_err("Cannot register HDLC device for port %d (errno %d)\n", -			       i, -err); -			for (j = i; j < card->nports; j++) { -				free_netdev(card->ports[j].dev); -				card->ports[j].dev = NULL; -			} -                        card->nports = i; -                        break; -                } +				i, -err); +			while (i--) +				unregister_hdlc_device(card->ports[i].dev); +			return err; +		}  	}  	pr_info("%s-%s: %s IRQ%d, %d ports\n",  		port_to_dev(&card->ports[0])->name,  		port_to_dev(&card->ports[card->nports - 1])->name,  		type_strings[card->type], card->irq, card->nports); +	return 0;  }  static const struct net_device_ops fst_ops = { @@ -2455,15 +2444,12 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	/* Try to enable the device */  	if ((err = pci_enable_device(pdev)) != 0) {  		pr_err("Failed to enable card. Err %d\n", -err); -		kfree(card); -		return err; +		goto enable_fail;  	}  	if ((err = pci_request_regions(pdev, "FarSync")) !=0) {  		pr_err("Failed to allocate regions. Err %d\n", -err); -		pci_disable_device(pdev); -		kfree(card); -	        return err; +		goto regions_fail;  	}  	/* Get virtual addresses of memory regions */ @@ -2472,30 +2458,21 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	card->phys_ctlmem = pci_resource_start(pdev, 3);  	if ((card->mem = ioremap(card->phys_mem, FST_MEMSIZE)) == NULL) {  		pr_err("Physical memory remap failed\n"); -		pci_release_regions(pdev); -		pci_disable_device(pdev); -		kfree(card); -		return -ENODEV; +		err = -ENODEV; +		goto ioremap_physmem_fail;  	}  	if ((card->ctlmem = ioremap(card->phys_ctlmem, 0x10)) == NULL) {  		pr_err("Control memory remap failed\n"); -		pci_release_regions(pdev); -		pci_disable_device(pdev); -		iounmap(card->mem); -		kfree(card); -		return -ENODEV; +		err = -ENODEV; +		goto ioremap_ctlmem_fail;  	}  	dbg(DBG_PCI, "kernel mem %p, ctlmem %p\n", card->mem, card->ctlmem);  	/* Register the interrupt handler */  	if (request_irq(pdev->irq, fst_intr, IRQF_SHARED, FST_DEV_NAME, card)) {  		pr_err("Unable to register interrupt %d\n", card->irq); -		pci_release_regions(pdev); -		pci_disable_device(pdev); -		iounmap(card->ctlmem); -		iounmap(card->mem); -		kfree(card); -		return -ENODEV; +		err = -ENODEV; +		goto irq_fail;  	}  	/* Record info we need */ @@ -2521,13 +2498,8 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)  			while (i--)  				free_netdev(card->ports[i].dev);  			pr_err("FarSync: out of memory\n"); -                        free_irq(card->irq, card); -                        pci_release_regions(pdev); -                        pci_disable_device(pdev); -                        iounmap(card->ctlmem); -                        iounmap(card->mem); -                        kfree(card); -                        return -ENODEV; +			err = -ENOMEM; +			goto hdlcdev_fail;  		}  		card->ports[i].dev    = dev;                  card->ports[i].card   = card; @@ -2573,9 +2545,16 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	pci_set_drvdata(pdev, card);  	/* Remainder of card setup */ +	if (no_of_cards_added >= FST_MAX_CARDS) { +		pr_err("FarSync: too many cards\n"); +		err = -ENOMEM; +		goto card_array_fail; +	}  	fst_card_array[no_of_cards_added] = card;  	card->card_no = no_of_cards_added++;	/* Record instance and bump it */ -	fst_init_card(card); +	err = fst_init_card(card); +	if (err) +		goto init_card_fail;  	if (card->family == FST_FAMILY_TXU) {  		/*  		 * Allocate a dma buffer for transmit and receives @@ -2585,29 +2564,46 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)  					 &card->rx_dma_handle_card);  		if (card->rx_dma_handle_host == NULL) {  			pr_err("Could not allocate rx dma buffer\n"); -			fst_disable_intr(card); -			pci_release_regions(pdev); -			pci_disable_device(pdev); -			iounmap(card->ctlmem); -			iounmap(card->mem); -			kfree(card); -			return -ENOMEM; +			err = -ENOMEM; +			goto rx_dma_fail;  		}  		card->tx_dma_handle_host =  		    pci_alloc_consistent(card->device, FST_MAX_MTU,  					 &card->tx_dma_handle_card);  		if (card->tx_dma_handle_host == NULL) {  			pr_err("Could not allocate tx dma buffer\n"); -			fst_disable_intr(card); -			pci_release_regions(pdev); -			pci_disable_device(pdev); -			iounmap(card->ctlmem); -			iounmap(card->mem); -			kfree(card); -			return -ENOMEM; +			err = -ENOMEM; +			goto tx_dma_fail;  		}  	}  	return 0;		/* Success */ + +tx_dma_fail: +	pci_free_consistent(card->device, FST_MAX_MTU, +			    card->rx_dma_handle_host, +			    card->rx_dma_handle_card); +rx_dma_fail: +	fst_disable_intr(card); +	for (i = 0 ; i < card->nports ; i++) +		unregister_hdlc_device(card->ports[i].dev); +init_card_fail: +	fst_card_array[card->card_no] = NULL; +card_array_fail: +	for (i = 0 ; i < card->nports ; i++) +		free_netdev(card->ports[i].dev); +hdlcdev_fail: +	free_irq(card->irq, card); +irq_fail: +	iounmap(card->ctlmem); +ioremap_ctlmem_fail: +	iounmap(card->mem); +ioremap_physmem_fail: +	pci_release_regions(pdev); +regions_fail: +	pci_disable_device(pdev); +enable_fail: +	kfree(card); +	return err;  }  /* diff --git a/drivers/net/wan/hd64570.c b/drivers/net/wan/hd64570.c index 62f01b74cbd..dc334c85d96 100644 --- a/drivers/net/wan/hd64570.c +++ b/drivers/net/wan/hd64570.c @@ -29,7 +29,6 @@  #include <linux/fcntl.h>  #include <linux/hdlc.h>  #include <linux/in.h> -#include <linux/init.h>  #include <linux/interrupt.h>  #include <linux/ioport.h>  #include <linux/jiffies.h> diff --git a/drivers/net/wan/hd64570.h b/drivers/net/wan/hd64570.h index e4f539ad071..10963e8f4b3 100644 --- a/drivers/net/wan/hd64570.h +++ b/drivers/net/wan/hd64570.h @@ -159,7 +159,7 @@ typedef struct {  /* Packet Descriptor Status bits */  #define ST_TX_EOM     0x80	/* End of frame */ -#define ST_TX_EOT     0x01	/* End of transmition */ +#define ST_TX_EOT     0x01	/* End of transmission */  #define ST_RX_EOM     0x80	/* End of frame */  #define ST_RX_SHORT   0x40	/* Short frame */ @@ -211,7 +211,7 @@ typedef struct {  #define CTL_NORTS     0x01  #define CTL_IDLE      0x10	/* Transmit an idle pattern */ -#define CTL_UDRNC     0x20	/* Idle after CRC or FCS+flag transmition */ +#define CTL_UDRNC     0x20	/* Idle after CRC or FCS+flag transmission */  #define ST0_TXRDY     0x02	/* TX ready */  #define ST0_RXRDY     0x01	/* RX ready */ diff --git a/drivers/net/wan/hd64572.c b/drivers/net/wan/hd64572.c index 6269a09c736..e92ecf1d331 100644 --- a/drivers/net/wan/hd64572.c +++ b/drivers/net/wan/hd64572.c @@ -29,7 +29,6 @@  #include <linux/fcntl.h>  #include <linux/hdlc.h>  #include <linux/in.h> -#include <linux/init.h>  #include <linux/interrupt.h>  #include <linux/ioport.h>  #include <linux/jiffies.h> diff --git a/drivers/net/wan/hd64572.h b/drivers/net/wan/hd64572.h index 96567c2dc4d..22137ee669c 100644 --- a/drivers/net/wan/hd64572.h +++ b/drivers/net/wan/hd64572.h @@ -218,7 +218,7 @@ typedef struct {  #define ST_TX_EOM     0x80	/* End of frame */  #define ST_TX_UNDRRUN 0x08  #define ST_TX_OWNRSHP 0x02 -#define ST_TX_EOT     0x01	/* End of transmition */ +#define ST_TX_EOT     0x01	/* End of transmission */  #define ST_RX_EOM     0x80	/* End of frame */  #define ST_RX_SHORT   0x40	/* Short frame */ diff --git a/drivers/net/wan/hostess_sv11.c b/drivers/net/wan/hostess_sv11.c index 3d80e4267de..3d741663fd6 100644 --- a/drivers/net/wan/hostess_sv11.c +++ b/drivers/net/wan/hostess_sv11.c @@ -220,7 +220,7 @@ static struct z8530_dev *sv11_init(int iobase, int irq)  	/* We want a fast IRQ for this device. Actually we'd like an even faster  	   IRQ ;) - This is one driver RtLinux is made for */ -	if (request_irq(irq, z8530_interrupt, IRQF_DISABLED, +	if (request_irq(irq, z8530_interrupt, 0,  			"Hostess SV11", sv) < 0) {  		pr_warn("IRQ %d already in use\n", irq);  		goto err_irq; diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c index 7ef435bab42..b2fe9bb8963 100644 --- a/drivers/net/wan/lmc/lmc_main.c +++ b/drivers/net/wan/lmc/lmc_main.c @@ -49,7 +49,6 @@  #include <linux/pci.h>  #include <linux/delay.h>  #include <linux/hdlc.h> -#include <linux/init.h>  #include <linux/in.h>  #include <linux/if_arp.h>  #include <linux/netdevice.h> @@ -973,7 +972,6 @@ static int lmc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)      return 0;  err_hdlcdev: -	pci_set_drvdata(pdev, NULL);  	kfree(sc);  err_kzalloc:  	pci_release_regions(pdev); @@ -995,7 +993,6 @@ static void lmc_remove_one(struct pci_dev *pdev)  		free_netdev(dev);  		pci_release_regions(pdev);  		pci_disable_device(pdev); -		pci_set_drvdata(pdev, NULL);  	}  } @@ -2126,7 +2123,7 @@ bug_out:      spin_unlock_irqrestore(&sc->lmc_lock, flags); -    lmc_trace(dev, "lmc_driver_timout out"); +    lmc_trace(dev, "lmc_driver_timeout out");  } diff --git a/drivers/net/wan/pc300too.c b/drivers/net/wan/pc300too.c index 53efc57fcac..5b72f7f8c51 100644 --- a/drivers/net/wan/pc300too.c +++ b/drivers/net/wan/pc300too.c @@ -281,7 +281,6 @@ static void pc300_pci_remove_one(struct pci_dev *pdev)  	pci_release_regions(pdev);  	pci_disable_device(pdev); -	pci_set_drvdata(pdev, NULL);  	if (card->ports[0].netdev)  		free_netdev(card->ports[0].netdev);  	if (card->ports[1].netdev) diff --git a/drivers/net/wan/pci200syn.c b/drivers/net/wan/pci200syn.c index ddbce54040e..fe4e3ece3c4 100644 --- a/drivers/net/wan/pci200syn.c +++ b/drivers/net/wan/pci200syn.c @@ -260,7 +260,6 @@ static void pci200_pci_remove_one(struct pci_dev *pdev)  	pci_release_regions(pdev);  	pci_disable_device(pdev); -	pci_set_drvdata(pdev, NULL);  	if (card->ports[0].netdev)  		free_netdev(card->ports[0].netdev);  	if (card->ports[1].netdev) diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c index 5bbcb5e3ee0..1b89ecf0959 100644 --- a/drivers/net/wan/sbni.c +++ b/drivers/net/wan/sbni.c @@ -57,6 +57,7 @@  #include <net/net_namespace.h>  #include <net/arp.h> +#include <net/Space.h>  #include <asm/io.h>  #include <asm/types.h> @@ -148,10 +149,6 @@ static int  enslave( struct net_device *, struct net_device * );  static int  emancipate( struct net_device * );  #endif -#ifdef __i386__ -#define ASM_CRC 1 -#endif -  static const char  version[] =  	"Granch SBNI12 driver ver 5.0.1  Jun 22 2001  Denis I.Timofeev.\n"; @@ -1551,88 +1548,6 @@ __setup( "sbni=", sbni_setup );  /* -------------------------------------------------------------------------- */ -#ifdef ASM_CRC - -static u32 -calc_crc32( u32  crc,  u8  *p,  u32  len ) -{ -	register u32  _crc; -	_crc = crc; -	 -	__asm__ __volatile__ ( -		"xorl	%%ebx, %%ebx\n" -		"movl	%2, %%esi\n"  -		"movl	%3, %%ecx\n"  -		"movl	$crc32tab, %%edi\n" -		"shrl	$2, %%ecx\n" -		"jz	1f\n" - -		".align 4\n" -	"0:\n" -		"movb	%%al, %%bl\n" -		"movl	(%%esi), %%edx\n" -		"shrl	$8, %%eax\n" -		"xorb	%%dl, %%bl\n" -		"shrl	$8, %%edx\n" -		"xorl	(%%edi,%%ebx,4), %%eax\n" - -		"movb	%%al, %%bl\n" -		"shrl	$8, %%eax\n" -		"xorb	%%dl, %%bl\n" -		"shrl	$8, %%edx\n" -		"xorl	(%%edi,%%ebx,4), %%eax\n" - -		"movb	%%al, %%bl\n" -		"shrl	$8, %%eax\n" -		"xorb	%%dl, %%bl\n" -		"movb	%%dh, %%dl\n"  -		"xorl	(%%edi,%%ebx,4), %%eax\n" - -		"movb	%%al, %%bl\n" -		"shrl	$8, %%eax\n" -		"xorb	%%dl, %%bl\n" -		"addl	$4, %%esi\n" -		"xorl	(%%edi,%%ebx,4), %%eax\n" - -		"decl	%%ecx\n" -		"jnz	0b\n" - -	"1:\n" -		"movl	%3, %%ecx\n" -		"andl	$3, %%ecx\n" -		"jz	2f\n" - -		"movb	%%al, %%bl\n" -		"shrl	$8, %%eax\n" -		"xorb	(%%esi), %%bl\n" -		"xorl	(%%edi,%%ebx,4), %%eax\n" - -		"decl	%%ecx\n" -		"jz	2f\n" - -		"movb	%%al, %%bl\n" -		"shrl	$8, %%eax\n" -		"xorb	1(%%esi), %%bl\n" -		"xorl	(%%edi,%%ebx,4), %%eax\n" - -		"decl	%%ecx\n" -		"jz	2f\n" - -		"movb	%%al, %%bl\n" -		"shrl	$8, %%eax\n" -		"xorb	2(%%esi), %%bl\n" -		"xorl	(%%edi,%%ebx,4), %%eax\n" -	"2:\n" -		: "=a" (_crc) -		: "0" (_crc), "g" (p), "g" (len) -		: "bx", "cx", "dx", "si", "di" -	); - -	return  _crc; -} - -#else	/* ASM_CRC */ -  static u32  calc_crc32( u32  crc,  u8  *p,  u32  len )  { @@ -1642,9 +1557,6 @@ calc_crc32( u32  crc,  u8  *p,  u32  len )  	return  crc;  } -#endif	/* ASM_CRC */ - -  static u32  crc32tab[] __attribute__ ((aligned(8))) = {  	0xD202EF8D,  0xA505DF1B,  0x3C0C8EA1,  0x4B0BBE37,  	0xD56F2B94,  0xA2681B02,  0x3B614AB8,  0x4C667A2E, diff --git a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c index de3bbf43fc5..cdd45fb8a1f 100644 --- a/drivers/net/wan/sdla.c +++ b/drivers/net/wan/sdla.c @@ -1322,10 +1322,6 @@ NOTE:  This is rather a useless action right now, as the  static int sdla_change_mtu(struct net_device *dev, int new_mtu)  { -	struct frad_local *flp; - -	flp = netdev_priv(dev); -  	if (netif_running(dev))  		return -EBUSY; diff --git a/drivers/net/wan/sealevel.c b/drivers/net/wan/sealevel.c index 4f774847898..27860b4f590 100644 --- a/drivers/net/wan/sealevel.c +++ b/drivers/net/wan/sealevel.c @@ -266,7 +266,7 @@ static __init struct slvl_board *slvl_init(int iobase, int irq,  	/* We want a fast IRQ for this device. Actually we'd like an even faster  	   IRQ ;) - This is one driver RtLinux is made for */ -	if (request_irq(irq, z8530_interrupt, IRQF_DISABLED, +	if (request_irq(irq, z8530_interrupt, 0,  			"SeaLevel", dev) < 0) {  		pr_warn("IRQ %d already in use\n", irq);  		goto err_request_irq; diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c index 6a24a5a70cc..f76aa908158 100644 --- a/drivers/net/wan/wanxl.c +++ b/drivers/net/wan/wanxl.c @@ -355,6 +355,7 @@ static int wanxl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)  			ifr->ifr_settings.size = size; /* data size wanted */  			return -ENOBUFS;  		} +		memset(&line, 0, sizeof(line));  		line.clock_type = get_status(port)->clocking;  		line.clock_rate = 0;  		line.loopback = 0; @@ -541,7 +542,6 @@ static void wanxl_pci_remove_one(struct pci_dev *pdev)  	pci_release_regions(pdev);  	pci_disable_device(pdev); -	pci_set_drvdata(pdev, NULL);  	kfree(card);  } diff --git a/drivers/net/wan/x25_asy.c b/drivers/net/wan/x25_asy.c index 5895f197869..fa9fdfa128c 100644 --- a/drivers/net/wan/x25_asy.c +++ b/drivers/net/wan/x25_asy.c @@ -122,8 +122,12 @@ static int x25_asy_change_mtu(struct net_device *dev, int newmtu)  {  	struct x25_asy *sl = netdev_priv(dev);  	unsigned char *xbuff, *rbuff; -	int len = 2 * newmtu; +	int len; +	if (newmtu > 65534) +		return -EINVAL; + +	len = 2 * newmtu;  	xbuff = kmalloc(len + 4, GFP_ATOMIC);  	rbuff = kmalloc(len + 4, GFP_ATOMIC); diff --git a/drivers/net/wan/x25_asy.h b/drivers/net/wan/x25_asy.h index 8f0fc2e57e2..f57ee67836a 100644 --- a/drivers/net/wan/x25_asy.h +++ b/drivers/net/wan/x25_asy.h @@ -41,6 +41,6 @@ struct x25_asy {  #define X25_ASY_MAGIC 0x5303 -extern int x25_asy_init(struct net_device *dev); +int x25_asy_init(struct net_device *dev);  #endif	/* _LINUX_X25_ASY.H */ diff --git a/drivers/net/wan/z85230.h b/drivers/net/wan/z85230.h index f29d554fc07..2416a9d60bd 100644 --- a/drivers/net/wan/z85230.h +++ b/drivers/net/wan/z85230.h @@ -395,20 +395,19 @@ struct z8530_dev  extern u8 z8530_dead_port[];  extern u8 z8530_hdlc_kilostream_85230[];  extern u8 z8530_hdlc_kilostream[]; -extern irqreturn_t z8530_interrupt(int, void *); -extern void z8530_describe(struct z8530_dev *, char *mapping, unsigned long io); -extern int z8530_init(struct z8530_dev *); -extern int z8530_shutdown(struct z8530_dev *); -extern int z8530_sync_open(struct net_device *, struct z8530_channel *); -extern int z8530_sync_close(struct net_device *, struct z8530_channel *); -extern int z8530_sync_dma_open(struct net_device *, struct z8530_channel *); -extern int z8530_sync_dma_close(struct net_device *, struct z8530_channel *); -extern int z8530_sync_txdma_open(struct net_device *, struct z8530_channel *); -extern int z8530_sync_txdma_close(struct net_device *, struct z8530_channel *); -extern int z8530_channel_load(struct z8530_channel *, u8 *); -extern netdev_tx_t z8530_queue_xmit(struct z8530_channel *c, -					  struct sk_buff *skb); -extern void z8530_null_rx(struct z8530_channel *c, struct sk_buff *skb); +irqreturn_t z8530_interrupt(int, void *); +void z8530_describe(struct z8530_dev *, char *mapping, unsigned long io); +int z8530_init(struct z8530_dev *); +int z8530_shutdown(struct z8530_dev *); +int z8530_sync_open(struct net_device *, struct z8530_channel *); +int z8530_sync_close(struct net_device *, struct z8530_channel *); +int z8530_sync_dma_open(struct net_device *, struct z8530_channel *); +int z8530_sync_dma_close(struct net_device *, struct z8530_channel *); +int z8530_sync_txdma_open(struct net_device *, struct z8530_channel *); +int z8530_sync_txdma_close(struct net_device *, struct z8530_channel *); +int z8530_channel_load(struct z8530_channel *, u8 *); +netdev_tx_t z8530_queue_xmit(struct z8530_channel *c, struct sk_buff *skb); +void z8530_null_rx(struct z8530_channel *c, struct sk_buff *skb);  /*  | 
