@@ -289,7 +289,7 @@ static int mpic_msi_alloc(struct irq_domain *domain, unsigned int virq,
if (hwirq < 0)
return -ENOSPC;
- for (int i = 0; i < nr_irqs; i++) {
+ for (unsigned int i = 0; i < nr_irqs; i++) {
irq_domain_set_info(domain, virq + i, hwirq + i,
&mpic_msi_bottom_irq_chip,
domain->host_data, handle_simple_irq,
@@ -438,7 +438,7 @@ static struct irq_chip mpic_ipi_irqchip = {
static int mpic_ipi_alloc(struct irq_domain *d, unsigned int virq,
unsigned int nr_irqs, void *args)
{
- for (int i = 0; i < nr_irqs; i++) {
+ for (unsigned int i = 0; i < nr_irqs; i++) {
irq_set_percpu_devid(virq + i);
irq_domain_set_info(d, virq + i, i, &mpic_ipi_irqchip,
d->host_data, handle_percpu_devid_irq,
@@ -461,7 +461,7 @@ static const struct irq_domain_ops mpic_ipi_domain_ops = {
static void mpic_ipi_resume(void)
{
- for (int i = 0; i < IPI_DOORBELL_END; i++) {
+ for (irq_hw_number_t i = 0; i < IPI_DOORBELL_END; i++) {
unsigned int virq = irq_find_mapping(mpic_ipi_domain, i);
if (!virq || !irq_percpu_is_enabled(virq))
@@ -509,7 +509,7 @@ static int mpic_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
static void mpic_smp_cpu_init(void)
{
- for (int i = 0; i < mpic_domain->hwirq_max; i++)
+ for (irq_hw_number_t i = 0; i < mpic_domain->hwirq_max; i++)
writel(i, per_cpu_int_base + MPIC_INT_SET_MASK);
if (!mpic_is_ipi_available())
@@ -628,7 +628,8 @@ static void mpic_handle_msi_irq(struct pt_regs *r, bool b) {}
static void mpic_handle_cascade_irq(struct irq_desc *desc)
{
struct irq_chip *chip = irq_desc_get_chip(desc);
- unsigned long irqmap, irqn, irqsrc, cpuid;
+ unsigned long irqmap, irqsrc, cpuid;
+ irq_hw_number_t irqn;
chained_irq_enter(chip, desc);
@@ -657,7 +658,8 @@ static void mpic_handle_cascade_irq(struct irq_desc *desc)
static void __exception_irq_entry mpic_handle_irq(struct pt_regs *regs)
{
- u32 irqstat, irqnr;
+ irq_hw_number_t irqnr;
+ u32 irqstat;
do {
irqstat = readl_relaxed(per_cpu_int_base + MPIC_CPU_INTACK);
@@ -679,7 +681,7 @@ static void __exception_irq_entry mpic_handle_irq(struct pt_regs *regs)
/* IPI Handling */
if (irqnr == 0) {
unsigned long ipimask;
- int ipi;
+ irq_hw_number_t ipi;
ipimask = readl_relaxed(per_cpu_int_base +
MPIC_IN_DRBEL_CAUSE) &
@@ -784,7 +786,7 @@ static int __init mpic_of_init(struct device_node *node,
nr_irqs = FIELD_GET(MPIC_INT_CONTROL_NUMINT_MASK,
readl(main_int_base + MPIC_INT_CONTROL));
- for (int i = 0; i < nr_irqs; i++)
+ for (irq_hw_number_t i = 0; i < nr_irqs; i++)
writel(i, main_int_base + MPIC_INT_CLEAR_ENABLE);
mpic_domain = irq_domain_add_linear(node, nr_irqs, &mpic_irq_ops, NULL);
When iterating, use either irq_hw_number_t or unsigned int type for the iterator, depending on whether the variable is HW IRQ number or added to a HW IRQ number. Signed-off-by: Marek Behún <kabel@kernel.org> --- drivers/irqchip/irq-armada-370-xp.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-)