xibm               46 arch/powerpc/sysdev/xive/spapr.c 	struct xive_irq_bitmap *xibm;
xibm               48 arch/powerpc/sysdev/xive/spapr.c 	xibm = kzalloc(sizeof(*xibm), GFP_KERNEL);
xibm               49 arch/powerpc/sysdev/xive/spapr.c 	if (!xibm)
xibm               52 arch/powerpc/sysdev/xive/spapr.c 	spin_lock_init(&xibm->lock);
xibm               53 arch/powerpc/sysdev/xive/spapr.c 	xibm->base = base;
xibm               54 arch/powerpc/sysdev/xive/spapr.c 	xibm->count = count;
xibm               55 arch/powerpc/sysdev/xive/spapr.c 	xibm->bitmap = kzalloc(xibm->count, GFP_KERNEL);
xibm               56 arch/powerpc/sysdev/xive/spapr.c 	if (!xibm->bitmap) {
xibm               57 arch/powerpc/sysdev/xive/spapr.c 		kfree(xibm);
xibm               60 arch/powerpc/sysdev/xive/spapr.c 	list_add(&xibm->list, &xive_irq_bitmaps);
xibm               62 arch/powerpc/sysdev/xive/spapr.c 	pr_info("Using IRQ range [%x-%x]", xibm->base,
xibm               63 arch/powerpc/sysdev/xive/spapr.c 		xibm->base + xibm->count - 1);
xibm               67 arch/powerpc/sysdev/xive/spapr.c static int __xive_irq_bitmap_alloc(struct xive_irq_bitmap *xibm)
xibm               71 arch/powerpc/sysdev/xive/spapr.c 	irq = find_first_zero_bit(xibm->bitmap, xibm->count);
xibm               72 arch/powerpc/sysdev/xive/spapr.c 	if (irq != xibm->count) {
xibm               73 arch/powerpc/sysdev/xive/spapr.c 		set_bit(irq, xibm->bitmap);
xibm               74 arch/powerpc/sysdev/xive/spapr.c 		irq += xibm->base;
xibm               84 arch/powerpc/sysdev/xive/spapr.c 	struct xive_irq_bitmap *xibm;
xibm               88 arch/powerpc/sysdev/xive/spapr.c 	list_for_each_entry(xibm, &xive_irq_bitmaps, list) {
xibm               89 arch/powerpc/sysdev/xive/spapr.c 		spin_lock_irqsave(&xibm->lock, flags);
xibm               90 arch/powerpc/sysdev/xive/spapr.c 		irq = __xive_irq_bitmap_alloc(xibm);
xibm               91 arch/powerpc/sysdev/xive/spapr.c 		spin_unlock_irqrestore(&xibm->lock, flags);
xibm              101 arch/powerpc/sysdev/xive/spapr.c 	struct xive_irq_bitmap *xibm;
xibm              103 arch/powerpc/sysdev/xive/spapr.c 	list_for_each_entry(xibm, &xive_irq_bitmaps, list) {
xibm              104 arch/powerpc/sysdev/xive/spapr.c 		if ((irq >= xibm->base) && (irq < xibm->base + xibm->count)) {
xibm              105 arch/powerpc/sysdev/xive/spapr.c 			spin_lock_irqsave(&xibm->lock, flags);
xibm              106 arch/powerpc/sysdev/xive/spapr.c 			clear_bit(irq - xibm->base, xibm->bitmap);
xibm              107 arch/powerpc/sysdev/xive/spapr.c 			spin_unlock_irqrestore(&xibm->lock, flags);