commit 70c9774e180d151abaab358108e3510a8e615215 upstream.
When ACPI type is ACPI_SMO8500, the data->dready_trig will not be set, the
memory allocated by iio_triggered_buffer_setup() will not be freed, and cause
memory leak as follows:
unreferenced object 0xffff888009551400 (size 512):
comm "i2c-SMO8500-125", pid 911, jiffies 4294911787 (age 83.852s)
hex dump (first 32 bytes):
02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 20 e2 e5 c0 ff ff ff ff ........ .......
backtrace:
[<0000000041ce75ee>] kmem_cache_alloc_trace+0x16d/0x360
[<000000000aeb17b0>] iio_kfifo_allocate+0x41/0x130 [kfifo_buf]
[<000000004b40c1f5>] iio_triggered_buffer_setup_ext+0x2c/0x210 [industrialio_triggered_buffer]
[<000000004375b15f>] kxcjk1013_probe+0x10c3/0x1d81 [kxcjk_1013]
Fix it by remove data->dready_trig condition in probe and remove.
Reported-by: Hulk Robot <hulkci@huawei.com>
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| adis16201.c | ||
| adis16209.c | ||
| adxl345.h | ||
| adxl345_core.c | ||
| adxl345_i2c.c | ||
| adxl345_spi.c | ||
| adxl372.c | ||
| adxl372.h | ||
| adxl372_i2c.c | ||
| adxl372_spi.c | ||
| bma180.c | ||
| bma220_spi.c | ||
| bma400.h | ||
| bma400_core.c | ||
| bma400_i2c.c | ||
| bma400_spi.c | ||
| bmc150-accel-core.c | ||
| bmc150-accel-i2c.c | ||
| bmc150-accel-spi.c | ||
| bmc150-accel.h | ||
| cros_ec_accel_legacy.c | ||
| da280.c | ||
| da311.c | ||
| dmard06.c | ||
| dmard09.c | ||
| dmard10.c | ||
| hid-sensor-accel-3d.c | ||
| kxcjk-1013.c | ||
| kxsd9-i2c.c | ||
| kxsd9-spi.c | ||
| kxsd9.c | ||
| kxsd9.h | ||
| mc3230.c | ||
| mma7455.h | ||
| mma7455_core.c | ||
| mma7455_i2c.c | ||
| mma7455_spi.c | ||
| mma7660.c | ||
| mma8452.c | ||
| mma9551.c | ||
| mma9551_core.c | ||
| mma9551_core.h | ||
| mma9553.c | ||
| mxc4005.c | ||
| mxc6255.c | ||
| sca3000.c | ||
| ssp_accel_sensor.c | ||
| st_accel.h | ||
| st_accel_buffer.c | ||
| st_accel_core.c | ||
| st_accel_i2c.c | ||
| st_accel_spi.c | ||
| stk8ba50.c | ||
| stk8312.c | ||