Messages in this thread | | | Date | Mon, 23 Dec 2013 19:47:57 +0200 | Subject | Re: [RESEND PATCH v2] mfd: twl6030: Fix endianness problem in IRQ handler | From | Taras Kondratiuk <> |
| |
On 23 December 2013 19:20, Joe Perches <joe@perches.com> wrote: > On Mon, 2013-12-23 at 19:11 +0200, Taras Kondratiuk wrote: >> From: Danke Xie <d.xie@sta.samsung.com> >> >> The current TWL 6030 IRQ handler assumes little endianness. >> This change makes it endian-neutral. > [] >> diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c > [] >> @@ -196,8 +197,9 @@ static irqreturn_t twl6030_irq_thread(int irq, void *data) >> if (sts.bytes[2] & 0x10) >> sts.bytes[2] |= 0x08; >> >> - for (i = 0; sts.int_sts; sts.int_sts >>= 1, i++) >> - if (sts.int_sts & 0x1) { >> + int_sts = le32_to_cpu(sts.int_sts); >> + for (i = 0; int_sts; int_sts >>= 1, i++) >> + if (int_sts & 0x1) { >> int module_irq = >> irq_find_mapping(pdata->irq_domain, >> pdata->irq_mapping_tbl[i]); > > instead of the > > for (...) { > if (foo & 1) { > > > maybe using ffs would be better/faster > > while ((bit = ffs(int_sts))) { > > etc...
Makes sense, but the aim of this patch is to fix endianness issue. This micro-optimisation can be done as a separate patch.
-- Regards, Taras Kondratiuk
| |