Annoying warning message caused by double modifiers

Cheng-Han Tsai chenghan.tsai at gmail.com
Mon Jun 14 15:00:36 EDT 2010


Hi, Vasut, 

The kernel version is 2.6.29

Check here for irqreturn_t
http://lxr.linux.no/linux+v2.6.29/include/linux/irqreturn.h#L19

The TCM is backported from 2.6.32
http://lxr.linux.no/linux+v2.6.32/arch/arm/include/asm/tcm.h#L24

This driver is proprietary. Sorry I could not share with you.
However, the key seems not to be the driver, right?

Thanks.

Keene


On 2010/6/13 下午11:07, "Marek Vasut" <marek.vasut at gmail.com> wrote:

> Dne Út 1. června 2010 21:06:15 Cheng-Han Tsai napsal(a):
>> 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 蔡承翰
> 
> Hi, I don't see any such driver in the kernel tree, maybe you tell us the
> kernel 
> version? Or possibly share the driver ?
> 
> Cheers





More information about the linux-arm mailing list