Thread (5 messages) 5 messages, 4 authors, 2021-10-21

Re: BUG: KASAN: use-after-free in blk_mq_sched_tags_teardown

From: Arnd Bergmann <arnd@arndb.de>
Date: 2021-10-21 12:21:03
Also in: linux-scsi, lkml

On Thu, Oct 21, 2021 at 2:01 PM Naresh Kamboju
[off-list ref] wrote:
Following KASAN BUG noticed on linux next 20211021 while booting qemu-arm64
with allmodconfig.
[   77.730367][    T5] Freed by task 1:
[   77.732009][    T5]  kasan_save_stack+0x30/0x80
[   77.734083][    T5]  kasan_set_track+0x30/0x80
[   77.736085][    T5]  kasan_set_free_info+0x34/0x80
[   77.738261][    T5]  ____kasan_slab_free+0xfc/0x1c0
[   77.740433][    T5]  __kasan_slab_free+0x3c/0x80
[   77.742518][    T5]  slab_free_freelist_hook+0x1d4/0x2c0
[   77.744892][    T5]  kfree+0x160/0x300
[   77.746618][    T5]  blktrans_dev_release+0x64/0x100
[   77.748821][    T5]  del_mtd_blktrans_dev+0x1c0/0x240
[   77.751079][    T5]  mtdblock_remove_dev+0x28/0x80
[   77.753246][    T5]  blktrans_notify_remove+0xa4/0x140
[   77.755507][    T5]  del_mtd_device+0x84/0x1c0
[   77.757541][    T5]  mtd_device_unregister+0x90/0xc0
[   77.759764][    T5]  physmap_flash_remove+0x58/0x180
[   77.762012][    T5]  platform_remove+0x48/0xc0
[   77.764032][    T5]  __device_release_driver+0x1dc/0x340
[   77.766393][    T5]  driver_detach+0x138/0x200
[   77.768396][    T5]  bus_remove_driver+0x100/0x180
[   77.770554][    T5]  driver_unregister+0x64/0xc0
[   77.772633][    T5]  platform_driver_unregister+0x28/0x80
[   77.775042][    T5]  physmap_init+0xc4/0xfc
[   77.776994][    T5]  do_one_initcall+0xb0/0x2c0
[   77.779028][    T5]  do_initcalls+0x17c/0x244
[   77.781023][    T5]  kernel_init_freeable+0x2d4/0x378
[   77.783269][    T5]  kernel_init+0x34/0x180
[   77.785196][    T5]  ret_from_fork+0x10/0x20
[   77.787135][    T5]
...
full boot log link,
https://pastebin.com/xL5MYSD6
I think this is related to an earlier bug that Anders reported a while ago,
see [1]. I had looked at it originally, and found that this probably a
device that gets probed from CONFIG_MTD_PHYSMAP_COMPAT
and then freed again immediately after we find the device does not
exist, starting with commit dcb3e137ce9b ("[MTD] physmap: make
physmap compat explicit").

It's not really the fault of CONFIG_MTD_PHYSMAP_COMPAT
describing a nonexisting device, but instead it's something in the
cleanup path.

        Arnd

[1] https://lore.kernel.org/linux-mtd/CADYN=9Kjw_3cDGAvh9=+nNwdYof1kUPKG-SUOP5FsQhZ+gz62Q@mail.gmail.com/ (local)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help