[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <12783106.5y3em8Tzu2@wuerfel>
Date: Wed, 29 Oct 2014 08:46 +0100
From: Arnd Bergmann <arnd@...db.de>
To: Kevin Cernekee <cernekee@...il.com>
Cc: f.fainelli@...il.com, tglx@...utronix.de, jason@...edaemon.net,
ralf@...ux-mips.org, linux-kernel@...r.kernel.org,
devicetree@...r.kernel.org, mbizon@...ebox.fr, jogo@...nwrt.org,
linux-mips@...ux-mips.org
Subject: Re: [PATCH 05/11] irqchip: bcm7120-l2: Make sure all register accesses use base+offset
On Tuesday 28 October 2014 20:58:52 Kevin Cernekee wrote:
>
> irq_gc_lock(gc);
> /* Save the current mask and the interrupt forward mask */
> - b->saved_mask = __raw_readl(b->base) | b->irq_fwd_mask;
> + b->saved_mask = __raw_readl(b->base + IRQEN) | b->irq_fwd_mask;
> if (b->can_wake) {
> reg = b->saved_mask | gc->wake_active;
> - __raw_writel(reg, b->base);
> + __raw_writel(reg, b->base + IRQEN);
> }
> irq_gc_unlock(gc);
> }
> @@ -81,7 +81,7 @@ static void bcm7120_l2_intc_resume(struct irq_data *d)
>
> /* Restore the saved mask */
> irq_gc_lock(gc);
> - __raw_writel(b->saved_mask, b->base);
> + __raw_writel(b->saved_mask, b->base + IRQEN);
> irq_gc_unlock(gc);
>
You should really change this one too, to use fixed-endian accessors.
__raw_writel can't safely be used in drivers, and it will break
big-endian kernels running on ARM BRCMSTB.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists