Re: [patch 1/4] genirq: make irqreturn_t an enum

From: Geert Uytterhoeven
Date: Wed Mar 25 2009 - 15:51:41 EST


On Thu, Feb 26, 2009 at 14:28, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> Impact: cleanup
>
> Remove the 2.4 compabiliy cruft

> --- linux-2.6-tip.orig/include/linux/irqreturn.h
> +++ linux-2.6-tip/include/linux/irqreturn.h
> @@ -1,25 +1,17 @@
> -/* irqreturn.h */
> Â#ifndef _LINUX_IRQRETURN_H
> Â#define _LINUX_IRQRETURN_H
>
> -/*
> - * For 2.4.x compatibility, 2.4.x can use
> - *
> - * Â Â typedef void irqreturn_t;
> - * Â Â #define IRQ_NONE
> - * Â Â #define IRQ_HANDLED
> - * Â Â #define IRQ_RETVAL(x)
> - *
> - * To mix old-style and new-style irq handler returns.
> - *
> - * IRQ_NONE means we didn't handle it.
> - * IRQ_HANDLED means that we did have a valid interrupt and handled it.
> - * IRQ_RETVAL(x) selects on the two depending on x being non-zero (for handled)
> +/**
> + * enum irqreturn
> + * @IRQ_NONE Â Â Â Â Â interrupt was not from this device
> + * @IRQ_HANDLED Â Â Â Â Â Â Â Âinterrupt was handled by this device
> Â*/
> -typedef int irqreturn_t;
> +enum irqreturn {
> + Â Â Â IRQ_NONE,
> + Â Â Â IRQ_HANDLED,
> +};
>
> -#define IRQ_NONE Â Â Â (0)
> -#define IRQ_HANDLED Â Â(1)
> -#define IRQ_RETVAL(x) Â((x) != 0)
> +typedef enum irqreturn irqreturn_t;
> +#define IRQ_RETVAL(x) Â((x) != IRQ_NONE)

JFYI, this causes the following warning in linux-next on m68k:

| arch/m68k/kernel/ints.c:231: warning: assignment from incompatible
pointer type

(cfr. http://kisskb.ellerman.id.au/kisskb/buildresult/271602/)

as struct irq_node in arch/m68k/include/asm/irq_mm.h still has a
`int (*handler)(int, void *);'.

I'll cook a patch, but there may be other users hidden somewhere in
arch-specific code...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/