Lines Matching refs:xibm

52 	struct xive_irq_bitmap *xibm;  in xive_irq_bitmap_add()  local
54 xibm = kzalloc(sizeof(*xibm), GFP_KERNEL); in xive_irq_bitmap_add()
55 if (!xibm) in xive_irq_bitmap_add()
58 spin_lock_init(&xibm->lock); in xive_irq_bitmap_add()
59 xibm->base = base; in xive_irq_bitmap_add()
60 xibm->count = count; in xive_irq_bitmap_add()
61 xibm->bitmap = bitmap_zalloc(xibm->count, GFP_KERNEL); in xive_irq_bitmap_add()
62 if (!xibm->bitmap) { in xive_irq_bitmap_add()
63 kfree(xibm); in xive_irq_bitmap_add()
66 list_add(&xibm->list, &xive_irq_bitmaps); in xive_irq_bitmap_add()
68 pr_info("Using IRQ range [%x-%x]", xibm->base, in xive_irq_bitmap_add()
69 xibm->base + xibm->count - 1); in xive_irq_bitmap_add()
75 struct xive_irq_bitmap *xibm, *tmp; in xive_irq_bitmap_remove_all() local
77 list_for_each_entry_safe(xibm, tmp, &xive_irq_bitmaps, list) { in xive_irq_bitmap_remove_all()
78 list_del(&xibm->list); in xive_irq_bitmap_remove_all()
79 bitmap_free(xibm->bitmap); in xive_irq_bitmap_remove_all()
80 kfree(xibm); in xive_irq_bitmap_remove_all()
84 static int __xive_irq_bitmap_alloc(struct xive_irq_bitmap *xibm) in __xive_irq_bitmap_alloc() argument
88 irq = find_first_zero_bit(xibm->bitmap, xibm->count); in __xive_irq_bitmap_alloc()
89 if (irq != xibm->count) { in __xive_irq_bitmap_alloc()
90 set_bit(irq, xibm->bitmap); in __xive_irq_bitmap_alloc()
91 irq += xibm->base; in __xive_irq_bitmap_alloc()
101 struct xive_irq_bitmap *xibm; in xive_irq_bitmap_alloc() local
105 list_for_each_entry(xibm, &xive_irq_bitmaps, list) { in xive_irq_bitmap_alloc()
106 spin_lock_irqsave(&xibm->lock, flags); in xive_irq_bitmap_alloc()
107 irq = __xive_irq_bitmap_alloc(xibm); in xive_irq_bitmap_alloc()
108 spin_unlock_irqrestore(&xibm->lock, flags); in xive_irq_bitmap_alloc()
118 struct xive_irq_bitmap *xibm; in xive_irq_bitmap_free() local
120 list_for_each_entry(xibm, &xive_irq_bitmaps, list) { in xive_irq_bitmap_free()
121 if ((irq >= xibm->base) && (irq < xibm->base + xibm->count)) { in xive_irq_bitmap_free()
122 spin_lock_irqsave(&xibm->lock, flags); in xive_irq_bitmap_free()
123 clear_bit(irq - xibm->base, xibm->bitmap); in xive_irq_bitmap_free()
124 spin_unlock_irqrestore(&xibm->lock, flags); in xive_irq_bitmap_free()
668 struct xive_irq_bitmap *xibm; in xive_spapr_debug_show() local
674 list_for_each_entry(xibm, &xive_irq_bitmaps, list) { in xive_spapr_debug_show()
676 bitmap_print_to_pagebuf(true, buf, xibm->bitmap, xibm->count); in xive_spapr_debug_show()
677 seq_printf(m, "bitmap #%d: %s", xibm->count, buf); in xive_spapr_debug_show()