diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-06-06 19:34:11 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-06-06 19:34:11 -0400 |
| commit | e2b02e25c5e9c2b5c8da22d8ca7efadc1b4e5468 (patch) | |
| tree | 6c87037ae3068876b27dd5f53e756eb01a3608c8 /drivers/iio/buffer_cb.c | |
| parent | 3b285cb2f7da913bb27017b6964b3c5b052c543b (diff) | |
| parent | 1f89b8fc41b66e5761bb8c3af5517fd42bf2067d (diff) | |
Merge tag 'staging-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging driver fixes from Greg Kroah-Hartman:
"Here are some staging and IIO driver fixes for the 3.10-rc5 release.
All of them are tiny, and fix a number of reported issues (build and
runtime)"
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* tag 'staging-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
iio:inkern: Fix typo/bug in convert raw to processed.
iio: frequency: ad4350: Fix bug / typo in mask
inkern: iio_device_put after incorrect return/goto
staging: alarm-dev: information leak in alarm_compat_ioctl()
iio:callback buffer: free the scan_mask
staging: alarm-dev: information leak in alarm_ioctl()
drivers: staging: zcache: fix compile error
staging: dwc2: fix value of dma_mask
Diffstat (limited to 'drivers/iio/buffer_cb.c')
| -rw-r--r-- | drivers/iio/buffer_cb.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/iio/buffer_cb.c b/drivers/iio/buffer_cb.c index 9201022945e9..9d19ba74f22b 100644 --- a/drivers/iio/buffer_cb.c +++ b/drivers/iio/buffer_cb.c | |||
| @@ -64,7 +64,7 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev, | |||
| 64 | while (chan->indio_dev) { | 64 | while (chan->indio_dev) { |
| 65 | if (chan->indio_dev != indio_dev) { | 65 | if (chan->indio_dev != indio_dev) { |
| 66 | ret = -EINVAL; | 66 | ret = -EINVAL; |
| 67 | goto error_release_channels; | 67 | goto error_free_scan_mask; |
| 68 | } | 68 | } |
| 69 | set_bit(chan->channel->scan_index, | 69 | set_bit(chan->channel->scan_index, |
| 70 | cb_buff->buffer.scan_mask); | 70 | cb_buff->buffer.scan_mask); |
| @@ -73,6 +73,8 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev, | |||
| 73 | 73 | ||
| 74 | return cb_buff; | 74 | return cb_buff; |
| 75 | 75 | ||
| 76 | error_free_scan_mask: | ||
| 77 | kfree(cb_buff->buffer.scan_mask); | ||
| 76 | error_release_channels: | 78 | error_release_channels: |
| 77 | iio_channel_release_all(cb_buff->channels); | 79 | iio_channel_release_all(cb_buff->channels); |
| 78 | error_free_cb_buff: | 80 | error_free_cb_buff: |
| @@ -100,6 +102,7 @@ EXPORT_SYMBOL_GPL(iio_channel_stop_all_cb); | |||
| 100 | 102 | ||
| 101 | void iio_channel_release_all_cb(struct iio_cb_buffer *cb_buff) | 103 | void iio_channel_release_all_cb(struct iio_cb_buffer *cb_buff) |
| 102 | { | 104 | { |
| 105 | kfree(cb_buff->buffer.scan_mask); | ||
| 103 | iio_channel_release_all(cb_buff->channels); | 106 | iio_channel_release_all(cb_buff->channels); |
| 104 | kfree(cb_buff); | 107 | kfree(cb_buff); |
| 105 | } | 108 | } |
