mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: tip-bot for MaJun <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: hanjun.guo@linaro.org, weiyongjun1@huawei.com,
	majun258@huawei.com, hpa@zytor.com, tglx@linutronix.de,
	wangkefeng.wang@huawei.com, mingo@kernel.org,
	linux-kernel@vger.kernel.org, marc.zyngier@arm.com
Subject: [tip:irq/urgent] irqchip/mbigen: Fix the clear register offset calculation
Date: Fri, 12 May 2017 01:35:38 -0700	[thread overview]
Message-ID: <tip-9459a04b6a5a09967eec94a1b66f0a74312819d9@git.kernel.org> (raw)
In-Reply-To: <1494561328-39514-4-git-send-email-guohanjun@huawei.com>

Commit-ID:  9459a04b6a5a09967eec94a1b66f0a74312819d9
Gitweb:     http://git.kernel.org/tip/9459a04b6a5a09967eec94a1b66f0a74312819d9
Author:     MaJun <majun258@huawei.com>
AuthorDate: Fri, 12 May 2017 11:55:28 +0800
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Fri, 12 May 2017 10:25:38 +0200

irqchip/mbigen: Fix the clear register offset calculation

The register array offset for clearing an interrupt is calculated by:

    offset = (hwirq - RESERVED_IRQ_PER_MBIGEN_CHIP) / 32;

This is wrong because the clear register array includes the reserved
interrupts. So the clear operation ends up in the wrong register.

This went unnoticed so far, because the hardware clears the real bit
through a timeout mechanism when the hardware is configured in debug
mode. That debug mode was enabled on early generations of the hardware, so
the problem was papered over.

On newer hardware with updated firmware the debug mode was disabled, so the
bits did not get cleared which causes the system to malfunction.

Remove the subtraction of RESERVED_IRQ_PER_MBIGEN_CHIP, so the correct
register is accessed.

[ tglx: Rewrote changelog ]

Fixes: a6c2f87b8820 ("irqchip/mbigen: Implement the mbigen irq chip operation functions")
Signed-off-by: MaJun <majun258@huawei.com>
Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: linuxarm@huawei.com
Cc: Wei Yongjun <weiyongjun1@huawei.com>
Link: http://lkml.kernel.org/r/1494561328-39514-4-git-send-email-guohanjun@huawei.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 drivers/irqchip/irq-mbigen.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/irqchip/irq-mbigen.c b/drivers/irqchip/irq-mbigen.c
index 2fa1e45..31d6b5a 100644
--- a/drivers/irqchip/irq-mbigen.c
+++ b/drivers/irqchip/irq-mbigen.c
@@ -106,10 +106,7 @@ static inline void get_mbigen_type_reg(irq_hw_number_t hwirq,
 static inline void get_mbigen_clear_reg(irq_hw_number_t hwirq,
 					u32 *mask, u32 *addr)
 {
-	unsigned int ofst;
-
-	hwirq -= RESERVED_IRQ_PER_MBIGEN_CHIP;
-	ofst = hwirq / 32 * 4;
+	unsigned int ofst = (hwirq / 32) * 4;
 
 	*mask = 1 << (hwirq % 32);
 	*addr = ofst + REG_MBIGEN_CLEAR_OFFSET;

  reply	other threads:[~2017-05-12  8:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-12  3:55 [PATCH v2 0/3] irqchip/mbigen: bugfixs Hanjun Guo
2017-05-12  3:55 ` [PATCH v2 1/3] irqchip/mbigen: Fix memory mapping code Hanjun Guo
2017-05-12  8:34   ` [tip:irq/urgent] " tip-bot for Hanjun Guo
2017-05-12  3:55 ` [PATCH v2 2/3] irqchip/mbigen: Fix potential NULL dereferencing Hanjun Guo
2017-05-12  8:35   ` [tip:irq/urgent] " tip-bot for Hanjun Guo
2017-05-12  3:55 ` [PATCH v2 3/3] irqchip/mbigen: Fix the clear register offset Hanjun Guo
2017-05-12  8:35   ` tip-bot for MaJun [this message]
2017-05-12  6:55 ` [PATCH v2 0/3] irqchip/mbigen: bugfixs majun (Euler7)
2017-05-12  7:58 ` Marc Zyngier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-9459a04b6a5a09967eec94a1b66f0a74312819d9@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=hanjun.guo@linaro.org \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=majun258@huawei.com \
    --cc=marc.zyngier@arm.com \
    --cc=mingo@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=wangkefeng.wang@huawei.com \
    --cc=weiyongjun1@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®