Thread (1 message) 1 message, 1 author, 2009-02-17

RE: PROBLEM: incorrect interrupt ack lead to interrupt loss on freescale powerpc

From: Li Yang-R58472 <hidden>
Date: 2009-02-17 10:17:01
Also in: lkml

-----Original Message-----
From: dayu@datangmobile.cn [mailto:dayu@datangmobile.cn]=20
Sent: Tuesday, February 17, 2009 4:34 PM
To: linux-kernel@vger.kernel.org
Cc: Li Yang-R58472
Subject: PROBLEM: incorrect interrupt ack lead to interrupt=20
loss on freescale powerpc
=20
=20
[1.] One line summary of the problem: incorrect interrupt ack=20
 lead to interrupt loss
Acked-by: Li Yang <redacted>

However, please resend the patch with a brief description and =
Signed-off-by at the top of the patch.  You can read the =
Documentation/SubmittiongPatches for more information, or even a Chinese =
version under Documentation/zh_CN/.

Here are some small comments about the patch itself,
--- a/arch/powerpc/sysdev/ipic.c	2009-02-17 15:10:18.000000000 +0800
+++ b/arch/powerpc/sysdev/ipic.c	2009-02-17 15:10:24.000000000 +0800
@@ -9,6 +9,7 @@
  * under  the terms of  the GNU General  Public License as published by =
the
  * Free Software Foundation;  either version 2 of the  License, or (at =
your
  * option) any later version.
+ * Da Yu [off-list ref] fixed the interrupt loss problem on =
powerpc IPIC


It's not recommended to add changelog in the source now.  Please =
describe in the patch description area.

  */
 #include <linux/kernel.h>
 #include <linux/init.h>
@@ -561,8 +562,7 @@
=20
 	spin_lock_irqsave(&ipic_lock, flags);
=20
-	temp =3D ipic_read(ipic->regs, ipic_info[src].pend);
-	temp |=3D (1 << (31 - ipic_info[src].bit));
+	temp =3D (1 << (31 - ipic_info[src].bit));


Remove unneeded brackets.


 	ipic_write(ipic->regs, ipic_info[src].pend, temp);
=20
 	spin_unlock_irqrestore(&ipic_lock, flags);
@@ -581,8 +581,7 @@
 	temp &=3D ~(1 << (31 - ipic_info[src].bit));
 	ipic_write(ipic->regs, ipic_info[src].mask, temp);
=20
-	temp =3D ipic_read(ipic->regs, ipic_info[src].pend);
-	temp |=3D (1 << (31 - ipic_info[src].bit));
+	temp =3D (1 << (31 - ipic_info[src].bit));

Same as above.


 	ipic_write(ipic->regs, ipic_info[src].pend, temp);
=20
 	spin_unlock_irqrestore(&ipic_lock, flags);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help