Re: [PATCH] Input: raydium_ts_i2c - fix possible memory leak in raydium_i2c_send()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Dec 02, 2022 at 06:34:12PM +0800, Zhang Xiaoxu wrote:
> There is a kmemleak when test the raydium_i2c_ts with bpf mock device:
> 
>   unreferenced object 0xffff88812d3675a0 (size 8):
>     comm "python3", pid 349, jiffies 4294741067 (age 95.695s)
>     hex dump (first 8 bytes):
>       11 0e 10 c0 01 00 04 00                          ........
>     backtrace:
>       [<0000000068427125>] __kmalloc+0x46/0x1b0
>       [<0000000090180f91>] raydium_i2c_send+0xd4/0x2bf [raydium_i2c_ts]
>       [<000000006e631aee>] raydium_i2c_initialize.cold+0xbc/0x3e4 [raydium_i2c_ts]
>       [<00000000dc6fcf38>] raydium_i2c_probe+0x3cd/0x6bc [raydium_i2c_ts]
>       [<00000000a310de16>] i2c_device_probe+0x651/0x680
>       [<00000000f5a96bf3>] really_probe+0x17c/0x3f0
>       [<00000000096ba499>] __driver_probe_device+0xe3/0x170
>       [<00000000c5acb4d9>] driver_probe_device+0x49/0x120
>       [<00000000264fe082>] __device_attach_driver+0xf7/0x150
>       [<00000000f919423c>] bus_for_each_drv+0x114/0x180
>       [<00000000e067feca>] __device_attach+0x1e5/0x2d0
>       [<0000000054301fc2>] bus_probe_device+0x126/0x140
>       [<00000000aad93b22>] device_add+0x810/0x1130
>       [<00000000c086a53f>] i2c_new_client_device+0x352/0x4e0
>       [<000000003c2c248c>] of_i2c_register_device+0xf1/0x110
>       [<00000000ffec4177>] of_i2c_notify+0x100/0x160
>   unreferenced object 0xffff88812d3675c8 (size 8):
>     comm "python3", pid 349, jiffies 4294741070 (age 95.692s)
>     hex dump (first 8 bytes):
>       22 00 36 2d 81 88 ff ff                          ".6-....
>     backtrace:
>       [<0000000068427125>] __kmalloc+0x46/0x1b0
>       [<0000000090180f91>] raydium_i2c_send+0xd4/0x2bf [raydium_i2c_ts]
>       [<000000001d5c9620>] raydium_i2c_initialize.cold+0x223/0x3e4 [raydium_i2c_ts]
>       [<00000000dc6fcf38>] raydium_i2c_probe+0x3cd/0x6bc [raydium_i2c_ts]
>       [<00000000a310de16>] i2c_device_probe+0x651/0x680
>       [<00000000f5a96bf3>] really_probe+0x17c/0x3f0
>       [<00000000096ba499>] __driver_probe_device+0xe3/0x170
>       [<00000000c5acb4d9>] driver_probe_device+0x49/0x120
>       [<00000000264fe082>] __device_attach_driver+0xf7/0x150
>       [<00000000f919423c>] bus_for_each_drv+0x114/0x180
>       [<00000000e067feca>] __device_attach+0x1e5/0x2d0
>       [<0000000054301fc2>] bus_probe_device+0x126/0x140
>       [<00000000aad93b22>] device_add+0x810/0x1130
>       [<00000000c086a53f>] i2c_new_client_device+0x352/0x4e0
>       [<000000003c2c248c>] of_i2c_register_device+0xf1/0x110
>       [<00000000ffec4177>] of_i2c_notify+0x100/0x160
> 
> After BANK_SWITCH command from i2c BUS, no matter success or error
> happened, the tx_buf should be freed.
> 
> Fixes: 3b384bd6c3f2 ("Input: raydium_ts_i2c - do not split tx transactions")
> Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@xxxxxxxxxx>

Applied, thank you.

-- 
Dmitry



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux