Revision 3b7995a98ad76da5597b488fa84aa5a56d43b608 authored by Yang Yingliang on 18 December 2019, 08:44:04 UTC, committed by Jens Axboe on 20 December 2019, 18:52:01 UTC
When I doing fuzzy test, get the memleak report: BUG: memory leak unreferenced object 0xffff88837af80000 (size 4096): comm "memleak", pid 3557, jiffies 4294817681 (age 112.499s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 20 00 00 00 10 01 00 00 00 00 00 00 01 00 00 00 ............... backtrace: [<000000001c894df8>] bio_alloc_bioset+0x393/0x590 [<000000008b139a3c>] bio_copy_user_iov+0x300/0xcd0 [<00000000a998bd8c>] blk_rq_map_user_iov+0x2f1/0x5f0 [<000000005ceb7f05>] blk_rq_map_user+0xf2/0x160 [<000000006454da92>] sg_common_write.isra.21+0x1094/0x1870 [<00000000064bb208>] sg_write.part.25+0x5d9/0x950 [<000000004fc670f6>] sg_write+0x5f/0x8c [<00000000b0d05c7b>] __vfs_write+0x7c/0x100 [<000000008e177714>] vfs_write+0x1c3/0x500 [<0000000087d23f34>] ksys_write+0xf9/0x200 [<000000002c8dbc9d>] do_syscall_64+0x9f/0x4f0 [<00000000678d8e9a>] entry_SYSCALL_64_after_hwframe+0x49/0xbe If __blk_rq_map_user_iov() is failed in blk_rq_map_user_iov(), the bio(s) which is allocated before this failing will leak. The refcount of the bio(s) is init to 1 and increased to 2 by calling bio_get(), but __blk_rq_unmap_user() only decrease it to 1, so the bio cannot be freed. Fix it by calling blk_rq_unmap_user(). Reviewed-by: Bob Liu <bob.liu@oracle.com> Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent daa400f
File | Mode | Size |
---|---|---|
actions | ||
analogbits | ||
at91 | ||
axis | ||
axs10x | ||
bcm | ||
berlin | ||
davinci | ||
h8300 | ||
hisilicon | ||
imgtec | ||
imx | ||
ingenic | ||
keystone | ||
loongson1 | ||
mediatek | ||
meson | ||
microchip | ||
mmp | ||
mvebu | ||
mxs | ||
nxp | ||
pistachio | ||
pxa | ||
qcom | ||
renesas | ||
rockchip | ||
samsung | ||
sifive | ||
sirf | ||
socfpga | ||
spear | ||
sprd | ||
st | ||
sunxi | ||
sunxi-ng | ||
tegra | ||
ti | ||
uniphier | ||
ux500 | ||
versatile | ||
x86 | ||
zte | ||
zynq | ||
zynqmp | ||
Kconfig | -rw-r--r-- | 10.2 KB |
Makefile | -rw-r--r-- | 4.7 KB |
clk-asm9260.c | -rw-r--r-- | 10.8 KB |
clk-aspeed.c | -rw-r--r-- | 20.0 KB |
clk-aspeed.h | -rw-r--r-- | 2.3 KB |
clk-ast2600.c | -rw-r--r-- | 21.6 KB |
clk-axi-clkgen.c | -rw-r--r-- | 11.9 KB |
clk-axm5516.c | -rw-r--r-- | 13.0 KB |
clk-bd718x7.c | -rw-r--r-- | 3.2 KB |
clk-bm1880.c | -rw-r--r-- | 27.1 KB |
clk-bulk.c | -rw-r--r-- | 5.0 KB |
clk-cdce706.c | -rw-r--r-- | 17.6 KB |
clk-cdce925.c | -rw-r--r-- | 21.0 KB |
clk-clps711x.c | -rw-r--r-- | 4.7 KB |
clk-composite.c | -rw-r--r-- | 9.2 KB |
clk-conf.c | -rw-r--r-- | 3.7 KB |
clk-cs2000-cp.c | -rw-r--r-- | 11.4 KB |
clk-devres.c | -rw-r--r-- | 3.2 KB |
clk-divider.c | -rw-r--r-- | 17.0 KB |
clk-efm32gg.c | -rw-r--r-- | 3.2 KB |
clk-fixed-factor.c | -rw-r--r-- | 6.3 KB |
clk-fixed-mmio.c | -rw-r--r-- | 2.3 KB |
clk-fixed-rate.c | -rw-r--r-- | 5.9 KB |
clk-fractional-divider.c | -rw-r--r-- | 5.0 KB |
clk-gate.c | -rw-r--r-- | 5.0 KB |
clk-gemini.c | -rw-r--r-- | 11.8 KB |
clk-gpio.c | -rw-r--r-- | 7.6 KB |
clk-hi655x.c | -rw-r--r-- | 2.8 KB |
clk-highbank.c | -rw-r--r-- | 7.6 KB |
clk-hsdk-pll.c | -rw-r--r-- | 10.9 KB |
clk-lochnagar.c | -rw-r--r-- | 7.7 KB |
clk-max77686.c | -rw-r--r-- | 7.2 KB |
clk-max9485.c | -rw-r--r-- | 9.9 KB |
clk-milbeaut.c | -rw-r--r-- | 17.1 KB |
clk-moxart.c | -rw-r--r-- | 2.4 KB |
clk-multiplier.c | -rw-r--r-- | 3.8 KB |
clk-mux.c | -rw-r--r-- | 6.1 KB |
clk-nomadik.c | -rw-r--r-- | 13.1 KB |
clk-npcm7xx.c | -rw-r--r-- | 21.6 KB |
clk-nspire.c | -rw-r--r-- | 3.6 KB |
clk-oxnas.c | -rw-r--r-- | 6.5 KB |
clk-palmas.c | -rw-r--r-- | 7.5 KB |
clk-pwm.c | -rw-r--r-- | 3.4 KB |
clk-qoriq.c | -rw-r--r-- | 34.7 KB |
clk-rk808.c | -rw-r--r-- | 5.0 KB |
clk-s2mps11.c | -rw-r--r-- | 7.1 KB |
clk-scmi.c | -rw-r--r-- | 4.6 KB |
clk-scpi.c | -rw-r--r-- | 7.4 KB |
clk-si514.c | -rw-r--r-- | 9.5 KB |
clk-si5341.c | -rw-r--r-- | 33.5 KB |
clk-si5351.c | -rw-r--r-- | 42.1 KB |
clk-si5351.h | -rw-r--r-- | 5.5 KB |
clk-si544.c | -rw-r--r-- | 12.5 KB |
clk-si570.c | -rw-r--r-- | 12.8 KB |
clk-stm32f4.c | -rw-r--r-- | 50.7 KB |
clk-stm32h7.c | -rw-r--r-- | 36.3 KB |
clk-stm32mp1.c | -rw-r--r-- | 53.8 KB |
clk-tango4.c | -rw-r--r-- | 2.6 KB |
clk-twl6040.c | -rw-r--r-- | 3.7 KB |
clk-u300.c | -rw-r--r-- | 37.7 KB |
clk-versaclock5.c | -rw-r--r-- | 26.4 KB |
clk-vt8500.c | -rw-r--r-- | 17.7 KB |
clk-wm831x.c | -rw-r--r-- | 9.3 KB |
clk-xgene.c | -rw-r--r-- | 18.7 KB |
clk.c | -rw-r--r-- | 120.3 KB |
clk.h | -rw-r--r-- | 1.0 KB |
clkdev.c | -rw-r--r-- | 10.5 KB |
Computing file changes ...