diff options
Diffstat (limited to 'drivers/atm')
| -rw-r--r-- | drivers/atm/ambassador.c | 2 | ||||
| -rw-r--r-- | drivers/atm/firestream.c | 6 | ||||
| -rw-r--r-- | drivers/atm/firestream.h | 1 | ||||
| -rw-r--r-- | drivers/atm/fore200e.c | 2 | ||||
| -rw-r--r-- | drivers/atm/he.c | 14 | ||||
| -rw-r--r-- | drivers/atm/idt77105.c | 6 | ||||
| -rw-r--r-- | drivers/atm/idt77252.c | 10 | ||||
| -rw-r--r-- | drivers/atm/nicstar.c | 30 | ||||
| -rw-r--r-- | drivers/atm/solos-pci.c | 4 | 
9 files changed, 30 insertions, 45 deletions
diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c index 62a76076b54..f1a9198dfe5 100644 --- a/drivers/atm/ambassador.c +++ b/drivers/atm/ambassador.c @@ -1925,7 +1925,7 @@ static int ucode_init(loader_block *lb, amb_dev *dev)    const struct firmware *fw;    unsigned long start_address;    const struct ihex_binrec *rec; -  const char *errmsg = 0; +  const char *errmsg = NULL;    int res;    res = request_ihex_firmware(&fw, "atmsar11.fw", &dev->pci_dev->dev); diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c index b41c9481b67..82f2ae0d7cc 100644 --- a/drivers/atm/firestream.c +++ b/drivers/atm/firestream.c @@ -736,8 +736,8 @@ static void process_txdone_queue (struct fs_dev *dev, struct queue *q)  			skb = td->skb;  			if (skb == FS_VCC (ATM_SKB(skb)->vcc)->last_skb) { -				wake_up_interruptible (& FS_VCC (ATM_SKB(skb)->vcc)->close_wait);  				FS_VCC (ATM_SKB(skb)->vcc)->last_skb = NULL; +				wake_up_interruptible (& FS_VCC (ATM_SKB(skb)->vcc)->close_wait);  			}  			td->dev->ntxpckts--; @@ -1123,7 +1123,7 @@ static void fs_close(struct atm_vcc *atm_vcc)  		   this sleep_on, we'll lose any reference to these packets. Memory leak!  		   On the other hand, it's awfully convenient that we can abort a "close" that  		   is taking too long. Maybe just use non-interruptible sleep on? -- REW */ -		interruptible_sleep_on (& vcc->close_wait); +		wait_event_interruptible(vcc->close_wait, !vcc->last_skb);  	}  	txtp = &atm_vcc->qos.txtp; @@ -2000,7 +2000,7 @@ static void firestream_remove_one(struct pci_dev *pdev)  		fs_dprintk (FS_DEBUG_CLEANUP, "Freeing irq%d.\n", dev->irq);  		free_irq (dev->irq, dev); -		del_timer (&dev->timer); +		del_timer_sync (&dev->timer);  		atm_dev_deregister(dev->atm_dev);  		free_queue (dev, &dev->hp_txq); diff --git a/drivers/atm/firestream.h b/drivers/atm/firestream.h index 49e783e35ee..364eded3188 100644 --- a/drivers/atm/firestream.h +++ b/drivers/atm/firestream.h @@ -420,7 +420,6 @@ struct fs_transmit_config {  #define RC_FLAGS_BFPS_BFP27 (0xd << 17)  #define RC_FLAGS_BFPS_BFP47 (0xe << 17) -#define RC_FLAGS_BFPS       (0x1 << 17)  #define RC_FLAGS_BFPP       (0x1 << 21)  #define RC_FLAGS_TEVC       (0x1 << 22)  #define RC_FLAGS_TEP        (0x1 << 23) diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c index 204814e88e4..d4725fc0395 100644 --- a/drivers/atm/fore200e.c +++ b/drivers/atm/fore200e.c @@ -2780,7 +2780,7 @@ static struct pci_driver fore200e_pca_driver = {  static int __init fore200e_module_init(void)  { -	int err; +	int err = 0;  	printk(FORE200E "FORE Systems 200E-series ATM driver - version " FORE200E_VERSION "\n"); diff --git a/drivers/atm/he.c b/drivers/atm/he.c index 449f6298dc8..aa6be269866 100644 --- a/drivers/atm/he.c +++ b/drivers/atm/he.c @@ -419,7 +419,6 @@ static void he_remove_one(struct pci_dev *pci_dev)  	atm_dev_deregister(atm_dev);  	kfree(he_dev); -	pci_set_drvdata(pci_dev, NULL);  	pci_disable_device(pci_dev);  } @@ -2865,15 +2864,4 @@ static struct pci_driver he_driver = {  	.id_table =	he_pci_tbl,  }; -static int __init he_init(void) -{ -	return pci_register_driver(&he_driver); -} - -static void __exit he_cleanup(void) -{ -	pci_unregister_driver(&he_driver); -} - -module_init(he_init); -module_exit(he_cleanup); +module_pci_driver(he_driver); diff --git a/drivers/atm/idt77105.c b/drivers/atm/idt77105.c index 45d506363ab..909c95bd7be 100644 --- a/drivers/atm/idt77105.c +++ b/drivers/atm/idt77105.c @@ -368,9 +368,9 @@ EXPORT_SYMBOL(idt77105_init);  static void __exit idt77105_exit(void)  { -        /* turn off timers */ -        del_timer(&stats_timer); -        del_timer(&restart_timer); +	/* turn off timers */ +	del_timer_sync(&stats_timer); +	del_timer_sync(&restart_timer);  }  module_exit(idt77105_exit); diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c index 272f0092776..b621f56a36b 100644 --- a/drivers/atm/idt77252.c +++ b/drivers/atm/idt77252.c @@ -2551,12 +2551,12 @@ done:  		timeout = 5 * 1000;  		while (atomic_read(&vc->scq->used) > 0) {  			timeout = msleep_interruptible(timeout); -			if (!timeout) +			if (!timeout) { +				pr_warn("%s: SCQ drain timeout: %u used\n", +					card->name, atomic_read(&vc->scq->used));  				break; +			}  		} -		if (!timeout) -			printk("%s: SCQ drain timeout: %u used\n", -			       card->name, atomic_read(&vc->scq->used));  		writel(TCMDQ_HALT | vc->index, SAR_REG_TCMDQ);  		clear_scd(card, vc->scq, vc->class); @@ -3511,7 +3511,7 @@ static int init_card(struct atm_dev *dev)  	tmp = dev_get_by_name(&init_net, tname);	/* jhs: was "tmp = dev_get(tname);" */  	if (tmp) {  		memcpy(card->atmdev->esi, tmp->dev_addr, 6); - +		dev_put(tmp);  		printk("%s: ESI %pM\n", card->name, card->atmdev->esi);  	}  	/* diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c index 409502a78e7..9988ac98b6d 100644 --- a/drivers/atm/nicstar.c +++ b/drivers/atm/nicstar.c @@ -52,6 +52,7 @@  #include <asm/io.h>  #include <asm/uaccess.h>  #include <linux/atomic.h> +#include <linux/etherdevice.h>  #include "nicstar.h"  #ifdef CONFIG_ATM_NICSTAR_USE_SUNI  #include "suni.h" @@ -638,9 +639,9 @@ static int ns_init_card(int i, struct pci_dev *pcidev)  	card->hbnr.init = NUM_HB;  	card->hbnr.max = MAX_HB; -	card->sm_handle = 0x00000000; +	card->sm_handle = NULL;  	card->sm_addr = 0x00000000; -	card->lg_handle = 0x00000000; +	card->lg_handle = NULL;  	card->lg_addr = 0x00000000;  	card->efbie = 1;	/* To prevent push_rxbufs from enabling the interrupt */ @@ -778,11 +779,10 @@ static int ns_init_card(int i, struct pci_dev *pcidev)  		return error;  	} -	if (mac[i] == NULL || mac_pton(mac[i], card->atmdev->esi)) { +	if (mac[i] == NULL || !mac_pton(mac[i], card->atmdev->esi)) {  		nicstar_read_eprom(card->membase, NICSTAR_EPROM_MAC_ADDR_OFFSET,  				   card->atmdev->esi, 6); -		if (memcmp(card->atmdev->esi, "\x00\x00\x00\x00\x00\x00", 6) == -		    0) { +		if (ether_addr_equal(card->atmdev->esi, "\x00\x00\x00\x00\x00\x00")) {  			nicstar_read_eprom(card->membase,  					   NICSTAR_EPROM_MAC_ADDR_OFFSET_ALT,  					   card->atmdev->esi, 6); @@ -979,7 +979,7 @@ static void push_rxbufs(ns_dev * card, struct sk_buff *skb)  				addr2 = card->sm_addr;  				handle2 = card->sm_handle;  				card->sm_addr = 0x00000000; -				card->sm_handle = 0x00000000; +				card->sm_handle = NULL;  			} else {	/* (!sm_addr) */  				card->sm_addr = addr1; @@ -993,7 +993,7 @@ static void push_rxbufs(ns_dev * card, struct sk_buff *skb)  				addr2 = card->lg_addr;  				handle2 = card->lg_handle;  				card->lg_addr = 0x00000000; -				card->lg_handle = 0x00000000; +				card->lg_handle = NULL;  			} else {	/* (!lg_addr) */  				card->lg_addr = addr1; @@ -1739,10 +1739,10 @@ static int push_scqe(ns_dev * card, vc_map * vc, scq_info * scq, ns_scqe * tbd,  		}  		scq->full = 1; -		spin_unlock_irqrestore(&scq->lock, flags); -		interruptible_sleep_on_timeout(&scq->scqfull_waitq, -					       SCQFULL_TIMEOUT); -		spin_lock_irqsave(&scq->lock, flags); +		wait_event_interruptible_lock_irq_timeout(scq->scqfull_waitq, +							  scq->tail != scq->next, +							  scq->lock, +							  SCQFULL_TIMEOUT);  		if (scq->full) {  			spin_unlock_irqrestore(&scq->lock, flags); @@ -1789,10 +1789,10 @@ static int push_scqe(ns_dev * card, vc_map * vc, scq_info * scq, ns_scqe * tbd,  			scq->full = 1;  			if (has_run++)  				break; -			spin_unlock_irqrestore(&scq->lock, flags); -			interruptible_sleep_on_timeout(&scq->scqfull_waitq, -						       SCQFULL_TIMEOUT); -			spin_lock_irqsave(&scq->lock, flags); +			wait_event_interruptible_lock_irq_timeout(scq->scqfull_waitq, +								  scq->tail != scq->next, +								  scq->lock, +								  SCQFULL_TIMEOUT);  		}  		if (!scq->full) { diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c index 32784d18d1f..943cf0d6aba 100644 --- a/drivers/atm/solos-pci.c +++ b/drivers/atm/solos-pci.c @@ -760,7 +760,7 @@ static irqreturn_t solos_irq(int irq, void *dev_id)  	return IRQ_RETVAL(handled);  } -void solos_bh(unsigned long card_arg) +static void solos_bh(unsigned long card_arg)  {  	struct solos_card *card = (void *)card_arg;  	uint32_t card_flags; @@ -1335,7 +1335,6 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id)   out_unmap_both:  	kfree(card->dma_bounce); -	pci_set_drvdata(dev, NULL);  	pci_iounmap(dev, card->buffers);   out_unmap_config:  	pci_iounmap(dev, card->config_regs); @@ -1457,7 +1456,6 @@ static void fpga_remove(struct pci_dev *dev)  	pci_release_regions(dev);  	pci_disable_device(dev); -	pci_set_drvdata(dev, NULL);  	kfree(card);  }  | 
