linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one()
       [not found] <200305071813.h47IDpc9010906@hera.kernel.org>
@ 2003-05-07 23:01 ` Francois Romieu
  2003-05-08  5:06   ` Christoph Hellwig
  2003-05-08 12:20   ` [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one() chas williams
  0 siblings, 2 replies; 23+ messages in thread
From: Francois Romieu @ 2003-05-07 23:01 UTC (permalink / raw)
  To: chas williams; +Cc: davem, linux-kernel


- pci_enable_device() isn't balanced on error path;
- result of atm_dev_register() is lost if he_dev allocation fails.


 drivers/atm/he.c |   40 +++++++++++++++++++++++++++++-----------
 1 files changed, 29 insertions(+), 11 deletions(-)


diff -puN drivers/atm/he.c~drivers-atm-he-chas drivers/atm/he.c
--- linux-2.5.69-1.1042.92.10-to-1.1097/drivers/atm/he.c~drivers-atm-he-chas	Thu May  8 00:59:44 2003
+++ linux-2.5.69-1.1042.92.10-to-1.1097-fr/drivers/atm/he.c	Thu May  8 00:59:44 2003
@@ -354,29 +354,36 @@ he_init_one(struct pci_dev *pci_dev, con
 {
 	struct atm_dev *atm_dev;
 	struct he_dev *he_dev;
+	int ret = -EIO;
 
 	printk(KERN_INFO "he: %s\n", version);
 
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,43)
-	if (pci_enable_device(pci_dev)) return -EIO;
+	if (pci_enable_device(pci_dev))
+		goto out;
 #endif
 	if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0)
 	{
 		printk(KERN_WARNING "he: no suitable dma available\n");
-		return -EIO;
+		goto out_disable;
 	}
 
 	atm_dev = atm_dev_register(DEV_LABEL, &he_ops, -1, 0);
-	if (!atm_dev) return -ENODEV;
+	if (!atm_dev) {
+		ret = -ENODEV;
+		goto out_disable;
+	}
 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,3)
 	pci_set_drvdata(pci_dev, atm_dev);
 #else
 	pci_dev->driver_data = atm_dev;
 #endif
 
-	he_dev = (struct he_dev *) kmalloc(sizeof(struct he_dev),
-							GFP_KERNEL);
-	if (!he_dev) return -ENOMEM;
+	he_dev = (struct he_dev *) kmalloc(sizeof(*he_dev), GFP_KERNEL);
+	if (!he_dev) {
+		ret = -ENOMEM;
+		goto out_deregister;
+	}
 	memset(he_dev, 0, sizeof(struct he_dev));
 
 	he_dev->pci_dev = pci_dev;
@@ -385,16 +392,27 @@ he_init_one(struct pci_dev *pci_dev, con
 	HE_DEV(atm_dev) = he_dev;
 	he_dev->number = atm_dev->number;	/* was devs */
 	if (he_start(atm_dev)) {
-		atm_dev_deregister(atm_dev);
-		he_stop(he_dev);
-		kfree(he_dev);
-		return -ENODEV;
+		ret = -ENODEV;
+		goto out_stop;
 	}
 	he_dev->next = NULL;
 	if (he_devs) he_dev->next = he_devs;
 	he_devs = he_dev;
 
-	return 0;
+	ret = 0;
+out:
+	return ret;
+
+out_stop:
+	he_stop(he_dev);
+	kfree(he_dev);
+out_deregister:
+	atm_dev_deregister(atm_dev);
+out_disable:
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,43)
+	pci_disable_device(pci_dev);
+#endif
+	goto out;
 }
 
 static void __devexit

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one()
  2003-05-07 23:01 ` [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one() Francois Romieu
@ 2003-05-08  5:06   ` Christoph Hellwig
  2003-05-08 10:08     ` Francois Romieu
  2003-05-08 10:54     ` David S. Miller
  2003-05-08 12:20   ` [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one() chas williams
  1 sibling, 2 replies; 23+ messages in thread
From: Christoph Hellwig @ 2003-05-08  5:06 UTC (permalink / raw)
  To: Francois Romieu; +Cc: chas williams, davem, linux-kernel

On Thu, May 08, 2003 at 01:01:46AM +0200, Francois Romieu wrote:
>  #if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,43)
> -	if (pci_enable_device(pci_dev)) return -EIO;
> +	if (pci_enable_device(pci_dev))
> +		goto out;
>  #endif

Btw, this driver badly wants a cleanup of the ifdef mess.  Look
at some network drivers on how to support older kenrels nicely
wiþh not much more than a compat layer header instead of spreading
ifdefs all over the place.  Who reviewed this driver before
inclusion?


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one()
  2003-05-08  5:06   ` Christoph Hellwig
@ 2003-05-08 10:08     ` Francois Romieu
  2003-05-08 10:54     ` David S. Miller
  1 sibling, 0 replies; 23+ messages in thread
From: Francois Romieu @ 2003-05-08 10:08 UTC (permalink / raw)
  To: Christoph Hellwig, chas williams, davem, linux-kernel

Christoph Hellwig <hch@infradead.org> :
[...]
> Btw, this driver badly wants a cleanup of the ifdef mess.  Look

It may happen some day in the future.

[...]
> ifdefs all over the place.  Who reviewed this driver before
> inclusion?

Happy relaxed people :o)

--
Ueimor

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one()
  2003-05-08  5:06   ` Christoph Hellwig
  2003-05-08 10:08     ` Francois Romieu
@ 2003-05-08 10:54     ` David S. Miller
  2003-05-08 22:47       ` Werner Almesberger
  1 sibling, 1 reply; 23+ messages in thread
From: David S. Miller @ 2003-05-08 10:54 UTC (permalink / raw)
  To: hch; +Cc: romieu, chas, linux-kernel

   From: Christoph Hellwig <hch@infradead.org>
   Date: Thu, 8 May 2003 06:06:40 +0100
   
   Who reviewed this driver before inclusion?

This one goes all the way back to when Werner still maintained
the ATM layer, and frankly back then we didn't give a crap
about these issues as much as we do now.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one()
  2003-05-07 23:01 ` [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one() Francois Romieu
  2003-05-08  5:06   ` Christoph Hellwig
@ 2003-05-08 12:20   ` chas williams
  2003-05-08 13:18     ` Francois Romieu
  1 sibling, 1 reply; 23+ messages in thread
From: chas williams @ 2003-05-08 12:20 UTC (permalink / raw)
  To: Francois Romieu; +Cc: davem, linux-kernel

In message <20030508010146.A20715@electric-eye.fr.zoreil.com>,Francois Romieu writes:
>- pci_enable_device() isn't balanced on error path;

actually pci_disable_device() should probably go into he_stop() or
add it to he_remove_one() and he_cleanup()

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one()
  2003-05-08 12:20   ` [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one() chas williams
@ 2003-05-08 13:18     ` Francois Romieu
  0 siblings, 0 replies; 23+ messages in thread
From: Francois Romieu @ 2003-05-08 13:18 UTC (permalink / raw)
  To: chas williams; +Cc: davem, linux-kernel

chas williams <chas@locutus.cmf.nrl.navy.mil> :
[...]
> actually pci_disable_device() should probably go into he_stop() or
> add it to he_remove_one() and he_cleanup()

Doh... This should be more accurate:

- pci_enable_device() balanced on error path in he_init_one();
- return of atm_dev_register() isn't lost any more if he_dev allocation fails
  in he_init_one();
- pci_disable_device() added to he_disable_one();
- he_cleanup() calls he_disable_one() instead of duplicating it;
- partial rework of code dedicated to kernel versions compatibility.


 drivers/atm/he.c |   67 +++++++++++++++++++++++++++++++++++++------------------------------
 1 files changed, 37 insertions(+), 30 deletions(-)

diff -puN drivers/atm/he.c~drivers-atm-he-chas drivers/atm/he.c
--- linux-2.5.69-1.1042.92.10-to-1.1097/drivers/atm/he.c~drivers-atm-he-chas	Thu May  8 14:02:28 2003
+++ linux-2.5.69-1.1042.92.10-to-1.1097-fr/drivers/atm/he.c	Thu May  8 15:13:56 2003
@@ -98,9 +98,16 @@ void sn_delete_polled_interrupt(int irq)
 
 /* 2.2 kernel support */
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,4)
+#define pci_set_drvdata(pdev,p)		((pdev)->driver_data = p)
+#define pci_get_drvdata(pdev)		(pdev)->driver_data
+#endif
+
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,43)
 #define dev_kfree_skb_irq(skb)		dev_kfree_skb(skb)
 #define dev_kfree_skb_any(skb)		dev_kfree_skb(skb)
+#define pci_disable_device(pdev)	do {} while(0)
+#define pci_enable_device(pdev)		0
 #undef USE_TASKLET
 #endif
 
@@ -354,29 +361,30 @@ he_init_one(struct pci_dev *pci_dev, con
 {
 	struct atm_dev *atm_dev;
 	struct he_dev *he_dev;
+	int ret = -EIO;
 
 	printk(KERN_INFO "he: %s\n", version);
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,43)
-	if (pci_enable_device(pci_dev)) return -EIO;
-#endif
+	if (pci_enable_device(pci_dev))
+		goto out;
 	if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0)
 	{
 		printk(KERN_WARNING "he: no suitable dma available\n");
-		return -EIO;
+		goto out_disable;
 	}
 
 	atm_dev = atm_dev_register(DEV_LABEL, &he_ops, -1, 0);
-	if (!atm_dev) return -ENODEV;
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,3)
+	if (!atm_dev) {
+		ret = -ENODEV;
+		goto out_disable;
+	}
 	pci_set_drvdata(pci_dev, atm_dev);
-#else
-	pci_dev->driver_data = atm_dev;
-#endif
 
-	he_dev = (struct he_dev *) kmalloc(sizeof(struct he_dev),
-							GFP_KERNEL);
-	if (!he_dev) return -ENOMEM;
+	he_dev = (struct he_dev *) kmalloc(sizeof(*he_dev), GFP_KERNEL);
+	if (!he_dev) {
+		ret = -ENOMEM;
+		goto out_deregister;
+	}
 	memset(he_dev, 0, sizeof(struct he_dev));
 
 	he_dev->pci_dev = pci_dev;
@@ -385,16 +393,25 @@ he_init_one(struct pci_dev *pci_dev, con
 	HE_DEV(atm_dev) = he_dev;
 	he_dev->number = atm_dev->number;	/* was devs */
 	if (he_start(atm_dev)) {
-		atm_dev_deregister(atm_dev);
-		he_stop(he_dev);
-		kfree(he_dev);
-		return -ENODEV;
+		ret = -ENODEV;
+		goto out_stop;
 	}
 	he_dev->next = NULL;
 	if (he_devs) he_dev->next = he_devs;
 	he_devs = he_dev;
 
-	return 0;
+	ret = 0;
+out:
+	return ret;
+
+out_stop:
+	he_stop(he_dev);
+	kfree(he_dev);
+out_deregister:
+	atm_dev_deregister(atm_dev);
+out_disable:
+	pci_disable_device(pci_dev);
+	goto out;
 }
 
 static void __devexit
@@ -403,11 +420,7 @@ he_remove_one (struct pci_dev *pci_dev)
 	struct atm_dev *atm_dev;
 	struct he_dev *he_dev;
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,3)
 	atm_dev = pci_get_drvdata(pci_dev);
-#else
-	atm_dev = pci_dev->driver_data;
-#endif
 	he_dev = HE_DEV(atm_dev);
 
 	/* need to remove from he_devs */
@@ -416,11 +429,8 @@ he_remove_one (struct pci_dev *pci_dev)
 	atm_dev_deregister(atm_dev);
 	kfree(he_dev);
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,3)
 	pci_set_drvdata(pci_dev, NULL);
-#else
-	pci_dev->driver_data = NULL;
-#endif
+	pci_disable_device(pci_dev);
 }
 
 
@@ -3384,13 +3394,10 @@ he_init()
 static void __devexit
 he_cleanup(void)
 {
-	while (he_devs)
-	{
+	while (he_devs) {
 		struct he_dev *next = he_devs->next;
-		he_stop(he_devs);
-		atm_dev_deregister(he_devs->atm_dev);
-		kfree(he_devs);
 
+		he_remove_one(he_dev->pci_dev);
 		he_devs = next;
 	}
 

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one()
  2003-05-08 10:54     ` David S. Miller
@ 2003-05-08 22:47       ` Werner Almesberger
  2003-05-09  0:58         ` chas williams
  0 siblings, 1 reply; 23+ messages in thread
From: Werner Almesberger @ 2003-05-08 22:47 UTC (permalink / raw)
  To: David S. Miller; +Cc: hch, romieu, chas, linux-kernel

David S. Miller wrote:
> This one goes all the way back to when Werner still maintained
> the ATM layer, and frankly back then we didn't give a crap
> about these issues as much as we do now.

Actually, the HE driver is a more recent addition. But I have to
admit that my own drivers have more #ifdefs than really necessary,
too. Also, I saw my role more as that of an integrator than a
reviewer, so I let people do whatever they liked in their drivers.

Ah, the good old times, when everything was better ;-)

- Werner

-- 
  _________________________________________________________________________
 / Werner Almesberger, Buenos Aires, Argentina         wa@almesberger.net /
/_http://www.almesberger.net/____________________________________________/

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one()
  2003-05-08 22:47       ` Werner Almesberger
@ 2003-05-09  0:58         ` chas williams
  2003-05-09  1:23           ` David S. Miller
  2003-05-09 22:02           ` [ATM] [UPDATE] " Francois Romieu
  0 siblings, 2 replies; 23+ messages in thread
From: chas williams @ 2003-05-09  0:58 UTC (permalink / raw)
  To: Werner Almesberger; +Cc: David S. Miller, hch, romieu, linux-kernel

this patch should make the he code a bit more palatable.  it drops any
of the < 2.3 support left over the good 'ole days and puts all the
compatibility code in a single place.

--- linux-2.5.68/drivers/atm/he.c.001	Thu May  8 16:26:44 2003
+++ linux-2.5.68/drivers/atm/he.c	Thu May  8 17:43:30 2003
@@ -96,16 +96,30 @@
 #define USE_TPD_POOL
 /* #undef CONFIG_ATM_HE_USE_SUNI */
 
-/* 2.2 kernel support */
+/* compatibility */
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,43)
-#define dev_kfree_skb_irq(skb)		dev_kfree_skb(skb)
-#define dev_kfree_skb_any(skb)		dev_kfree_skb(skb)
-#undef USE_TASKLET
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,69)
+typedef void irqreturn_t;
+#define IRQ_NONE
+#define IRQ_HANDLED
+#define IRQ_RETVAL(x)
 #endif
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,2,18)
-#define set_current_state(x)		current->state = (x);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,9)
+#define __devexit_p(func)		func
+#endif
+
+#ifndef MODULE_LICENSE
+#define MODULE_LICENSE(x)
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,3)
+#define pci_set_drvdata(pci_dev, data)	(pci_dev)->driver_data = (data)
+#define pci_get_drvdata(pci_dev)	(pci_dev)->driver_data
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,44)
+#define pci_pool_create(a, b, c, d, e)	pci_pool_create(a, b, c, d, e, SLAB_KERNEL)
 #endif
 
 #include "he.h"
@@ -135,11 +149,7 @@
 static int he_send(struct atm_vcc *vcc, struct sk_buff *skb);
 static int he_sg_send(struct atm_vcc *vcc, unsigned long start, unsigned long size);
 static int he_ioctl(struct atm_dev *dev, unsigned int cmd, void *arg);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,69)
 static irqreturn_t he_irq_handler(int irq, void *dev_id, struct pt_regs *regs);
-#else
-static void he_irq_handler(int irq, void *dev_id, struct pt_regs *regs);
-#endif
 static void he_tasklet(unsigned long data);
 static int he_proc_read(struct atm_dev *dev,loff_t *pos,char *page);
 static int he_start(struct atm_dev *dev);
