Annoying warning message caused by double modifiers

Cheng-Han Tsai chenghan.tsai at gmail.com
Tue Jun 1 15:06:15 EDT 2010


Dear all,

Please help me solve this annoying warning messages.
This warning message happens when I enable the TCM support in my arm
platform

drivers/input/keyboard/kpd.c:560: warning: passing argument 2 of
'request_irq' from incompatible pointer type
include/linux/interrupt.h:78: note: expected 'irq_handler_t' but argument is
of type 'irqreturn_t (*)(int,  void *)'

kpd.c
static irqreturn_t __tcmfunc kpd_irq_handler(int irq, void *dev_id) {
       disable_irq(KP_IRQ_LINE);
       ...
       return IRQ_HANDLED;
}

Other definitions:
typedef int irqreturn_t;
#define __tcmfunc __attribute__((long_call)) __section(.tcm.text) noinline

Compiler seems to think “irqreturn_t” and “irqreturn_t __tcmfunc” are
different types.
I try all different ways to add the __tcmfunc modifier, but the warning
still shows up.
Could you give some hint?
Thank.

Best Regards,
Keene Tsai 蔡承翰
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm/attachments/20100602/d914a2c3/attachment-0001.html>


More information about the linux-arm mailing list