From 3112dea66915e2a8293b2cd7d133dece4e85aedd Mon Sep 17 00:00:00 2001 From: Pete Eberlein Date: Fri, 18 Sep 2009 22:05:19 -0300 Subject: [PATCH] --- yaml --- r: 164279 b: refs/heads/master c: d66ddf21723146a69915a0cf46db77f409e74602 h: refs/heads/master i: 164277: 10ef9d5e6591d39082963b176eb5fc467a8933b9 164275: 3aa777938e0c7fe8cbaa2621f901415147ff6336 164271: 039f0a0a1d64f789314f839d4794c666a65abf8c v: v3 --- [refs] | 2 +- trunk/drivers/staging/go7007/s2250-board.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 53bd8a1e4551..073c16f09da2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bb871652d9523d5be811c0c36b04c05c4ac37f92 +refs/heads/master: d66ddf21723146a69915a0cf46db77f409e74602 diff --git a/trunk/drivers/staging/go7007/s2250-board.c b/trunk/drivers/staging/go7007/s2250-board.c index f35f0776c2fe..3310961de1ec 100644 --- a/trunk/drivers/staging/go7007/s2250-board.c +++ b/trunk/drivers/staging/go7007/s2250-board.c @@ -203,10 +203,13 @@ static int write_reg_fp(struct i2c_client *client, u16 addr, u16 val) usb = go->hpi_context; if (mutex_lock_interruptible(&usb->i2c_lock) != 0) { printk(KERN_INFO "i2c lock failed\n"); + kfree(buf); return -EINTR; } - if (go7007_usb_vendor_request(go, 0x57, addr, val, buf, 16, 1) < 0) + if (go7007_usb_vendor_request(go, 0x57, addr, val, buf, 16, 1) < 0) { + kfree(buf); return -EFAULT; + } mutex_unlock(&usb->i2c_lock); if (buf[0] == 0) { @@ -214,6 +217,7 @@ static int write_reg_fp(struct i2c_client *client, u16 addr, u16 val) subaddr = (buf[4] << 8) + buf[5]; val_read = (buf[2] << 8) + buf[3]; + kfree(buf); if (val_read != val) { printk(KERN_INFO "invalid fp write %x %x\n", val_read, val); @@ -224,8 +228,10 @@ static int write_reg_fp(struct i2c_client *client, u16 addr, u16 val) subaddr, addr); return -EFAULT; } - } else + } else { + kfree(buf); return -EFAULT; + } /* save last 12b value */ if (addr == 0x12b)