From patchwork Wed Nov 9 14:53:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bing Zhao X-Patchwork-Id: 119615 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D9BFAA034C; Wed, 9 Nov 2022 15:54:29 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 77879400EF; Wed, 9 Nov 2022 15:54:29 +0100 (CET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2076.outbound.protection.outlook.com [40.107.220.76]) by mails.dpdk.org (Postfix) with ESMTP id 18D31400D4; Wed, 9 Nov 2022 15:54:28 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J+mlvQUu80XQbEpXwCSet178X3nFw+xjHa3BOqlYjGYcyN1GgIZz/AyL1YNQapThRzNxj89wPYGevgh3BFUqbElDDWWOEO6RwJ10fh+G+VrdzGpBcdyjvovjkeNDQFHJvxQZ+jVTkeZ7mEDIRx/+blCsCO5n+wPQpDvAaOGslpDKsMKXg3aONZbF0BRe7nPbdtRgLqdtw8kTxpB8EJHD58yhFvr3VFEYSwCCjDtEnuf+xCjQbcNcjBl3Iibf5WQAb1ppdvfQiH4KqnkYhIZUAXA0aPIZk0naoEYVm+k/MW8Rgy9jcUeDgRLVI4RwyqgmDpMek8tnOl3kilvexh5lag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Le+qEOUdTvFnVCfWrCGOROlQp7grKA+eFwgj3xmlOKo=; b=XJ3VpCpIG2CkZE4TnT1DcOzY1LBTlQGA1Bkg0gRxRxhZfDrY6c52solTt5jDW+nDj0L3KYZN58etdFDt4eS0OtP1Z5YQ0qwNoPPgxH2S4BCjimod9Bgj9vQDQK187QpX1+lbnNhtlYlOloGivlnJHIwwohi7Q3iJMEjUfv7bz1Lhv3paSr2rl1TSPpGObSt3K6yXPTrDNCAZHrR/GlqXMgqJgsUU567ke+EVH+YyHxhx6fwkdGwM8umG3YCb202d7ldOJ/BrOHPDIgjRsSc0/cxaCkdH0Kqg8UaDi+CCP4N2yHzzIM18R5cRbReX/FiZhx4C/hm7V7Ajgmb6s/Qdag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=oktetlabs.ru smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Le+qEOUdTvFnVCfWrCGOROlQp7grKA+eFwgj3xmlOKo=; b=JZcvOqAXieUYUSwmzJgCyH0oNR26IB9W992Zb4wELDl0lXVLHS8Bjt2FWTGUPR0Ex9TRX0Kj0A2zPZoiW3NjAG0pkgw9fTe5p7L/b0vupNZAv3l1G3BQLutExpLuR87H7k1Ry2LqjMYrL3vRA3LKu31N+tPG7e82Q0vqJqxNV8O4Fvhjsq+CIwR8QQbBsObjBfNeLsYZifbARbd6Hb4BBPlW8g0RwqJvg5fKO17J+sQJ10EYxLk4/NRRu0PHoifjB1ABbt8SSDN613Wn1A0z2DO6DcJqRgYu1riJRnlGOLcQFvFVfEYHlYinoSv2VIkDospEb/19Vjil4yFHOWK1FA== Received: from BN9PR03CA0033.namprd03.prod.outlook.com (2603:10b6:408:fb::8) by BL0PR12MB4945.namprd12.prod.outlook.com (2603:10b6:208:1c4::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.27; Wed, 9 Nov 2022 14:54:25 +0000 Received: from BN8NAM11FT110.eop-nam11.prod.protection.outlook.com (2603:10b6:408:fb:cafe::56) by BN9PR03CA0033.outlook.office365.com (2603:10b6:408:fb::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12 via Frontend Transport; Wed, 9 Nov 2022 14:54:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BN8NAM11FT110.mail.protection.outlook.com (10.13.176.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12 via Frontend Transport; Wed, 9 Nov 2022 14:54:24 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Wed, 9 Nov 2022 06:54:12 -0800 Received: from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Wed, 9 Nov 2022 06:54:10 -0800 From: Bing Zhao To: , , , CC: , , , , Gregory Etelson Subject: [PATCH v2] bus/auxiliary: prevent device from being probed again Date: Wed, 9 Nov 2022 16:53:56 +0200 Message-ID: <20221109145356.779649-1-bingz@nvidia.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT110:EE_|BL0PR12MB4945:EE_ X-MS-Office365-Filtering-Correlation-Id: caeda4c4-50be-4f9d-31c9-08dac2624ad0 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HQT2Tjn/KZALf4tgT6FS5uFiIcf11ieTG2eSwWqZIZAK3TUQA65ozuuy6uvasEylkkWbpARzRiWk18ZUu2TITzT0FJmFp4l/0LKD+/LCPyhoPJPRqt2NDakv2MgkAdEOxn0AobVFDInbedY2ScHBB+Xu1Xabmw/lHJPQmDquXJrCt+/Pc5HRe/tsE6vPxkviX0tzXt46eycBGycERhQ0w9wCPibVs6xSxqpNWCGQAyhwgSR3eQZ7UCjVdjtqHonMoFBkQNOYZs0XbYBqQ5Mudx2t5M4hRv3GRMI46bTOOYHaxEn85DUQSDJKeazuZIQnrLl0Tg+mGWCaWZdBDjXHSlvpikuDKP+0CqkhNSQZITC03926pKYs+hKUCqZPEByPJvj2eCcqKyrmSneZmCbt09IGUdnzolqGD32S+k9QF946BSiswezzWTIN2TrHJcCqqxc95KvHDvdcTtAu1XR0mgUCKoJcZ5lNthhT5WydGRBCHugjGD/dNJ5D/abtk7MJcszxIiWholVo5clEkN9PdAi6VNKQx6oZSIw3/dszcEWckgWZjl2avumzrQjyk5dISOYvwpbIMw5JrRK6zApz+8bVB1Rg//U4fs88nh6On5S3C2Me/frkSWLL/XpIY8TT/a57rVXFOM1jP5Zt358dhaXX8bkszSU0e8f/k/klPLYGoJSdzs1G9mZI8xzsDqhaKsWHBmJvndbYt7IJOQIO0dg49dnY1mILG1Zvgqwpj8hbjJx8UUq5K5G5ke5KDj4bckPQe6XLoLRverk1+L7+2Q== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(396003)(136003)(39860400002)(346002)(376002)(451199015)(36840700001)(46966006)(40470700004)(82740400003)(40480700001)(36756003)(186003)(55016003)(7636003)(478600001)(356005)(82310400005)(83380400001)(36860700001)(86362001)(1076003)(6666004)(6286002)(16526019)(47076005)(426003)(336012)(2906002)(40460700003)(107886003)(7696005)(8936002)(2616005)(41300700001)(8676002)(316002)(26005)(70586007)(70206006)(4326008)(110136005)(54906003)(5660300002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2022 14:54:24.2057 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: caeda4c4-50be-4f9d-31c9-08dac2624ad0 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT110.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4945 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The device on auxiliary bus doesn't support being probed again without being removed firstly. The PMD will detect and return error for this unsupported operation. Some of the resources would be cleared wrongly. When quitting, there will be unexpected error like crash. To prevent this, the device driver will be checked before probing a device. Fixes: 1afce3086cf4 ("bus/auxiliary: introduce auxiliary bus") Cc: xuemingl@nvidia.com CC: stable@dpdk.org Signed-off-by: Bing Zhao Reviewed-by: Gregory Etelson Reviewed-by: Matan Azrad --- v2: fix typo --- drivers/bus/auxiliary/auxiliary_common.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/bus/auxiliary/auxiliary_common.c b/drivers/bus/auxiliary/auxiliary_common.c index 6bb1fe7c96..8bc9f20f1b 100644 --- a/drivers/bus/auxiliary/auxiliary_common.c +++ b/drivers/bus/auxiliary/auxiliary_common.c @@ -89,6 +89,7 @@ rte_auxiliary_probe_one_driver(struct rte_auxiliary_driver *drv, { enum rte_iova_mode iova_mode; int ret; + bool already_probed; if (drv == NULL || dev == NULL) return -EINVAL; @@ -116,6 +117,13 @@ rte_auxiliary_probe_one_driver(struct rte_auxiliary_driver *drv, return -EINVAL; } + already_probed = rte_dev_is_probed(&dev->device); + if (already_probed) { + RTE_LOG(DEBUG, EAL, "Device %s is already probed on auxiliary bus\n", + dev->device.name); + return -EEXIST; + } + /* Allocate interrupt instance */ dev->intr_handle = rte_intr_instance_alloc(RTE_INTR_INSTANCE_F_PRIVATE);