@@ -357,9 +367,7 @@
 
 	printk(KERN_INFO "he: %s\n", version);
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,43)
 	if (pci_enable_device(pci_dev)) return -EIO;
-#endif
 	if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0)
 	{
 		printk(KERN_WARNING "he: no suitable dma available\n");
@@ -368,11 +376,7 @@
 
 	atm_dev = atm_dev_register(DEV_LABEL, &he_ops, -1, 0);
 	if (!atm_dev) return -ENODEV;
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,3)
 	pci_set_drvdata(pci_dev, atm_dev);
-#else
-	pci_dev->driver_data = atm_dev;
-#endif
 
 	he_dev = (struct he_dev *) kmalloc(sizeof(struct he_dev),
 							GFP_KERNEL);
@@ -403,11 +407,7 @@
 	struct atm_dev *atm_dev;
 	struct he_dev *he_dev;
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,3)
 	atm_dev = pci_get_drvdata(pci_dev);
-#else
-	atm_dev = pci_dev->driver_data;
-#endif
 	he_dev = HE_DEV(atm_dev);
 
 	/* need to remove from he_devs */
@@ -416,11 +416,7 @@
 	atm_dev_deregister(atm_dev);
 	kfree(he_dev);
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,3)
 	pci_set_drvdata(pci_dev, NULL);
-#else
-	pci_dev->driver_data = NULL;
-#endif
 }
 
 
@@ -783,13 +779,8 @@
 #ifdef USE_RBPS
 	/* small buffer pool */
 #ifdef USE_RBPS_POOL
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,44)
-	he_dev->rbps_pool = pci_pool_create("rbps", he_dev->pci_dev,
-			CONFIG_RBPS_BUFSIZE, 8, 0, SLAB_KERNEL);
-#else
 	he_dev->rbps_pool = pci_pool_create("rbps", he_dev->pci_dev,
 			CONFIG_RBPS_BUFSIZE, 8, 0);
-#endif
 	if (he_dev->rbps_pool == NULL)
 	{
 		hprintk("unable to create rbps pages\n");
@@ -855,13 +846,8 @@
 
 	/* large buffer pool */
 #ifdef USE_RBPL_POOL
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,44)
-	he_dev->rbpl_pool = pci_pool_create("rbpl", he_dev->pci_dev,
-			CONFIG_RBPL_BUFSIZE, 8, 0, SLAB_KERNEL);
-#else
 	he_dev->rbpl_pool = pci_pool_create("rbpl", he_dev->pci_dev,
 			CONFIG_RBPL_BUFSIZE, 8, 0);
-#endif
 	if (he_dev->rbpl_pool == NULL)
 	{
 		hprintk("unable to create rbpl pool\n");
@@ -1053,11 +1039,7 @@
         he_dev = HE_DEV(dev);
         pci_dev = he_dev->pci_dev;
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,3)
 	he_dev->membase = pci_dev->resource[0].start;
-#else
-	he_dev->membase = pci_dev->base_address[0] & PCI_BASE_ADDRESS_MEM_MASK;
-#endif
 	HPRINTK("membase = 0x%lx  irq = %d.\n", he_dev->membase, pci_dev->irq);
 
 	/*
@@ -1519,13 +1501,8 @@
 	he_init_tpdrq(he_dev);
 
 #ifdef USE_TPD_POOL
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,44)
-	he_dev->tpd_pool = pci_pool_create("tpd", he_dev->pci_dev,
-		sizeof(struct he_tpd), TPD_ALIGNMENT, 0, SLAB_KERNEL);
-#else
 	he_dev->tpd_pool = pci_pool_create("tpd", he_dev->pci_dev,
 		sizeof(struct he_tpd), TPD_ALIGNMENT, 0);
-#endif
 	if (he_dev->tpd_pool == NULL)
 	{
 		hprintk("unable to create tpd pci_pool\n");
@@ -1919,11 +1896,7 @@
 		if (RBRQ_HBUF_ERR(he_dev->rbrq_head))
 		{
 			hprintk("HBUF_ERR!  (cid 0x%x)\n", cid);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,99)
-				++vcc->stats->rx_drop;
-#else
 				atomic_inc(&vcc->stats->rx_drop);
-#endif
 			goto return_host_buffers;
 		}
 
@@ -1958,27 +1931,12 @@
 				RBRQ_LEN_ERR(he_dev->rbrq_head)
 							? "LEN_ERR" : "",
 							vcc->vpi, vcc->vci);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,99)
-			++vcc->stats->rx_err;
-#else
 			atomic_inc(&vcc->stats->rx_err);
-#endif
 			goto return_host_buffers;
 		}
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,15)
 		skb = atm_alloc_charge(vcc, he_vcc->pdu_len + rx_skb_reserve,
 							GFP_ATOMIC);
-#else
-		if (!atm_charge(vcc, atm_pdu2truesize(he_vcc->pdu_len + rx_skb_reserve)))
-			skb = NULL;
-		else
-		{
-			skb = alloc_skb(he_vcc->pdu_len + rx_skb_reserve, GFP_ATOMIC);
-			if (!skb) atm_return(vcc,
-				atm_pdu2truesize(he_vcc->pdu_len + rx_skb_reserve));
-		}
-#endif
 		if (!skb)
 		{
 			HPRINTK("charge failed (%d.%d)\n", vcc->vpi, vcc->vci);
@@ -2035,11 +1993,7 @@
 #endif
 		vcc->push(vcc, skb);
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,99)
-		++vcc->stats->rx;
-#else
 		atomic_inc(&vcc->stats->rx);
-#endif
 
 return_host_buffers:
 		++pdus_assembled;
@@ -2355,11 +2309,7 @@
 #endif
 }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,69)
 static irqreturn_t
-#else
-static void
-#endif
 he_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
 {
 	unsigned long flags;
@@ -2367,11 +2317,7 @@
 	int handled = 0;
 
 	if (he_dev == NULL)
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,69)
 		return IRQ_NONE;
-#else
-		return;
-#endif
 
 	HE_SPIN_LOCK(he_dev, flags);
 
@@ -2406,11 +2352,7 @@
 #endif
 	}
 	HE_SPIN_UNLOCK(he_dev, flags);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,69)
 	return IRQ_RETVAL(handled);
-#else
-	return;
-#endif
 
 }
 
@@ -2454,11 +2396,7 @@
 					tpd->vcc->pop(tpd->vcc, tpd->skb);
 				else
 					dev_kfree_skb_any(tpd->skb);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,99)
-				++tpd->vcc->stats->tx_err;
-#else
 				atomic_inc(&tpd->vcc->stats->tx_err);
-#endif
 			}
 #ifdef USE_TPD_POOL
 			pci_pool_free(he_dev->tpd_pool, tpd, TPD_ADDR(tpd->status));
@@ -2509,11 +2447,7 @@
 
 	HPRINTK("open vcc %p %d.%d\n", vcc, vpi, vci);
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1)
-	vcc->flags |= ATM_VF_ADDR;
-#else
 	set_bit(ATM_VF_ADDR, &vcc->flags);
-#endif
 
 	cid = he_mkcid(he_dev, vpi, vci);
 
@@ -2528,13 +2462,8 @@
 	he_vcc->pdu_len = 0;
 	he_vcc->rc_index = -1;
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1)
-	init_waitqueue(&he_vcc->rx_waitq);
-	init_waitqueue(&he_vcc->tx_waitq);
-#else
 	init_waitqueue_head(&he_vcc->rx_waitq);
 	init_waitqueue_head(&he_vcc->tx_waitq);
-#endif
 
 	HE_VCC(vcc) = he_vcc;
 
@@ -2729,20 +2658,10 @@
 	if (err)
 	{
 		if (he_vcc) kfree(he_vcc);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1)
-		vcc->flags &= ~ATM_VF_ADDR;
-#else
 		clear_bit(ATM_VF_ADDR, &vcc->flags);
-#endif
 	}
 	else
-	{
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1)
-		vcc->flags |= ATM_VF_READY;
-#else
 		set_bit(ATM_VF_READY, &vcc->flags);
-#endif
-	}
 
 	return err;
 }
@@ -2751,11 +2670,7 @@
 he_close(struct atm_vcc *vcc)
 {
 	unsigned long flags;
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,1)
 	DECLARE_WAITQUEUE(wait, current);
-#else
-	struct wait_queue wait = { current, NULL };
-#endif
 	struct he_dev *he_dev = HE_DEV(vcc->dev);
 	struct he_tpd *tpd;
 	unsigned cid;
@@ -2765,11 +2680,7 @@
 
 	HPRINTK("close vcc %p %d.%d\n", vcc, vcc->vpi, vcc->vci);
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1)
-	vcc->flags &= ~ATM_VF_READY;
-#else
 	clear_bit(ATM_VF_READY, &vcc->flags);
-#endif
 	cid = he_mkcid(he_dev, vcc->vpi, vcc->vci);
 
 	if (vcc->qos.rxtp.traffic_class != ATM_NONE)
@@ -2929,11 +2840,7 @@
 
 	kfree(he_vcc);
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1)
-	vcc->flags &= ~ATM_VF_ADDR;
-#else
 	clear_bit(ATM_VF_ADDR, &vcc->flags);
-#endif
 }
 
 static int
@@ -2969,11 +2876,7 @@
 			vcc->pop(vcc, skb);
 		else
 			dev_kfree_skb_any(skb);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,99)
-		++vcc->stats->tx_err;
-#else
 		atomic_inc(&vcc->stats->tx_err);
-#endif
 		return -EINVAL;
 	}
 
@@ -2985,11 +2888,7 @@
 			vcc->pop(vcc, skb);
 		else
 			dev_kfree_skb_any(skb);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,99)
-		++vcc->stats->tx_err;
-#else
 		atomic_inc(&vcc->stats->tx_err);
-#endif
 		return -EINVAL;
 	}
 #endif
@@ -3002,11 +2901,7 @@
 			vcc->pop(vcc, skb);
 		else
 			dev_kfree_skb_any(skb);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,99)
-		++vcc->stats->tx_err;
-#else
 		atomic_inc(&vcc->stats->tx_err);
-#endif
 		HE_SPIN_UNLOCK(he_dev, flags);
 		return -ENOMEM;
 	}
@@ -3051,12 +2946,8 @@
 					vcc->pop(vcc, skb);
 				else
 					dev_kfree_skb_any(skb);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,99)
-				++vcc->stats->tx_err;
-#else
 				atomic_inc(&vcc->stats->tx_err);
 				HE_SPIN_UNLOCK(he_dev, flags);
-#endif
 				return -ENOMEM;
 			}
 			tpd->status |= TPD_USERCELL;
@@ -3086,11 +2977,7 @@
 	__enqueue_tpd(he_dev, tpd, cid);
 	HE_SPIN_UNLOCK(he_dev, flags);
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,99)
-	++vcc->stats->tx;
-#else
 	atomic_inc(&vcc->stats->tx);
-#endif
 
 	return 0;
 }
@@ -3316,6 +3203,7 @@
         return (byte_read);
 }
 
+MODULE_LICENSE("GPL");
 MODULE_AUTHOR("chas williams <chas@cmf.nrl.navy.mil>");
 MODULE_DESCRIPTION("ForeRunnerHE ATM Adapter driver");
 MODULE_PARM(disable64, "h");
@@ -3331,7 +3219,6 @@
 MODULE_PARM(sdh, "i");
 MODULE_PARM_DESC(sdh, "use SDH framing (default 0)");
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,1)
 static struct pci_device_id he_pci_tbl[] __devinitdata = {
 	{ PCI_VENDOR_ID_FORE, PCI_DEVICE_ID_FORE_HE, PCI_ANY_ID, PCI_ANY_ID,
 	  0, 0, 0 },
@@ -3341,11 +3228,7 @@
 static struct pci_driver he_driver = {
 	.name =		"he",
 	.probe =	he_init_one,
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,9)
 	.remove =	__devexit_p(he_remove_one),
-#else
-	.remove =	he_remove_one,
-#endif
 	.id_table =	he_pci_tbl,
 };
 
@@ -3361,52 +3244,3 @@
 
 module_init(he_init);
 module_exit(he_cleanup);
-#else
-static int __init
-he_init()
-{
-	if (!pci_present())
-		return -EIO;
-
-#ifdef CONFIG_ATM_HE_USE_SUNI_MODULE
-	/* request_module("suni"); */
-#endif
-
-	pci_dev = NULL;
-	while ((pci_dev = pci_find_device(PCI_VENDOR_ID_FORE,
-					PCI_DEVICE_ID_FORE_HE, pci_dev)) != NULL)
-		if (he_init_one(pci_dev, NULL) == 0)
-			++ndevs;
-
-	return (ndevs ? 0 : -ENODEV);
-}
-
-static void __devexit
-he_cleanup(void)
-{
-	while (he_devs)
-	{
-		struct he_dev *next = he_devs->next;
-		he_stop(he_devs);
-		atm_dev_deregister(he_devs->atm_dev);
-		kfree(he_devs);
-
-		he_devs = next;
-	}
-
-}
-
-int init_module(void)
-{
-	return he_init();
-}
-
-void cleanup_module(void)
-{
-	he_cleanup();
-}
-#endif
-
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,7)
-MODULE_LICENSE("GPL");
-#endif
--- linux-2.5.68/drivers/atm/he.h.001	Thu May  8 20:04:51 2003
+++ linux-2.5.68/drivers/atm/he.h	Thu May  8 17:38:59 2003
@@ -371,13 +371,8 @@
 
 	int rc_index;
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,1)
-	struct wait_queue *rx_waitq;
-	struct wait_queue *tx_waitq;
-#else
 	wait_queue_head_t rx_waitq;
 	wait_queue_head_t tx_waitq;
