All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] lib/ethdev: fix segfault in secondary process by validating dev_private pointer
@ 2025-07-22 11:54 Khadem Ullah
  2025-07-22 13:39 ` Stephen Hemminger
                   ` (2 more replies)
  0 siblings, 3 replies; 82+ messages in thread
From: Khadem Ullah @ 2025-07-22 11:54 UTC (permalink / raw)
  To: thomas, ferruh.yigit, andrew.rybchenko; +Cc: dev, stable, Khadem Ullah

In secondary processes, accessing 'dev->data->dev_private' directly can
cause a segmentation fault if the primary process has exited or the
shared memory is unavailable.

This patch adds a check for dev/data/dev_private and uses
rte_mem_virt2phy to ensure the pointer is still valid.

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 | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index dd7c00bc94..03ef446a96 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -4079,6 +4079,15 @@ 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 &&
+		(dev == NULL || dev->data == NULL ||
+		dev->data->dev_private == NULL ||
+		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


^ permalink raw reply related	[flat|nested] 82+ messages in thread

end of thread, other threads:[~2025-09-18 16:45 UTC | newest]

Thread overview: 82+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-22 11:54 [PATCH] lib/ethdev: fix segfault in secondary process by validating dev_private pointer Khadem Ullah
2025-07-22 13:39 ` Stephen Hemminger
2025-07-22 14:30   ` Khadem Ullah
2025-07-22 15:42     ` Stephen Hemminger
2025-07-22 16:01       ` Khadem Ullah
2025-07-22 16:13         ` Bruce Richardson
2025-07-22 17:04           ` Khadem Ullah
2025-07-22 17:38             ` Stephen Hemminger
2025-07-22 17:53               ` Khadem Ullah
2025-07-22 18:21                 ` Stephen Hemminger
2025-07-22 19:03                   ` Khadem Ullah
2025-07-22 19:05                   ` Ivan Malov
2025-07-22 22:28                     ` Stephen Hemminger
2025-07-23  4:29 ` Khadem Ullah
2025-07-23  4:50 ` [PATCH v2] " Khadem Ullah
2025-07-23 12:19   ` Khadem Ullah
2025-07-23 13:13     ` Khadem Ullah
2025-07-23 13:24       ` Ivan Malov
2025-07-23 13:26         ` Khadem Ullah
2025-07-23 13:31           ` Ivan Malov
2025-07-23 13:10   ` [PATCH] [PATCH v3] " Khadem Ullah
2025-07-23 13:19     ` Ivan Malov
2025-07-23 13:34       ` Khadem Ullah
2025-07-23 14:22         ` Stephen Hemminger
2025-07-24  5:49           ` Khadem Ullah
2025-07-25 13:00           ` Khadem Ullah
2025-07-25 12:55     ` [PATCH] [PATCH v4] " Khadem Ullah
2025-07-28 21:45       ` Stephen Hemminger
2025-07-29  5:42         ` Khadem Ullah
2025-07-29 21:34           ` Stephen Hemminger
2025-07-30  5:07             ` Khadem Ullah
2025-08-08  3:49               ` Varghese, Vipin
2025-08-08 15:32                 ` Stephen Hemminger
2025-08-11 10:19                   ` Varghese, Vipin
2025-08-11 10:28                     ` Khadem Ullah
2025-08-11 10:39                       ` Varghese, Vipin
2025-07-29  6:39       ` [PATCH] app/testpmd: fix segfault in secondary process by monitoring primary Khadem Ullah
2025-07-29  6:39         ` [PATCH] [PATCH v4] lib/ethdev: fix segfault in secondary process by validating dev_private pointer Khadem Ullah
2025-07-29  6:39         ` [PATCH] [PATCH v5] app/testpmd: fix segfault in secondary process by monitoring primary Khadem Ullah
2025-07-29 14:48           ` Stephen Hemminger
2025-07-29 21:48           ` Stephen Hemminger
2025-07-30  5:24             ` Khadem Ullah
2025-08-08  3:44               ` Varghese, Vipin
2025-08-08 16:17                 ` Stephen Hemminger
2025-08-11 10:23                   ` Varghese, Vipin
2025-08-11 10:27                     ` Khadem Ullah
2025-07-30  5:56           ` [PATCH] app/testpmd: monitor state of primary process when using secondary Khadem Ullah
2025-07-30  6:08           ` [PATCH v6] " Khadem Ullah
2025-08-01 22:50             ` Stephen Hemminger
2025-08-04  7:54           ` [PATCH v7] " Khadem Ullah
2025-08-04 11:33           ` Khadem Ullah
2025-08-04 15:44             ` Stephen Hemminger
2025-08-05  0:50             ` fengchengwen
2025-08-08  3:23             ` Varghese, Vipin
2025-08-08  5:44               ` Khadem Ullah
2025-08-08 10:59                 ` Varghese, Vipin
2025-08-08 11:49                   ` Khadem Ullah
2025-08-08 16:49                     ` Stephen Hemminger
2025-08-08 17:01                       ` Khadem Ullah
2025-08-11 10:37                       ` Varghese, Vipin
2025-08-11 11:14                         ` Khadem Ullah
2025-08-11 11:34                           ` Varghese, Vipin
2025-08-11 11:55                             ` Khadem Ullah
2025-08-11 14:44                               ` Varghese, Vipin
2025-08-11 17:11                                 ` Khadem Ullah
2025-08-11 10:30                     ` Varghese, Vipin
2025-08-11 10:51                       ` Khadem Ullah
2025-08-11 11:07                         ` Varghese, Vipin
2025-08-08 15:28                 ` Stephen Hemminger
2025-08-08 15:50                   ` Khadem Ullah
2025-08-08 16:10               ` Stephen Hemminger
2025-09-15  8:10             ` [PATCH v3] app/testpmd: stop secondary process fwd_lcores during primary teardown Khadem Ullah
2025-09-15  9:29             ` Khadem Ullah
2025-09-15 10:23             ` Khadem Ullah
2025-09-15 11:25             ` Khadem Ullah
2025-09-15 15:43               ` Stephen Hemminger
2025-09-17 11:36               ` [PATCH v4] " Khadem Ullah
2025-09-17 20:54                 ` Stephen Hemminger
2025-09-18  6:47                 ` [PATCH v5] " Khadem Ullah
2025-09-18 15:08                   ` Stephen Hemminger
2025-09-18 16:45                   ` Stephen Hemminger
2025-07-23 14:21   ` [PATCH v2] lib/ethdev: fix segfault in secondary process by validating dev_private pointer Stephen Hemminger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.