From: Sanjay Chitroda sanjayembeddedse@gmail.com
Replace manual cleanup logic with __free attribute from cleanup.h. This removes explicit kfree() calls and simplifies the error handling paths.
No functional change intended for kmalloc().
Signed-off-by: Sanjay Chitroda sanjayembeddedse@gmail.com --- drivers/iio/common/ssp_sensors/ssp_spi.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/iio/common/ssp_sensors/ssp_spi.c b/drivers/iio/common/ssp_sensors/ssp_spi.c index 6c81c0385fb5..e76ef39c6b7c 100644 --- a/drivers/iio/common/ssp_sensors/ssp_spi.c +++ b/drivers/iio/common/ssp_sensors/ssp_spi.c @@ -331,7 +331,6 @@ static int ssp_parse_dataframe(struct ssp_data *data, char *dataframe, int len) /* threaded irq */ int ssp_irq_msg(struct ssp_data *data) { - char *buffer; u8 msg_type; int ret; u16 length, msg_options; @@ -375,7 +374,7 @@ int ssp_irq_msg(struct ssp_data *data) * but the slave should not send such ones - it is to * check but let's handle this */ - buffer = kmalloc(length, GFP_KERNEL | GFP_DMA); + char *buffer __free(kfree) = kmalloc(length, GFP_KERNEL | GFP_DMA); if (!buffer) { ret = -ENOMEM; goto _unlock; @@ -386,8 +385,6 @@ int ssp_irq_msg(struct ssp_data *data) if (ret >= 0) ret = -EPROTO;
- kfree(buffer); - dev_err(SSP_DEV, "No match error %x\n", msg_options);
@@ -420,20 +417,18 @@ int ssp_irq_msg(struct ssp_data *data) mutex_unlock(&data->pending_lock); break; case SSP_HUB2AP_WRITE: - buffer = kzalloc(length, GFP_KERNEL | GFP_DMA); + char *buffer __free(kfree) = kzalloc(length, GFP_KERNEL | GFP_DMA); if (!buffer) return -ENOMEM;
ret = spi_read(data->spi, buffer, length); if (ret < 0) { dev_err(SSP_DEV, "spi read fail\n"); - kfree(buffer); break; }
ret = ssp_parse_dataframe(data, buffer, length);
- kfree(buffer); break;
default: