X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=lib%2Ftest_xarray.c;h=e77d4856442c3f750434e37819e13688d210048e;hb=refs%2Fheads%2Ftizen_8.0;hp=8b1c318189ce801a0935133b4882556fede5bfd2;hpb=9b2788dbcef756a77659fa22e6a73bec4a57d126;p=platform%2Fkernel%2Flinux-rpi.git diff --git a/lib/test_xarray.c b/lib/test_xarray.c index 8b1c318..e77d485 100644 --- a/lib/test_xarray.c +++ b/lib/test_xarray.c @@ -1463,6 +1463,25 @@ unlock: XA_BUG_ON(xa, !xa_empty(xa)); } +static noinline void check_create_range_5(struct xarray *xa, + unsigned long index, unsigned int order) +{ + XA_STATE_ORDER(xas, xa, index, order); + unsigned int i; + + xa_store_order(xa, index, order, xa_mk_index(index), GFP_KERNEL); + + for (i = 0; i < order + 10; i++) { + do { + xas_lock(&xas); + xas_create_range(&xas); + xas_unlock(&xas); + } while (xas_nomem(&xas, GFP_KERNEL)); + } + + xa_destroy(xa); +} + static noinline void check_create_range(struct xarray *xa) { unsigned int order; @@ -1490,6 +1509,9 @@ static noinline void check_create_range(struct xarray *xa) check_create_range_4(xa, (3U << order) + 1, order); check_create_range_4(xa, (3U << order) - 1, order); check_create_range_4(xa, (1U << 24) + 1, order); + + check_create_range_5(xa, 0, order); + check_create_range_5(xa, (1U << order), order); } check_create_range_3();