Re: [PATCH] brd: use radix_tree_maybe_preload instead of radix_tree_preload

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

 



On 2/17/23 5:14 AM, Pankaj Raghav wrote:
> Unconditionally calling radix_tree_preload_end() results in a OOPS
> message as the preload is only conditionally called for
> gfpflags_allow_blocking().
> 
> [   20.267323] BUG: using smp_processor_id() in preemptible [00000000] code: fio/416
> [   20.267837] caller is brd_insert_page.part.0+0xbe/0x190 [brd]
> [   20.269436] Call Trace:
> [   20.269598]  <TASK>
> [   20.269742]  dump_stack_lvl+0x32/0x50
> [   20.269982]  check_preemption_disabled+0xd1/0xe0
> [   20.270289]  brd_insert_page.part.0+0xbe/0x190 [brd]
> [   20.270664]  brd_submit_bio+0x33f/0xf40 [brd]
> 
> Use radix_tree_maybe_preload() which does preload only if
> gfpflags_allow_blocking() is true but also takes the lock. Therefore,
> unconditionally calling radix_tree_preload_end() should not create any
> issues and the message disappears.

Thanks, I wonder why I didn't see this in my testing which did both.
But it's certainly an oversight!

-- 
Jens Axboe





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux