From nobody Tue Sep 9 16:21:05 2025 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2078.outbound.protection.outlook.com [40.107.223.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B3EA275105; Sun, 7 Sep 2025 16:11:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.78 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757261470; cv=fail; b=tSwRf1IRHbGG8iZgbrQQcIFjecIgIdmen+BVhAbNzpoZmNqe5O7ZxDMMY01mPiJgbckzuZBI3aWejveFKJ6f8OsMBjUxI1VDWBpJzag7NyZhkq9AsFPk0bxo64csXXyRn9U96WBOVMCsiPaopF59a643m5vKom4MeiDkgViQQDU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757261470; c=relaxed/simple; bh=F5S1Pm1b1pb9q0dq6yInh9JHav9AysBkrBXdlCxys1Q=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sWv9DbR2Zd2/Z9kY3SUroq6kEzG/0jYUMJSze8CD3F2LGcqv4j+bI7vLX3TBItEGI0veUt3T5oUjMPuY0rfEU7wNeN/ndVbuWx0aW/nkDBUsDFC4tI43ZuVDQiFpq/u6I0Xrsg8f53hGA0wYXpdofmlBIQPJdyFzpC1ykTy74Tk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=snXC7DGZ; arc=fail smtp.client-ip=40.107.223.78 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="snXC7DGZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wZT4bz9zmevl/J9BLEHZ9rAFlK+FAji/sQ8NUFbXwKkDedzvN3nnjogcT5+hXjLRmQxbjzJDqE5YZ6mc8YM8s9v9IdgC9PqWK9KcBclsR4XZDanOMeQkuxU5wauYM8lGgElQ6Ezz2lm/bpSd0vGla+PTGPQKhNt34WU5s9g3X1bikuZmQ0a6M6lIMxd2DUkYIT3pxPAzw4tlHV1utp8c3wMdT/uEwNwMlloY0pKcE96ICpb2oAYP8X7FtgGaJqF2/WfNsUwzztl6fpzZuiX5dnfgVjg9W0UMQii4kr3HDHMX970OTlvHP7ayDt8GESHVYRXQiD2eDrgWfo3aUs27nQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=1Nb9wUpnfw9JzQmW3E2pnWNtOCnKeWnSlbrBvcQYyLQ=; b=pim9RavAQ5A0erGtTrVnzlTX2twm3KpvKCLFuJ9vVMtXYApTlqUxFqlyt7M+zq+e5QrfCBTD8RrUADANwnWmX6du6eGMD0WA1s62wNgqLkI5Q1mTSR5m0KpGJMuc2hzdxg1gtGvDzCIX8my3VMV2qvMDW+X9eTc8xIe1LrzewvZpk7uimCydsNOcUCSZFBkgL1YPloFGHD3DdO1eckUWNz+FaLZewQne3AmRSdbuq9BhFg4kfYZci0KIsVWwiGw5MWhEyetk3QFWjN9b/7lj/nY4EXEWF4CZRYPwR8vxanrOe5VJgDNv9xpcirQsDoHi37p5Wk6xJzSaEIfqUkY2BQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=ziepe.ca 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 (0) 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=1Nb9wUpnfw9JzQmW3E2pnWNtOCnKeWnSlbrBvcQYyLQ=; b=snXC7DGZQVJ1W4AoxhyZAOPVdrxS9hlGc4osh+xEMeY6NEalLVOFl7cJbSFkThnu0CBa422v0FSs/e1Pw4QoRy6Wu9XLy70lgGCz8ly1b73g8dkN/HbvrKnRmPFMg0Ezm3d6ooxkcCOfXBxL2xkSwgFG4VotPYsXOtcXCDkh5Qb9KnoGSbqbrv+x77RLCpXr2bR+3E8NZTHAgjc41OB8EB4MFhsXWVlAQ8QZbh+B+IUDUekabATHn8U+d29BCJ28Bu2VOLd3nf1oTQylzcT4erngkAcliu0nSLDzgMZWTb8t5NRKwc893+s6iMtcJkH2kJSLuf32jGi9vHbpGc9JkA== Received: from SJ0PR13CA0153.namprd13.prod.outlook.com (2603:10b6:a03:2c7::8) by IA1PR12MB9029.namprd12.prod.outlook.com (2603:10b6:208:3f0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Sun, 7 Sep 2025 16:11:02 +0000 Received: from SJ1PEPF000023CD.namprd02.prod.outlook.com (2603:10b6:a03:2c7:cafe::56) by SJ0PR13CA0153.outlook.office365.com (2603:10b6:a03:2c7::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Sun, 7 Sep 2025 16:11:02 +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 SJ1PEPF000023CD.mail.protection.outlook.com (10.167.244.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Sun, 7 Sep 2025 16:11:02 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.1544.14; Sun, 7 Sep 2025 09:10:39 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 7 Sep 2025 09:10:38 -0700 Received: from vdi.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Sun, 7 Sep 2025 09:10:35 -0700 From: Edward Srouji To: , CC: , , , , , , , , , Subject: [PATCH 1/4] RDMA/core: Squash a single user static function Date: Sun, 7 Sep 2025 19:08:30 +0300 Message-ID: <20250907160833.56589-2-edwards@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20250907160833.56589-1-edwards@nvidia.com> References: <20250907160833.56589-1-edwards@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CD:EE_|IA1PR12MB9029:EE_ X-MS-Office365-Filtering-Correlation-Id: 33012709-64a8-4572-dc13-08ddee2923fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Ghz9XJLxNKsuQTE/iCSy/K+F83edPS/09Klqp7Y6x9VZLMvo1UjhKdVV3aXt?= =?us-ascii?Q?tJT0jbl717NV2n0lHpZ6kRmGl9n/KMMYc3ZXWCtRpsn0uCOi74Ij9RtajLvD?= =?us-ascii?Q?BUyCdBnVUwLAs4ABrNZqcXLxDEDYXrgDjMiOQnjm4tjCVhZc9qsXbtJpu8dK?= =?us-ascii?Q?wbJWgedxolY47GP7JyLPY2PA4sJZ9ZvFMfIE1pRFh2x7QLht76ZNybZb0wZR?= =?us-ascii?Q?RD9SOqq/zDr0zPRUSYCP4Nw1p35amoFa3XljqaIN9MA3MMgdzpdZ59reuIIb?= =?us-ascii?Q?omRuXpVoSMPZ2yKRNnH+J7xtL5MJ212orcE/NHkHPKA7It93FlkWkbaFXcRk?= =?us-ascii?Q?q5OfSXPN5JM7CngmpchFh+7OYY903WmI5Z7EXHRckBa1ANcyyNWy10IfTm/t?= =?us-ascii?Q?uVePgna2A3meggv5IhMSqc9GNunEKK6tu9KyTZ3XQMnncBG/tM/J3B/uC37f?= =?us-ascii?Q?O3jVRQZUgvWEh4WxwJOKv3XgFQ+X/eU3B/mLKjFHcCpNInoiQSfBmLhpSJWn?= =?us-ascii?Q?up1X6ibjubohml8VlkZWmEOCQ3YmiEZnpmgbLN3a/+nNCFAt7vzueV8zL8v2?= =?us-ascii?Q?HpKDKZPDan25vRUiUS0AL7PryiXeyoVMx0vVhOxnD9fVN76rlbe4GxsNJirS?= =?us-ascii?Q?jUaLpkAWX/DTU1xigBsg4hB08v0wALD/dEm3qWEetC62zyYzT2ctx538PwS+?= =?us-ascii?Q?rWY1hXPeTchRI4xse9hj9cymu1TkSOfNXprmH2gidSde6IUFS+fYDfWFDq3T?= =?us-ascii?Q?BBLuM2phLRmQV3ONpp6ZmZlJIyjYM7XDtIjqutgIexLqH2OGzAjWMyUGDYRn?= =?us-ascii?Q?Z6lq49Vdv+kj/EF2JYOSpw9kHKGYeAmaakwsWaD6yxlOONaPoWBZ/xGKF6zk?= =?us-ascii?Q?nqhVWEimLFFX1EIFiImIb5hpC3ts5ejW3q31EZgNVJ4rPo1DbfC+H7WAtmP5?= =?us-ascii?Q?Aln1UqtbfqJXVXZqiDlKz8yYcnAVgjzDEamgCVFd5JFF4pMRgCR1HO61RM0A?= =?us-ascii?Q?hCa2VC461tZige6QCqWaDbLqak00bxXphgIF367GKWHkC3VKfGvAHjtgooGj?= =?us-ascii?Q?UeJBM2F9lB4EsG+lREovCzH0ZpJELXYJDuZ7Ovpg5EiZDBCotlfOD2liNgaU?= =?us-ascii?Q?le80/atkdfEWM056QT5yEZrrpPglJ4XC35mqnpswFJxTVQuDIspO7bdEZ59c?= =?us-ascii?Q?nCdmz8sGiYrcowYa3VFbBT0CJwSU7rn1ngab+p20mx3vF7dlNUiSI6vw9tC3?= =?us-ascii?Q?ZdJsFYE3P+35KKJyYjixfbqOVB5hYMgmVoj5BPcQ+Mgds3mYRBbwHpVhZLGa?= =?us-ascii?Q?y0JPd8hLtPuPKbeQKXWnPe5M082ais2Bzr2L6DjXz8MYStku/1mtfaZI96jc?= =?us-ascii?Q?oueVJmfcgFPadf+7hhhty8mbcQzhL2rsKFU6gQKka/qmDfQWnFs+/SP2F+f8?= =?us-ascii?Q?L0Nmf2uOMWTXf3+hfKzRGeGkfbDbFzPV5mtQy94gEJ91S0McLgduf9G01OfU?= =?us-ascii?Q?gjPSyIbmotHbOSc7ObRIwim10c9kuZ+NyPtv?= 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:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2025 16:11:02.0862 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 33012709-64a8-4572-dc13-08ddee2923fe 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: SJ1PEPF000023CD.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9029 Content-Type: text/plain; charset="utf-8" From: Parav Pandit In order to reduce dependencies in IFF_LOOPBACK in route and neighbour resolution steps, squash the static function to its single caller and simplify the code. No functional change. Signed-off-by: Parav Pandit Reviewed-by: Vlad Dumitrescu Signed-off-by: Edward Srouji --- drivers/infiniband/core/addr.c | 49 ++++++++++++++-------------------- 1 file changed, 20 insertions(+), 29 deletions(-) diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c index be0743dac3ff..594e7ee335f7 100644 --- a/drivers/infiniband/core/addr.c +++ b/drivers/infiniband/core/addr.c @@ -465,34 +465,6 @@ static int addr_resolve_neigh(const struct dst_entry *= dst, return ret; } =20 -static int copy_src_l2_addr(struct rdma_dev_addr *dev_addr, - const struct sockaddr *dst_in, - const struct dst_entry *dst, - const struct net_device *ndev) -{ - int ret =3D 0; - - if (dst->dev->flags & IFF_LOOPBACK) - ret =3D rdma_translate_ip(dst_in, dev_addr); - else - rdma_copy_src_l2_addr(dev_addr, dst->dev); - - /* - * If there's a gateway and type of device not ARPHRD_INFINIBAND, - * we're definitely in RoCE v2 (as RoCE v1 isn't routable) set the - * network type accordingly. - */ - if (has_gateway(dst, dst_in->sa_family) && - ndev->type !=3D ARPHRD_INFINIBAND) - dev_addr->network =3D dst_in->sa_family =3D=3D AF_INET ? - RDMA_NETWORK_IPV4 : - RDMA_NETWORK_IPV6; - else - dev_addr->network =3D RDMA_NETWORK_IB; - - return ret; -} - static int rdma_set_src_addr_rcu(struct rdma_dev_addr *dev_addr, unsigned int *ndev_flags, const struct sockaddr *dst_in, @@ -503,6 +475,7 @@ static int rdma_set_src_addr_rcu(struct rdma_dev_addr *= dev_addr, *ndev_flags =3D ndev->flags; /* A physical device must be the RDMA device to use */ if (ndev->flags & IFF_LOOPBACK) { + int ret; /* * RDMA (IB/RoCE, iWarp) doesn't run on lo interface or * loopback IP address. So if route is resolved to loopback @@ -512,9 +485,27 @@ static int rdma_set_src_addr_rcu(struct rdma_dev_addr = *dev_addr, ndev =3D rdma_find_ndev_for_src_ip_rcu(dev_net(ndev), dst_in); if (IS_ERR(ndev)) return -ENODEV; + ret =3D rdma_translate_ip(dst_in, dev_addr); + if (ret) + return ret; + } else { + rdma_copy_src_l2_addr(dev_addr, dst->dev); } =20 - return copy_src_l2_addr(dev_addr, dst_in, dst, ndev); + /* + * If there's a gateway and type of device not ARPHRD_INFINIBAND, + * we're definitely in RoCE v2 (as RoCE v1 isn't routable) set the + * network type accordingly. + */ + if (has_gateway(dst, dst_in->sa_family) && + ndev->type !=3D ARPHRD_INFINIBAND) + dev_addr->network =3D dst_in->sa_family =3D=3D AF_INET ? + RDMA_NETWORK_IPV4 : + RDMA_NETWORK_IPV6; + else + dev_addr->network =3D RDMA_NETWORK_IB; + + return 0; } =20 static int set_addr_netns_by_gid_rcu(struct rdma_dev_addr *addr) --=20 2.21.3 From nobody Tue Sep 9 16:21:05 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2085.outbound.protection.outlook.com [40.107.244.85]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99945281531; Sun, 7 Sep 2025 16:11:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.85 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757261473; cv=fail; b=t6jvwBg914eAmsveUUE5Q9/mlMqAEr/HPRxK0cOR4FttWEKdZs0syUGqV/u4jQmXZ/o4yjvmtYjCAATrZVTmhOfVdBPlKN5abEkF0HXB2M+kHoyXXpR5zvIKFqK91/q85FuDjkV1DwWLDtQlXd7XByThjFxlOO82VwfglW7p+GM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757261473; c=relaxed/simple; bh=n/73WphBEju0y+YNH8Xs4VZ3qbfC4zFvYa0+rHQFKP8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GA+1M4KCVClLYxNx6jaU1KCzeu1UHwOS1U8C53K1G4i8USglepXjvIoFnRUoML1wseX3HK9Q1XIzTEkeIFF2E/VllsKREUxVL06RzRytq+Q1esXfLm8GKQ3NWfA/HfgTMeizYBFGqI2zgP8MR8xf/iGX4nMU0JunaLIjpnDn1Xk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=g6PQunk8; arc=fail smtp.client-ip=40.107.244.85 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="g6PQunk8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Sd440EoH0tC5IVuAnIxaE+FmD9HovEqr7hnudAPV5f69iXfUEmZ2e723KIvyH0FcSRrYA1SYK4Qn0VDlx0I5bosEC4glTZSEnFl72W+sv2ANMFgif/KHMQZpt7o3U+3sU62TsaD2ac0lt3gLj5JJYTyhnSgChrGcbtZXTIA5q0oX7xMuxtNulOOnBU1rLFFm/gOG+f++Lc1Ys/uiH0jVph2S6shD16RVChucPQaM4RAXy6ApHMoOwcto1ec6TQXOE69gkE7goWjS6QIJA17LBrOU+YfMMihzfsiMTNIlhSy7NA0Ayj/cTLBLe2FlaToBk7RmlI38M/tW1qZTq2OGpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=zAl+3Lk3V/glsOW0scvKFF4Kiq2QycTahI5TusgmyfM=; b=qywr2SFMXffuuprSyIh8UUDfQ2s+xIGRpsTFM1lkZNynsczXJPyiWj8ljnCAFhqJ2o8TEBgRJ2/ihFak3NpKHA4VeclWslmZzlqeaRqtQRpA9CCfnIfFe1HMfpjoGADj7I6fmANKmKQHd2iYiv/69Lrzrj6OvIT8+O3f453BISYRjKAoF656jdQfQdGjQW8Pylzcnuw4UF8HjmqOxCisb7zQ3OeyEKJoPcYMBuM8LDXSCkxqObpClei5wWI97PjgmQNfhrsXSE/d9z6y+NVqe7FIQBQbh0okR+8wZRpcJcOw9MuUhhe9L4T8UfIRyljPYmuoH7hRng8FjpFlatgphg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=ziepe.ca 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 (0) 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=zAl+3Lk3V/glsOW0scvKFF4Kiq2QycTahI5TusgmyfM=; b=g6PQunk8ymCHyaLXiKvx5KkO5o7YGM6QYjB295/gO2Mz2c/1vhyrJYGuKNk1oSFnCAg32v9FHmVUUo9XTtYIVScXU46VZr5YLKNMb/85gvi1eYc2FFZBo58bFcyDrWMH/R3N5GgrdDEasmvzlAMbhGG3PZSicFmu4TU7qL1udLHtZnid1d/RjE1Gn0fcLKy6KYz7DGmwtMEiwSwyNxYETBIuBJnR7eBlLOtXkK4+DegpGNss24XMLxDeX6Q0I/S9U4mLguZHZP3vl9nC94tcn1Ou8wiueKtjS5nerm+vAKSP3c0FQ3BqTQxKf5DXyb5xI8bkx6hOBxF4PN72fB5guw== Received: from BYAPR06CA0029.namprd06.prod.outlook.com (2603:10b6:a03:d4::42) by DM6PR12MB4340.namprd12.prod.outlook.com (2603:10b6:5:2a8::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Sun, 7 Sep 2025 16:11:08 +0000 Received: from SJ1PEPF000023D0.namprd02.prod.outlook.com (2603:10b6:a03:d4:cafe::c4) by BYAPR06CA0029.outlook.office365.com (2603:10b6:a03:d4::42) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9094.22 via Frontend Transport; Sun, 7 Sep 2025 16:11:08 +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 SJ1PEPF000023D0.mail.protection.outlook.com (10.167.244.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Sun, 7 Sep 2025 16:11:08 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.1544.14; Sun, 7 Sep 2025 09:10:49 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 7 Sep 2025 09:10:49 -0700 Received: from vdi.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Sun, 7 Sep 2025 09:10:45 -0700 From: Edward Srouji To: , CC: , , , , , , , , , Subject: [PATCH 2/4] RDMA/core: Resolve MAC of next-hop device without ARP support Date: Sun, 7 Sep 2025 19:08:31 +0300 Message-ID: <20250907160833.56589-3-edwards@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20250907160833.56589-1-edwards@nvidia.com> References: <20250907160833.56589-1-edwards@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D0:EE_|DM6PR12MB4340:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f571c72-3cf0-4abe-ea07-08ddee292792 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Te/hzkDetrBuGO6wVPvpoT8yTZQIRLbOyhRcXAX+TkfLCATKYZvtIWzPtHNN?= =?us-ascii?Q?Ht4Sd776VUBD/XOCbaYDlLi8KEFosHlDa7+B0cIzkhot8PsE910Ac40psxqr?= =?us-ascii?Q?uc7dM25pVKoPR+D2LxpSKhFYst8SIferxKmulL20M6bak8vDXnfigJlBEma7?= =?us-ascii?Q?a7RcqcdMpgHPKWIohQy7RtoEO80mncrSHJCMdmurz4R/DLzLwNnhSCIznJF2?= =?us-ascii?Q?xmIPn4YNIpWIiMDSL6Ch2yEQ41BJJeb6fKmPd+0BY5C+QIxIk4Lbg27GOewp?= =?us-ascii?Q?n9gjynIzUSbLWLRaStqcsH+NnQoI8xHbQCEeabwaWpMtWZm2tfafEdiyJ+6a?= =?us-ascii?Q?FExACg80sl9pZgP2mwc+of8UPVL0W1n3PDHWWsczYKMj3EiiD42DqLmpht8e?= =?us-ascii?Q?jlJ9sNB+tAj/pOhcCxpIAXUDXqdWHcv+3cW/4lgzrteJglM98nG/AF8KSYUO?= =?us-ascii?Q?9lWO+a1wo7CTuC+GrnU6w3AqGyz8fQku9bZHvOv6+tfgFgWPff8oE8aZbStZ?= =?us-ascii?Q?4f6keC0dscuTVXyyIrlGuwbG9zeuEf3j+71oejsEJKEeYCnzbq3MigLB8XSN?= =?us-ascii?Q?EBe+HCAIMAO1pNf/YdzfdAAPu+0Iqoqwoc8r/RusrYXIJs3dcF5wATc6/wD3?= =?us-ascii?Q?Cy0hPxG3l7ADid8pIFeTfnxa/JbEO7WCzTTxHybV9IIROcPY3CIvx6zPPo4Y?= =?us-ascii?Q?wihXsFJEl/fpQQmmmKQp+rB/gxEhyaisuUxrHpfBpd7F11yTq9uswPD/D3gk?= =?us-ascii?Q?49ldVyZiW1zxb8hdrt47hld2fYbMDtTTOiCM3LK6iv09KwPD5mreJWF7BTEr?= =?us-ascii?Q?h+mwtx7CYD/3OV3ugnOYYLHmFi7ZctrLZZ49D3SFYPqqIIK28ARtsB6VlJQ6?= =?us-ascii?Q?7Sic0GHDM1WBk7Fc+LyCrZd0Bc7shFShc6XG4yYOdMtc5UzKxCbou26pTOAI?= =?us-ascii?Q?nwjD7R4vD69KD3WDvKJRXs4EoCyhwRSgkK/9l9jxg/6EteKdAkE2ioBi1mnS?= =?us-ascii?Q?UC2gcXIizcuxD78daV0sRqdzqv3PQqa9G12zfg4Eae0b2uCxw5cunkXZg6gP?= =?us-ascii?Q?4Rx3shwvRo3Qz1VcD+TFe9/WWjnvltOkbhgzLowiWHy4fVHc6o6y/r4xUwKr?= =?us-ascii?Q?HXmrlbUqOoXjPeNzCRaG6Lu3GjO20KfbUh+ylL2lWA+5ylFJLDp13ibIfWna?= =?us-ascii?Q?OWV9tA1OKguLWK3e0FaeoJhgxxLs7Ci/AdS539UriFkjEs6XyUeUAMmCIa+n?= =?us-ascii?Q?yU7JMKgoEvWDKpAn9D2Xua4JNwKg7yE8BG3VGgUtr/TNO7ttQMMnzmkPDAMX?= =?us-ascii?Q?NGXo4GbKxJKm84+AYXOeXlIiE+ISaQNNEi4Gon+eG4Rt9iP/VJ76i1OxR+p+?= =?us-ascii?Q?RCBHvlaYieSgBcJczazZnNdcxgNrjUcgZwLlYYl0QWT88gDT1sfEFoun+fVg?= =?us-ascii?Q?QpjQoyY8YIco/LIhUpBJaG1psYr7nxkDjT9SS0G0XLmOfGRlPcWMzcZS1W7I?= =?us-ascii?Q?48Tgo0+6DpE8Dt+V+m2ZyoD6pfFWBInlPvti?= 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:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2025 16:11:08.1156 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5f571c72-3cf0-4abe-ea07-08ddee292792 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: SJ1PEPF000023D0.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4340 Content-Type: text/plain; charset="utf-8" From: Parav Pandit Currently, if the next-hop netdevice does not support ARP resolution, the destination MAC address is silently set to zero without reporting an error. This leads to incorrect behavior and may result in packet transmission failures. Fix this by deferring MAC resolution to the IP stack via neighbour lookup, allowing proper resolution or error reporting as appropriate. Fixes: 7025fcd36bd6 ("IB: address translation to map IP toIB addresses (GID= s)") Signed-off-by: Parav Pandit Reviewed-by: Vlad Dumitrescu Signed-off-by: Edward Srouji --- drivers/infiniband/core/addr.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c index 594e7ee335f7..ca86c482662f 100644 --- a/drivers/infiniband/core/addr.c +++ b/drivers/infiniband/core/addr.c @@ -454,14 +454,10 @@ static int addr_resolve_neigh(const struct dst_entry = *dst, { int ret =3D 0; =20 - if (ndev_flags & IFF_LOOPBACK) { + if (ndev_flags & IFF_LOOPBACK) memcpy(addr->dst_dev_addr, addr->src_dev_addr, MAX_ADDR_LEN); - } else { - if (!(ndev_flags & IFF_NOARP)) { - /* If the device doesn't do ARP internally */ - ret =3D fetch_ha(dst, addr, dst_in, seq); - } - } + else + ret =3D fetch_ha(dst, addr, dst_in, seq); return ret; } =20 --=20 2.21.3 From nobody Tue Sep 9 16:21:05 2025 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2061.outbound.protection.outlook.com [40.107.244.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4D4B283CB5; Sun, 7 Sep 2025 16:11:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757261491; cv=fail; b=u09qM718tveZ2aAC3HaG3vQqwrKn8z2gZgJvKptO44BWwnlIyICPw7g0FyX4RmqSdO+E7XKt1Scg/t43XBVv0UcfzfektIfcc94blJvZPvlVu2o5ATwnaA9h034hG9iqewzkatSTuAw2psDB6Gh/Qpe/DyWQqClG4WhyoSus5uk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757261491; c=relaxed/simple; bh=HCkAMf03k114DoOFWrp+FmRbwskZckew5wPKbIDhAQ4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OR9gUYKOS4EV10AjU2/B7jmGNuxVN160GESjFXPUp6ZmoM6mbfxAtlPFu5dTJQo1BD2WFTcDQw1XgM9mEUT5PzPLDc+2WNuVl3X0BPKovgyIBLFxJQsRwjB1wwAnFHuB6A6JZxJ1jLfqr32dKNmVnUoMxp2k0dh2sSWgunN/DJQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=KzwE84H2; arc=fail smtp.client-ip=40.107.244.61 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="KzwE84H2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cZwT8ZYu7IvqZf5SzF1DEDnNTkwAbsAO8XbQr5t/TRV5sVeN285XR37TaU22W3oKhRcPTqP8q8mjEMRJHYRNfPOW1ZKUb7FoFHDIwf8ZFeUCD5lvaYLgkehEBZefce5sYItRoT2CWxr3ONi+6M8SyPO9Z4Qkk9dqr75/0QTc39nWBeWFzNxCCSnyM66WkzsmjBhrY6aQdjzRvgclM4nE8LR5+h26hp63iR1NOcYt8Q+KUA8isLSeXh2W13lXoNT7GSarN/FM+HEFtUqzCbJlIzF63RAaYIdfq9dPc/iIzM3KHPpIjA7yFTIQtHNhnyUuGjSO83GWkREFuAPUvo3XAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=v3cLk7L57j4NRYt7PcGfIDcPG8O0HeTD5afsCGYehdc=; b=fhrISagCtOz8+rFn04KIlMn0yqtlxo/S71+RIWn5GUSPUBam+8Yk11fMnKnRox6rCAxjVvo5rdv3MOEemWm/EvesKy/j8lewIZkxyjJm7v+uPIouL5KjnSJgpFkvJly2xwT77Sgf99nJpQJxsY/oTxUm2ude3/Jpo+ORJfj7zvMioIEltY7Lm4r6m7bOBkr/cGnpTMjRcY2EYsBHUFCbri30FWwcOkulL7BrJ28f78WLROkFFLfALA6cMvH8jOyDmnktPtvqP2x5Q8SxWiV4eS512fwXvfC6m46XiCrhltbWO+eY90SEdBVhK0zzCEwkx9fXNbOHGdRSWRGqaclsdQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=ziepe.ca 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 (0) 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=v3cLk7L57j4NRYt7PcGfIDcPG8O0HeTD5afsCGYehdc=; b=KzwE84H28EodxxA5l9q1TQG3T5NTjtOVJNu6CH61+21WdZOT0euPJES60DdXOEHSIcu2y5hkTV2VR5L5LcNxzdpuBYhKrcgZo/ANcGMijNlSmfHIRLYdn36Z74/r90HO4bZLUwaH1tU9YhZajsHYj8HmxQNGDQS8R7LQK/+v9y7HrjcGB6wp7wGJY7zi/GeGdrizIp4Rq/7IRjB2LymKc6IYFbsioWyndecG9icIzjmEVXgHhB92Y1K0izdvfWvoHXqzM2VMWUEX6wcmBezHtVmR34ElFXKZQ/mkB37+zk0AZJAM+I/TYbCLtBwW/cC6XxmXVfHoIKfdfNjFxvFUgA== Received: from BYAPR06CA0020.namprd06.prod.outlook.com (2603:10b6:a03:d4::33) by CH2PR12MB9543.namprd12.prod.outlook.com (2603:10b6:610:27f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Sun, 7 Sep 2025 16:11:17 +0000 Received: from SJ1PEPF000023D0.namprd02.prod.outlook.com (2603:10b6:a03:d4:cafe::25) by BYAPR06CA0020.outlook.office365.com (2603:10b6:a03:d4::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9094.22 via Frontend Transport; Sun, 7 Sep 2025 16:11:17 +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 SJ1PEPF000023D0.mail.protection.outlook.com (10.167.244.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Sun, 7 Sep 2025 16:11:17 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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.1544.14; Sun, 7 Sep 2025 09:10:59 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 7 Sep 2025 09:10:56 -0700 Received: from vdi.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Sun, 7 Sep 2025 09:10:52 -0700 From: Edward Srouji To: , CC: , , , , , , , , , Subject: [PATCH 3/4] RDMA/core: Use route entry flag to decide on loopback traffic Date: Sun, 7 Sep 2025 19:08:32 +0300 Message-ID: <20250907160833.56589-4-edwards@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20250907160833.56589-1-edwards@nvidia.com> References: <20250907160833.56589-1-edwards@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D0:EE_|CH2PR12MB9543:EE_ X-MS-Office365-Filtering-Correlation-Id: b6f6ee66-39f1-4eca-cbad-08ddee292d20 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?NY6SDeNON4d9Gsc8t2aIYeaP2g7GdKfGT7TdZymwOGnhN05pCuSVtVzCW5Wv?= =?us-ascii?Q?kxdRg6RrkQ/QYw0ikIAoRrJDLBgE75JuUlA8GJPjboPacxr82cJreevNP5Ng?= =?us-ascii?Q?WCFhBTxgaK21pbkNcHulSsygZ7SJD6zz/zt+zSxzgDh+f2NFQGyNLRGQXiN7?= =?us-ascii?Q?Dhh7f3n7+r97JzR4/5c1XFZTtFQjrln32oZFU6VRPbb+WyU1gYvEJKGN382U?= =?us-ascii?Q?N7aXEUCsWdET0V9TPVbQ7jrX644Yfz6mOEur6CmS73T8Vrr3U8qOrNyEDAF5?= =?us-ascii?Q?hi2wqPW7MkxwA1Oz7KQAB7k5XZKYrwlVfQxNPtMsYgbtBEmmt6TxkPqxOAPS?= =?us-ascii?Q?SmgJgxxSn9GaOAJpzADR6+Vum8axF9nmg0EYGw8br68N6Vp9zaoDP+SlvH2m?= =?us-ascii?Q?kM1oYTP6S3F4c0fFQt88bstilyCijSViH5GTGz1run7RyMQLzy1tOiCXOaz2?= =?us-ascii?Q?Wl4Ft1GlCKXg5UyUGgb3id0jgG+PKyX5XiLvhdeD/6nW2XxBeiqpKMaGzP2J?= =?us-ascii?Q?j1mUOahhoR3Q3hZYcyIx75QObUs9TkOHLS4FWFdncSaTa7fU8vzz8IeBdQ3u?= =?us-ascii?Q?/HkWaeO6Cr1R3wNXfV3SJuUxQjTHgubVicNMT8hLY/u5B+CkJQCXCsm8nESZ?= =?us-ascii?Q?v7973EYJQ8DmAcV05yYSb2jsyHDhLXkCMcLbO15ZfRYrSpFAdOO4qC4E0Yjg?= =?us-ascii?Q?pqHn33hW2OTZOuXx4BFOHo8CUrisrxAHgeC99dzPFqZQO+CTXmOeibH4YUaG?= =?us-ascii?Q?RnvHqRSa7FXH+oJQJAxdUTPRk1UEHVFFge1oLAapiQ4NbOUGU6JTgtMTSBlZ?= =?us-ascii?Q?AUrux3RsAiEBe5CmHikA+A3aFtrXWp3dVx9xSXj61j/VCA9BUsSoOfZBMIDE?= =?us-ascii?Q?/Ggdq+4hRPucC/ITDqzz0Sn9EDCamRbah1q2UBM6rfcBn2gVZ2lAxurwnvNu?= =?us-ascii?Q?j5XgxjwQD29qLueZ6YuWj3QHtxMsMAgs4WLjEfwB1gc8Dle4/nyDLzRO4e5B?= =?us-ascii?Q?x5JI1qqUrRcLJS7WbfYw8dxqA4UKtbiQJZXnRrUQSQu6nBzztAbAtCnHjhGx?= =?us-ascii?Q?Xysdw8U5iNj6Gmd2X42eNaUtyroZ6YfH4hdXUVctW5S4j2n7myYqgSB5IERD?= =?us-ascii?Q?Xz6Rf9DQ+Vmes6uHlivwD88VfiekYi+b11hE3u4AGr16cMp/IRgFu5FqtTy6?= =?us-ascii?Q?pz98t7ZupjAaqJCs760/fNM9HmLeyKB5xf8MmGhBAHe8C9vQwrrTbfHkQUjw?= =?us-ascii?Q?B+VBrWEMw44CtUCqwxBP9QCmepdKxG0bm4L0N5yW8BEmyacPF1hem7KEoCj6?= =?us-ascii?Q?1Nr4u+nhpq1S8UYY5BfMLlyhQodUDKdwd/AU4W0z12iDVohKQw8o+klk47Ad?= =?us-ascii?Q?VJUAgOHzzss947nvsdWew8QvAEgdO7bM57z/mfb7pf0pUDkzZ+n0QR5bsZad?= =?us-ascii?Q?+KWqfMmqHhmLMlci16NoPWNX1yzIxiXzwpJAVcV9O5VHtJ1i0BbG4eDNH9wF?= =?us-ascii?Q?lFiF0lKyHKkVUZ2SaTf2pQv3gJB248s7mLK8?= 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:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2025 16:11:17.4244 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b6f6ee66-39f1-4eca-cbad-08ddee292d20 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: SJ1PEPF000023D0.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9543 Content-Type: text/plain; charset="utf-8" From: Parav Pandit addr_resolve() considers a destination to be local if the next-hop device of the resolved route for the destination is the loopback netdevice. This fails when the source and destination IP addresses belong to a netdev enslaved to a VRF netdev. In this case the next-hop device is the VRF itself: $ ip link add name myvrf up type vrf table 100 $ ip link set ens2f0np0 master myvrf up $ ip addr add 192.168.1.1/24 dev ens2f0np0 $ ip route get 192.168.1.1 oif myvrf local 192.168.1.1 dev myvrf table 100 src 192.168.1.1 uid 0 cache This results in packets being generated with an incorrect destination MAC of the VRF netdevice and ib_write_bw failing with timeout. Solve this by determining if a destination is local or not based on the resolved route's type rather than based on its next-hop netdevice loopback flag. This enables to resolve loopback traffic with and without VRF configurations in a uniform way. Signed-off-by: Parav Pandit Reviewed-by: Vlad Dumitrescu Signed-off-by: Edward Srouji --- drivers/infiniband/core/addr.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c index ca86c482662f..61596cda2b65 100644 --- a/drivers/infiniband/core/addr.c +++ b/drivers/infiniband/core/addr.c @@ -446,31 +446,40 @@ static int addr6_resolve(struct sockaddr *src_sock, } #endif =20 +static bool is_dst_local(const struct dst_entry *dst) +{ + if (dst->ops->family =3D=3D AF_INET) + return !!(dst_rtable(dst)->rt_type & RTN_LOCAL); + else if (dst->ops->family =3D=3D AF_INET6) + return !!(dst_rt6_info(dst)->rt6i_flags & RTF_LOCAL); + else + return false; +} + static int addr_resolve_neigh(const struct dst_entry *dst, const struct sockaddr *dst_in, struct rdma_dev_addr *addr, - unsigned int ndev_flags, u32 seq) { - int ret =3D 0; - - if (ndev_flags & IFF_LOOPBACK) + if (is_dst_local(dst)) { + /* When the destination is local entry, source and destination + * are same. Skip the neighbour lookup. + */ memcpy(addr->dst_dev_addr, addr->src_dev_addr, MAX_ADDR_LEN); - else - ret =3D fetch_ha(dst, addr, dst_in, seq); - return ret; + return 0; + } + + return fetch_ha(dst, addr, dst_in, seq); } =20 static int rdma_set_src_addr_rcu(struct rdma_dev_addr *dev_addr, - unsigned int *ndev_flags, const struct sockaddr *dst_in, const struct dst_entry *dst) { struct net_device *ndev =3D READ_ONCE(dst->dev); =20 - *ndev_flags =3D ndev->flags; /* A physical device must be the RDMA device to use */ - if (ndev->flags & IFF_LOOPBACK) { + if (is_dst_local(dst)) { int ret; /* * RDMA (IB/RoCE, iWarp) doesn't run on lo interface or @@ -538,7 +547,6 @@ static int addr_resolve(struct sockaddr *src_in, u32 seq) { struct dst_entry *dst =3D NULL; - unsigned int ndev_flags =3D 0; struct rtable *rt =3D NULL; int ret; =20 @@ -575,7 +583,7 @@ static int addr_resolve(struct sockaddr *src_in, rcu_read_unlock(); goto done; } - ret =3D rdma_set_src_addr_rcu(addr, &ndev_flags, dst_in, dst); + ret =3D rdma_set_src_addr_rcu(addr, dst_in, dst); rcu_read_unlock(); =20 /* @@ -583,7 +591,7 @@ static int addr_resolve(struct sockaddr *src_in, * only if src addr translation didn't fail. */ if (!ret && resolve_neigh) - ret =3D addr_resolve_neigh(dst, dst_in, addr, ndev_flags, seq); + ret =3D addr_resolve_neigh(dst, dst_in, addr, seq); =20 if (src_in->sa_family =3D=3D AF_INET) ip_rt_put(rt); --=20 2.21.3 From nobody Tue Sep 9 16:21:05 2025 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2088.outbound.protection.outlook.com [40.107.220.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D08A283CB5; Sun, 7 Sep 2025 16:11:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.88 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757261502; cv=fail; b=RCHWO0IhRnx1nWQozV7fjDENWh5dg0dS/2Eiin7Hj4rMBNg93oZGQRbxhHGvacpaiW5dWgPshPRfT///TETFg8EZHxOdBbJY1dBey0ke4t8QfceGET8+iVc+deW0gJIydSYvdKmVzi4aVb4+VpG1sEaPWTrq7hi7gVIqdn9fTcE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757261502; c=relaxed/simple; bh=jvDsx23r7656PRJQkOJhPKUK6Om1WcNjKbkMlQ8urc0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ObMwm6Vd9T5TxOnlNjAKiEepJVdHtc6okgrwErllgykVjrQug9Bvn2XPirhsPYAv7aq4ofLXK5pSPxzkYeoFm4kqs/VOc++FmhmDwxJ9a7LfXuyWrsSRhhGDKcuXFQbLSWL6rx8vAfUxOaBXUJbISssdqdszy3lu9FnWZ9wN/BE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=NjhBCWAe; arc=fail smtp.client-ip=40.107.220.88 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="NjhBCWAe" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HqyKPFUW5gZ8U+ewc3DY6pbBDNnJkEFGf05ZZjxvpxDswreUAZsLsQOX3E3nwh9mryAZTGbmdEHHeRsiSnHWMKT1tZ6/djXzDrGn7+lSjgIMZNFSpHVihtsso7DcLOa2QEo5rMMMPEMEZ+mMakD2n+wRtBTg4yom8x6mf+krtp1riZoDU6a3LycpJbWXevcp7Mq0k/Mcftlsf3elyHpuVF2FLqvuSWISFxKFOh8nh9ym0leKx69uqTQBQiXn+s4bxbOF5nEUStvsCuWDEGdh+YmSlVvq95wubfFFXZ1iCGWADOzGV3JIsdLUwY709ymvP9ogHpv/1grC0M/L1eQRVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=UP71k3g+COjwDowbjjJkamAzZGTjqNh/4cZUz6cnWe0=; b=Wr7yeFrIFm3n/NhlZw7FjCbO5s38HD/VMhoatSCRO6MTWCcv6O99bI3SUg4dXdBiYiDMF+Nl3gOgmXmF3EKn7q2blhPB4swHkXn71ySwiwqYRvd/xacEeyELybnADCmaYM1v1is12/mP2zHAbDl+NoEmpMkr0NKwa5/+T35Wa7NlfxYdPE8ZsHzkgJmRwxUtQA+5V8NKaGJK3c/NU8ezzAbeF3ZwhcUfIzv+cljzOC2dip+q7b+zTZD/imfhtT3MnHukMYr+ft5FKkYqJ2juD3WpFuFI/bsDWCoyICJVktB08x8cOBvt+5G9dR7qwY7GvbNqFf5uHZ7eIvt8vBG9Vw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=ziepe.ca 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 (0) 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=UP71k3g+COjwDowbjjJkamAzZGTjqNh/4cZUz6cnWe0=; b=NjhBCWAebFJxRacuyiiVwRH4Jet4KIsP9XKQ7EmN37/E27aZYyl46gc34jdSSlSdy683UeE8gH017KRroFrcV7p7TOyJxXrHXmCL41bOzq2WLHM5TqGtWHnociiMP0DRNyeg2MfRlyP2VfH8fuOxGWawRdSSERqvMKXLElEcn14dtGhTukQh0K0zz1pePrt+95gxuPjIrPynwjfHMThJWjXOCM0T9p5btzvMp8ZMgSenU7XTRTrukrWGxR7rKtXmDCd4DzxXCLSzRRf8kvPtzkw8v46FLYLchdm8SKWns0sf+RNTjHgiyy7i1+U1nESM+ruycLe7bN3dvpjbCFrGNQ== Received: from SJ0PR13CA0153.namprd13.prod.outlook.com (2603:10b6:a03:2c7::8) by IA1PR12MB8494.namprd12.prod.outlook.com (2603:10b6:208:44c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.19; Sun, 7 Sep 2025 16:11:36 +0000 Received: from SJ1PEPF000023CD.namprd02.prod.outlook.com (2603:10b6:a03:2c7:cafe::5) by SJ0PR13CA0153.outlook.office365.com (2603:10b6:a03:2c7::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Sun, 7 Sep 2025 16:11:36 +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 SJ1PEPF000023CD.mail.protection.outlook.com (10.167.244.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Sun, 7 Sep 2025 16:11:35 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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.1544.14; Sun, 7 Sep 2025 09:11:20 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Sun, 7 Sep 2025 09:11:13 -0700 Received: from vdi.nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Sun, 7 Sep 2025 09:11:09 -0700 From: Edward Srouji To: , CC: , , , , , , , , , Subject: [PATCH 4/4] IB/ipoib: Ignore L3 master device Date: Sun, 7 Sep 2025 19:08:33 +0300 Message-ID: <20250907160833.56589-5-edwards@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20250907160833.56589-1-edwards@nvidia.com> References: <20250907160833.56589-1-edwards@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CD:EE_|IA1PR12MB8494:EE_ X-MS-Office365-Filtering-Correlation-Id: a2cbbe78-b810-4fa6-9d82-08ddee293834 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?cALQRpOhg4co7QbcSM6cMTdhfYcA+aL/DBTOHgEkO5sOm0bMM82IQnpMC9Dg?= =?us-ascii?Q?fjpfk8YiUqoTWAdlPmXaxlLj0qucbWld7xTcI0zp3yKa412a4CjgiXS8LGuF?= =?us-ascii?Q?U0RSG9ppYs7C0bQX1RO+c1+3GfPcGAgtvTdGAS7u9HH5LsUHI1ya+Wqf3X88?= =?us-ascii?Q?eigCI5GTZ+eQqbr1tlw7UtIYnYQLpyK149JVRhSB86cSfV0xp7pLtF1siF6P?= =?us-ascii?Q?4pS0Cu7LseqhmYeO+jwLSuxPXoP/j+VG3vc1G7+pw2dQWk6/YvfRcFkfzB0q?= =?us-ascii?Q?YG4/mEgB6uV6VC4biK493YLbSFXH8tjTnMNdSj71juqoxdsjsSpq+IT5lnZY?= =?us-ascii?Q?IrU6Q69y4jKk3boIYpFJdq8QwrEiYPYwuOPcyIlpZhMQAsw6b/FI1haRPnB+?= =?us-ascii?Q?IcVkxFY54M5xhXpQI9DTf5CZfZ93DhzDNilmzbuV92BDUtfpiLLR14pLM1LO?= =?us-ascii?Q?aUguG/CkdD/r9IpuJxXIojdKVlT+wy5KuO2kd70asMRrh9XxFZKNpifphheh?= =?us-ascii?Q?twXf6P+dlgBbke9SLFLVXIqhVYVmaaU+4uoSY+BfmLhGmvrp70bMQgDKRd7H?= =?us-ascii?Q?20LpXNDi0f4HxI6PeUIX2uY+JhK+1ce1RVU6R3sBRNDSvaL38vL0QsDFSh2A?= =?us-ascii?Q?QKUuhtY3EXMv6b+laJyP9Td+oSM5CzRydVANSpGJwZxgU4UetuZTMjjUjuRU?= =?us-ascii?Q?1rsbdaYhPl+cS5rN7eze/M/yFr0yj9vykCxHkbzzFVCeK7Wx/gKh8PbYUklc?= =?us-ascii?Q?h2rKKZnkHO5bJYDKMP/x3wM+BLV0TGoenSkKqvK80p65uerCd9t0dyjtEp9X?= =?us-ascii?Q?m/SU/rjPJBOpKw5WzSO/eFoiEtzzlDaMRnQpaNg2y5K/Gl9R2h84C+38mpmU?= =?us-ascii?Q?Y3Nnb43RlmjffbYvvsmwbo7x0WK68ASLRGRz5oFUaGlGsYMhdY3ejMCIDjay?= =?us-ascii?Q?KeFac0LvHI44sbodlIP18ZgEsSqGk3nQVDCFfs5iR41+eLdK1xuduGNVP5bb?= =?us-ascii?Q?89thXi0cDDs1Nbf5UawyOYORbkI16VrmrxkNjMENxJcG7OiGyg/Sb/ass4G6?= =?us-ascii?Q?NNGaRClh5ilMcixRkMFPyimHeMY9/vgY2qo7qukG5EX5OGN94LL76ka1BT90?= =?us-ascii?Q?Q/S4M9iPir56AV9/RMANoIbfjX1ckfWVcCurZlBmTNSaJaZW4wcJhmtUImIS?= =?us-ascii?Q?pwTbVcTF1/VKE+scWh6TxqzL/Zuu+xQTHM5VEZih7V5jDaLqAN8PUBOPRYwK?= =?us-ascii?Q?22WtBMj3KiyQmkxX8Slm1OS/KUWvni+ttVM0qncaK6bzXLIpV1xpcj490fr9?= =?us-ascii?Q?I7fEMLz0y3sOKWJHzXbzcNzHAF98KeMmkE9Fr359X5lfEWsAFPHSF+Nihgea?= =?us-ascii?Q?e7ti1jLu8Scat/N5t3fgqB1pdT3lvTMgcaJJVh4gUfj92x3fi2/DoixyB2yH?= =?us-ascii?Q?HoPUeNv88t5aohCDBPga++Uvapey+HV8AtfVOieGeOgoTexGnmMzdwEhC2+c?= =?us-ascii?Q?8eHOtM0UudsSujmkJE/Rfu+MDe+8rHGiESpA?= 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:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2025 16:11:35.9934 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a2cbbe78-b810-4fa6-9d82-08ddee293834 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: SJ1PEPF000023CD.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8494 Content-Type: text/plain; charset="utf-8" From: Vlad Dumitrescu Currently, all master upper netdevices (e.g., bond, VRF) are treated equally. When a VRF netdevice is used over an IPoIB netdevice, the expected netdev resolution is on the lower IPoIB device which has the IP address assigned to it and not the VRF device. The rdma_cm module (CMA) tries to match incoming requests to a particular netdevice. When successful, it also validates that the return path points to the same device by performing a routing table lookup. Currently, the former would resolve to the VRF netdevice, while the latter to the correct lower IPoIB netdevice, leading to failure in rdma_cm. Improve this by ignoring the VRF master netdevice, if it exists, and instead return the lower IPoIB device. Signed-off-by: Vlad Dumitrescu Reviewed-by: Parav Pandit Signed-off-by: Edward Srouji --- drivers/infiniband/ulp/ipoib/ipoib_main.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband= /ulp/ipoib/ipoib_main.c index 7acafc5c0e09..5b4d76e97437 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -351,26 +351,27 @@ static bool ipoib_is_dev_match_addr_rcu(const struct = sockaddr *addr, } =20 /* - * Find the master net_device on top of the given net_device. + * Find the L2 master net_device on top of the given net_device. * @dev: base IPoIB net_device * - * Returns the master net_device with a reference held, or the same net_de= vice - * if no master exists. + * Returns the L2 master net_device with reference held if the L2 master + * exists (such as bond netdevice), or returns same netdev with reference + * held when master does not exist or when L3 master (such as VRF netdev). */ static struct net_device *ipoib_get_master_net_dev(struct net_device *dev) { struct net_device *master; =20 rcu_read_lock(); + master =3D netdev_master_upper_dev_get_rcu(dev); + if (!master || netif_is_l3_master(master)) + master =3D dev; + dev_hold(master); rcu_read_unlock(); =20 - if (master) - return master; - - dev_hold(dev); - return dev; + return master; } =20 struct ipoib_walk_data { @@ -522,7 +523,7 @@ static struct net_device *ipoib_get_net_dev_by_params( if (ret) return NULL; =20 - /* See if we can find a unique device matching the L2 parameters */ + /* See if we can find a unique device matching the pkey and GID */ matches =3D __ipoib_get_net_dev_by_params(dev_list, port, pkey_index, gid, NULL, &net_dev); =20 @@ -535,7 +536,7 @@ static struct net_device *ipoib_get_net_dev_by_params( =20 dev_put(net_dev); =20 - /* Couldn't find a unique device with L2 parameters only. Use L3 + /* Couldn't find a unique device with pkey and GID only. Use L3 * address to uniquely match the net device */ matches =3D __ipoib_get_net_dev_by_params(dev_list, port, pkey_index, gid, addr, &net_dev); --=20 2.21.3