Commit bd54211b authored by Matthew Wilcox's avatar Matthew Wilcox
Browse files

XArray tests: RCU lock prohibits GFP_KERNEL



Drop and reacquire the RCU read lock while using GFP_KERNEL.

Reported-by: default avatarLi RongQing <lirongqing@baidu.com>
Signed-off-by: default avatarMatthew Wilcox <willy@infradead.org>
parent 8834f560
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -107,8 +107,11 @@ static noinline void check_xas_retry(struct xarray *xa)
	XA_BUG_ON(xa, xas.xa_node != XAS_RESTART);
	XA_BUG_ON(xa, xas_next_entry(&xas, ULONG_MAX) != xa_mk_value(0));
	XA_BUG_ON(xa, xas.xa_node != NULL);
	rcu_read_unlock();

	XA_BUG_ON(xa, xa_store_index(xa, 1, GFP_KERNEL) != NULL);

	rcu_read_lock();
	XA_BUG_ON(xa, !xa_is_internal(xas_reload(&xas)));
	xas.xa_node = XAS_RESTART;
	XA_BUG_ON(xa, xas_next_entry(&xas, ULONG_MAX) != xa_mk_value(0));