Lines Matching refs:xas

385 	XA_STATE(xas, &ida->xa, min / IDA_BITMAP_BITS);  in ida_alloc_range()
397 xas_lock_irqsave(&xas, flags); in ida_alloc_range()
399 bitmap = xas_find_marked(&xas, max / IDA_BITMAP_BITS, XA_FREE_MARK); in ida_alloc_range()
400 if (xas.xa_index > min / IDA_BITMAP_BITS) in ida_alloc_range()
402 if (xas.xa_index * IDA_BITMAP_BITS + bit > max) in ida_alloc_range()
410 if (xas.xa_index * IDA_BITMAP_BITS + bit > max) in ida_alloc_range()
414 xas_store(&xas, xa_mk_value(tmp)); in ida_alloc_range()
424 xas_store(&xas, bitmap); in ida_alloc_range()
425 if (xas_error(&xas)) { in ida_alloc_range()
433 if (xas.xa_index * IDA_BITMAP_BITS + bit > max) in ida_alloc_range()
440 xas_clear_mark(&xas, XA_FREE_MARK); in ida_alloc_range()
452 xas_store(&xas, bitmap); in ida_alloc_range()
455 xas_unlock_irqrestore(&xas, flags); in ida_alloc_range()
456 if (xas_nomem(&xas, gfp)) { in ida_alloc_range()
457 xas.xa_index = min / IDA_BITMAP_BITS; in ida_alloc_range()
463 if (xas_error(&xas)) in ida_alloc_range()
464 return xas_error(&xas); in ida_alloc_range()
465 return xas.xa_index * IDA_BITMAP_BITS + bit; in ida_alloc_range()
467 xas_unlock_irqrestore(&xas, flags); in ida_alloc_range()
471 xas_set(&xas, min / IDA_BITMAP_BITS); in ida_alloc_range()
475 xas_unlock_irqrestore(&xas, flags); in ida_alloc_range()
558 XA_STATE(xas, &ida->xa, id / IDA_BITMAP_BITS); in ida_free()
566 xas_lock_irqsave(&xas, flags); in ida_free()
567 bitmap = xas_load(&xas); in ida_free()
578 xas_store(&xas, xa_mk_value(v)); in ida_free()
583 xas_set_mark(&xas, XA_FREE_MARK); in ida_free()
587 xas_store(&xas, NULL); in ida_free()
590 xas_unlock_irqrestore(&xas, flags); in ida_free()
593 xas_unlock_irqrestore(&xas, flags); in ida_free()
612 XA_STATE(xas, &ida->xa, 0); in ida_destroy()
616 xas_lock_irqsave(&xas, flags); in ida_destroy()
617 xas_for_each(&xas, bitmap, ULONG_MAX) { in ida_destroy()
620 xas_store(&xas, NULL); in ida_destroy()
622 xas_unlock_irqrestore(&xas, flags); in ida_destroy()