From ab85cff4d516ecc8b1630af0589760bfe5b50bd7 Mon Sep 17 00:00:00 2001 From: Daeseok Youn Date: Wed, 19 Feb 2014 10:35:41 +0900 Subject: atm: ambassador: use NULL instead of 0 for pointer sparse says: drivers/atm/ambassador.c:1928:24: warning: Using plain integer as NULL pointer Signed-off-by: Daeseok Youn Acked-by: Chas Williams Signed-off-by: David S. Miller --- drivers/atm/ambassador.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/atm') diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c index 62a76076b548..f1a9198dfe5a 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); -- cgit v1.2.3 From c664d63818aee3167b7ffa4002d224c88cb7ba85 Mon Sep 17 00:00:00 2001 From: Daeseok Youn Date: Wed, 19 Feb 2014 10:10:11 +0900 Subject: atm: nicstar: use NULL instead of 0 for pointer sparse says: drivers/atm/nicstar.c:642:27: warning: Using plain integer as NULL pointer drivers/atm/nicstar.c:644:27: warning: Using plain integer as NULL pointer drivers/atm/nicstar.c:982:51: warning: Using plain integer as NULL pointer drivers/atm/nicstar.c:996:51: warning: Using plain integer as NULL pointer Signed-off-by: Daeseok Youn Acked-by: Chas Williams Signed-off-by: David S. Miller --- drivers/atm/nicstar.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'drivers/atm') diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c index 9587e959ce1a..13ed54cf2c31 100644 --- a/drivers/atm/nicstar.c +++ b/drivers/atm/nicstar.c @@ -639,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 */ @@ -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; -- cgit v1.2.3 From 5f4d4e3f1cfe97b1d7d696e2608c41c2ad123cfc Mon Sep 17 00:00:00 2001 From: Daeseok Youn Date: Wed, 19 Feb 2014 10:49:12 +0900 Subject: atm: solos-pci: make solos_bh() as static sparse says: drivers/atm/solos-pci.c:763:6: warning: symbol 'solos_bh' was not declared. Should it be static? Signed-off-by: Daeseok Youn Acked-by: Chas Williams Signed-off-by: David S. Miller --- drivers/atm/solos-pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/atm') diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c index e3fb496c7163..943cf0d6abaf 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; -- cgit v1.2.3 From c73b1f6a049d3dd0ba9d65da483483515282a5f0 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Wed, 26 Feb 2014 12:01:51 +0100 Subject: atm: firestream: fix interruptible_sleep_on race interruptible_sleep_on is racy and going away. This replaces the one use in the firestream driver with the appropriate wait_event_interruptible variant. Signed-off-by: Arnd Bergmann Acked-by: Chas Williams Cc: linux-atm-general@lists.sourceforge.net Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller --- drivers/atm/firestream.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/atm') diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c index b41c9481b67b..f43e1c13b300 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; -- cgit v1.2.3 From 118ce7ab9785846e1c673f6130bee526c127206c Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Thu, 27 Feb 2014 19:51:54 +0100 Subject: atm: nicstar: remove interruptible_sleep_on_timeout We are trying to finally kill off interruptible_sleep_on_timeout. the two uses in the nicstar driver can be trivially replaced with wait_event_interruptible_lock_irq_timeout, which prevents the wake-up race and is able to check the buffer state with scq->lock held. Signed-off-by: Arnd Bergmann Acked-by: Chas Williams Signed-off-by: David S. Miller --- drivers/atm/nicstar.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'drivers/atm') diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c index 13ed54cf2c31..9988ac98b6d8 100644 --- a/drivers/atm/nicstar.c +++ b/drivers/atm/nicstar.c @@ -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) { -- cgit v1.2.3 From aff12acccbb1d61c9a6cfeb5cdd3d083fb5e40ef Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 23 Mar 2014 15:09:28 +0000 Subject: atm: firestream: Use del_timer_sync() in teardown path The device is about to vanish. So we need to make sure that the timer is completely stopped and the callback is not running on another CPU. Signed-off-by: Thomas Gleixner Cc: Chas Williams Cc: atm Cc: netdev Signed-off-by: David S. Miller --- drivers/atm/firestream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/atm') diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c index f43e1c13b300..82f2ae0d7cc4 100644 --- a/drivers/atm/firestream.c +++ b/drivers/atm/firestream.c @@ -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); -- cgit v1.2.3 From 869f273911dd37ed9086d6ab25ef832d10813ccd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 23 Mar 2014 15:09:28 +0000 Subject: atm: idt77105: Use del_timer_sync() in exit path The module is about to go away. Make sure everything is stopped safely before we pull the plug. Signed-off-by: Thomas Gleixner Cc: Chas Williams Cc: atm Cc: netdev Signed-off-by: David S. Miller --- drivers/atm/idt77105.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'drivers/atm') diff --git a/drivers/atm/idt77105.c b/drivers/atm/idt77105.c index 45d506363aba..909c95bd7be2 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); -- cgit v1.2.3