Alexey Fisher wrote: > diff -uprN linux/drivers/i2c/chips/max1619.c linux-2.6-dev/drivers/i2c/chips/max1619.c > --- linux/drivers/i2c/chips/max1619.c 2005-05-15 22:49:31.000000000 +0200 > +++ linux-2.6-dev/drivers/i2c/chips/max1619.c 2005-05-15 21:05:56.000000000 +0200 > @@ -195,6 +195,7 @@ static int max1619_detect(struct i2c_ada > u8 reg_config=0, reg_convrate=0, reg_status=0; > u8 man_id, chip_id; > if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) > + err = -ENODEV; > goto exit; Sure about that, I think there are some brackets missing. > if (!(data = kmalloc(sizeof(struct max1619_data), GFP_KERNEL))) { > @@ -234,6 +235,7 @@ static int max1619_detect(struct i2c_ada > dev_dbg(&adapter->dev, > "MAX1619 detection failed at 0x%02x.\n", > address); > + return -ENODEV; > goto exit_free; > } > } I would expect gcc to throw a warning about unreachable code here because goto exit_free ist behind a return statement. Don't you mean err = -ENODEV; goto exit_free; That way the data structure data will be freed, too. > @@ -254,6 +256,7 @@ static int max1619_detect(struct i2c_ada > dev_info(&adapter->dev, > "Unsupported chip (man_id=0x%02X, " > "chip_id=0x%02X).\n", man_id, chip_id); > + return -ENODEV; > goto exit_free; > } Same here. I am not using this driver and am not fully up to date with the kernel sources so I am sorry if I am talking nonesense here. Bye Daniel
Attachment:
signature.asc
Description: OpenPGP digital signature
- Prev by Date: Re: [RCF] [PATCH] unprivileged mount/umount
- Next by Date: Re: [XFS] Kernel (2.6.11) deadlock (kernel hang) in user mode when writing data through mmap on large files (64-bit systems)
- Previous by thread: Re: clean up and warnings patch for 2.6.12-rc4-mm1 i2c-chip
- Next by thread: [PATCH] Haunted spurious interrupt
- Index(es):