-#endif
 };
 
 #define HE_VCC(vcc)	((struct he_vcc *)(vcc->dev_data))

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one()
  2003-05-09  0:58         ` chas williams
@ 2003-05-09  1:23           ` David S. Miller
  2003-05-09 22:02           ` [ATM] [UPDATE] " Francois Romieu
  1 sibling, 0 replies; 23+ messages in thread
From: David S. Miller @ 2003-05-09  1:23 UTC (permalink / raw)
  To: chas; +Cc: wa, hch, romieu, linux-kernel

   From: chas williams <chas@locutus.cmf.nrl.navy.mil>
   Date: Thu, 08 May 2003 20:58:23 -0400

   this patch should make the he code a bit more palatable.  it drops any
   of the < 2.3 support left over the good 'ole days and puts all the
   compatibility code in a single place.
   
Applied, thanks.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one()
  2003-05-09  0:58         ` chas williams
  2003-05-09  1:23           ` David S. Miller
@ 2003-05-09 22:02           ` Francois Romieu
  2003-05-09 23:38             ` [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!) chas williams
  1 sibling, 1 reply; 23+ messages in thread
From: Francois Romieu @ 2003-05-09 22:02 UTC (permalink / raw)
  To: chas williams; +Cc: David S. Miller, linux-kernel

Update:

- pci_enable_device() balanced on error path in he_init_one();
- return of atm_dev_register() isn't lost any more if he_dev allocation fails
  in he_init_one();
- pci_disable_device() added to he_disable_one();


 drivers/atm/he.c |   43 ++++++++++++++++++++++++++++++-------------
 1 files changed, 30 insertions(+), 13 deletions(-)

diff -puN drivers/atm/he.c~drivers-atm-he-chas drivers/atm/he.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/atm/he.c~drivers-atm-he-chas	Fri May  9 23:43:22 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/atm/he.c	Fri May  9 23:48:43 2003
@@ -364,23 +364,29 @@ he_init_one(struct pci_dev *pci_dev, con
 {
 	struct atm_dev *atm_dev;
 	struct he_dev *he_dev;
+	int ret = -EIO;
 
 	printk(KERN_INFO "he: %s\n", version);
 
-	if (pci_enable_device(pci_dev)) return -EIO;
-	if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0)
-	{
+	if (pci_enable_device(pci_dev))
+		goto out;
+	if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0) {
 		printk(KERN_WARNING "he: no suitable dma available\n");
-		return -EIO;
+		goto out_disable;
 	}
 
 	atm_dev = atm_dev_register(DEV_LABEL, &he_ops, -1, 0);
-	if (!atm_dev) return -ENODEV;
+	if (!atm_dev) {
+		ret = -ENODEV;
+		goto out_disable;
+	}
 	pci_set_drvdata(pci_dev, atm_dev);
 
-	he_dev = (struct he_dev *) kmalloc(sizeof(struct he_dev),
-							GFP_KERNEL);
-	if (!he_dev) return -ENOMEM;
+	he_dev = (struct he_dev *) kmalloc(sizeof(struct he_dev), GFP_KERNEL);
+	if (!he_dev) {
+		ret = -ENOMEM;
+		goto out_deregister;
+	}
 	memset(he_dev, 0, sizeof(struct he_dev));
 
 	he_dev->pci_dev = pci_dev;
@@ -389,16 +395,26 @@ he_init_one(struct pci_dev *pci_dev, con
 	HE_DEV(atm_dev) = he_dev;
 	he_dev->number = atm_dev->number;	/* was devs */
 	if (he_start(atm_dev)) {
-		atm_dev_deregister(atm_dev);
-		he_stop(he_dev);
-		kfree(he_dev);
-		return -ENODEV;
+		ret = -ENODEV;
+		goto out_stop;
 	}
 	he_dev->next = NULL;
 	if (he_devs) he_dev->next = he_devs;
 	he_devs = he_dev;
 
-	return 0;
+	ret = 0;
+out:
+	return ret;
+
+out_stop:
+	he_stop(he_dev);
+	kfree(he_dev);
+out_deregister:
+	pci_set_drvdata(pci_dev, NULL);
+	atm_dev_deregister(atm_dev);
+out_disable:
+	pci_disable_device(pci_dev);
+	goto out;
 }
 
 static void __devexit
@@ -417,6 +433,7 @@ he_remove_one (struct pci_dev *pci_dev)
 	kfree(he_dev);
 
 	pci_set_drvdata(pci_dev, NULL);
+	pci_disable_device(pci_dev);
 }
 
 

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!)
  2003-05-09 22:02           ` [ATM] [UPDATE] " Francois Romieu
@ 2003-05-09 23:38             ` chas williams
  2003-05-10  5:20               ` Christoph Hellwig
  2003-05-10 10:54               ` [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!) Francois Romieu
  0 siblings, 2 replies; 23+ messages in thread
From: chas williams @ 2003-05-09 23:38 UTC (permalink / raw)
  To: Francois Romieu; +Cc: David S. Miller, linux-kernel

>- pci_enable_device() balanced on error path in he_init_one();
>- return of atm_dev_register() isn't lost any more if he_dev allocation fails
>  in he_init_one();
>- pci_disable_device() added to he_disable_one();

i hope you dont mind, but i really dislike the goto.  one is plenty. 
attached is a cleanup for the iphase (i made a small addition -- i believe
the MEMDUMP_XXXXXXREG cases are also guilty of dereferencing).

[ATM]: unbalanced exit path in Forerunner HE he_init_one().  thanks to 
       Francois Romieu <romieu@fr.zoreil.com>

--- linux-2.5.68/drivers/atm/he.c.002	Fri May  9 15:33:08 2003
+++ linux-2.5.68/drivers/atm/he.c	Fri May  9 19:00:02 2003
@@ -362,43 +362,54 @@
 static int __devinit
 he_init_one(struct pci_dev *pci_dev, const struct pci_device_id *pci_ent)
 {
-	struct atm_dev *atm_dev;
-	struct he_dev *he_dev;
+	struct atm_dev *atm_dev = NULL;
+	struct he_dev *he_dev = NULL;
+	int err = 0;
 
 	printk(KERN_INFO "he: %s\n", version);
 
 	if (pci_enable_device(pci_dev)) return -EIO;
-	if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0)
-	{
+	if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0) {
 		printk(KERN_WARNING "he: no suitable dma available\n");
-		return -EIO;
+		err = -EIO;
+		goto init_one_failure;
 	}
 
 	atm_dev = atm_dev_register(DEV_LABEL, &he_ops, -1, 0);
-	if (!atm_dev) return -ENODEV;
+	if (!atm_dev) {
+		err = -ENODEV;
+		goto init_one_failure;
+	}
 	pci_set_drvdata(pci_dev, atm_dev);
 
 	he_dev = (struct he_dev *) kmalloc(sizeof(struct he_dev),
 							GFP_KERNEL);
-	if (!he_dev) return -ENOMEM;
+	if (!he_dev) {
+		err = -ENOMEM;
+		goto init_one_failure;
+	}
 	memset(he_dev, 0, sizeof(struct he_dev));
 
 	he_dev->pci_dev = pci_dev;
 	he_dev->atm_dev = atm_dev;
 	he_dev->atm_dev->dev_data = he_dev;
 	HE_DEV(atm_dev) = he_dev;
-	he_dev->number = atm_dev->number;	/* was devs */
+	he_dev->number = atm_dev->number;
 	if (he_start(atm_dev)) {
-		atm_dev_deregister(atm_dev);
 		he_stop(he_dev);
-		kfree(he_dev);
-		return -ENODEV;
+		err = -ENODEV;
+		goto init_one_failure;
 	}
 	he_dev->next = NULL;
 	if (he_devs) he_dev->next = he_devs;
 	he_devs = he_dev;
-
 	return 0;
+
+init_one_failure:
+	if (atm_dev) atm_dev_deregister(atm_dev);
+	if (he_dev) kfree(he_dev);
+	pci_disable_device(pci_dev);
+	return err;
 }
 
 static void __devexit
@@ -417,6 +428,7 @@
 	kfree(he_dev);
 
 	pci_set_drvdata(pci_dev, NULL);
+	pci_disable_device(pci_dev);
 }
 
 

[ATM]: Sneak variant of "ioremap() return dereferencing".  thanks to
       Francois Romieu <romieu@fr.zoreil.com>


--- linux-2.5.68/drivers/atm/iphase.c.002	Fri May  9 19:01:27 2003
+++ linux-2.5.68/drivers/atm/iphase.c	Fri May  9 19:35:24 2003
@@ -2774,7 +2774,7 @@
 	     if (!capable(CAP_NET_ADMIN)) return -EPERM;
              tmps = (u16 *)ia_cmds.buf;
              for(i=0; i<0x80; i+=2, tmps++)
-                if(put_user(*(u16*)(iadev->seg_reg+i), tmps)) return -EFAULT;
+                if(put_user((u16)(readl(iadev->seg_reg+i) & 0xffff), tmps)) return -EFAULT;
              ia_cmds.status = 0;
              ia_cmds.len = 0x80;
              break;
@@ -2782,7 +2782,7 @@
 	     if (!capable(CAP_NET_ADMIN)) return -EPERM;
              tmps = (u16 *)ia_cmds.buf;
              for(i=0; i<0x80; i+=2, tmps++)
-                if(put_user(*(u16*)(iadev->reass_reg+i), tmps)) return -EFAULT;
+                if(put_user((u16)(readl(iadev->reass_reg+i) & 0xffff), tmps)) return -EFAULT;
              ia_cmds.status = 0;
              ia_cmds.len = 0x80;
              break;
@@ -2799,10 +2799,10 @@
 	     rfL = &regs_local->rfredn;
              /* Copy real rfred registers into the local copy */
  	     for (i=0; i<(sizeof (rfredn_t))/4; i++)
-                ((u_int *)rfL)[i] = ((u_int *)iadev->reass_reg)[i] & 0xffff;
+                ((u_int *)rfL)[i] = readl(iadev->reass_reg + i) & 0xffff;
              	/* Copy real ffred registers into the local copy */
 	     for (i=0; i<(sizeof (ffredn_t))/4; i++)
-                ((u_int *)ffL)[i] = ((u_int *)iadev->seg_reg)[i] & 0xffff;
+                ((u_int *)ffL)[i] = readl(iadev->seg_reg + i) & 0xffff;
 
              if (copy_to_user(ia_cmds.buf, regs_local,sizeof(ia_regs_t))) {
                 kfree(regs_local);

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!)
  2003-05-09 23:38             ` [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!) chas williams
@ 2003-05-10  5:20               ` Christoph Hellwig
  2003-05-10 13:52                 ` chas williams
  2003-05-10 10:54               ` [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!) Francois Romieu
  1 sibling, 1 reply; 23+ messages in thread
From: Christoph Hellwig @ 2003-05-10  5:20 UTC (permalink / raw)
  To: chas williams; +Cc: Francois Romieu, David S. Miller, linux-kernel

On Fri, May 09, 2003 at 07:38:34PM -0400, chas williams wrote:
> +
> +init_one_failure:
> +	if (atm_dev) atm_dev_deregister(atm_dev);
> +	if (he_dev) kfree(he_dev);
> +	pci_disable_device(pci_dev);
> +	return err;

kfree(NULL) if perfectly fine.  Also please untangle all this if
statements to two separate lines.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!)
  2003-05-09 23:38             ` [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!) chas williams
  2003-05-10  5:20               ` Christoph Hellwig
@ 2003-05-10 10:54               ` Francois Romieu
  1 sibling, 0 replies; 23+ messages in thread
From: Francois Romieu @ 2003-05-10 10:54 UTC (permalink / raw)
  To: chas williams; +Cc: David S. Miller, linux-kernel

chas williams <chas@locutus.cmf.nrl.navy.mil> :
[...]
> i hope you dont mind, but i really dislike the goto.  one is plenty. 

I am not fond of the 'test before destruction' approach when the tests 
could have been avoided. Anyway you maintain the driver on a regular basis,
you are free to choose the fix.

> attached is a cleanup for the iphase (i made a small addition -- i believe
> the MEMDUMP_XXXXXXREG cases are also guilty of dereferencing).

Yes.

--
Ueimor

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!)
  2003-05-10  5:20               ` Christoph Hellwig
@ 2003-05-10 13:52                 ` chas williams
  2003-05-10 14:02                   ` David S. Miller
                                     ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: chas williams @ 2003-05-10 13:52 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Francois Romieu, David S. Miller, linux-kernel

In message <20030510062015.A21408@infradead.org>,Christoph Hellwig writes:
>> +init_one_failure:
>> +	if (atm_dev) atm_dev_deregister(atm_dev);
>> +	if (he_dev) kfree(he_dev);
>> +	pci_disable_device(pci_dev);
>> +	return err;
>
>kfree(NULL) if perfectly fine.  Also please untangle all this if
>statements to two separate lines.

but its ok for usb drivers?

class/usb-midi.c:       if ( u ) kfree(u);
class/usblp.c:          if (usblp->statusbuf) kfree(usblp->statusbuf);
class/usblp.c:          if (usblp->device_id_string) kfree(usblp->device_id_string);
image/mdc800.c:#define try_free_mem(A)  if (A != 0) { kfree (A); A=0; }

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!)
  2003-05-10 13:52                 ` chas williams
@ 2003-05-10 14:02                   ` David S. Miller
  2003-05-10 15:18                     ` chas williams
  2003-05-10 14:43                   ` Christoph Hellwig
  2003-05-10 16:12                   ` Greg KH
  2 siblings, 1 reply; 23+ messages in thread
From: David S. Miller @ 2003-05-10 14:02 UTC (permalink / raw)
  To: chas; +Cc: hch, romieu, linux-kernel

   From: chas williams <chas@locutus.cmf.nrl.navy.mil>
   Date: Sat, 10 May 2003 09:52:49 -0400

   In message <20030510062015.A21408@infradead.org>,Christoph Hellwig writes:
   >kfree(NULL) if perfectly fine.  Also please untangle all this if
   >statements to two separate lines.
   
   but its ok for usb drivers?
   
Bad ugly code in one area of the kernel is not an excuse
for it in other areas :-)

Really, putting a statement on the same line as the if
test controlling it's execution is very unreadable.  Most
people's eyes expect to see:

	if (test)
		IF_CODE_BLOCK

Whether it be one or more lines.  I cannot count how many locking bugs
escaped for a long time because of utter shit like this:

	if (test) return 0;


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!)
  2003-05-10 13:52                 ` chas williams
  2003-05-10 14:02                   ` David S. Miller
@ 2003-05-10 14:43                   ` Christoph Hellwig
  2003-05-10 16:12                   ` Greg KH
  2 siblings, 0 replies; 23+ messages in thread
From: Christoph Hellwig @ 2003-05-10 14:43 UTC (permalink / raw)
  To: chas williams; +Cc: Francois Romieu, David S. Miller, linux-kernel

On Sat, May 10, 2003 at 09:52:49AM -0400, chas williams wrote:
> class/usb-midi.c:       if ( u ) kfree(u);
> class/usblp.c:          if (usblp->statusbuf) kfree(usblp->statusbuf);
> class/usblp.c:          if (usblp->device_id_string) kfree(usblp->device_id_string);
> image/mdc800.c:#define try_free_mem(A)  if (A != 0) { kfree (A); A=0; }

