diff options
Diffstat (limited to 'drivers/iio/industrialio-buffer.c')
| -rw-r--r-- | drivers/iio/industrialio-buffer.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c index fdd623407b96..a95cc2da56be 100644 --- a/drivers/iio/industrialio-buffer.c +++ b/drivers/iio/industrialio-buffer.c @@ -354,13 +354,14 @@ static int iio_scan_mask_set(struct iio_dev *indio_dev,  	const unsigned long *mask;  	unsigned long *trialmask; -	trialmask = bitmap_zalloc(indio_dev->masklength, GFP_KERNEL); -	if (trialmask == NULL) -		return -ENOMEM;  	if (!indio_dev->masklength) {  		WARN(1, "Trying to set scanmask prior to registering buffer\n"); -		goto err_invalid_mask; +		return -EINVAL;  	} + +	trialmask = bitmap_alloc(indio_dev->masklength, GFP_KERNEL); +	if (!trialmask) +		return -ENOMEM;  	bitmap_copy(trialmask, buffer->scan_mask, indio_dev->masklength);  	set_bit(bit, trialmask);  |