From patchwork Thu Nov 29 21:54:56 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Ortiz X-Patchwork-Id: 202830 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 600AC2C0081 for ; Fri, 30 Nov 2012 09:00:32 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754962Ab2K2V75 (ORCPT ); Thu, 29 Nov 2012 16:59:57 -0500 Received: from g4t0014.houston.hp.com ([15.201.24.17]:32322 "EHLO g4t0014.houston.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753909Ab2K2V74 (ORCPT ); Thu, 29 Nov 2012 16:59:56 -0500 Received: from g4t0018.houston.hp.com (g4t0018.houston.hp.com [16.234.32.27]) by g4t0014.houston.hp.com (Postfix) with ESMTP id 9F4D2246FC; Thu, 29 Nov 2012 21:59:55 +0000 (UTC) Received: from grignak.americas.hpqcorp.net (grignak.americas.hpqcorp.net [16.71.13.117]) by g4t0018.houston.hp.com (Postfix) with ESMTP id 2E15E101B5; Thu, 29 Nov 2012 21:59:55 +0000 (UTC) From: Lance Ortiz Subject: [PATCH 3/3] aerdrv: Cleanup log output for CPER based AER To: bhelgaas@google.com, lance_ortiz@hotmail.com, jiang.liu@huawei.com, tony.luck@intel.com, bp@alien8.de, rostedt@goodmis.org, mchehab@redhat.com, linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Date: Thu, 29 Nov 2012 14:54:56 -0700 Message-ID: <20121129215456.5483.27026.stgit@grignak.americas.hpqcorp.net> In-Reply-To: <20121129215443.5483.43364.stgit@grignak.americas.hpqcorp.net> References: <20121129215443.5483.43364.stgit@grignak.americas.hpqcorp.net> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org These changes make cper_print_aer more consistent with aer_print_error which is called in the AER interrupt case. The string in the variable 'prefix' is printed at the beginning of each print statement in cper_print_aer(). The prefix is a string containing the driver name and the device's path. Looking up the call path, the value of prefix is never assigned and is NULL, so when cper_print_aer prints data the initial string does not get printed. This string is important because it identifies the device that the error is on. This patch adds code to create the prefix and print it in the cper_print_aer function. This patch also calculates the device's agent id so it can be printed. Signed-off-by: Lance Ortiz --- drivers/pci/pcie/aer/aerdrv_errprint.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/pci/pcie/aer/aerdrv_errprint.c b/drivers/pci/pcie/aer/aerdrv_errprint.c index 6354e50..bc0a091 100644 --- a/drivers/pci/pcie/aer/aerdrv_errprint.c +++ b/drivers/pci/pcie/aer/aerdrv_errprint.c @@ -229,7 +229,13 @@ void cper_print_aer(struct pci_dev *dev, int cper_severity, int aer_severity, layer, agent, status_strs_size, tlp_header_valid = 0; u32 status, mask; const char **status_strs; - char *prefix = NULL; + int id = ((dev->bus->number << 8) | dev->devfn); + char prefix[44]; + + snprintf(prefix, sizeof(prefix), "%s%s %s: ", + (info->severity == AER_CORRECTABLE) ? + KERN_WARNING : KERN_ERR, + dev_driver_string(&dev->dev), dev_name(&dev->dev)); aer_severity = cper_severity_to_aer(cper_severity); if (aer_severity == AER_CORRECTABLE) { @@ -249,8 +255,8 @@ void cper_print_aer(struct pci_dev *dev, int cper_severity, printk("%s""aer_status: 0x%08x, aer_mask: 0x%08x\n", prefix, status, mask); cper_print_bits(prefix, status, status_strs, status_strs_size); - printk("%s""aer_layer=%s, aer_agent=%s\n", prefix, - aer_error_layer[layer], aer_agent_string[agent]); + printk("%s""aer_layer=%s, %d=%04x(%s)\n", prefix, + aer_error_layer[layer], id, aer_agent_string[agent]); if (aer_severity != AER_CORRECTABLE) printk("%s""aer_uncor_severity: 0x%08x\n", prefix, aer->uncor_severity);