public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] irqchip/gicv3: fix a loop timeout
@ 2016-10-14  7:26 Dan Carpenter
  2016-10-14  9:43 ` Sudeep Holla
  2016-10-14 12:31 ` [tip:irq/urgent] irqchip/gicv3: Handle loop timeout proper tip-bot for Dan Carpenter
  0 siblings, 2 replies; 3+ messages in thread
From: Dan Carpenter @ 2016-10-14  7:26 UTC (permalink / raw)
  To: Thomas Gleixner, Sudeep Holla
  Cc: Jason Cooper, Marc Zyngier, linux-kernel, kernel-janitors

We expect the loop to exit with "count" set to zero so let's switch it
from a post-op to a pre-op count down.  Otherwise we don't see the error
message when this times out.

Fixes: a2c225101234 ("irqchip: gic-v3: Refactor gic_enable_redist to support both enabling and disabling")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 9b81bd8..19d642e 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -153,7 +153,7 @@ static void gic_enable_redist(bool enable)
 			return;	/* No PM support in this redistributor */
 	}
 
-	while (count--) {
+	while (--count) {
 		val = readl_relaxed(rbase + GICR_WAKER);
 		if (enable ^ (bool)(val & GICR_WAKER_ChildrenAsleep))
 			break;

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [patch] irqchip/gicv3: fix a loop timeout
  2016-10-14  7:26 [patch] irqchip/gicv3: fix a loop timeout Dan Carpenter
@ 2016-10-14  9:43 ` Sudeep Holla
  2016-10-14 12:31 ` [tip:irq/urgent] irqchip/gicv3: Handle loop timeout proper tip-bot for Dan Carpenter
  1 sibling, 0 replies; 3+ messages in thread
From: Sudeep Holla @ 2016-10-14  9:43 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Thomas Gleixner, Sudeep Holla, Jason Cooper, Marc Zyngier,
	linux-kernel, kernel-janitors



On 14/10/16 08:26, Dan Carpenter wrote:
> We expect the loop to exit with "count" set to zero so let's switch it
> from a post-op to a pre-op count down.  Otherwise we don't see the error
> message when this times out.
>

Nice catch.

Acked-by: Sudeep Holla <sudeep.holla@arm.com>

-- 
Regards,
Sudeep

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [tip:irq/urgent] irqchip/gicv3: Handle loop timeout proper
  2016-10-14  7:26 [patch] irqchip/gicv3: fix a loop timeout Dan Carpenter
  2016-10-14  9:43 ` Sudeep Holla
@ 2016-10-14 12:31 ` tip-bot for Dan Carpenter
  1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Dan Carpenter @ 2016-10-14 12:31 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: jason, tglx, hpa, marc.zyngier, mingo, linux-kernel, sudeep.holla,
	dan.carpenter

Commit-ID:  d102eb5c1ac5e6743b1c6d145c06a25d98ad1375
Gitweb:     http://git.kernel.org/tip/d102eb5c1ac5e6743b1c6d145c06a25d98ad1375
Author:     Dan Carpenter <dan.carpenter@oracle.com>
AuthorDate: Fri, 14 Oct 2016 10:26:21 +0300
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Fri, 14 Oct 2016 14:26:55 +0200

irqchip/gicv3: Handle loop timeout proper

The timeout loop terminates when the loop count is zero, but the decrement
of the count variable is post check. So count is -1 when we check for the
timeout and therefor the error message is supressed.

Change it to predecrement, so the error message is emitted.

[ tglx: Massaged changelog ] 

Fixes: a2c225101234 ("irqchip: gic-v3: Refactor gic_enable_redist to support both enabling and disabling")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: kernel-janitors@vger.kernel.org
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: stable@vger.kernel.org
Link: http://lkml.kernel.org/r/20161014072534.GA15168@mwanda
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 drivers/irqchip/irq-gic-v3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 9b81bd8..19d642e 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -153,7 +153,7 @@ static void gic_enable_redist(bool enable)
 			return;	/* No PM support in this redistributor */
 	}
 
-	while (count--) {
+	while (--count) {
 		val = readl_relaxed(rbase + GICR_WAKER);
 		if (enable ^ (bool)(val & GICR_WAKER_ChildrenAsleep))
 			break;

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-10-14 12:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-14  7:26 [patch] irqchip/gicv3: fix a loop timeout Dan Carpenter
2016-10-14  9:43 ` Sudeep Holla
2016-10-14 12:31 ` [tip:irq/urgent] irqchip/gicv3: Handle loop timeout proper tip-bot for Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox