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 ED0B246BEA for ; Wed, 23 Jul 2025 06:50:42 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E0BC74067A; Wed, 23 Jul 2025 06:50:42 +0200 (CEST) Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by mails.dpdk.org (Postfix) with ESMTP id B0CFD40649 for ; Wed, 23 Jul 2025 06:50:40 +0200 (CEST) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-237e6963f63so37680575ad.2 for ; Tue, 22 Jul 2025 21:50:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uetpeshawar-edu-pk.20230601.gappssmtp.com; s=20230601; t=1753246240; x=1753851040; 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=AcV7qsm2V6OucM4OssEbS1NrGPvO7ZLJl57GWX4iyJp3qj/HvfzqeS7SLZw7xqy+XP VFCDb8//79lxUHU6AxNkSL89Zkh65zD2BmiIG9B38fd5AaBMljJyPH48J255wSH3nt1C cHLGx3Nv1w6IXgydn3SJOmpK5yR15ms19Nfr70NkVBPuf6PGN7Gmn8AoAPfflB7khyiT Mp5fUKjvvgserq69qqpHiEv/15DYx4gy5IdIf1+ZllDFfp72Dym6A9av9QBt5tciMKBW Tu4JnJ+M3GUWz1XYhA7Z2wOrpktm+g47P8DIKKYCmJG9Q51gQCrEFbJgEAyOVpCHZjkn +LJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753246240; x=1753851040; 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=wuGKG9viVxXkJXC0yVTzJBD7nrCP9gD5iJYUjdxlJrkemEm9ZKbMJvkW6vi2AnjBNM ZnwWGfXLa3/DDfwRODez66ty7GAqDOGD1Y3e4fhqOVsL6+oX8RLqg7PaB1LdfjaQZWeI eHtQjRQe2OvPNTNMK0WY5GY0uKlpbTsTtp5J6+nA6CAAk5H2zGt4JPa3GOreF1x07FlA eSx1Rc8cfnF4kISNSmB8QeaKwy+a/YltZPoEZQ7iEtb2xrpKD1RgEKdSCTeMtDYWt/D4 bfSOiVKwb7YAcrEhcBuxN9Oh+Wc0MwYkLExQg5QMBTGCO3I4foPb0SmhY6hq0gXlgc8j pu2w== X-Forwarded-Encrypted: i=1; AJvYcCV4MLXjYYloGScE5AsZmi5bHF6tpLgA8HS3lfVPZxka+nkxcWn1aQv2yx9Nr0P+c2RGzOKtUDU=@dpdk.org X-Gm-Message-State: AOJu0Ywop7lk8k7HyiL+2/wMK9PLHg8eAiqv0JhoCmadYSbSTWMx34vV 18pZ/cc30hjtBACHVlToxn2HZ6IGYwU/5hNZ/3/cSOAW2+czLieBz8TAAdBm6/ejjac= X-Gm-Gg: ASbGncsnIGfZ26MbkhWW/yIjk8JiiDCis3mPB6FA12yPHDG3/qL66kuN+cOp0ZAg1FM px3iC9qXapvUtlQxsIITkMOqcBUS7/Uw6rnjMmLrdx9UjN99aiqfQVx9QszlUpYKRYYiW5kbUnJ 0HAIIsA1sL7k/qAIhnf3/JD1nDcSOjBFKPRsAXuiPoyZN6k2q9MG8qEnFbWik37lzJWBlgmgr8o 16+vTbXFyfEH71Vk4mQ9S36AWgpgVRqNdH4BHEcRFL02MfxyVNNtG2LG/qNCBTMjf7tZvWY9H6F n/Rp3Jx/R1arbp4v/gtBz2RWxp4Zu8WP0nZYp4n8efYcSc6oBwDJYkxepFIcWCRBrKOkwmoNX6I 6eG5heXdnWQqzjzjS+gbfGSDYsoEXX0O/vbLJxLC8gSzDYV+RFNrZT6kNKTw= X-Google-Smtp-Source: AGHT+IEKBrF2SOsK2V1Fo4NRVUppA5woYw0FY7tCdphRlc7ip+fqRBqbUsSUR8VWpU99iKHHdQ48kw== X-Received: by 2002:a17:903:2984:b0:235:779:edfa with SMTP id d9443c01a7336-23f981aedabmr23671275ad.32.1753246239734; Tue, 22 Jul 2025 21:50:39 -0700 (PDT) Received: from localhost.localdomain ([64.62.143.197]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b611ff5sm87425175ad.75.2025.07.22.21.50.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Jul 2025 21:50:39 -0700 (PDT) From: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> To: stephen@networkplumber.org, 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 v2] lib/ethdev: fix segfault in secondary process by validating dev_private pointer Date: Wed, 23 Jul 2025 00:50:22 -0400 Message-ID: <20250723045022.1580829-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