From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C729C433E1 for ; Mon, 24 Aug 2020 21:11:55 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 3A8C820702 for ; Mon, 24 Aug 2020 21:11:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3A8C820702 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 35D361BE3D; Mon, 24 Aug 2020 23:11:54 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 94AFA58C4 for ; Mon, 24 Aug 2020 23:11:52 +0200 (CEST) IronPort-SDR: utvC5pxVMrWCPnL8hrAGL7L/nwtbQdIqeLBvNPRzFEds6C69tDnJ7hN3hVVyBNIQfZwNaahH10 Bn8f5iINHIJg== X-IronPort-AV: E=McAfee;i="6000,8403,9723"; a="174030616" X-IronPort-AV: E=Sophos;i="5.76,349,1592895600"; d="scan'208";a="174030616" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Aug 2020 14:11:50 -0700 IronPort-SDR: npmYYxeUakYCL1WLO+1f4xvMn/sQZhtLzF7L9HD9eh8nfmETbMU7b1hRkMpb2ua3By7ls193E/ xALA5GxNLGgw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,349,1592895600"; d="scan'208";a="499616103" Received: from jrharri1-skx.ch.intel.com ([143.182.137.73]) by fmsmga005.fm.intel.com with ESMTP; 24 Aug 2020 14:11:50 -0700 From: Jim Harris To: dev@dpdk.org Cc: Jim Harris Date: Mon, 24 Aug 2020 14:10:38 -0700 Message-Id: <20200824211038.48932-1-james.r.harris@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200821220650.7901-1-james.r.harris@intel.com> References: <20200821220650.7901-1-james.r.harris@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v2] pci/linux: copy new id for inserted device X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When a device is inserted into an existing BDF slot that has not been probed, we must overwrite the old PCI ID with the ID of the new function. Otherwise we may not probe the function with the correct driver, if at all. Signed-off-by: Jim Harris --- drivers/bus/pci/linux/pci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c index a2198abf4..d8fd973b2 100644 --- a/drivers/bus/pci/linux/pci.c +++ b/drivers/bus/pci/linux/pci.c @@ -352,6 +352,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) if (!rte_dev_is_probed(&dev2->device)) { dev2->kdrv = dev->kdrv; dev2->max_vfs = dev->max_vfs; + memcpy(&dev2->id, &dev->id, sizeof(dev2->id)); pci_name_set(dev2); memmove(dev2->mem_resource, dev->mem_resource, @@ -365,7 +366,8 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr) * need to do anything here unless... **/ if (dev2->kdrv != dev->kdrv || - dev2->max_vfs != dev->max_vfs) + dev2->max_vfs != dev->max_vfs || + memcmp(&dev2->id, &dev->id, sizeof(dev2->id))) /* * This should not happens. * But it is still possible if -- 2.20.1