From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E092B46BE3 for ; Wed, 23 Jul 2025 06:30:17 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BE6C84026D; Wed, 23 Jul 2025 06:30:17 +0200 (CEST) Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) by mails.dpdk.org (Postfix) with ESMTP id 0E9D04026D for ; Wed, 23 Jul 2025 06:30:16 +0200 (CEST) Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-73c17c770a7so7055249b3a.2 for ; Tue, 22 Jul 2025 21:30:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uetpeshawar-edu-pk.20230601.gappssmtp.com; s=20230601; t=1753245015; x=1753849815; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wWf0k2rOjwRN9rM06Zq0TfeEO/EBv9g7SCSh658YOys=; b=AbL38duOM6oNY43wKjBQui4wZFmbajsm0xuFxEFcyEtOzxbaFtO9M/X4shCV+AiosR CFW7+t6/0NmYMrs/hXW0pcKrCAEgggMgOC4ZoRKadSWtu0tQnWNOC3Feo+jyr0oLZyAt WEy1P45crEAYfaOy6t57+Iun8ucFbRnjma0udHQJPOo08GToWDzdcMIWDwYEEPMc2oma PSLKHWyg8vjfuKBKoUUVe3wcu+GQy2s3fwGKibITKBKqpWWlptLudejgIpuS+p5EIbm6 JvE3kCN7kC8qQYkaLZ/J6WKRiumKlfvc9BNvo/cMUAmykh55Zs8/kcxE3dseuIC081Sa 3iAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753245015; x=1753849815; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wWf0k2rOjwRN9rM06Zq0TfeEO/EBv9g7SCSh658YOys=; b=FzDPOsNJxM4CwfTPacg4LvvJBeMGM2gef8kX2gTgIROPcp1oxpn+l+htPa3BybJFr0 H2xqZ+2UwWymrOMWxDmmZG0bJm2dO3ybMBvWOmwFN3akwmj/pvck5NqPQ+5TqfWO//5p 49SbWZVOA6joMhk9MBJW4I7zM9o9pKkwEEESfUZmGbqj6011r/5U4cequyfr4+Q4JsCd bs7e7kjEYmG5YqeyeQMoElC7cb+ieRR9RFyETbsPquw4S2sAPI6QESli7fS2ixj7o290 U3vR/kaJ+BjdxN84GnD90PQ+nPkb/wqWO2ajzTRVrOEZUZKDDLDDXxBbdw+QMXe5v/zQ iPqQ== X-Forwarded-Encrypted: i=1; AJvYcCVGOOhq0ypeuQyKlWLKFGgAo5MvsmpB0Hb8wWPUhColRsQp8RtcqD1UogFf4YDT7c3Hcr3/8uA=@dpdk.org X-Gm-Message-State: AOJu0Yz8b9SrO31yi2GPFFDzrDWafrVH3hbYXqzk9XZgtiWPIz2jecth ny8giqwZfZDWnSPygI2TRslG80qf47NjdTG56D4/o6kRT2GLNuh6rDVZL5ubRqpgCEs= X-Gm-Gg: ASbGncupBiEDvbLmJ9B4y2OGyH/HGnqsqlFu7/MW3xW6FqCiTGeN+1grW5Re3ey6cN2 c9caAl+Jb2KW5gm2BOxbXOFrq5pTi7CLgXHvR0Gwah9oIcD3+IvQ5gol6V067iSbOKjuT5oo17U ohHgWKJBF1Ed0bkLy3Cqm+8NBIK/EVb1PgHa/CCo1RW+3t+UcPGqn4T1OlheJyVrUzEPi7r3T8V BqgpAbXpsl1xN8ECSZNH9+ewepj6ztRkaXygoXUPlpJ7EU+dMz9sZFuJObhYyZTmUK4fGS21lrt uOt8Wjj2p3iG3Hsp5TE3K+2VNtWin8uNlQPdo0nEHN+kNZR4AOBWt42v94G7ZOnzP1J0UaE52MP 28ts+FpFDA/n7fzBXjdUpcIqIGHaiEQxbmlrPHLZ+Rz/l0N9Tl/KEEsIQSms= X-Google-Smtp-Source: AGHT+IGZprT78WgRApbt4V3tfKqboFsi7eA1e1by8dxXR9WGKjn/6AhQGAzqqFlsKiw5zqUeOar7ig== X-Received: by 2002:a05:6a20:430d:b0:234:4776:f418 with SMTP id adf61e73a8af0-23d4913b9famr1997021637.33.1753245015031; Tue, 22 Jul 2025 21:30:15 -0700 (PDT) Received: from localhost.localdomain ([64.62.143.197]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-759cb678fecsm8573372b3a.118.2025.07.22.21.30.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Jul 2025 21:30:14 -0700 (PDT) From: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> To: thomas@monjalon.net, ferruh.yigit@amd.com, andrew.rybchenko@oktetlabs.ru Cc: dev@dpdk.org, stable@dpdk.org, Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> Subject: [PATCH] lib/ethdev: fix segfault in secondary process by validating dev_private pointer Date: Wed, 23 Jul 2025 00:29:59 -0400 Message-ID: <20250723042959.1576338-1-14pwcse1224@uetpeshawar.edu.pk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250722115439.1353573-1-14pwcse1224@uetpeshawar.edu.pk> References: <20250722115439.1353573-1-14pwcse1224@uetpeshawar.edu.pk> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org In secondary processes, directly accessing 'dev->data->dev_private' can cause a segmentation fault if the primary process has exited or if the shared memory is no longer accessible. This patch adds a safety check using rte_mem_virt2phy(), with an unlikely() branch hint to minimize performance impact in the fast path. This ensures 'dev_private' is still valid before accessing it. Fixes: bdad90d12ec8 ("ethdev: change device info get callback to return int") Cc: stable@dpdk.org Signed-off-by: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> --- lib/ethdev/rte_ethdev.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index dd7c00bc94..ef5dc55f2e 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -4079,6 +4079,13 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info) if (dev->dev_ops->dev_infos_get == NULL) return -ENOTSUP; + if (rte_eal_process_type() == RTE_PROC_SECONDARY && + unlikely(rte_mem_virt2phy(dev->data->dev_private) == RTE_BAD_PHYS_ADDR)) { + RTE_ETHDEV_LOG_LINE(ERR, + "Secondary: dev_private not accessible (primary exited?)"); + rte_errno = ENODEV; + return -rte_errno; + } diag = dev->dev_ops->dev_infos_get(dev, dev_info); if (diag != 0) { /* Cleanup already filled in device information */ -- 2.43.0