@@ -67,7 +67,7 @@ void intc_set_prio_level(unsigned int irq, unsigned int level)
static void intc_redirect_irq(struct irq_desc *desc)
{
- generic_handle_irq((unsigned int)irq_desc_get_handler_data(desc));
+ generic_handle_irq((unsigned long)irq_desc_get_handler_data(desc));
}
static void __init intc_register_irq(struct intc_desc *desc,
@@ -116,7 +116,7 @@ static void __init intc_register_irq(struct intc_desc *desc,
disable_irq_nosync(irq);
irq_set_chip_and_handler_name(irq, &d->chip, handle_level_irq,
"level");
- irq_set_chip_data(irq, (void *)data[primary]);
+ irq_set_chip_data(irq, (void *)(unsigned long)data[primary]);
/*
* set priority level
@@ -357,7 +357,7 @@ int __init register_intc_controller(struct intc_desc *desc)
irq_set_chip(irq2, &dummy_irq_chip);
irq_set_chained_handler_and_data(irq2,
intc_redirect_irq,
- (void *)irq);
+ (void *)(unsigned long)irq);
}
}
The following errors was given when compiling drivers/sh/intc/core.c drivers/sh/intc/core.c: In function ‘intc_redirect_irq’: drivers/sh/intc/core.c:70:21: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] generic_handle_irq((unsigned int)irq_desc_get_handler_data(desc)); ^ drivers/sh/intc/core.c: In function ‘intc_register_irq’: drivers/sh/intc/core.c:119:25: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] irq_set_chip_data(irq, (void *)data[primary]); ^ drivers/sh/intc/core.c: In function ‘register_intc_controller’: drivers/sh/intc/core.c:360:9: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] (void *)irq); ^ cc1: all warnings being treated as errors Fix by casting variables to unsigned long first. Fixes: 2be6bb0c79c7 ("sh: intc: Split up the INTC code.") Signed-off-by: Yuan Can <yuancan@huawei.com> --- drivers/sh/intc/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)