staging:iio:max1363: Don't free uninitialized variable

It is possible that on one of the error paths we are going to try to free
'rxbuf', even though it has not been allocated yet, which cause the following
warning:
	drivers/staging/iio/adc/max1363_ring.c: In function 'max1363_trigger_handler':
		drivers/staging/iio/adc/max1363_ring.c:87:7: warning: 'rxbuf' may be used
		uninitialized in this function

Reported-by: Fengguang Wu <wfg@linux.intel.com>
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
Lars-Peter Clausen 2012-07-11 10:28:00 +01:00 committed by Jonathan Cameron
parent 7b7627410e
commit 3879089ba3
1 changed files with 3 additions and 2 deletions

View File

@ -74,7 +74,7 @@ static irqreturn_t max1363_trigger_handler(int irq, void *p)
else else
b_sent = i2c_master_recv(st->client, rxbuf, numvals); b_sent = i2c_master_recv(st->client, rxbuf, numvals);
if (b_sent < 0) if (b_sent < 0)
goto done; goto done_free;
time_ns = iio_get_time_ns(); time_ns = iio_get_time_ns();
@ -82,9 +82,10 @@ static irqreturn_t max1363_trigger_handler(int irq, void *p)
memcpy(rxbuf + d_size - sizeof(s64), &time_ns, sizeof(time_ns)); memcpy(rxbuf + d_size - sizeof(s64), &time_ns, sizeof(time_ns));
iio_push_to_buffer(indio_dev->buffer, rxbuf, time_ns); iio_push_to_buffer(indio_dev->buffer, rxbuf, time_ns);
done_free:
kfree(rxbuf);
done: done:
iio_trigger_notify_done(indio_dev->trig); iio_trigger_notify_done(indio_dev->trig);
kfree(rxbuf);
return IRQ_HANDLED; return IRQ_HANDLED;
} }