It's wrong there, too.  usb is not exactly the right example if you look
for code that matches the style guidelines..

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!)
  2003-05-10 14:02                   ` David S. Miller
@ 2003-05-10 15:18                     ` chas williams
  2003-05-10 15:25                       ` David S. Miller
  0 siblings, 1 reply; 23+ messages in thread
From: chas williams @ 2003-05-10 15:18 UTC (permalink / raw)
  To: David S. Miller; +Cc: hch, romieu, linux-kernel

In message <20030510.070234.21899554.davem@redhat.com>,"David S. Miller" writes:
>   but its ok for usb drivers?
>Bad ugly code in one area of the kernel is not an excuse
>for it in other areas :-)

perhaps someone should mention this to them?  i believe usb
is under active development.

>test controlling it's execution is very unreadable.  Most
>people's eyes expect to see:
>	if (test)
>		IF_CODE_BLOCK

sorry, i am an old fortran programmer.  i am always trying to put
a continutation punch in field 6 on multiple lines.  (btw, this
doesnt mean i like goto.)

here are the two patches again:

[ATM]: unbalanced exit path in Forerunner HE he_init_one().  thanks to
       Francois Romieu <romieu@fr.zoreil.com>

--- linux-2.5.68/drivers/atm/he.c.002	Fri May  9 15:33:08 2003
+++ linux-2.5.68/drivers/atm/he.c	Sat May 10 11:09:49 2003
@@ -362,43 +362,56 @@
 static int __devinit
 he_init_one(struct pci_dev *pci_dev, const struct pci_device_id *pci_ent)
 {
-	struct atm_dev *atm_dev;
-	struct he_dev *he_dev;
+	struct atm_dev *atm_dev = NULL;
+	struct he_dev *he_dev = NULL;
+	int err = 0;
 
 	printk(KERN_INFO "he: %s\n", version);
 
 	if (pci_enable_device(pci_dev)) return -EIO;
-	if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0)
-	{
+	if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0) {
 		printk(KERN_WARNING "he: no suitable dma available\n");
-		return -EIO;
+		err = -EIO;
+		goto init_one_failure;
 	}
 
 	atm_dev = atm_dev_register(DEV_LABEL, &he_ops, -1, 0);
-	if (!atm_dev) return -ENODEV;
+	if (!atm_dev) {
+		err = -ENODEV;
+		goto init_one_failure;
+	}
 	pci_set_drvdata(pci_dev, atm_dev);
 
 	he_dev = (struct he_dev *) kmalloc(sizeof(struct he_dev),
 							GFP_KERNEL);
-	if (!he_dev) return -ENOMEM;
+	if (!he_dev) {
+		err = -ENOMEM;
+		goto init_one_failure;
+	}
 	memset(he_dev, 0, sizeof(struct he_dev));
 
 	he_dev->pci_dev = pci_dev;
 	he_dev->atm_dev = atm_dev;
 	he_dev->atm_dev->dev_data = he_dev;
 	HE_DEV(atm_dev) = he_dev;
-	he_dev->number = atm_dev->number;	/* was devs */
+	he_dev->number = atm_dev->number;
 	if (he_start(atm_dev)) {
-		atm_dev_deregister(atm_dev);
 		he_stop(he_dev);
-		kfree(he_dev);
-		return -ENODEV;
+		err = -ENODEV;
+		goto init_one_failure;
 	}
 	he_dev->next = NULL;
 	if (he_devs) he_dev->next = he_devs;
 	he_devs = he_dev;
-
 	return 0;
+
+init_one_failure:
+	if (atm_dev)
+		atm_dev_deregister(atm_dev);
+	if (he_dev)
+		kfree(he_dev);
+	pci_disable_device(pci_dev);
+	return err;
 }
 
 static void __devexit
@@ -417,6 +430,7 @@
 	kfree(he_dev);
 
 	pci_set_drvdata(pci_dev, NULL);
+	pci_disable_device(pci_dev);
 }
 
 

[ATM]: [ATM]: Sneak variant of "ioremap() return dereferencing".  thanks to
       Francois Romieu <romieu@fr.zoreil.com>


--- linux-2.5.68/drivers/atm/iphase.c.002	Fri May  9 19:01:27 2003
+++ linux-2.5.68/drivers/atm/iphase.c	Fri May  9 19:35:24 2003
@@ -2774,7 +2774,7 @@
 	     if (!capable(CAP_NET_ADMIN)) return -EPERM;
              tmps = (u16 *)ia_cmds.buf;
              for(i=0; i<0x80; i+=2, tmps++)
-                if(put_user(*(u16*)(iadev->seg_reg+i), tmps)) return -EFAULT;
+                if(put_user((u16)(readl(iadev->seg_reg+i) & 0xffff), tmps)) return -EFAULT;
              ia_cmds.status = 0;
              ia_cmds.len = 0x80;
              break;
@@ -2782,7 +2782,7 @@
 	     if (!capable(CAP_NET_ADMIN)) return -EPERM;
              tmps = (u16 *)ia_cmds.buf;
              for(i=0; i<0x80; i+=2, tmps++)
-                if(put_user(*(u16*)(iadev->reass_reg+i), tmps)) return -EFAULT;
+                if(put_user((u16)(readl(iadev->reass_reg+i) & 0xffff), tmps)) return -EFAULT;
              ia_cmds.status = 0;
              ia_cmds.len = 0x80;
              break;
@@ -2799,10 +2799,10 @@
 	     rfL = &regs_local->rfredn;
              /* Copy real rfred registers into the local copy */
  	     for (i=0; i<(sizeof (rfredn_t))/4; i++)
-                ((u_int *)rfL)[i] = ((u_int *)iadev->reass_reg)[i] & 0xffff;
+                ((u_int *)rfL)[i] = readl(iadev->reass_reg + i) & 0xffff;
              	/* Copy real ffred registers into the local copy */
 	     for (i=0; i<(sizeof (ffredn_t))/4; i++)
-                ((u_int *)ffL)[i] = ((u_int *)iadev->seg_reg)[i] & 0xffff;
+                ((u_int *)ffL)[i] = readl(iadev->seg_reg + i) & 0xffff;
 
              if (copy_to_user(ia_cmds.buf, regs_local,sizeof(ia_regs_t))) {
                 kfree(regs_local);

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!)
  2003-05-10 15:18                     ` chas williams
@ 2003-05-10 15:25                       ` David S. Miller
  0 siblings, 0 replies; 23+ messages in thread
From: David S. Miller @ 2003-05-10 15:25 UTC (permalink / raw)
  To: chas; +Cc: hch, romieu, linux-kernel

   From: chas williams <chas@locutus.cmf.nrl.navy.mil>
   Date: Sat, 10 May 2003 11:18:32 -0400

   In message <20030510.070234.21899554.davem@redhat.com>,"David S. Miller" writes:
   >   but its ok for usb drivers?
   >Bad ugly code in one area of the kernel is not an excuse
   >for it in other areas :-)
   
   perhaps someone should mention this to them?  i believe usb
   is under active development.
   
We just did.  :-)

And a coding style document lives in the tree in case you weren't
aware of this.  linux/Documentation/CodingStlye

   [ATM]: unbalanced exit path in Forerunner HE he_init_one().  thanks to
          Francois Romieu <romieu@fr.zoreil.com>
   
I'll apply this, thanks.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!)
  2003-05-10 13:52                 ` chas williams
  2003-05-10 14:02                   ` David S. Miller
  2003-05-10 14:43                   ` Christoph Hellwig
@ 2003-05-10 16:12                   ` Greg KH
  2003-05-10 19:39                     ` [USB] [PATCH] Crud-- (was: Re: [ATM] [UPDATE] unbalanced usw) Francois Romieu
  2 siblings, 1 reply; 23+ messages in thread
From: Greg KH @ 2003-05-10 16:12 UTC (permalink / raw)
  To: chas williams
  Cc: Christoph Hellwig, Francois Romieu, David S. Miller, linux-kernel

On Sat, May 10, 2003 at 09:52:49AM -0400, chas williams wrote:
> In message <20030510062015.A21408@infradead.org>,Christoph Hellwig writes:
> >> +init_one_failure:
> >> +	if (atm_dev) atm_dev_deregister(atm_dev);
> >> +	if (he_dev) kfree(he_dev);
> >> +	pci_disable_device(pci_dev);
> >> +	return err;
> >
> >kfree(NULL) if perfectly fine.  Also please untangle all this if
> >statements to two separate lines.
> 
> but its ok for usb drivers?

Not at all.  I'll gladly take patches to fix this crud up.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [USB] [PATCH] Crud-- (was: Re: [ATM] [UPDATE] unbalanced usw)
  2003-05-10 16:12                   ` Greg KH
@ 2003-05-10 19:39                     ` Francois Romieu
  2003-05-10 21:01                       ` Francois Romieu
  0 siblings, 1 reply; 23+ messages in thread
From: Francois Romieu @ 2003-05-10 19:39 UTC (permalink / raw)
  To: Greg KH; +Cc: Christoph Hellwig, linux-kernel

[Cc: list modified]

Greg KH <greg@kroah.com> :
[...]
> Not at all.  I'll gladly take patches to fix this crud up.

What about the following patch ?


 usb/host/ehci-q.c              |    0 
 drivers/usb/class/cdc-acm.c    |   42 +++--
 drivers/usb/class/usb-midi.c   |   62 +++++--
 drivers/usb/class/usblp.c      |   28 ++-
 drivers/usb/core/hcd-pci.c     |    3 
 drivers/usb/host/ohci-sa1111.c |    6 
 drivers/usb/input/hid-core.c   |   32 ++-
 drivers/usb/input/hid-input.c  |    3 
 drivers/usb/input/hid-lgff.c   |    6 
 drivers/usb/input/hid-tmff.c   |    3 
 drivers/usb/input/hiddev.c     |   27 ++-
 drivers/usb/input/pid.c        |    6 
 drivers/usb/input/usbkbd.c     |    3 
 drivers/usb/media/ov511.c      |  332 +++++++++++++++++++++++++----------------
 drivers/usb/media/se401.c      |   19 +-
 drivers/usb/media/vicam.c      |    3 
 drivers/usb/misc/auerswald.c   |   33 ++--
 drivers/usb/net/catc.c         |   12 -
 drivers/usb/net/kaweth.c       |    3 
 drivers/usb/serial/belkin_sa.c |    7 
 drivers/usb/serial/console.c   |    9 -
 drivers/usb/serial/cyberjack.c |    9 -
 drivers/usb/serial/io_ti.c     |    3 
 drivers/usb/serial/ir-usb.c    |    3 
 24 files changed, 417 insertions(+), 237 deletions(-)

diff -puN drivers/usb/class/usb-midi.c~codingstyle-patrol-usb drivers/usb/class/usb-midi.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/class/usb-midi.c~codingstyle-patrol-usb	Sat May 10 20:34:14 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/class/usb-midi.c	Sat May 10 21:29:42 2003
@@ -1355,8 +1355,10 @@ static struct usb_midi_device *parse_des
 		next = p2 + p2[0];
 		length -= p2[0];
 
-		if (p2[0] < 2 ) break;
-		if (p2[1] != USB_DT_CS_INTERFACE) break;
+		if (p2[0] < 2 )
+			break;
+		if (p2[1] != USB_DT_CS_INTERFACE)r
+			break;
 		if (p2[2] == MIDI_IN_JACK && p2[0] >= 6 ) {
 			jack = p2[4];
 #ifdef HAVE_JACK_STRINGS
@@ -1366,7 +1368,8 @@ static struct usb_midi_device *parse_des
 			       jack, (p2[3] == EMBEDDED_JACK)?"EMBEDDED":"EXTERNAL" );
 		} else if ( p2[2] == MIDI_OUT_JACK && p2[0] >= 6) {
 			pins = p2[5];
-			if ( p2[0] < (6 + 2 * pins) ) continue;
+			if ( p2[0] < (6 + 2 * pins) )
+				continue;
 			jack = p2[4];
 #ifdef HAVE_JACK_STRINGS
 			jack2string[jack] = p2[5 + 2 * pins];
@@ -1375,9 +1378,11 @@ static struct usb_midi_device *parse_des
 			       jack, (p2[3] == EMBEDDED_JACK)?"EMBEDDED":"EXTERNAL", pins );
 		} else if ( p2[2] == ELEMENT_DESCRIPTOR  && p2[0]  >= 10) {
 			pins = p2[4];
-			if ( p2[0] < (9 + 2 * pins ) ) continue;
+			if ( p2[0] < (9 + 2 * pins ) )
+				continue;
 			nbytes = p2[8 + 2 * pins ];
-			if ( p2[0] < (10 + 2 * pins + nbytes) ) continue;
+			if ( p2[0] < (10 + 2 * pins + nbytes) )
+				continue;
 			longBits = 0L;
 			for ( offset = 0, shift = 0; offset < nbytes && offset < 8; offset ++, shift += 8) {
 				longBits |= ((long)(p2[9 + 2 * pins + offset])) << shift;
@@ -1408,7 +1413,8 @@ static struct usb_midi_device *parse_des
 			if ( p2 && next && ( p2 > next ) )
 				p2 = 0;
 
-			if ( p1[0] < 9 || !p2 || p2[0] < 4 ) continue;
+			if ( p1[0] < 9 || !p2 || p2[0] < 4 )
+				continue;
 
 			if ( (p1[2] & 0x80) == 0x80 ) {
 				if ( iep < 15 ) {
@@ -1417,7 +1423,8 @@ static struct usb_midi_device *parse_des
 						pins = 16;
 					u->in[iep].endpoint = p1[2];
 					u->in[iep].cableId = ( 1 << pins ) - 1;
-					if ( u->in[iep].cableId ) iep ++;
+					if ( u->in[iep].cableId )
+						iep ++;
 					if ( iep < 15 ) {
 						u->in[iep].endpoint = -1;
 						u->in[iep].cableId = -1;
@@ -1430,7 +1437,8 @@ static struct usb_midi_device *parse_des
 						pins = 16;
 					u->out[oep].endpoint = p1[2];
 					u->out[oep].cableId = ( 1 << pins ) - 1;
-					if ( u->out[oep].cableId ) oep ++;
+					if ( u->out[oep].cableId )
+						oep ++;
 					if ( oep < 15 ) {
 						u->out[oep].endpoint = -1;
 						u->out[oep].cableId = -1;
@@ -1446,7 +1454,8 @@ static struct usb_midi_device *parse_des
 			next = find_descriptor(buffer, bufSize, p1, USB_DT_ENDPOINT,
 					       ifnum, altSetting ); 
 	
-			if ( p1[0] < 7 ) continue;
+			if ( p1[0] < 7 )
+				continue;
 
 			if ( (p1[2] & 0x80) == 0x80 ) {
 				if ( iep < 15 ) {
@@ -1455,7 +1464,8 @@ static struct usb_midi_device *parse_des
 						pins = 16;
 					u->in[iep].endpoint = p1[2];
 					u->in[iep].cableId = ( 1 << pins ) - 1;
-					if ( u->in[iep].cableId ) iep ++;
+					if ( u->in[iep].cableId )
+						iep ++;
 					if ( iep < 15 ) {
 						u->in[iep].endpoint = -1;
 						u->in[iep].cableId = -1;
@@ -1468,7 +1478,8 @@ static struct usb_midi_device *parse_des
 						pins = 16;
 					u->out[oep].endpoint = p1[2];
 					u->out[oep].cableId = ( 1 << pins ) - 1;
-					if ( u->out[oep].cableId ) oep ++;
+					if ( u->out[oep].cableId )
+						oep ++;
 					if ( oep < 15 ) {
 						u->out[oep].endpoint = -1;
 						u->out[oep].cableId = -1;
@@ -1486,7 +1497,7 @@ static struct usb_midi_device *parse_des
 	return u;
 
 error_end:
-	if ( u ) kfree(u);
+	kfree(u);
 	return NULL;
 }
 
@@ -1501,7 +1512,8 @@ static int on_bits( unsigned short v )
 	int ret=0;
 
 	for ( i=0 ; i<16 ; i++ ) {
-		if ( v & (1<<i) ) ret++;
+		if ( v & (1<<i) )
+			ret++;
 	}
 
 	return ret;
@@ -1578,7 +1590,8 @@ static int alloc_usb_midi_device( struct
 	if ( alt < 0 ) {
 		alt = get_alt_setting( d, u->interface );
 	}
-	if ( alt < 0 ) { return -ENXIO; }
+	if ( alt < 0 )
+		return -ENXIO;
 
 	/* Configure interface */
 	if ( usb_set_interface( d, u->interface, alt ) < 0 ) {
@@ -1596,7 +1609,8 @@ static int alloc_usb_midi_device( struct
 	       && u->in[inEndpoints].cableId >= 0 ) {
 		inDevs += on_bits((unsigned short)u->in[inEndpoints].cableId);
 		mins[inEndpoints] = alloc_midi_in_endpoint( d, u->in[inEndpoints].endpoint );
-		if ( mins[inEndpoints] == NULL ) { goto error_end; }
+		if ( mins[inEndpoints] == NULL )
+			goto error_end;
 		inEndpoints++;
 	}
 
@@ -1605,7 +1619,8 @@ static int alloc_usb_midi_device( struct
 	       && u->out[outEndpoints].cableId >= 0 ) {
 		outDevs += on_bits((unsigned short)u->out[outEndpoints].cableId);
 		mouts[outEndpoints] = alloc_midi_out_endpoint( d, u->out[outEndpoints].endpoint );
-		if ( mouts[outEndpoints] == NULL ) { goto error_end; }
+		if ( mouts[outEndpoints] == NULL )
+			goto error_end;
 		outEndpoints++;
 	}
 
@@ -1707,7 +1722,8 @@ static int alloc_usb_midi_device( struct
 		mout = mouts[outEndpoint];
 
 		mdevs[i] = allocMidiDev( s, min, mout, inCableId, outCableId );
-		if ( mdevs[i] == NULL ) { goto error_end; }
+		if ( mdevs[i] == NULL )
+			goto error_end;
 
 	}
 
@@ -1962,11 +1978,15 @@ static int detect_by_hand(struct usb_dev
 		return -EINVAL;
 	}
 
-	if ( ualt < 0 ) { ualt = -1; }
+	if ( ualt < 0 )
+		ualt = -1;
 
-	if ( umin   < 0 || umin   > 15 ) { umin   = 0x01 | USB_DIR_IN; }
-	if ( umout  < 0 || umout  > 15 ) { umout  = 0x01; }
-	if ( ucable < 0 || ucable > 15 ) { ucable = 0; }
+	if ( umin   < 0 || umin   > 15 )
+		umin   = 0x01 | USB_DIR_IN;
+	if ( umout  < 0 || umout  > 15 )
+		umout  = 0x01;
+	if ( ucable < 0 || ucable > 15 )
+		ucable = 0;
 
 	u.deviceName = 0; /* A flag for alloc_usb_midi_device to get device name
 			     from device. */
diff -puN drivers/usb/host/ehci-q.c~codingstyle-patrol-usb drivers/usb/host/ehci-q.c
diff -puN drivers/usb/media/se401.c~codingstyle-patrol-usb drivers/usb/media/se401.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/media/se401.c~codingstyle-patrol-usb	Sat May 10 20:40:13 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/media/se401.c	Sat May 10 20:48:15 2003
@@ -170,7 +170,8 @@ static int se401_read_proc(char *page, c
 	len -= off;
 	if (len < count) {
 		*eof = 1;
-			if (len <= 0) return 0;
+		if (len <= 0)
+			return 0;
 	} else
 		len = count;
 
@@ -749,7 +750,8 @@ static inline void decode_JangGu_vlc (st
 				}
 			} else {
 				if (vlc_cod==2) {
-					if (!bit) vlc_data=-(1<<vlc_size)+1;
+					if (!bit)
+						vlc_data =  -(1<<vlc_size) + 1;
 					vlc_cod--;
 				}
 				vlc_size--;
@@ -1046,15 +1048,12 @@ static int se401_open(struct inode *inod
 
 	if (se401->user)
 		return -EBUSY;
-	se401->user=1;
-	se401->fbuf=rvmalloc(se401->maxframesize * SE401_NUMFRAMES);
-	if(!se401->fbuf) err=-ENOMEM;
-
-        if (0 != err) {
-		se401->user = 0;
-	} else {
+	se401->fbuf = rvmalloc(se401->maxframesize * SE401_NUMFRAMES);
+	if (se401->fbuf)
 		file->private_data = dev;
-	}
+	else 
+		err = -ENOMEM;
+	se401->user = !err;
 
 	return err;
 }
diff -puN drivers/usb/serial/ir-usb.c~codingstyle-patrol-usb drivers/usb/serial/ir-usb.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/serial/ir-usb.c~codingstyle-patrol-usb	Sat May 10 20:43:44 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/serial/ir-usb.c	Sat May 10 20:44:14 2003
@@ -461,7 +461,8 @@ static void ir_read_bulk_callback (struc
 			 * contains a busy indicator and baud rate change.
 			 * See section 5.4.1.2 of the USB IrDA spec.
 			 */
-			if((*data & 0x0f) > 0) ir_baud = *data & 0x0f;
+			if ((*data & 0x0f) > 0)
+				ir_baud = *data & 0x0f;
 
 			usb_serial_debug_data (
 				__FILE__,
diff -puN drivers/usb/serial/cyberjack.c~codingstyle-patrol-usb drivers/usb/serial/cyberjack.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/serial/cyberjack.c~codingstyle-patrol-usb	Sat May 10 20:44:19 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/serial/cyberjack.c	Sat May 10 21:17:00 2003
@@ -284,7 +284,8 @@ static void cyberjack_read_int_callback(
 	struct usb_serial *serial;
 	unsigned char *data = urb->transfer_buffer;
 
-	if (port_paranoia_check (port, __FUNCTION__)) return;
+	if (port_paranoia_check (port, __FUNCTION__))
+		return;
 
 	dbg("%s - port %d", __FUNCTION__, port->number);
 
@@ -293,7 +294,8 @@ static void cyberjack_read_int_callback(
 		return;
 
 	serial = port->serial;
-	if (serial_paranoia_check (serial, __FUNCTION__)) return;
+	if (serial_paranoia_check (serial, __FUNCTION__))
+		return;
 
 	usb_serial_debug_data (__FILE__, __FUNCTION__, urb->actual_length, data);
 
@@ -372,7 +374,8 @@ static void cyberjack_read_bulk_callback
 	/* Reduce urbs to do by one. */
 	priv->rdtodo-=urb->actual_length;
 	/* Just to be sure */
-	if( priv->rdtodo<0 ) priv->rdtodo=0;
+	if ( priv->rdtodo<0 )
+		priv->rdtodo = 0;
 
 	dbg("%s - rdtodo: %d", __FUNCTION__, priv->rdtodo);
 
diff -puN drivers/usb/net/kaweth.c~codingstyle-patrol-usb drivers/usb/net/kaweth.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/net/kaweth.c~codingstyle-patrol-usb	Sat May 10 20:45:15 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/net/kaweth.c	Sat May 10 20:45:47 2003
@@ -811,7 +811,8 @@ static void kaweth_async_set_rx_mode(str
 {
 	__u16 packet_filter_bitmap = kaweth->packet_filter_bitmap;
 	kaweth->packet_filter_bitmap = 0;
-	if(packet_filter_bitmap == 0) return;
+	if (packet_filter_bitmap == 0)
+		return;
 
 	{
 	int result;
diff -puN drivers/usb/media/ov511.c~codingstyle-patrol-usb drivers/usb/media/ov511.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/media/ov511.c~codingstyle-patrol-usb	Sat May 10 20:48:21 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/media/ov511.c	Sat May 10 21:13:45 2003
@@ -876,15 +876,18 @@ ov518_i2c_write_internal(struct usb_ov51
 
 	/* Select camera register */
 	rc = reg_w(ov, R51x_I2C_SADDR_3, reg);
-	if (rc < 0) return rc;
+	if (rc < 0)
+		return rc;
 
 	/* Write "value" to I2C data port of OV511 */
 	rc = reg_w(ov, R51x_I2C_DATA, value);
-	if (rc < 0) return rc;
+	if (rc < 0)
+		return rc;
 
 	/* Initiate 3-byte write cycle */
 	rc = reg_w(ov, R518_I2C_CTL, 0x01);
-	if (rc < 0) return rc;
+	if (rc < 0)
+		return rc;
 
 	return 0;
 }
@@ -903,33 +906,43 @@ ov511_i2c_write_internal(struct usb_ov51
 	for (retries = OV511_I2C_RETRIES; ; ) {
 		/* Select camera register */
 		rc = reg_w(ov, R51x_I2C_SADDR_3, reg);
-		if (rc < 0) return rc;
+		if (rc < 0)
+			break;
 
 		/* Write "value" to I2C data port of OV511 */
 		rc = reg_w(ov, R51x_I2C_DATA, value);
-		if (rc < 0) return rc;
+		if (rc < 0)
+			break;
 
 		/* Initiate 3-byte write cycle */
 		rc = reg_w(ov, R511_I2C_CTL, 0x01);
-		if (rc < 0) return rc;
+		if (rc < 0)
+			break;
 
-		do rc = reg_r(ov, R511_I2C_CTL);
-		while (rc > 0 && ((rc&1) == 0)); /* Retry until idle */
-		if (rc < 0) return rc;
+		/* Retry until idle */
+		do
+			rc = reg_r(ov, R511_I2C_CTL);
+		while (rc > 0 && ((rc&1) == 0)); 
+		if (rc < 0)
+			break;
 
-		if ((rc&2) == 0) /* Ack? */
+		/* Ack? */
+		if ((rc&2) == 0) {
+			rc = 0;
 			break;
+		}
 #if 0
 		/* I2C abort */
 		reg_w(ov, R511_I2C_CTL, 0x10);
 #endif
 		if (--retries < 0) {
 			err("i2c write retries exhausted");
-			return -1;
+			rc = -1;
+			break;
 		}
 	}
 
-	return 0;
+	return rc;
 }
 
 /* NOTE: Do not call this function directly!
@@ -944,15 +957,18 @@ ov518_i2c_read_internal(struct usb_ov511
 
 	/* Select camera register */
 	rc = reg_w(ov, R51x_I2C_SADDR_2, reg);
-	if (rc < 0) return rc;
+	if (rc < 0)
+		return rc;
 
 	/* Initiate 2-byte write cycle */
 	rc = reg_w(ov, R518_I2C_CTL, 0x03);
-	if (rc < 0) return rc;
+	if (rc < 0)
+		return rc;
 
 	/* Initiate 2-byte read cycle */
 	rc = reg_w(ov, R518_I2C_CTL, 0x05);
-	if (rc < 0) return rc;
+	if (rc < 0)
+		return rc;
 
 	value = reg_r(ov, R51x_I2C_DATA);
 
@@ -972,15 +988,20 @@ ov511_i2c_read_internal(struct usb_ov511
 	for (retries = OV511_I2C_RETRIES; ; ) {
 		/* Select camera register */
 		rc = reg_w(ov, R51x_I2C_SADDR_2, reg);
-		if (rc < 0) return rc;
+		if (rc < 0)
+			return rc;
 
 		/* Initiate 2-byte write cycle */
 		rc = reg_w(ov, R511_I2C_CTL, 0x03);
-		if (rc < 0) return rc;
+		if (rc < 0)
+			return rc;
 
-		do rc = reg_r(ov, R511_I2C_CTL);
-		while (rc > 0 && ((rc&1) == 0)); /* Retry until idle */
-		if (rc < 0) return rc;
+		/* Retry until idle */
+		do
+			 rc = reg_r(ov, R511_I2C_CTL);
+		while (rc > 0 && ((rc&1) == 0));
+		if (rc < 0)
+			return rc;
 
 		if ((rc&2) == 0) /* Ack? */
 			break;
@@ -998,18 +1019,23 @@ ov511_i2c_read_internal(struct usb_ov511
 	for (retries = OV511_I2C_RETRIES; ; ) {
 		/* Initiate 2-byte read cycle */
 		rc = reg_w(ov, R511_I2C_CTL, 0x05);
-		if (rc < 0) return rc;
+		if (rc < 0)
+			return rc;
 
-		do rc = reg_r(ov, R511_I2C_CTL);
-		while (rc > 0 && ((rc&1) == 0)); /* Retry until idle */
-		if (rc < 0) return rc;
+		/* Retry until idle */
+		do
+			rc = reg_r(ov, R511_I2C_CTL);
+		while (rc > 0 && ((rc&1) == 0));
+		if (rc < 0)
+			return rc;
 
 		if ((rc&2) == 0) /* Ack? */
 			break;
 
 		/* I2C abort */
 		rc = reg_w(ov, R511_I2C_CTL, 0x10);
-		if (rc < 0) return rc;
+		if (rc < 0)
+			return rc;
 
 		if (--retries < 0) {
 			err("i2c read retries exhausted");
@@ -1127,10 +1153,12 @@ i2c_set_slave_internal(struct usb_ov511 
 	int rc;
 
 	rc = reg_w(ov, R51x_I2C_W_SID, slave);
-	if (rc < 0) return rc;
+	if (rc < 0)
+		return rc;
 
 	rc = reg_w(ov, R51x_I2C_R_SID, slave + 1);
-	if (rc < 0) return rc;
+	if (rc < 0)
+		return rc;
 
 	return 0;
 }
@@ -1149,7 +1177,8 @@ i2c_w_slave(struct usb_ov511 *ov,
 
 	/* Set new slave IDs */
 	rc = i2c_set_slave_internal(ov, slave);
-	if (rc < 0) goto out;
+	if (rc < 0)
+		goto out;
 
 	rc = ov51x_i2c_write_mask_internal(ov, reg, value, mask);
 
@@ -1174,7 +1203,8 @@ i2c_r_slave(struct usb_ov511 *ov,
 
 	/* Set new slave IDs */
 	rc = i2c_set_slave_internal(ov, slave);
-	if (rc < 0) goto out;
+	if (rc < 0)
+		goto out;
 
 	if (ov->bclass == BCL_OV518)
 		rc = ov518_i2c_read_internal(ov, reg);
@@ -1199,12 +1229,11 @@ ov51x_set_slave_ids(struct usb_ov511 *ov
 	down(&ov->i2c_lock);
 
 	rc = i2c_set_slave_internal(ov, sid);
-	if (rc < 0) goto out;
+	if (rc < 0)
+		goto out;
 
 	// FIXME: Is this actually necessary?
 	rc = ov51x_reset(ov, OV511_RESET_NOREGS);
-	if (rc < 0) goto out;
-
 out:
 	up(&ov->i2c_lock);
 	return rc;
@@ -1403,7 +1432,8 @@ init_ov_sensor(struct usb_ov511 *ov)
 	int i, success;
 
 	/* Reset the sensor */
-	if (i2c_w(ov, 0x12, 0x80) < 0) return -EIO;
+	if (i2c_w(ov, 0x12, 0x80) < 0)
+		return -EIO;
 
 	/* Wait for it to initialize */
 	schedule_timeout(1 + 150 * HZ / 1000);
@@ -1416,11 +1446,13 @@ init_ov_sensor(struct usb_ov511 *ov)
 		}
 
 		/* Reset the sensor */
-		if (i2c_w(ov, 0x12, 0x80) < 0) return -EIO;
+		if (i2c_w(ov, 0x12, 0x80) < 0)
+			return -EIO;
 		/* Wait for it to initialize */
 		schedule_timeout(1 + 150 * HZ / 1000);
 		/* Dummy read to sync I2C */
-		if (i2c_r(ov, 0x00) < 0) return -EIO;
+		if (i2c_r(ov, 0x00) < 0)
+			return -EIO;
 	}
 
 	if (!success)
@@ -1442,24 +1474,37 @@ ov511_set_packet_size(struct usb_ov511 *
 	mult = size >> 5;
 
 	if (ov->bridge == BRG_OV511) {
-		if (size == 0) alt = OV511_ALT_SIZE_0;
-		else if (size == 257) alt = OV511_ALT_SIZE_257;
-		else if (size == 513) alt = OV511_ALT_SIZE_513;
-		else if (size == 769) alt = OV511_ALT_SIZE_769;
-		else if (size == 993) alt = OV511_ALT_SIZE_993;
+		if (size == 0)
+			alt = OV511_ALT_SIZE_0;
+		else if (size == 257)
+			alt = OV511_ALT_SIZE_257;
+		else if (size == 513)
+			alt = OV511_ALT_SIZE_513;
+		else if (size == 769)
+			alt = OV511_ALT_SIZE_769;
+		else if (size == 993)
+			alt = OV511_ALT_SIZE_993;
 		else {
 			err("Set packet size: invalid size (%d)", size);
 			return -EINVAL;
 		}
 	} else if (ov->bridge == BRG_OV511PLUS) {
-		if (size == 0) alt = OV511PLUS_ALT_SIZE_0;
-		else if (size == 33) alt = OV511PLUS_ALT_SIZE_33;
-		else if (size == 129) alt = OV511PLUS_ALT_SIZE_129;
-		else if (size == 257) alt = OV511PLUS_ALT_SIZE_257;
-		else if (size == 385) alt = OV511PLUS_ALT_SIZE_385;
-		else if (size == 513) alt = OV511PLUS_ALT_SIZE_513;
-		else if (size == 769) alt = OV511PLUS_ALT_SIZE_769;
-		else if (size == 961) alt = OV511PLUS_ALT_SIZE_961;
+		if (size == 0)
+			alt = OV511PLUS_ALT_SIZE_0;
+		else if (size == 33)
+			alt = OV511PLUS_ALT_SIZE_33;
+		else if (size == 129)
+			alt = OV511PLUS_ALT_SIZE_129;
+		else if (size == 257)
+			alt = OV511PLUS_ALT_SIZE_257;
+		else if (size == 385)
+			alt = OV511PLUS_ALT_SIZE_385;
+		else if (size == 513)
+			alt = OV511PLUS_ALT_SIZE_513;
+		else if (size == 769)
+			alt = OV511PLUS_ALT_SIZE_769;
+		else if (size == 961)
+			alt = OV511PLUS_ALT_SIZE_961;
 		else {
 			err("Set packet size: invalid size (%d)", size);
 			return -EINVAL;
@@ -1502,14 +1547,22 @@ ov518_set_packet_size(struct usb_ov511 *
 		return -EIO;
 
 	if (ov->bclass == BCL_OV518) {
-		if (size == 0) alt = OV518_ALT_SIZE_0;
-		else if (size == 128) alt = OV518_ALT_SIZE_128;
-		else if (size == 256) alt = OV518_ALT_SIZE_256;
-		else if (size == 384) alt = OV518_ALT_SIZE_384;
-		else if (size == 512) alt = OV518_ALT_SIZE_512;
-		else if (size == 640) alt = OV518_ALT_SIZE_640;
-		else if (size == 768) alt = OV518_ALT_SIZE_768;
-		else if (size == 896) alt = OV518_ALT_SIZE_896;
+		if (size == 0)
+			alt = OV518_ALT_SIZE_0;
+		else if (size == 128)
+			alt = OV518_ALT_SIZE_128;
+		else if (size == 256)
+			alt = OV518_ALT_SIZE_256;
+		else if (size == 384)
+			alt = OV518_ALT_SIZE_384;
+		else if (size == 512)
+			alt = OV518_ALT_SIZE_512;
+		else if (size == 640)
+			alt = OV518_ALT_SIZE_640;
+		else if (size == 768)
+			alt = OV518_ALT_SIZE_768;
+		else if (size == 896)
+			alt = OV518_ALT_SIZE_896;
 		else {
 			err("Set packet size: invalid size (%d)", size);
 			return -EINVAL;
@@ -3939,28 +3992,40 @@ ov51x_init_isoc(struct usb_ov511 *ov)
 	ov->curframe = -1;
 
 	if (ov->bridge == BRG_OV511) {
-		if (cams == 1)				size = 993;
-		else if (cams == 2)			size = 513;
-		else if (cams == 3 || cams == 4)	size = 257;
+		if (cams == 1)
+			size = 993;
+		else if (cams == 2)
+			size = 513;
+		else if (cams == 3 || cams == 4)
+			size = 257;
 		else {
 			err("\"cams\" parameter too high!");
 			return -1;
 		}
 	} else if (ov->bridge == BRG_OV511PLUS) {
-		if (cams == 1)				size = 961;
-		else if (cams == 2)			size = 513;
-		else if (cams == 3 || cams == 4)	size = 257;
-		else if (cams >= 5 && cams <= 8)	size = 129;
-		else if (cams >= 9 && cams <= 31)	size = 33;
+		if (cams == 1)
+			size = 961;
+		else if (cams == 2)
+			size = 513;
+		else if (cams == 3 || cams == 4)
+			size = 257;
+		else if (cams >= 5 && cams <= 8)
+			size = 129;
+		else if (cams >= 9 && cams <= 31)
+			size = 33;
 		else {
 			err("\"cams\" parameter too high!");
 			return -1;
 		}
 	} else if (ov->bclass == BCL_OV518) {
-		if (cams == 1)				size = 896;
-		else if (cams == 2)			size = 512;
-		else if (cams == 3 || cams == 4)	size = 256;
-		else if (cams >= 5 && cams <= 8)	size = 128;
+		if (cams == 1)
+			size = 896;
+		else if (cams == 2)
+			size = 512;
+		else if (cams == 3 || cams == 4)
+			size = 256;
+		else if (cams >= 5 && cams <= 8)
+			size = 128;
 		else {
 			err("\"cams\" parameter too high!");
 			return -1;
@@ -5016,7 +5081,7 @@ ov51x_control_ioctl(struct inode *inode,
 	struct proc_dir_entry *pde = PDE(inode);
 	struct usb_ov511 *ov;
 	void *arg = (void *) ularg;
-	int rc;
+	int rc = 0;
 
 	if (!pde)
 		return -ENOENT;
@@ -5037,81 +5102,79 @@ ov51x_control_ioctl(struct inode *inode,
 
 		PDEBUG(4, "Get interface version: %d", ver);
 		if (copy_to_user(arg, &ver, sizeof(ver)))
-			return -EFAULT;
-
-		return 0;
+			rc = -EFAULT;
+		break;
 	}
 	case OV511IOC_GUSHORT:
 	{
 		struct ov511_ushort_opt opt;
 
-		if (copy_from_user(&opt, arg, sizeof(opt)))
-			return -EFAULT;
+		if (copy_from_user(&opt, arg, sizeof(opt))) {
+			rc = -EFAULT;
+			break;
+		}
 
 		switch (opt.optnum) {
 		case OV511_USOPT_BRIGHT:
 			rc = sensor_get_brightness(ov, &(opt.val));
-			if (rc)	return rc;
 			break;
 		case OV511_USOPT_SAT:
 			rc = sensor_get_saturation(ov, &(opt.val));
-			if (rc)	return rc;
 			break;
 		case OV511_USOPT_HUE:
 			rc = sensor_get_hue(ov, &(opt.val));
-			if (rc)	return rc;
 			break;
 		case OV511_USOPT_CONTRAST:
 			rc = sensor_get_contrast(ov, &(opt.val));
-			if (rc)	return rc;
 			break;
 		default:
 			err("Invalid get short option number");
-			return -EINVAL;
+			rc = -EINVAL;
 		}
 
+		if (rc < 0)
+			break;
 		if (copy_to_user(arg, &opt, sizeof(opt)))
-			return -EFAULT;
-
-		return 0;
+			rc = -EFAULT;
+		break;
 	}
 	case OV511IOC_SUSHORT:
 	{
 		struct ov511_ushort_opt opt;
 
-		if (copy_from_user(&opt, arg, sizeof(opt)))
-			return -EFAULT;
+		if (copy_from_user(&opt, arg, sizeof(opt))) {
+			rc = -EFAULT;
+			break;
+		}
 
 		switch (opt.optnum) {
 		case OV511_USOPT_BRIGHT:
 			rc = sensor_set_brightness(ov, opt.val);
-			if (rc)	return rc;
 			break;
 		case OV511_USOPT_SAT:
 			rc = sensor_set_saturation(ov, opt.val);
-			if (rc)	return rc;
 			break;
 		case OV511_USOPT_HUE:
 			rc = sensor_set_hue(ov, opt.val);
-			if (rc)	return rc;
 			break;
 		case OV511_USOPT_CONTRAST:
 			rc = sensor_set_contrast(ov, opt.val);
-			if (rc)	return rc;
 			break;
 		default:
 			err("Invalid set short option number");
-			return -EINVAL;
+			rc = -EINVAL;
 		}
 
-		return 0;
+		break;
 	}
 	case OV511IOC_GUINT:
 	{
 		struct ov511_uint_opt opt;
 
-		if (copy_from_user(&opt, arg, sizeof(opt)))
-			return -EFAULT;
+		if (copy_from_user(&opt, arg, sizeof(opt))) {
+			rc = -EFAULT;
+			break;
+		}
 
 		switch (opt.optnum) {
 		case OV511_UIOPT_POWER_FREQ:
@@ -5131,29 +5194,31 @@ ov51x_control_ioctl(struct inode *inode,
 			break;
 		default:
 			err("Invalid get int option number");
-			return -EINVAL;
+			rc = -EINVAL;
 		}
 
+		if (rc < 0)
+			break;
 		if (copy_to_user(arg, &opt, sizeof(opt)))
-			return -EFAULT;
+			rc = -EFAULT;
 
-		return 0;
+		break;
 	}
 	case OV511IOC_SUINT:
 	{
 		struct ov511_uint_opt opt;
 
-		if (copy_from_user(&opt, arg, sizeof(opt)))
-			return -EFAULT;
+		if (copy_from_user(&opt, arg, sizeof(opt))) {
+			rc = -EFAULT;
+			break;
+		}
 
 		switch (opt.optnum) {
 		case OV511_UIOPT_POWER_FREQ:
 			rc = sensor_set_light_freq(ov, opt.val);
-			if (rc)	return rc;
 			break;
 		case OV511_UIOPT_BFILTER:
 			rc = sensor_set_banding_filter(ov, opt.val);
-			if (rc)	return rc;
 			break;
 		case OV511_UIOPT_LED:
 			if (opt.val <= 2) {
@@ -5162,15 +5227,14 @@ ov51x_control_ioctl(struct inode *inode,
 					ov51x_led_control(ov, 0);
 				else if (ov->led_policy == LED_ON)
 					ov51x_led_control(ov, 1);
-			} else {
-				return -EINVAL;
-			}
+			} else
+				rc = -EINVAL;
 			break;
 		case OV511_UIOPT_DEBUG:
 			if (opt.val <= 5)
 				debug = opt.val;
 			else
-				return -EINVAL;
+				rc = -EINVAL;
 			break;
 		case OV511_UIOPT_COMPRESS:
 			ov->compress = opt.val;
@@ -5183,43 +5247,48 @@ ov51x_control_ioctl(struct inode *inode,
 			break;
 		default:
 			err("Invalid get int option number");
-			return -EINVAL;
+			rc = -EINVAL;
 		}
 
-		return 0;
+		break;
 	}
 	case OV511IOC_WI2C:
 	{
 		struct ov511_i2c_struct w;
 
-		if (copy_from_user(&w, arg, sizeof(w)))
-			return -EFAULT;
+		if (copy_from_user(&w, arg, sizeof(w))) {
+			rc = -EFAULT;
+			break;
+		}
 
-		return i2c_w_slave(ov, w.slave, w.reg, w.value,	w.mask);
+		rc = i2c_w_slave(ov, w.slave, w.reg, w.value, w.mask);
+		break;
 	}
 	case OV511IOC_RI2C:
 	{
 		struct ov511_i2c_struct r;
 
-		if (copy_from_user(&r, arg, sizeof(r)))
-			return -EFAULT;
+		if (copy_from_user(&r, arg, sizeof(r))) {
+			rc = -EFAULT;
+			break;
+		}
 
 		rc = i2c_r_slave(ov, r.slave, r.reg);
 		if (rc < 0)
-			return rc;
+			break;
 
 		r.value = rc;
 
 		if (copy_to_user(arg, &r, sizeof(r)))
-			return -EFAULT;
+			rc = -EFAULT;
 
-		return 0;
+		break;
 	}
 	default:
-		return -EINVAL;
+		rc = -EINVAL;
 	} /* end switch */
 
-	return 0;
+	return rc;
 }
 #endif
 
@@ -5358,7 +5427,8 @@ ov7xx0_configure(struct usb_ov511 *ov)
 		PDEBUG(1, "OV7xx0 sensor initalized (method 1)");
 	} else {
 		/* Reset the 76xx */
-		if (i2c_w(ov, 0x12, 0x80) < 0) return -1;
+		if (i2c_w(ov, 0x12, 0x80) < 0)
+			return -1;
 
 		/* Wait for it to initialize */
 		schedule_timeout(1 + 150 * HZ / 1000);
@@ -5822,7 +5892,8 @@ ov511_configure(struct usb_ov511 *ov)
 	if (ov->customid == 70)		/* USB Life TV (PAL/SECAM) */
 		ov->pal = 1;
 
-	if (write_regvals(ov, aRegvalsInit511)) goto error;
+	if (write_regvals(ov, aRegvalsInit511))
+		goto error;
 
 	if (ov->led_policy == LED_OFF || ov->led_policy == LED_AUTO)
 		ov51x_led_control(ov, 0);
@@ -5830,14 +5901,17 @@ ov511_configure(struct usb_ov511 *ov)
 	/* The OV511+ has undocumented bits in the flow control register.
 	 * Setting it to 0xff fixes the corruption with moving objects. */
 	if (ov->bridge == BRG_OV511) {
-		if (write_regvals(ov, aRegvalsNorm511)) goto error;
+		if (write_regvals(ov, aRegvalsNorm511))
+			goto error;
 	} else if (ov->bridge == BRG_OV511PLUS) {
-		if (write_regvals(ov, aRegvalsNorm511Plus)) goto error;
+		if (write_regvals(ov, aRegvalsNorm511Plus))
+			goto error;
 	} else {
 		err("Invalid bridge");
 	}
 
-	if (ov511_init_compression(ov)) goto error;
+	if (ov511_init_compression(ov))
+		goto error;
 
 	ov->packet_numbering = 1;
 	ov511_set_packet_size(ov, 0);
@@ -5975,10 +6049,12 @@ ov518_configure(struct usb_ov511 *ov)
 	/* Give it the default description */
 	ov->desc = symbolic(camlist, 0);
 
-	if (write_regvals(ov, aRegvalsInit518)) goto error;
+	if (write_regvals(ov, aRegvalsInit518))
+		goto error;
 
 	/* Set LED GPIO pin to output mode */
-	if (reg_w_mask(ov, 0x57, 0x00, 0x02) < 0) goto error;
+	if (reg_w_mask(ov, 0x57, 0x00, 0x02) < 0)
+		goto error;
 
 	/* LED is off by default with OV518; have to explicitly turn it on */
 	if (ov->led_policy == LED_OFF || ov->led_policy == LED_AUTO)
@@ -5994,16 +6070,20 @@ ov518_configure(struct usb_ov511 *ov)
 	}
 
 	if (ov->bridge == BRG_OV518) {
-		if (write_regvals(ov, aRegvalsNorm518)) goto error;
+		if (write_regvals(ov, aRegvalsNorm518))
+			goto error;
 	} else if (ov->bridge == BRG_OV518PLUS) {
-		if (write_regvals(ov, aRegvalsNorm518Plus)) goto error;
+		if (write_regvals(ov, aRegvalsNorm518Plus))
+			goto error;
 	} else {
 		err("Invalid bridge");
 	}
 
-	if (reg_w(ov, 0x2f, 0x80) < 0) goto error;
+	if (reg_w(ov, 0x2f, 0x80) < 0)
+		goto error;
 
-	if (ov518_init_compression(ov)) goto error;
+	if (ov518_init_compression(ov))
+		goto error;
 
 	if (ov->bridge == BRG_OV518)
 	{
diff -puN drivers/usb/media/vicam.c~codingstyle-patrol-usb drivers/usb/media/vicam.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/media/vicam.c~codingstyle-patrol-usb	Sat May 10 21:14:02 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/media/vicam.c	Sat May 10 21:14:56 2003
@@ -1139,7 +1139,8 @@ vicam_create_proc_entry(struct vicam_cam
 
 	cam->proc_dir = create_proc_entry(name, S_IFDIR, vicam_proc_root);
 
-	if ( !cam->proc_dir ) return; // We should probably return an error here
+	if ( !cam->proc_dir )
+		return; // FIXME: We should probably return an error here
 	
 	ent =
 	    create_proc_entry("shutter", S_IFREG | S_IRUGO, cam->proc_dir);
diff -puN drivers/usb/serial/belkin_sa.c~codingstyle-patrol-usb drivers/usb/serial/belkin_sa.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/serial/belkin_sa.c~codingstyle-patrol-usb	Sat May 10 21:15:33 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/serial/belkin_sa.c	Sat May 10 21:16:10 2003
@@ -285,10 +285,13 @@ static void belkin_sa_read_int_callback 
 		goto exit;
 	}
 
-	if (port_paranoia_check (port, __FUNCTION__)) return;
+	if (port_paranoia_check (port, __FUNCTION__))
+		return;
 
 	serial = port->serial;
-	if (serial_paranoia_check (serial, __FUNCTION__)) return;
+
+	if (serial_paranoia_check (serial, __FUNCTION__))
+		return;
 	
 	usb_serial_debug_data (__FILE__, __FUNCTION__, urb->actual_length, data);
 
diff -puN drivers/usb/serial/io_ti.c~codingstyle-patrol-usb drivers/usb/serial/io_ti.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/serial/io_ti.c~codingstyle-patrol-usb	Sat May 10 21:16:16 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/serial/io_ti.c	Sat May 10 21:16:28 2003
@@ -1553,7 +1553,8 @@ static __u8 MapLineStatus (__u8 ti_lsr)
 	__u8 lsr = 0;
 
 #define MAP_FLAG(flagUmp, flagUart)    \
-	if (ti_lsr & flagUmp) lsr |= flagUart;
+	if (ti_lsr & flagUmp)
+		lsr |= flagUart;
 
 	MAP_FLAG(UMP_UART_LSR_OV_MASK, LSR_OVER_ERR)	/* overrun */
 	MAP_FLAG(UMP_UART_LSR_PE_MASK, LSR_PAR_ERR)	/* parity error */
diff -puN drivers/usb/serial/console.c~codingstyle-patrol-usb drivers/usb/serial/console.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/serial/console.c~codingstyle-patrol-usb	Sat May 10 21:17:07 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/serial/console.c	Sat May 10 21:17:35 2003
@@ -76,9 +76,12 @@ static int __init usb_console_setup(stru
 		s = options;
 		while (*s >= '0' && *s <= '9')
 			s++;
-		if (*s)	parity = *s++;
-		if (*s)	bits   = *s++ - '0';
-		if (*s)	doflow = (*s++ == 'r');
+		if (*s)
+			parity = *s++;
+		if (*s)
+			bits   = *s++ - '0';
+		if (*s)
+			doflow = (*s++ == 'r');
 	}
 
 	/* build a cflag setting */
diff -puN drivers/usb/input/usbkbd.c~codingstyle-patrol-usb drivers/usb/input/usbkbd.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/input/usbkbd.c~codingstyle-patrol-usb	Sat May 10 21:17:50 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/input/usbkbd.c	Sat May 10 21:18:04 2003
@@ -137,7 +137,8 @@ int usb_kbd_event(struct input_dev *dev,
 {
 	struct usb_kbd *kbd = dev->private;
 
-	if (type != EV_LED) return -1;
+	if (type != EV_LED)
+		return -1;
 
 
 	kbd->newleds = (!!test_bit(LED_KANA,    dev->led) << 3) | (!!test_bit(LED_COMPOSE, dev->led) << 3) |
diff -puN drivers/usb/input/hid-input.c~codingstyle-patrol-usb drivers/usb/input/hid-input.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/input/hid-input.c~codingstyle-patrol-usb	Sat May 10 21:18:14 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/input/hid-input.c	Sat May 10 21:18:33 2003
@@ -351,7 +351,8 @@ static void hidinput_configure_usage(str
 		usage->code = find_next_zero_bit(bit, max + 1, usage->code);
 	}
 
-	if (usage->code > max) return;
+	if (usage->code > max)
+		return;
 
 	if (usage->type == EV_ABS) {
 		int a = field->logical_minimum;
diff -puN drivers/usb/input/hiddev.c~codingstyle-patrol-usb drivers/usb/input/hiddev.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/input/hiddev.c~codingstyle-patrol-usb	Sat May 10 21:18:36 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/input/hiddev.c	Sat May 10 21:19:49 2003
@@ -96,16 +96,19 @@ hiddev_lookup_report(struct hid_device *
 
 	case HID_REPORT_ID_FIRST:
 		list = report_enum->report_list.next;
-		if (list == &report_enum->report_list) return NULL;
+		if (list == &report_enum->report_list)
+			return NULL;
 		rinfo->report_id = ((struct hid_report *) list)->id;
 		break;
 		
 	case HID_REPORT_ID_NEXT:
 		list = (struct list_head *)
 			report_enum->report_id_hash[rinfo->report_id & HID_REPORT_ID_MASK];
-		if (list == NULL) return NULL;
+		if (list == NULL)
+			return NULL;
 		list = list->next;
-		if (list == &report_enum->report_list) return NULL;
+		if (list == &report_enum->report_list)
+			return NULL;
 		rinfo->report_id = ((struct hid_report *) list)->id;
 		break;
 		
@@ -311,7 +314,8 @@ static ssize_t hiddev_read(struct file *
 	event_size = ((list->flags & HIDDEV_FLAG_UREF) != 0) ?
 		sizeof(struct hiddev_usage_ref) : sizeof(struct hiddev_event);
 
-	if (count < event_size) return 0;
+	if (count < event_size)
+		return 0;
 
 	while (retval == 0) {
 		if (list->head == list->tail) {
@@ -404,7 +408,8 @@ static int hiddev_ioctl(struct inode *in
 	struct hid_field *field;
 	int i;
 
-	if (!hiddev->exist) return -EIO;
+	if (!hiddev->exist)
+		return -EIO;
 
 	switch (cmd) {
 
@@ -646,18 +651,22 @@ static int hiddev_ioctl(struct inode *in
 
 		if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGNAME(0))) {
 			int len;
-			if (!hid->name) return 0;
+			if (!hid->name)
+				return 0;
 			len = strlen(hid->name) + 1;
-			if (len > _IOC_SIZE(cmd)) len = _IOC_SIZE(cmd);
+			if (len > _IOC_SIZE(cmd))
+				 len = _IOC_SIZE(cmd);
 			return copy_to_user((char *) arg, hid->name, len) ?
 				-EFAULT : len;
 		}
 
 		if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGPHYS(0))) {
 			int len;
-			if (!hid->phys) return 0;
+			if (!hid->phys)
+				return 0;
 			len = strlen(hid->phys) + 1;
-			if (len > _IOC_SIZE(cmd)) len = _IOC_SIZE(cmd);
+			if (len > _IOC_SIZE(cmd))
+				len = _IOC_SIZE(cmd);
 			return copy_to_user((char *) arg, hid->phys, len) ?
 				-EFAULT : len;
 		}
diff -puN drivers/usb/input/hid-core.c~codingstyle-patrol-usb drivers/usb/input/hid-core.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/input/hid-core.c~codingstyle-patrol-usb	Sat May 10 21:19:57 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/input/hid-core.c	Sat May 10 21:21:31 2003
@@ -61,7 +61,8 @@ static struct hid_report *hid_register_r
 		return NULL;
 	memset(report, 0, sizeof(struct hid_report));
 
-	if (id != 0) report_enum->numbered = 1;
+	if (id != 0)
+		report_enum->numbered = 1;
 
 	report->id = id;
 	report->type = type;
@@ -539,11 +540,13 @@ static void hid_free_device(struct hid_d
 
 		for (j = 0; j < 256; j++) {
 			struct hid_report *report = report_enum->report_id_hash[j];
-			if (report) hid_free_report(report);
+			if (report)
+				hid_free_report(report);
 		}
 	}
 
-	if (device->rdesc) kfree(device->rdesc);
+	if (device->rdesc)
+		kfree(device->rdesc);
 	kfree(device);
 }
 
@@ -741,7 +744,8 @@ static __inline__ __s32 snto32(__u32 val
 static __inline__ __u32 s32ton(__s32 value, unsigned n)
 {
 	__s32 a = value >> (n - 1);
-	if (a && a != -1) return value < 0 ? 1 << (n - 1) : (1 << (n - 1)) - 1;
+	if (a && a != -1)
+		return value < 0 ? 1 << (n - 1) : (1 << (n - 1)) - 1;
 	return value & ((1 << n) - 1);
 }
 
@@ -769,7 +773,10 @@ static __inline__ void implement(__u8 *r
 
 static __inline__ int search(__s32 *array, __s32 value, unsigned n)
 {
-	while (n--) if (*array++ == value) return 0;
+	while (n--) {
+		if (*array++ == value)
+			return 0;
+	}
 	return -1;
 }
 
@@ -814,9 +821,11 @@ static void hid_input_field(struct hid_d
 		if (HID_MAIN_ITEM_VARIABLE & field->flags) {
 
 			if (field->flags & HID_MAIN_ITEM_RELATIVE) {
-				if (!value[n]) continue;
+				if (!value[n])
+					continue;
 			} else {
-				if (value[n] == field->value[n]) continue;
+				if (value[n] == field->value[n])
+					continue;
 			}	
 			hid_process_event(hid, field, &field->usage[n], value[n], regs);
 			continue;
@@ -1558,9 +1567,12 @@ static struct hid_device *usb_hid_config
 
 fail:
 
-	if (hid->urbin) usb_free_urb(hid->urbin);
-	if (hid->urbout) usb_free_urb(hid->urbout);
-	if (hid->urbctrl) usb_free_urb(hid->urbctrl);
+	if (hid->urbin)
+		usb_free_urb(hid->urbin);
+	if (hid->urbout)
+		usb_free_urb(hid->urbout);
+	if (hid->urbctrl)
+		usb_free_urb(hid->urbctrl);
 	hid_free_buffers(dev, hid);
 	hid_free_device(hid);
 
diff -puN drivers/usb/input/hid-lgff.c~codingstyle-patrol-usb drivers/usb/input/hid-lgff.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/input/hid-lgff.c~codingstyle-patrol-usb	Sat May 10 21:21:37 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/input/hid-lgff.c	Sat May 10 21:22:20 2003
@@ -154,7 +154,8 @@ int hid_lgff_init(struct hid_device* hid
 	}
 
 	private = kmalloc(sizeof(struct lgff_device), GFP_KERNEL);
-	if (!private) return -1;
+	if (!private)
+		return -1;
 	memset(private, 0, sizeof(struct lgff_device));
 	hid->ff_private = private;
 
@@ -216,7 +217,8 @@ static struct hid_report* hid_lgff_dupli
 	struct hid_report* ret;
 
 	ret = kmalloc(sizeof(struct lgff_device), GFP_KERNEL);
-	if (!ret) return NULL;
+	if (!ret)
+		return NULL;
 	*ret = *report;
 
 	ret->field[0] = kmalloc(sizeof(struct hid_field), GFP_KERNEL);
diff -puN drivers/usb/input/pid.c~codingstyle-patrol-usb drivers/usb/input/pid.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/input/pid.c~codingstyle-patrol-usb	Sat May 10 21:22:30 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/input/pid.c	Sat May 10 21:22:55 2003
@@ -117,7 +117,8 @@ static int hid_pid_erase(struct input_de
 	unsigned wanted_report = HID_UP_PID | FF_PID_USAGE_BLOCK_FREE;  /*  PID Block Free Report */
 	int ret;
 
-	if (!CHECK_OWNERSHIP(id, pid)) return -EACCES;
+	if (!CHECK_OWNERSHIP(id, pid))
+		return -EACCES;
 
 	/* Find report */
 	ret =  hid_find_report_by_usage(hid, wanted_report, &report, HID_OUTPUT_REPORT);
@@ -214,7 +215,8 @@ static int hid_pid_upload_effect(struct 
 	}
 	else {
 		/* We want to update an effect */
-		if (!CHECK_OWNERSHIP(effect->id, pid_private)) return -EACCES;
+		if (!CHECK_OWNERSHIP(effect->id, pid_private))
+			return -EACCES;
 
 		/* Parameter type cannot be updated */
 		if (effect->type != pid_private->effects[effect->id].effect.type)
diff -puN drivers/usb/input/hid-tmff.c~codingstyle-patrol-usb drivers/usb/input/hid-tmff.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/input/hid-tmff.c~codingstyle-patrol-usb	Sat May 10 21:23:02 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/input/hid-tmff.c	Sat May 10 21:23:18 2003
@@ -112,7 +112,8 @@ int hid_tmff_init(struct hid_device *hid
 	struct list_head *pos;
 
 	private = kmalloc(sizeof(struct tmff_device), GFP_KERNEL);
-	if (!private) return -ENOMEM;
+	if (!private)
+		return -ENOMEM;
 
 	memset(private, 0, sizeof(struct tmff_device));
 	hid->ff_private = private;
diff -puN drivers/usb/net/catc.c~codingstyle-patrol-usb drivers/usb/net/catc.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/net/catc.c~codingstyle-patrol-usb	Sat May 10 21:23:26 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/net/catc.c	Sat May 10 21:24:12 2003
@@ -828,10 +828,14 @@ static int catc_probe(struct usb_interfa
 	if ((!catc->ctrl_urb) || (!catc->tx_urb) || 
 	    (!catc->rx_urb) || (!catc->irq_urb)) {
 		err("No free urbs available.");
-		if (catc->ctrl_urb) usb_free_urb(catc->ctrl_urb);
-		if (catc->tx_urb)   usb_free_urb(catc->tx_urb);
-		if (catc->rx_urb)   usb_free_urb(catc->rx_urb);
-		if (catc->irq_urb)  usb_free_urb(catc->irq_urb);
+		if (catc->ctrl_urb)
+			usb_free_urb(catc->ctrl_urb);
+		if (catc->tx_urb)
+			usb_free_urb(catc->tx_urb);
+		if (catc->rx_urb)
+			usb_free_urb(catc->rx_urb);
+		if (catc->irq_urb)
+			usb_free_urb(catc->irq_urb);
 		kfree(netdev);
 		kfree(catc);
 		return -ENOMEM;
diff -puN drivers/usb/misc/auerswald.c~codingstyle-patrol-usb drivers/usb/misc/auerswald.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/misc/auerswald.c~codingstyle-patrol-usb	Sat May 10 21:24:57 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/misc/auerswald.c	Sat May 10 21:26:35 2003
@@ -572,7 +572,8 @@ static int auerchain_setup (pauerchain_t
         /* fill the list of free elements */
         for (;numElements; numElements--) {
                 acep = (pauerchainelement_t) kmalloc (sizeof (auerchainelement_t), GFP_KERNEL);
-                if (!acep) goto ac_fail;
+                if (!acep)
+			goto ac_fail;
 		memset (acep, 0, sizeof (auerchainelement_t));
                 INIT_LIST_HEAD (&acep->list);
                 list_add_tail (&acep->list, &acp->free_list);
@@ -780,16 +781,20 @@ static int auerbuf_setup (pauerbufctl_t 
         /* fill the list of free elements */
         for (;numElements; numElements--) {
                 bep = (pauerbuf_t) kmalloc (sizeof (auerbuf_t), GFP_KERNEL);
-                if (!bep) goto bl_fail;
+                if (!bep)
+			goto bl_fail;
 	        memset (bep, 0, sizeof (auerbuf_t));
                 bep->list = bcp;
                 INIT_LIST_HEAD (&bep->buff_list);
                 bep->bufp = (char *) kmalloc (bufsize, GFP_KERNEL);
-                if (!bep->bufp) goto bl_fail;
+                if (!bep->bufp)
+			goto bl_fail;
                 bep->dr = (struct usb_ctrlrequest *) kmalloc (sizeof (struct usb_ctrlrequest), GFP_KERNEL);
-                if (!bep->dr) goto bl_fail;
+                if (!bep->dr)
+			goto bl_fail;
                 bep->urbp = usb_alloc_urb (0, GFP_KERNEL);
-                if (!bep->urbp) goto bl_fail;
+                if (!bep->urbp)
+			goto bl_fail;
                 list_add_tail (&bep->buff_list, &bcp->free_buff_list);
         }
         return 0;
@@ -1242,7 +1247,8 @@ static void auerchar_ctrlread_dispatch (
 static void auerswald_delete( pauerswald_t cp)
 {
 	dbg( "auerswald_delete");
-	if (cp == NULL) return;
+	if (cp == NULL)
+		return;
 
 	/* Wake up all processes waiting for a buffer */
 	wake_up (&cp->bufferwait);
@@ -1261,7 +1267,8 @@ static void auerswald_delete( pauerswald
 static void auerchar_delete( pauerchar_t ccp)
 {
 	dbg ("auerchar_delete");
-	if (ccp == NULL) return;
+	if (ccp == NULL)
+		return;
 
         /* wake up pending synchronous reads */
 	ccp->removed = 1;
@@ -1335,7 +1342,8 @@ static void auerswald_removeservice (pau
 	dbg ("auerswald_removeservice called");
 
 	/* check if we have a service allocated */
-	if (scp->id == AUH_UNASSIGNED) return;
+	if (scp->id == AUH_UNASSIGNED)
+		return;
 
 	/* If there is a device: close the channel */
 	if (cp->usbdev) {
@@ -1494,7 +1502,8 @@ static int auerchar_ioctl (struct inode 
 		u = 0;	/* no data */
 		if (ccp->readbuf) {
 			int restlen = ccp->readbuf->len - ccp->readoffset;
-			if (restlen > 0) u = 1;
+			if (restlen > 0)
+				u = 1;
 		}
 		if (!u) {
         		if (!list_empty (&ccp->bufctl.rec_buff_list)) {
@@ -1787,7 +1796,8 @@ write_again:
 	}
 
 	/* protect against too big write requests */
-	if (len > cp->maxControlLength) len = cp->maxControlLength;
+	if (len > cp->maxControlLength)
+		len = cp->maxControlLength;
 
 	/* Fill the buffer */
 	if (copy_from_user ( bp->bufp+AUH_SIZE, buf, len)) {
@@ -2096,7 +2106,8 @@ static void auerswald_disconnect (struct
 		/* Inform all waiting readers */
 		for ( u = 0; u < AUH_TYPESIZE; u++) {
 			pauerscon_t scp = cp->services[u];
-			if (scp) scp->disconnect( scp);
+			if (scp)
+				scp->disconnect( scp);
 		}
 	}
 }
diff -puN drivers/usb/class/cdc-acm.c~codingstyle-patrol-usb drivers/usb/class/cdc-acm.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/class/cdc-acm.c~codingstyle-patrol-usb	Sat May 10 21:26:41 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/class/cdc-acm.c	Sat May 10 21:28:04 2003
@@ -252,7 +252,8 @@ static void acm_read_bulk(struct urb *ur
 	unsigned char *data = urb->transfer_buffer;
 	int i = 0;
 
-	if (!ACM_READY(acm)) return;
+	if (!ACM_READY(acm))
+		return;
 
 	if (urb->status)
 		dbg("nonzero read bulk status received: %d", urb->status);
@@ -286,7 +287,8 @@ static void acm_write_bulk(struct urb *u
 {
 	struct acm *acm = (struct acm *)urb->context;
 
-	if (!ACM_READY(acm)) return;
+	if (!ACM_READY(acm))
+		return;
 
 	if (urb->status)
 		dbg("nonzero write bulk status received: %d", urb->status);
@@ -299,7 +301,8 @@ static void acm_softint(void *private)
 	struct acm *acm = private;
 	struct tty_struct *tty = acm->tty;
 
-	if (!ACM_READY(acm)) return;
+	if (!ACM_READY(acm))
+		return;
 
 	if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) && tty->ldisc.write_wakeup)
 		(tty->ldisc.write_wakeup)(tty);
@@ -315,7 +318,8 @@ static int acm_tty_open(struct tty_struc
 {
 	struct acm *acm = acm_table[tty->index];
 
-	if (!acm || !acm->dev) return -EINVAL;
+	if (!acm || !acm->dev)
+		return -EINVAL;
 
 	tty->driver_data = acm;
 	acm->tty = tty;
@@ -350,7 +354,8 @@ static void acm_tty_close(struct tty_str
 {
 	struct acm *acm = tty->driver_data;
 
-	if (!acm || !acm->used) return;
+	if (!acm || !acm->used)
+		return;
 
 	if (!--acm->used) {
 		if (acm->dev) {
@@ -373,9 +378,12 @@ static int acm_tty_write(struct tty_stru
 {
 	struct acm *acm = tty->driver_data;
 
-	if (!ACM_READY(acm)) return -EINVAL;
-	if (acm->writeurb->status == -EINPROGRESS) return 0;
-	if (!count) return 0;
+	if (!ACM_READY(acm))
+		return -EINVAL;
+	if (acm->writeurb->status == -EINPROGRESS)
+		return 0;
+	if (!count)
+		return 0;
 
 	count = (count > acm->writesize) ? acm->writesize : count;
 
@@ -397,28 +405,32 @@ static int acm_tty_write(struct tty_stru
 static int acm_tty_write_room(struct tty_struct *tty)
 {
 	struct acm *acm = tty->driver_data;
-	if (!ACM_READY(acm)) return -EINVAL;
+	if (!ACM_READY(acm))
+		return -EINVAL;
 	return acm->writeurb->status == -EINPROGRESS ? 0 : acm->writesize;
 }
 
 static int acm_tty_chars_in_buffer(struct tty_struct *tty)
 {
 	struct acm *acm = tty->driver_data;
-	if (!ACM_READY(acm)) return -EINVAL;
+	if (!ACM_READY(acm))
+		return -EINVAL;
 	return acm->writeurb->status == -EINPROGRESS ? acm->writeurb->transfer_buffer_length : 0;
 }
 
 static void acm_tty_throttle(struct tty_struct *tty)
 {
 	struct acm *acm = tty->driver_data;
-	if (!ACM_READY(acm)) return;
+	if (!ACM_READY(acm))
+		return;
 	acm->throttle = 1;
 }
 
 static void acm_tty_unthrottle(struct tty_struct *tty)
 {
 	struct acm *acm = tty->driver_data;
-	if (!ACM_READY(acm)) return;
+	if (!ACM_READY(acm))
+		return;
 	acm->throttle = 0;
 	if (acm->readurb->status != -EINPROGRESS)
 		acm_read_bulk(acm->readurb, NULL);
@@ -427,7 +439,8 @@ static void acm_tty_unthrottle(struct tt
 static void acm_tty_break_ctl(struct tty_struct *tty, int state)
 {
 	struct acm *acm = tty->driver_data;
-	if (!ACM_READY(acm)) return;
+	if (!ACM_READY(acm))
+		return;
 	if (acm_send_break(acm, state ? 0xffff : 0))
 		dbg("send break failed");
 }
@@ -496,7 +509,8 @@ static void acm_tty_set_termios(struct t
 	struct acm_line newline;
 	int newctrl = acm->ctrlout;
 
-	if (!ACM_READY(acm)) return;
+	if (!ACM_READY(acm))
+		return;
 
 	newline.speed = cpu_to_le32p(acm_tty_speed +
 		(termios->c_cflag & CBAUD & ~CBAUDEX) + (termios->c_cflag & CBAUDEX ? 15 : 0));
diff -puN drivers/usb/class/usblp.c~codingstyle-patrol-usb drivers/usb/class/usblp.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/class/usblp.c~codingstyle-patrol-usb	Sat May 10 21:29:51 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/class/usblp.c	Sat May 10 21:30:54 2003
@@ -298,8 +298,10 @@ static int usblp_check_status(struct usb
 	status = *usblp->statusbuf;
 	if (~status & LP_PERRORP) {
 		newerr = 3;
-		if (status & LP_POUTPA) newerr = 1;
-		if (~status & LP_PSELECD) newerr = 2;
+		if (status & LP_POUTPA)
+			newerr = 1;
+		if (~status & LP_PSELECD)
+			newerr = 2;
 	}
 
 	if (newerr != err)
@@ -926,8 +928,8 @@ abort:
 		if (usblp->readbuf)
 			usb_buffer_free (usblp->dev, USBLP_BUF_SIZE,
 				usblp->readbuf, usblp->writeurb->transfer_dma);
-		if (usblp->statusbuf) kfree(usblp->statusbuf);
-		if (usblp->device_id_string) kfree(usblp->device_id_string);
+		kfree(usblp->statusbuf);
+		kfree(usblp->device_id_string);
 		usb_free_urb(usblp->writeurb);
 		usb_free_urb(usblp->readurb);
 		kfree(usblp);
@@ -987,10 +989,12 @@ static int usblp_select_alts(struct usbl
 				continue;
 
 			if (!(epd->bEndpointAddress & USB_ENDPOINT_DIR_MASK)) {
-				if (!epwrite) epwrite=epd;
+				if (!epwrite)
+					epwrite = epd;
 
 			} else {
-				if (!epread) epread=epd;
+				if (!epread)
+					epread = epd;
 			}
 		}
 
@@ -1020,9 +1024,12 @@ static int usblp_select_alts(struct usbl
 		return proto_bias;
 
 	/* Ordering is important here. */
-	if (usblp->protocol[2].alt_setting != -1) return 2;
-	if (usblp->protocol[1].alt_setting != -1) return 1;
-	if (usblp->protocol[3].alt_setting != -1) return 3;
+	if (usblp->protocol[2].alt_setting != -1)
+		return 2;
+	if (usblp->protocol[1].alt_setting != -1)
+		return 1;
+	if (usblp->protocol[3].alt_setting != -1)
+		return 3;
 
 	/* If nothing is available, then don't bind to this device. */
 	return -1;
@@ -1036,7 +1043,8 @@ static int usblp_set_protocol(struct usb
 		return -EINVAL;
 
 	alts = usblp->protocol[protocol].alt_setting;
-	if (alts < 0) return -EINVAL;
+	if (alts < 0)
+		return -EINVAL;
 	r = usb_set_interface(usblp->dev, usblp->ifnum, alts);
 	if (r < 0) {
 		err("can't set desired altsetting %d on interface %d",
diff -puN drivers/usb/core/hcd-pci.c~codingstyle-patrol-usb drivers/usb/core/hcd-pci.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/core/hcd-pci.c~codingstyle-patrol-usb	Sat May 10 21:31:12 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/core/hcd-pci.c	Sat May 10 21:31:37 2003
@@ -209,7 +209,8 @@ void usb_hcd_pci_remove (struct pci_dev 
 		return;
 	dev_info (hcd->controller, "remove, state %x\n", hcd->state);
 
-	if (in_interrupt ()) BUG ();
+	if (in_interrupt ())
+		BUG ();
 
 	hub = hcd->self.root_hub;
 	hcd->state = USB_STATE_QUIESCING;
diff -puN drivers/usb/host/ohci-sa1111.c~codingstyle-patrol-usb drivers/usb/host/ohci-sa1111.c
--- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/host/ohci-sa1111.c~codingstyle-patrol-usb	Sat May 10 21:31:53 2003
+++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/host/ohci-sa1111.c	Sat May 10 21:32:20 2003
@@ -209,7 +209,8 @@ int usb_hcd_sa1111_probe (const struct h
 
  err2:
 	hcd_buffer_destroy (hcd);
-	if (hcd) driver->hcd_free(hcd);
+	if (hcd)
+		driver->hcd_free(hcd);
  err1:
 	sa1111_stop_hc(dev);
 	release_mem_region(dev->res.start, dev->res.end - dev->res.start + 1);
@@ -237,7 +238,8 @@ void usb_hcd_sa1111_remove (struct usb_h
 
 	info ("remove: %s, state %x", hcd->self.bus_name, hcd->state);
 
-	if (in_interrupt ()) BUG ();
+	if (in_interrupt ())
+		BUG ();
 
 	hub = hcd->self.root_hub;
 	hcd->state = USB_STATE_QUIESCING;

_

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [USB] [PATCH] Crud-- (was: Re: [ATM] [UPDATE] unbalanced usw)
  2003-05-10 19:39                     ` [USB] [PATCH] Crud-- (was: Re: [ATM] [UPDATE] unbalanced usw) Francois Romieu
@ 2003-05-10 21:01                       ` Francois Romieu
  2003-05-10 23:04                         ` Francois Romieu
  0 siblings, 1 reply; 23+ messages in thread
From: Francois Romieu @ 2003-05-10 21:01 UTC (permalink / raw)
  To: akpm; +Cc: Greg KH, Christoph Hellwig, linux-kernel

Francois Romieu <romieu@fr.zoreil.com> :
[...]
> diff -puN drivers/usb/class/usb-midi.c~codingstyle-patrol-usb drivers/usb/class/usb-midi.c
> --- linux-2.5.69-1.1042.101.10-to-1.1083/drivers/usb/class/usb-midi.c~codingstyle-patrol-usb	Sat May 10 20:34:14 2003
> +++ linux-2.5.69-1.1042.101.10-to-1.1083-fr/drivers/usb/class/usb-midi.c	Sat May 10 21:29:42 2003
> @@ -1355,8 +1355,10 @@ static struct usb_midi_device *parse_des
>  		next = p2 + p2[0];
>  		length -= p2[0];
>  
> -		if (p2[0] < 2 ) break;
> -		if (p2[1] != USB_DT_CS_INTERFACE) break;
> +		if (p2[0] < 2 )
> +			break;
> +		if (p2[1] != USB_DT_CS_INTERFACE)r
                                                !!!
