>> >> - /* >> - * It takes 3.4 seconds to remove 80GiB ramdisk. >> - * So, we need cond_resched to avoid stalling the CPU. >> - */ >> - cond_resched(); >> + xa_for_each(&brd->brd_pages, idx, page) { >> + __free_page(page); >> + cond_resched_rcu(); > > This should be a regular cond_resched(). The body of the loop is run > without the RCU read lock held. Surprised none of the bots have noticed > an unlock-underflow. Perhaps they don't test brd ;-) > > With that fixed, > > Reviewed-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> This patch is already queued up for 6.5 in Jens's tree. I will send this as a fix soon. Thanks.