[{"id":1784908,"web_url":"http://patchwork.ozlabs.org/comment/1784908/","msgid":"<20171011194129.GQ25517@bhelgaas-glaptop.roam.corp.google.com>","list_archive_url":null,"date":"2017-10-11T19:41:29","subject":"Re: [PATCH 2/2] pci/layerscape: change the default error response\n\tbehavior","submitter":{"id":67298,"url":"http://patchwork.ozlabs.org/api/people/67298/","name":"Bjorn Helgaas","email":"helgaas@kernel.org"},"content":"On Fri, Sep 22, 2017 at 03:25:22PM +0800, Zhiqiang Hou wrote:\n> From: Minghuan Lian <Minghuan.Lian@nxp.com>\n> \n> By default, when the PCIe controller experiences an erroneous\n> completion from an external completer for its outbound non-posted\n> request, it always sends an OKAY response to the device's internal\n> AXI slave system interface. However, such default system error\n> response behavior cannot be used for other types of outbound\n> non-posted requests. For example, the outbound memory read\n> transaction requires an actual ERROR response, like UR completion\n> or completion timeout. The patch is to fix it by forwarding\n> the error response of the non-posted request.\n> \n> Signed-off-by: Minghuan Lian <Minghuan.Lian@nxp.com>\n> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>\n> ---\n>  drivers/pci/dwc/pci-layerscape.c | 25 +++++++++++++++++++++++++\n>  1 file changed, 25 insertions(+)\n> \n> diff --git a/drivers/pci/dwc/pci-layerscape.c b/drivers/pci/dwc/pci-layerscape.c\n> index 3b01e309a55e..a647090c140e 100644\n> --- a/drivers/pci/dwc/pci-layerscape.c\n> +++ b/drivers/pci/dwc/pci-layerscape.c\n> @@ -33,6 +33,8 @@\n>  \n>  /* PEX Internal Configuration Registers */\n>  #define PCIE_STRFMR1\t\t0x71c /* Symbol Timer & Filter Mask Register1 */\n> +#define PCIE_ABSERR\t\t0x8d0 /* Bridge Slave Error Response Register */\n> +#define PCIE_ABSERR_SETTING\t0x9401 /* Forward error of non-posted request */\n>  \n>  #define PCIE_IATU_NUM\t\t6\n>  \n> @@ -54,6 +56,19 @@ struct ls_pcie {\n>  \n>  #define to_ls_pcie(x)\tdev_get_drvdata((x)->dev)\n>  \n> +static int err_response_flag = 1;\n> +\n> +static int __init ls_pcie_param(char *p)\n> +{\n> +\tif (p && strncmp(p, \"no-err-response\", 15) == 0)\n> +\t\terr_response_flag = 0;\n> +\telse\n> +\t\terr_response_flag = 1;\n> +\n> +\treturn 0;\n> +}\n> +early_param(\"ls_pcie\", ls_pcie_param);\n\nWhat's the point of this parameter?  If it's for debugging, it's not\nclear that we need it upstream.  If it's for debugging and we *do*\nneed it upstream, there should be some sort of comment to that effect.\n\nI assume you never expect an end user to need this parameter.\n\n>  static bool ls_pcie_is_bridge(struct ls_pcie *pcie)\n>  {\n>  \tstruct dw_pcie *pci = pcie->pci;\n> @@ -124,6 +139,14 @@ static int ls_pcie_link_up(struct dw_pcie *pci)\n>  \treturn 1;\n>  }\n>  \n> +/* Forward error response of outbound non-posted requests */\n> +static void ls_pcie_fix_error_response(struct ls_pcie *pcie)\n> +{\n> +\tstruct dw_pcie *pci = pcie->pci;\n> +\n> +\tiowrite32(PCIE_ABSERR_SETTING, pci->dbi_base + PCIE_ABSERR);\n> +}\n> +\n>  static int ls_pcie_host_init(struct pcie_port *pp)\n>  {\n>  \tstruct dw_pcie *pci = to_dw_pcie_from_pp(pp);\n> @@ -135,6 +158,8 @@ static int ls_pcie_host_init(struct pcie_port *pp)\n>  \t * dw_pcie_setup_rc() will reconfigure the outbound windows.\n>  \t */\n>  \tls_pcie_disable_outbound_atus(pcie);\n> +\tif (err_response_flag)\n> +\t\tls_pcie_fix_error_response(pcie);\n>  \n>  \tdw_pcie_dbi_ro_wr_en(pci);\n>  \tls_pcie_clear_multifunction(pcie);\n> -- \n> 2.14.1\n>","headers":{"Return-Path":"<linux-pci-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-pci-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","mail.kernel.org;\n\tdmarc=none (p=none dis=none) header.from=kernel.org","mail.kernel.org;\n\tspf=none smtp.mailfrom=helgaas@kernel.org"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yC49V1phkz9t2V\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 12 Oct 2017 06:41:34 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751984AbdJKTlc (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tWed, 11 Oct 2017 15:41:32 -0400","from mail.kernel.org ([198.145.29.99]:42350 \"EHLO mail.kernel.org\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751906AbdJKTlb (ORCPT <rfc822;linux-pci@vger.kernel.org>);\n\tWed, 11 Oct 2017 15:41:31 -0400","from localhost (unknown [69.71.4.159])\n\t(using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits))\n\t(No client certificate requested)\n\tby mail.kernel.org (Postfix) with ESMTPSA id 0077D21902;\n\tWed, 11 Oct 2017 19:41:30 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mail.kernel.org 0077D21902","Date":"Wed, 11 Oct 2017 14:41:29 -0500","From":"Bjorn Helgaas <helgaas@kernel.org>","To":"Zhiqiang Hou <Zhiqiang.Hou@nxp.com>","Cc":"linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,\n\tlinux-pci@vger.kernel.org, bhelgaas@google.com, roy.zang@nxp.com,\n\tmingkai.hu@nxp.com, minghuan.lian@nxp.com","Subject":"Re: [PATCH 2/2] pci/layerscape: change the default error response\n\tbehavior","Message-ID":"<20171011194129.GQ25517@bhelgaas-glaptop.roam.corp.google.com>","References":"<20170922072522.36306-1-Zhiqiang.Hou@nxp.com>\n\t<20170922072522.36306-3-Zhiqiang.Hou@nxp.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170922072522.36306-3-Zhiqiang.Hou@nxp.com>","User-Agent":"Mutt/1.5.21 (2010-09-15)","Sender":"linux-pci-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-pci.vger.kernel.org>","X-Mailing-List":"linux-pci@vger.kernel.org"}},{"id":1785126,"web_url":"http://patchwork.ozlabs.org/comment/1785126/","msgid":"<AM5PR0402MB27711353F4479D83E41359D8844B0@AM5PR0402MB2771.eurprd04.prod.outlook.com>","list_archive_url":null,"date":"2017-10-12T03:33:15","subject":"RE: [PATCH 2/2] pci/layerscape: change the default error response\n\tbehavior","submitter":{"id":67929,"url":"http://patchwork.ozlabs.org/api/people/67929/","name":"Z.Q. Hou","email":"zhiqiang.hou@nxp.com"},"content":"Hi Bjorn,\r\n\r\nThanks a lot for your review!\r\n\r\n> -----Original Message-----\r\n> From: Bjorn Helgaas [mailto:helgaas@kernel.org]\r\n> Sent: 2017年10月12日 3:41\r\n> To: Z.q. Hou <zhiqiang.hou@nxp.com>\r\n> Cc: linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org;\r\n> linux-pci@vger.kernel.org; bhelgaas@google.com; Roy Zang\r\n> <roy.zang@nxp.com>; Mingkai Hu <mingkai.hu@nxp.com>; M.h. Lian\r\n> <minghuan.lian@nxp.com>\r\n> Subject: Re: [PATCH 2/2] pci/layerscape: change the default error response\r\n> behavior\r\n> \r\n> On Fri, Sep 22, 2017 at 03:25:22PM +0800, Zhiqiang Hou wrote:\r\n> > From: Minghuan Lian <Minghuan.Lian@nxp.com>\r\n> >\r\n> > By default, when the PCIe controller experiences an erroneous\r\n> > completion from an external completer for its outbound non-posted\r\n> > request, it always sends an OKAY response to the device's internal AXI\r\n> > slave system interface. However, such default system error response\r\n> > behavior cannot be used for other types of outbound non-posted\r\n> > requests. For example, the outbound memory read transaction requires\r\n> > an actual ERROR response, like UR completion or completion timeout.\r\n> > The patch is to fix it by forwarding the error response of the\r\n> > non-posted request.\r\n> >\r\n> > Signed-off-by: Minghuan Lian <Minghuan.Lian@nxp.com>\r\n> > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>\r\n> > ---\r\n> >  drivers/pci/dwc/pci-layerscape.c | 25 +++++++++++++++++++++++++\r\n> >  1 file changed, 25 insertions(+)\r\n> >\r\n> > diff --git a/drivers/pci/dwc/pci-layerscape.c\r\n> > b/drivers/pci/dwc/pci-layerscape.c\r\n> > index 3b01e309a55e..a647090c140e 100644\r\n> > --- a/drivers/pci/dwc/pci-layerscape.c\r\n> > +++ b/drivers/pci/dwc/pci-layerscape.c\r\n> > @@ -33,6 +33,8 @@\r\n> >\r\n> >  /* PEX Internal Configuration Registers */\r\n> >  #define PCIE_STRFMR1\t\t0x71c /* Symbol Timer & Filter Mask\r\n> Register1 */\r\n> > +#define PCIE_ABSERR\t\t0x8d0 /* Bridge Slave Error Response\r\n> Register */\r\n> > +#define PCIE_ABSERR_SETTING\t0x9401 /* Forward error of non-posted\r\n> request */\r\n> >\r\n> >  #define PCIE_IATU_NUM\t\t6\r\n> >\r\n> > @@ -54,6 +56,19 @@ struct ls_pcie {\r\n> >\r\n> >  #define to_ls_pcie(x)\tdev_get_drvdata((x)->dev)\r\n> >\r\n> > +static int err_response_flag = 1;\r\n> > +\r\n> > +static int __init ls_pcie_param(char *p) {\r\n> > +\tif (p && strncmp(p, \"no-err-response\", 15) == 0)\r\n> > +\t\terr_response_flag = 0;\r\n> > +\telse\r\n> > +\t\terr_response_flag = 1;\r\n> > +\r\n> > +\treturn 0;\r\n> > +}\r\n> > +early_param(\"ls_pcie\", ls_pcie_param);\r\n> \r\n> What's the point of this parameter?  If it's for debugging, it's not clear that\r\n> we need it upstream.  If it's for debugging and we *do* need it upstream,\r\n> there should be some sort of comment to that effect.\r\n> \r\n> I assume you never expect an end user to need this parameter.\r\n\r\nIt is for debugging, will drop this parameter next version.\r\n\r\n> \r\n> >  static bool ls_pcie_is_bridge(struct ls_pcie *pcie)  {\r\n> >  \tstruct dw_pcie *pci = pcie->pci;\r\n> > @@ -124,6 +139,14 @@ static int ls_pcie_link_up(struct dw_pcie *pci)\r\n> >  \treturn 1;\r\n> >  }\r\n> >\r\n> > +/* Forward error response of outbound non-posted requests */ static\r\n> > +void ls_pcie_fix_error_response(struct ls_pcie *pcie) {\r\n> > +\tstruct dw_pcie *pci = pcie->pci;\r\n> > +\r\n> > +\tiowrite32(PCIE_ABSERR_SETTING, pci->dbi_base + PCIE_ABSERR); }\r\n> > +\r\n> >  static int ls_pcie_host_init(struct pcie_port *pp)  {\r\n> >  \tstruct dw_pcie *pci = to_dw_pcie_from_pp(pp); @@ -135,6 +158,8 @@\r\n> > static int ls_pcie_host_init(struct pcie_port *pp)\r\n> >  \t * dw_pcie_setup_rc() will reconfigure the outbound windows.\r\n> >  \t */\r\n> >  \tls_pcie_disable_outbound_atus(pcie);\r\n> > +\tif (err_response_flag)\r\n> > +\t\tls_pcie_fix_error_response(pcie);\r\n> >\r\n> >  \tdw_pcie_dbi_ro_wr_en(pci);\r\n> >  \tls_pcie_clear_multifunction(pcie);\r\n> > --\r\n> > 2.14.1\r\n> >\r\n\r\nThanks,\r\nZhiqiang","headers":{"Return-Path":"<linux-pci-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-pci-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"PO1UHZUQ\";\n\tdkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=zhiqiang.hou@nxp.com; "],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yCGfB18XFz9t2W\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 12 Oct 2017 14:33:38 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1753384AbdJLDdW (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tWed, 11 Oct 2017 23:33:22 -0400","from mail-eopbgr10056.outbound.protection.outlook.com\n\t([40.107.1.56]:6898\n\t\"EHLO EUR02-HE1-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S1753195AbdJLDdT (ORCPT <rfc822;linux-pci@vger.kernel.org>);\n\tWed, 11 Oct 2017 23:33:19 -0400","from AM5PR0402MB2771.eurprd04.prod.outlook.com (10.175.41.13) by\n\tAM5PR04MB3073.eurprd04.prod.outlook.com (10.173.254.152) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.20.77.7; Thu, 12 Oct 2017 03:33:16 +0000","from AM5PR0402MB2771.eurprd04.prod.outlook.com\n\t([fe80::1ea:d5af:e18e:3b65]) by\n\tAM5PR0402MB2771.eurprd04.prod.outlook.com\n\t([fe80::1ea:d5af:e18e:3b65%13]) with mapi id 15.20.0077.020;\n\tThu, 12 Oct 2017 03:33:15 +0000"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=ZXASNCay1jbKCl3B3Tb7WzbYzy2PxmC8HGQ6pQ24Uow=;\n\tb=PO1UHZUQjcUQxM8BYlse4BxIS9tFcjGgi8JhEaak6CYCvTxOVhrNrxGvhhJ1+fgLosqtRHsALYFijghGZ6cOVs4m5Wv2KmuxBDcARu9AhMnWNLqYqCojIICrH4dH45m7S85Vk5g/Wp1cqBUvopAxYdgp0ORLTprZEfbZbDsmIRg=","From":"\"Z.q. Hou\" <zhiqiang.hou@nxp.com>","To":"Bjorn Helgaas <helgaas@kernel.org>","CC":"\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>,\n\t\"linux-arm-kernel@lists.infradead.org\" \n\t<linux-arm-kernel@lists.infradead.org>,\n\t\"linux-pci@vger.kernel.org\" <linux-pci@vger.kernel.org>,\n\t\"bhelgaas@google.com\" <bhelgaas@google.com>,\n\t\"Roy Zang\" <roy.zang@nxp.com>, Mingkai Hu <mingkai.hu@nxp.com>,\n\t\"M.h. Lian\" <minghuan.lian@nxp.com>","Subject":"RE: [PATCH 2/2] pci/layerscape: change the default error response\n\tbehavior","Thread-Topic":"[PATCH 2/2] pci/layerscape: change the default error response\n\tbehavior","Thread-Index":"AQHTM3Zt3D+sncPEdE2JYaIs8rzXPaLfKvCAgACC34A=","Date":"Thu, 12 Oct 2017 03:33:15 +0000","Message-ID":"<AM5PR0402MB27711353F4479D83E41359D8844B0@AM5PR0402MB2771.eurprd04.prod.outlook.com>","References":"<20170922072522.36306-1-Zhiqiang.Hou@nxp.com>\n\t<20170922072522.36306-3-Zhiqiang.Hou@nxp.com>\n\t<20171011194129.GQ25517@bhelgaas-glaptop.roam.corp.google.com>","In-Reply-To":"<20171011194129.GQ25517@bhelgaas-glaptop.roam.corp.google.com>","Accept-Language":"zh-CN, en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","authentication-results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-pci-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"PO1UHZUQ\";\n\tdkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=zhiqiang.hou@nxp.com; "],"x-originating-ip":"[199.59.231.64]","x-ms-publictraffictype":"Email","x-microsoft-exchange-diagnostics":"1; AM5PR04MB3073;\n\t6:zHRF7ZEUu/86O+iC4pYipwWDwwZthEkhHN9V+kNx/CDoU2xlk9WdZFFnzFIIdlwi/s53K5ez7Y4MLIGRpDSHOaCMVz2CAvnbtoGAg0M/GLTzEkqFVsigDbD1TIsSOKlIKSRJkgUmhm8ptOMrIrhC0gZ1krWKeYHLYNR7bzflgf7xo/EQMCAGcahT0TB6fNXvT+siACAyEh9mwWg5MiyP1Vctq9cvMi20TQO6D4cmvds74Mc56SRYkWJAGyjezwsZv/fJNk333a9xJ0hD2NejjdxCkLm730nIWHGMqOuEv/lqIbXGb18Km5NqP5jNpWUov+/m9e85C/r7J7nA46x0NA==;\n\t5:H9rgnP4IUxTBPXb6/i4WkFtsmOK6unAP8cAk4iXCk18MOa3q6a6WLmH2p9mxMzU8UCZ5ccs3c+wx83bP1OswLk4akHpFEVFFbYxsATUKuqVEw0VeEj2NF3ZmyxTXPZGUfoO9sLFnbuBkoiWsZVlwbg==;\n\t24:28UoKn1V9V+bJB2E1ZUECPchrParfxleB+yXZRF3iBvac7KQ8jutRNl5Qll3/nf9kCl2IvP2KAAYPUNhawlzIdD9rFxev1wVUFuAKteuyuM=;\n\t7:JWh/fITtbz9PJ4T+/wkiJv5On65OtCyX/z01V6qiNGy8bVqFJFBJgJAnalNrtJfT8tVQWV5+ZAwJYNW6HDjrYRVs4T01Grlf+fBrnqIJ7rwu0R/mE+7S2gVyWXuGPFg4TwJbX8KcqKMYgvRS/EDoigPexExWmj8UxMVYR/nDMVNqwzsFVmKXnsQFQjIZ8hbOqYg4PwPNPrcnXvrw0Ybpun5FJSlXu5+9wz1rNGupwC0=","x-ms-exchange-antispam-srfa-diagnostics":"SSOS;SSOR;","x-forefront-antispam-report":"SFV:SKI; SCL:-1; SFV:NSPM;\n\tSFS:(10009020)(6009001)(39860400002)(346002)(376002)(189002)(199003)(13464003)(24454002)(34040400001)(7736002)(4326008)(305945005)(97736004)(99286003)(74316002)(7696004)(106356001)(86362001)(575784001)(6246003)(8936002)(81156014)(81166006)(8676002)(229853002)(6506006)(6436002)(55016002)(9686003)(316002)(53936002)(5250100002)(76176999)(54356999)(50986999)(2900100001)(14454004)(6116002)(102836003)(3846002)(5660300001)(53546010)(54906003)(101416001)(33656002)(3280700002)(3660700001)(66066001)(105586002)(2906002)(478600001)(68736007)(551934003)(2950100002)(6916009)(25786009)(189998001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR04MB3073;\n\tH:AM5PR0402MB2771.eurprd04.prod.outlook.com; FPR:; SPF:None;\n\tPTR:InfoNoRecords; MX:1; A:1; LANG:en; ","x-ms-office365-filtering-correlation-id":"4b3b22af-0075-4f5f-8a20-08d51121f94e","x-ms-office365-filtering-ht":"Tenant","x-microsoft-antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075);\n\tSRVR:AM5PR04MB3073; ","x-ms-traffictypediagnostic":"AM5PR04MB3073:","x-exchange-antispam-report-test":"UriScan:(9452136761055)(185117386973197)(258649278758335)(211936372134217);","x-microsoft-antispam-prvs":"<AM5PR04MB3073EE683FA9F0119742490B844B0@AM5PR04MB3073.eurprd04.prod.outlook.com>","x-exchange-antispam-report-cfa-test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(920507026)(6055026)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123555025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:AM5PR04MB3073; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:AM5PR04MB3073; ","x-forefront-prvs":"04583CED1A","received-spf":"None (protection.outlook.com: nxp.com does not designate\n\tpermitted sender hosts)","spamdiagnosticoutput":"1:99","spamdiagnosticmetadata":"NSPM","Content-Type":"text/plain; charset=\"gb2312\"","Content-Transfer-Encoding":"base64","MIME-Version":"1.0","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-originalarrivaltime":"12 Oct 2017 03:33:15.6122\n\t(UTC)","X-MS-Exchange-CrossTenant-fromentityheader":"Hosted","X-MS-Exchange-CrossTenant-id":"686ea1d3-bc2b-4c6f-a92c-d99c5c301635","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AM5PR04MB3073","Sender":"linux-pci-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-pci.vger.kernel.org>","X-Mailing-List":"linux-pci@vger.kernel.org"}}]