From patchwork Mon Sep 7 08:16:20 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hidetoshi Seto X-Patchwork-Id: 46086 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 n878H07D012118 for ; Mon, 7 Sep 2009 08:17:01 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752095AbZIGIQh (ORCPT ); Mon, 7 Sep 2009 04:16:37 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752090AbZIGIQg (ORCPT ); Mon, 7 Sep 2009 04:16:36 -0400 Received: from fgwmail7.fujitsu.co.jp ([192.51.44.37]:54438 "EHLO fgwmail7.fujitsu.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752095AbZIGIQg (ORCPT ); Mon, 7 Sep 2009 04:16:36 -0400 Received: from m1.gw.fujitsu.co.jp ([10.0.50.71]) by fgwmail7.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id n878Gc0B011308 for (envelope-from seto.hidetoshi@jp.fujitsu.com); Mon, 7 Sep 2009 17:16:38 +0900 Received: from smail (m1 [127.0.0.1]) by outgoing.m1.gw.fujitsu.co.jp (Postfix) with ESMTP id DDC8845DE50 for ; Mon, 7 Sep 2009 17:16:37 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (s1.gw.fujitsu.co.jp [10.0.50.91]) by m1.gw.fujitsu.co.jp (Postfix) with ESMTP id A2F6A45DE4D for ; Mon, 7 Sep 2009 17:16:37 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id 7FC63E08003 for ; Mon, 7 Sep 2009 17:16:37 +0900 (JST) Received: from m105.s.css.fujitsu.com (m105.s.css.fujitsu.com [10.249.87.105]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id 4C33B1DB8042 for ; Mon, 7 Sep 2009 17:16:36 +0900 (JST) Received: from m105.css.fujitsu.com (m105 [127.0.0.1]) by m105.s.css.fujitsu.com (Postfix) with ESMTP id 089455D800B; Mon, 7 Sep 2009 17:16:36 +0900 (JST) Received: from [127.0.0.1] (unknown [10.124.100.141]) by m105.s.css.fujitsu.com (Postfix) with ESMTP id 8DD205D8002; Mon, 7 Sep 2009 17:16:35 +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:16:28 +0900 (JST) Message-ID: <4AA4C154.6000502@jp.fujitsu.com> Date: Mon, 07 Sep 2009 17:16:20 +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 10/12] pcie, aer: flags to bits 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 Compact struct and codes. Signed-off-by: Hidetoshi Seto --- drivers/pci/pcie/aer/aerdrv.h | 19 +++++++++++-------- drivers/pci/pcie/aer/aerdrv_core.c | 12 ++++++------ drivers/pci/pcie/aer/aerdrv_errprint.c | 6 +++--- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/drivers/pci/pcie/aer/aerdrv.h b/drivers/pci/pcie/aer/aerdrv.h index c44d9e1..78c977c 100644 --- a/drivers/pci/pcie/aer/aerdrv.h +++ b/drivers/pci/pcie/aer/aerdrv.h @@ -40,10 +40,6 @@ PCI_ERR_UNC_UNX_COMP| \ PCI_ERR_UNC_MALF_TLP) -/* AER Error Info Flags */ -#define AER_TLP_HEADER_VALID_FLAG 0x00000001 -#define AER_MULTI_ERROR_VALID_FLAG 0x00000002 - struct header_log_regs { unsigned int dw0; unsigned int dw1; @@ -55,10 +51,17 @@ struct header_log_regs { struct aer_err_info { struct pci_dev *dev[AER_MAX_MULTI_ERR_DEVICES]; int error_dev_num; - u16 id; - int severity; /* 0:NONFATAL | 1:FATAL | 2:COR */ - int flags; - int first; + + unsigned int id:16; + + unsigned int severity:2; /* 0:NONFATAL | 1:FATAL | 2:COR */ + unsigned int __pad1:5; + unsigned int multi_error_valid:1; + + unsigned int first_error:5; + unsigned int __pad2:2; + unsigned int tlp_header_valid:1; + unsigned int status; /* COR/UNCOR Error Status */ unsigned int mask; /* COR/UNCOR Error Mask */ struct header_log_regs tlp; /* TLP Header */ diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c index 9ba1602..9626469 100644 --- a/drivers/pci/pcie/aer/aerdrv_core.c +++ b/drivers/pci/pcie/aer/aerdrv_core.c @@ -196,7 +196,7 @@ static int find_device_iter(struct pci_dev *dev, void *data) * If there is no multiple error, we stop * or continue based on the id comparing. */ - if (!(e_info->flags & AER_MULTI_ERROR_VALID_FLAG)) + if (!e_info->multi_error_valid) return result; /* @@ -254,7 +254,7 @@ static int find_device_iter(struct pci_dev *dev, void *data) return 0; added: - if (e_info->flags & AER_MULTI_ERROR_VALID_FLAG) + if (e_info->multi_error_valid) return 0; else return 1; @@ -701,7 +701,7 @@ static int get_device_error_info(struct pci_dev *dev, struct aer_err_info *info) int pos, temp; info->status = 0; - info->flags &= ~AER_TLP_HEADER_VALID_FLAG; + info->tlp_header_valid = 0; pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ERR); @@ -729,10 +729,10 @@ static int get_device_error_info(struct pci_dev *dev, struct aer_err_info *info) /* Get First Error Pointer */ pci_read_config_dword(dev, pos + PCI_ERR_CAP, &temp); - info->first = PCI_ERR_CAP_FEP(temp); + info->first_error = PCI_ERR_CAP_FEP(temp); if (info->status & AER_LOG_TLP_MASKS) { - info->flags |= AER_TLP_HEADER_VALID_FLAG; + info->tlp_header_valid = 1; pci_read_config_dword(dev, pos + PCI_ERR_HEADER_LOG, &info->tlp.dw0); pci_read_config_dword(dev, @@ -811,7 +811,7 @@ static void aer_isr_one_error(struct pcie_device *p_device, if (e_src->status & (PCI_ERR_ROOT_MULTI_COR_RCV | PCI_ERR_ROOT_MULTI_UNCOR_RCV)) - e_info->flags |= AER_MULTI_ERROR_VALID_FLAG; + e_info->multi_error_valid = 1; find_source_device(p_device->port, e_info); aer_process_err_devices(p_device, e_info); diff --git a/drivers/pci/pcie/aer/aerdrv_errprint.c b/drivers/pci/pcie/aer/aerdrv_errprint.c index 0bb91e2..f0bdf0f 100644 --- a/drivers/pci/pcie/aer/aerdrv_errprint.c +++ b/drivers/pci/pcie/aer/aerdrv_errprint.c @@ -170,10 +170,10 @@ static void aer_print_error_source(struct aer_err_info *info) if (errmsg) AER_PR(info, "%s\t: %s\n", errmsg, - info->first == i ? "First" : ""); + info->first_error == i ? "First" : ""); else AER_PR(info, "Unknown Error Bit %2d \t: %s\n", - i, info->first == i ? "First" : ""); + i, info->first_error == i ? "First" : ""); } } @@ -207,7 +207,7 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn)); - if (info->flags & AER_TLP_HEADER_VALID_FLAG) { + if (info->tlp_header_valid) { unsigned char *tlp = (unsigned char *) &info->tlp; AER_PR(info, "TLP Header:\n"); AER_PR(info, "%02x%02x%02x%02x %02x%02x%02x%02x"