From patchwork Tue Feb 17 12:44:37 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: dayu@datangmobile.cn X-Patchwork-Id: 23259 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from ozlabs.org (localhost [127.0.0.1]) by ozlabs.org (Postfix) with ESMTP id 652E2DDF26 for ; Wed, 18 Feb 2009 01:41:40 +1100 (EST) X-Original-To: linuxppc-dev@ozlabs.org Delivered-To: linuxppc-dev@ozlabs.org X-Greylist: delayed 724 seconds by postgrey-1.31 at ozlabs; Tue, 17 Feb 2009 23:56:44 EST Received: from mail.datangmobile.cn (mail.datangmobile.cn [219.142.67.62]) by ozlabs.org (Postfix) with ESMTP id 9E0F2DDE07 for ; Tue, 17 Feb 2009 23:56:42 +1100 (EST) content-class: urn:content-classes:message MIME-Version: 1.0 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Subject: [PATCH] fix the interrupt loss problem on powerpc IPIC (2.6.23) Date: Tue, 17 Feb 2009 20:44:37 +0800 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH] fix the interrupt loss problem on powerpc IPIC (2.6.23) Thread-Index: AcmQ2n06DcXf5Ar+T+SgI94lU1s0UQADMFlQAAVmoQA= From: To: , X-Mailman-Approved-At: Wed, 18 Feb 2009 01:40:07 +1100 Cc: linuxppc-dev@ozlabs.org X-BeenThere: linuxppc-dev@ozlabs.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org From: Da Yu Date: Tue, 17 Feb 2009 19:58:20 +0800 Subject: [PATCH] fix the interrupt loss problem on powerpc IPIC (2.6.23) Signed-off-by: Da Yu --- */ #include #include @@ -561,8 +562,7 @@ spin_lock_irqsave(&ipic_lock, flags); - temp = ipic_read(ipic->regs, ipic_info[src].pend); - temp |= (1 << (31 - ipic_info[src].bit)); + temp = (1 << (31 - ipic_info[src].bit)); Remove unneeded brackets. ipic_write(ipic->regs, ipic_info[src].pend, temp); spin_unlock_irqrestore(&ipic_lock, flags); @@ -581,8 +581,7 @@ temp &= ~(1 << (31 - ipic_info[src].bit)); ipic_write(ipic->regs, ipic_info[src].mask, temp); - temp = ipic_read(ipic->regs, ipic_info[src].pend); - temp |= (1 << (31 - ipic_info[src].bit)); + temp = (1 << (31 - ipic_info[src].bit)); Same as above. ipic_write(ipic->regs, ipic_info[src].pend, temp); spin_unlock_irqrestore(&ipic_lock, flags); --- a/arch/powerpc/sysdev/ipic.c 2009-02-17 15:10:18.000000000 +0800 +++ b/arch/powerpc/sysdev/ipic.c 2009-02-17 20:05:28.000000000 +0800 @@ -561,8 +561,7 @@ static void ipic_ack_irq(unsigned int vi spin_lock_irqsave(&ipic_lock, flags); - temp = ipic_read(ipic->regs, ipic_info[src].pend); - temp |= (1 << (31 - ipic_info[src].bit)); + temp = 1 << (31 - ipic_info[src].bit); ipic_write(ipic->regs, ipic_info[src].pend, temp); spin_unlock_irqrestore(&ipic_lock, flags); @@ -581,8 +580,7 @@ static void ipic_mask_irq_and_ack(unsign temp &= ~(1 << (31 - ipic_info[src].bit)); ipic_write(ipic->regs, ipic_info[src].mask, temp); - temp = ipic_read(ipic->regs, ipic_info[src].pend); - temp |= (1 << (31 - ipic_info[src].bit)); + temp = 1 << (31 - ipic_info[src].bit); ipic_write(ipic->regs, ipic_info[src].pend, temp); spin_unlock_irqrestore(&ipic_lock, flags); -----邮件原件----- 发件人: Li Yang-R58472 [mailto:LeoLi@freescale.com] 发送时间: 2009年2月17日 18:17 收件人: 笪禹; linux-kernel@vger.kernel.org 抄送: linuxppc-dev@ozlabs.org 主题: RE: PROBLEM: incorrect interrupt ack lead to interrupt loss on freescale powerpc > -----Original Message----- > From: dayu@datangmobile.cn [mailto:dayu@datangmobile.cn] > 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 loss on > freescale powerpc > > > [1.] One line summary of the problem: incorrect interrupt ack lead to > interrupt loss Acked-by: Li Yang 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 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.