> +			break;

... and the winner of the "Bozo of the week award" is Francois Romieu
for his new concept of compilation checking without .config update.

I'll send a link for an update once it at least compiles.

--
Ueimor

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [USB] [PATCH] Crud-- (was: Re: [ATM] [UPDATE] unbalanced usw)
  2003-05-10 21:01                       ` Francois Romieu
@ 2003-05-10 23:04                         ` Francois Romieu
  2003-05-13 20:10                           ` Greg KH
  0 siblings, 1 reply; 23+ messages in thread
From: Francois Romieu @ 2003-05-10 23:04 UTC (permalink / raw)
  To: akpm; +Cc: Greg KH, Christoph Hellwig, linux-kernel

Francois Romieu <romieu@fr.zoreil.com> :
[...]
> I'll send a link for an update once it at least compiles.

Update available at:
http://www.fr.zoreil.com/2.5.69/patches/codingstyle-patrol-usb.patch

This one really compiles.

--
Ueimor

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [USB] [PATCH] Crud-- (was: Re: [ATM] [UPDATE] unbalanced usw)
  2003-05-10 23:04                         ` Francois Romieu
@ 2003-05-13 20:10                           ` Greg KH
  0 siblings, 0 replies; 23+ messages in thread
From: Greg KH @ 2003-05-13 20:10 UTC (permalink / raw)
  To: Francois Romieu; +Cc: akpm, Christoph Hellwig, linux-kernel

On Sun, May 11, 2003 at 01:04:44AM +0200, Francois Romieu wrote:
> Francois Romieu <romieu@fr.zoreil.com> :
> [...]
> > I'll send a link for an update once it at least compiles.
> 
> Update available at:
> http://www.fr.zoreil.com/2.5.69/patches/codingstyle-patrol-usb.patch
> 
> This one really compiles.

Applied, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2003-05-13 19:59 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <200305071813.h47IDpc9010906@hera.kernel.org>
2003-05-07 23:01 ` [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one() Francois Romieu
2003-05-08  5:06   ` Christoph Hellwig
2003-05-08 10:08     ` Francois Romieu
2003-05-08 10:54     ` David S. Miller
2003-05-08 22:47       ` Werner Almesberger
2003-05-09  0:58         ` chas williams
2003-05-09  1:23           ` David S. Miller
2003-05-09 22:02           ` [ATM] [UPDATE] " Francois Romieu
2003-05-09 23:38             ` [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!) chas williams
2003-05-10  5:20               ` Christoph Hellwig
2003-05-10 13:52                 ` chas williams
2003-05-10 14:02                   ` David S. Miller
2003-05-10 15:18                     ` chas williams
2003-05-10 15:25                       ` David S. Miller
2003-05-10 14:43                   ` Christoph Hellwig
2003-05-10 16:12                   ` Greg KH
2003-05-10 19:39                     ` [USB] [PATCH] Crud-- (was: Re: [ATM] [UPDATE] unbalanced usw) Francois Romieu
2003-05-10 21:01                       ` Francois Romieu
2003-05-10 23:04                         ` Francois Romieu
2003-05-13 20:10                           ` Greg KH
2003-05-10 10:54               ` [ATM] [UPDATE] unbalanced exit path in Forerunner HE he_init_one() (and an iphase patch too!) Francois Romieu
2003-05-08 12:20   ` [ATM] [PATCH] unbalanced exit path in Forerunner HE he_init_one() chas williams
2003-05-08 13:18     ` Francois Romieu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).