Am 17.03.2012 18:36, schrieb santosh nayak: > From: Santosh Nayak <santoshprasadnayak@xxxxxxxxx> > > Use uninterruptable sleep lock 'mutex_lock()' in place of > mutex_lock_interruptible() because there is no userspace > for s2250_probe(). > > Return -ENOMEM if kzalloc() fails to allocate and initialize. > > Signed-off-by: Santosh Nayak <santoshprasadnayak@xxxxxxxxx> > --- > drivers/staging/media/go7007/s2250-board.c | 43 +++++++++++++++------------ > 1 files changed, 24 insertions(+), 19 deletions(-) > > diff --git a/drivers/staging/media/go7007/s2250-board.c b/drivers/staging/media/go7007/s2250-board.c > index 014d384..1406a37 100644 > --- a/drivers/staging/media/go7007/s2250-board.c > +++ b/drivers/staging/media/go7007/s2250-board.c > @@ -637,27 +637,32 @@ static int s2250_probe(struct i2c_client *client, > state->audio_input = 0; > write_reg(client, 0x08, 0x02); /* Line In */ > > - if (mutex_lock_interruptible(&usb->i2c_lock) == 0) { > - data = kzalloc(16, GFP_KERNEL); > - if (data != NULL) { > - int rc; > - rc = go7007_usb_vendor_request(go, 0x41, 0, 0, > - data, 16, 1); > - if (rc > 0) { > - u8 mask; > - data[0] = 0; > - mask = 1<<5; > - data[0] &= ~mask; > - data[1] |= mask; > - go7007_usb_vendor_request(go, 0x40, 0, > - (data[1]<<8) > - + data[1], > - data, 16, 0); > - } > - kfree(data); > - } > + mutex_lock(&usb->i2c_lock); > + data = kzalloc(16, GFP_KERNEL); > + if (data == NULL) { > + i2c_unregister_device(audio); > + kfree(state); > mutex_unlock(&usb->i2c_lock); > + return -ENOMEM; > + } else { > + int rc; > + rc = go7007_usb_vendor_request(go, 0x41, 0, 0, > + data, 16, 1); > + if (rc > 0) { > + u8 mask; > + data[0] = 0; > + mask = 1<<5; > + data[0] &= ~mask; > + data[1] |= mask; > + go7007_usb_vendor_request(go, 0x40, 0, > + (data[1]<<8) > + + data[1], > + data, 16, 0); > + } > + kfree(data); > } > + mutex_unlock(&usb->i2c_lock); > + > > v4l2_info(sd, "initialized successfully\n"); > return 0; hi, You can drop the else 1. there is no 3. way 2. you can save 1 indent level just one question: the (data[1]<<8)+ data[1] is intended ? always data[1] ? (i have no clue, it is the original code, it just feels .. strange ) re, wh _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel