Instead of artificially limiting irq numbers, use arch provided NR_IRQS Signed-off-by: Glauber Costa <gcosta@xxxxxxxxxx> --- irqhook/irqhook_main.c | 16 +++++++--------- 1 files changed, 7 insertions(+), 9 deletions(-) diff --git a/irqhook/irqhook_main.c b/irqhook/irqhook_main.c index 5f414d1..828c70a 100644 --- a/irqhook/irqhook_main.c +++ b/irqhook/irqhook_main.c @@ -31,15 +31,13 @@ #define ERROR(fmt, args...) printk("<1>" static spinlock_t irqh_lock; static wait_queue_head_t irqh_proc_list; -enum {NINTR = 256}; - -static DECLARE_BITMAP(pending, NINTR); -static DECLARE_BITMAP(handled, NINTR); +static DECLARE_BITMAP(pending, NR_IRQS); +static DECLARE_BITMAP(handled, NR_IRQS); #define irqh_on(which, bit) test_bit(bit, which) #define irqh_set(which, bit) set_bit(bit, which) #define irqh_clear(which, bit) clear_bit(bit, which) -#define irqh_ffs(which) find_first_bit(which, NINTR) +#define irqh_ffs(which) find_first_bit(which, NR_IRQS) static irqreturn_t irqh_interrupt(int irq, void *p) @@ -92,7 +90,7 @@ irqh_dev_write(struct file *fp, const ch if (pdp) { if (pci_enable_device(pdp)) ERROR("device not enabled\n"); - if ((unsigned)(n = pdp->irq) >= NINTR) { + if ((unsigned)(n = pdp->irq) >= NR_IRQS) { ERROR("device has invalid IRQ set\n"); return -EINVAL; } @@ -107,7 +105,7 @@ irqh_dev_write(struct file *fp, const ch irqh_set(handled, n); goto done; } - if ((unsigned)n >= NINTR) + if ((unsigned)n >= NR_IRQS) return -EINVAL; if (arg[0] == '-') { if (pdp) @@ -135,7 +133,7 @@ irqh_dev_read(struct file *fp, char *buf return -EINVAL; spin_lock_irq(&irqh_lock); while (!signal_pending(current)) { - if ((n = irqh_ffs(pending)) < NINTR) { + if ((n = irqh_ffs(pending)) < NR_IRQS) { if ((m = sprintf(b, "%d", n) + 1) > size) m = size; if (copy_to_user(buf, b, m)) @@ -203,7 +201,7 @@ irqh_cleanup(void) DPRINTK("ENTER\n"); - while ((n = irqh_ffs(handled)) < NINTR) { + while ((n = irqh_ffs(handled)) < NR_IRQS) { irqh_clear(handled, n); free_irq(n, (void *)irqh_interrupt); } -- 1.4.2 _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization