From patchwork Mon Sep 7 08:11:29 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hidetoshi Seto X-Patchwork-Id: 46076 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n878AxJt011396 for ; Mon, 7 Sep 2009 08:11:54 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751670AbZIGILu (ORCPT ); Mon, 7 Sep 2009 04:11:50 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751627AbZIGILu (ORCPT ); Mon, 7 Sep 2009 04:11:50 -0400 Received: from fgwmail5.fujitsu.co.jp ([192.51.44.35]:42231 "EHLO fgwmail5.fujitsu.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751670AbZIGILt (ORCPT ); Mon, 7 Sep 2009 04:11:49 -0400 Received: from m6.gw.fujitsu.co.jp ([10.0.50.76]) by fgwmail5.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id n878BppP016671 for (envelope-from seto.hidetoshi@jp.fujitsu.com); Mon, 7 Sep 2009 17:11:51 +0900 Received: from smail (m6 [127.0.0.1]) by outgoing.m6.gw.fujitsu.co.jp (Postfix) with ESMTP id 87E1645DE4C for ; Mon, 7 Sep 2009 17:11:50 +0900 (JST) Received: from s6.gw.fujitsu.co.jp (s6.gw.fujitsu.co.jp [10.0.50.96]) by m6.gw.fujitsu.co.jp (Postfix) with ESMTP id 4CD8745DE51 for ; Mon, 7 Sep 2009 17:11:50 +0900 (JST) Received: from s6.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s6.gw.fujitsu.co.jp (Postfix) with ESMTP id 29766E08005 for ; Mon, 7 Sep 2009 17:11:50 +0900 (JST) Received: from ml13.s.css.fujitsu.com (ml13.s.css.fujitsu.com [10.249.87.103]) by s6.gw.fujitsu.co.jp (Postfix) with ESMTP id 8A34FE08008 for ; Mon, 7 Sep 2009 17:11:49 +0900 (JST) Received: from ml13.css.fujitsu.com (ml13 [127.0.0.1]) by ml13.s.css.fujitsu.com (Postfix) with ESMTP id 29EADFD0004; Mon, 7 Sep 2009 17:11:49 +0900 (JST) Received: from [127.0.0.1] (unknown [10.124.100.141]) by ml13.s.css.fujitsu.com (Postfix) with ESMTP id B648EFD0003; Mon, 7 Sep 2009 17:11:48 +0900 (JST) X-SecurityPolicyCheck-FJ: OK by FujitsuOutboundMailChecker v1.3.1 Received: from FMVDA2A041[10.124.100.141] by FMVDA2A041 (FujitsuOutboundMailChecker v1.3.1/9992[10.124.100.141]); Mon, 07 Sep 2009 17:11:41 +0900 (JST) Message-ID: <4AA4C031.7020202@jp.fujitsu.com> Date: Mon, 07 Sep 2009 17:11:29 +0900 From: Hidetoshi Seto User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) MIME-Version: 1.0 To: linux-pci@vger.kernel.org CC: Jesse Barnes , Andrew Patterson , Bjorn Helgaas Subject: [PATCH 06/12] pcie, aer: remove spinlock in aerdrv_errprint.c References: <4AA4BE86.60605@jp.fujitsu.com> In-Reply-To: <4AA4BE86.60605@jp.fujitsu.com> Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org The static buffer errmsg_buff[] is used only for building error message in fixed format, and is protected by a spinlock. This patch removes this buffer and the spinlock. Signed-off-by: Hidetoshi Seto Reviewed-by: Andrew Patterson --- drivers/pci/pcie/aer/aerdrv_errprint.c | 28 ++++++++-------------------- 1 files changed, 8 insertions(+), 20 deletions(-) diff --git a/drivers/pci/pcie/aer/aerdrv_errprint.c b/drivers/pci/pcie/aer/aerdrv_errprint.c index a2a4b39..95c3f1c 100644 --- a/drivers/pci/pcie/aer/aerdrv_errprint.c +++ b/drivers/pci/pcie/aer/aerdrv_errprint.c @@ -152,38 +152,31 @@ static char *aer_agent_string[] = { "Transmitter ID" }; -static char *aer_get_error_source_name(int severity, - unsigned int status, - char errmsg_buff[]) +static void aer_print_error_source(struct aer_err_info *info) { int i; char *errmsg = NULL; for (i = 0; i < 32; i++) { - if (!(status & (1 << i))) + if (!(info->status & (1 << i))) continue; - if (severity == AER_CORRECTABLE) + if (info->severity == AER_CORRECTABLE) errmsg = aer_correctable_error_string[i]; else errmsg = aer_uncorrectable_error_string[i]; - if (!errmsg) { - sprintf(errmsg_buff, "Unknown Error Bit %2d ", i); - errmsg = errmsg_buff; - } + if (errmsg) + AER_PR(info, "%s\t:\n", errmsg); + else + AER_PR(info, "Unknown Error Bit %2d \t:\n", i); break; } - - return errmsg; } -static DEFINE_SPINLOCK(logbuf_lock); -static char errmsg_buff[100]; void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) { - char *errmsg; int err_layer, agent; int id = ((dev->bus->number << 8) | dev->devfn); @@ -199,12 +192,7 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) AER_PR(info, "PCIE Bus Error type\t: %s\n", aer_error_layer[err_layer]); - spin_lock(&logbuf_lock); - errmsg = aer_get_error_source_name(info->severity, - info->status, - errmsg_buff); - AER_PR(info, "%s\t:\n", errmsg); - spin_unlock(&logbuf_lock); + aer_print_error_source(info); agent = AER_GET_AGENT(info->severity, info->status); AER_PR(info, "%s\t\t: %04x\n", aer_agent_string[agent], id);