From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 5FCF516E; Fri, 29 Dec 2017 03:10:30 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Dec 2017 18:10:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,473,1508828400"; d="scan'208";a="6538907" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga006.jf.intel.com with ESMTP; 28 Dec 2017 18:10:28 -0800 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 28 Dec 2017 18:10:28 -0800 Received: from bgsmsx103.gar.corp.intel.com (10.223.4.130) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 28 Dec 2017 18:10:28 -0800 Received: from bgsmsx101.gar.corp.intel.com ([169.254.1.245]) by BGSMSX103.gar.corp.intel.com ([10.223.4.130]) with mapi id 14.03.0319.002; Fri, 29 Dec 2017 07:40:25 +0530 From: "Yang, Zhiyong" To: Thomas Monjalon CC: "dev@dpdk.org" , "Yigit, Ferruh" , "stable@dpdk.org" , "Tan, Jianfeng" Thread-Topic: [PATCH] bus/pci: fix wrong intr_handle.type with uio_pci_generic Thread-Index: AQHTf6LcTBVp1cGaDEm3rgSInrYCoqNYGm8AgABfkYD//72GgIABW4KQ Date: Fri, 29 Dec 2017 02:10:24 +0000 Message-ID: References: <20171228061210.64767-1-zhiyong.yang@intel.com> <3562024.UbNHMEjv39@xps> <6678594.XHcc9ld5bA@xps> In-Reply-To: <6678594.XHcc9ld5bA@xps> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.223.10.10] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-stable] [PATCH] bus/pci: fix wrong intr_handle.type with uio_pci_generic X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Dec 2017 02:10:31 -0000 > -----Original Message----- > From: Thomas Monjalon [mailto:thomas@monjalon.net] > Sent: Thursday, December 28, 2017 6:49 PM > To: Yang, Zhiyong > Cc: dev@dpdk.org; Yigit, Ferruh ; stable@dpdk.org > Subject: Re: [PATCH] bus/pci: fix wrong intr_handle.type with uio_pci_gen= eric >=20 > 28/12/2017 10:37, Yang, Zhiyong: > > Hi Thomas, > > > > > -----Original Message----- > > > From: Thomas Monjalon [mailto:thomas@monjalon.net] > > > Sent: Thursday, December 28, 2017 5:05 PM > > > To: Yang, Zhiyong > > > Cc: dev@dpdk.org; Yigit, Ferruh ; > > > stable@dpdk.org > > > Subject: Re: [PATCH] bus/pci: fix wrong intr_handle.type with > > > uio_pci_generic > > > > > > 28/12/2017 07:12, Zhiyong Yang: > > > > In the function rte_pci_ioport_map, if uio_pci_generic is used on > > > > X86 platform, pci_ioport_map() is invoked, the operation > > > > ev->intr_handle.type =3D RTE_INTR_HANDLE_UNKNOWN; is execused > > > > ev->directly, > > > > it causes the wrong assignment for uio_pci_generic, the patch fixes= it. > > > [...] > > > > --- a/drivers/bus/pci/linux/pci.c > > > > +++ b/drivers/bus/pci/linux/pci.c > > > > @@ -723,7 +723,9 @@ pci_ioport_map(struct rte_pci_device *dev, int > > > > bar > > > __rte_unused, > > > > if (!found) > > > > return -1; > > > > > > > > - dev->intr_handle.type =3D RTE_INTR_HANDLE_UNKNOWN; > > > > + if (dev->kdrv =3D=3D RTE_KDRV_NONE) > > > > + dev->intr_handle.type =3D RTE_INTR_HANDLE_UNKNOWN; > > > > > > I don't understand the logic. > > > NONE is different of UNKNOWN. > > > > > > Your are talking about uio_pci_generic. In this case, it should be > > > RTE_KDRV_UIO_GENERIC. > > > > If we use uio_pci_generic, dev->intr_handle.type has already been > > assigned to The right value RTE_INTR_HANDLE_UIO_INTX before it, but in > > the function pci_ioport_map the wrong value is assigned to > > dev->intr_handle.type =3D RTE_INTR_HANDLE_UNKNOWN; Two cases both call > pci_ioport_map on x86 platform. > > one is RTE_KDRV_UIO_GENERIC > > the other is RTE_KDRV_NONE > > if I understand right, for uio_generic, it should not be assigned to > > RTE_INTR_HANDLE_UNKNOWN; This case has already the right value, don't > need to assign again. > > The original code should be considered to handle RTE_KDRV_NONE case onl= y. >=20 > OK thanks for the explanation. > I had overlooked your patch. >=20 > Please, could add some of this text in v2? > I think it is good to explain that the right value is already set, and we= must avoid > overwriting the default "UNKNOWN" value. Ok. add the text in V2 later. >=20 > One more question, why is it needed to set the value to "UNKNOWN" in this > function? It should already be set to this value (0) at init. Good suggestion, we should remove it to fix issue . Any different opinion? = Everyone. BTW, The bug can be seen if run the following test case. Testpmd startup fails using uio_pci_generic running on virtio legacy devic= e. Thanks Zhiyong