From patchwork Fri Mar 28 14:23:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jason Gunthorpe X-Patchwork-Id: 14032074 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2059.outbound.protection.outlook.com [40.107.102.59]) (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 ECB2B1F5E6; Fri, 28 Mar 2025 14:23:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.102.59 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743171805; cv=fail; b=c6VyQnd+unvULOCHSiU/15vxQXjkc/C635gae1fW0z7k30LL4gLauvlp58i5YyGoV71LXd3t27Zpn0ids0osCMAEMsCylTJPsmDVviNAfX3+Ld9yB2LRjOVljqf6Jp7F2IG29L/iOhbu1WU58P32cT8WckDGOdySw20GfJUU+IA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743171805; c=relaxed/simple; bh=0oePHsNnybVbFMyakF1//mel5F+WVBM5eoUveYezl6s=; h=Date:From:To:Cc:Subject:Message-ID:Content-Type: Content-Disposition:MIME-Version; b=A1uQRg3yXIWlmmXthccchlm5+TEV2QgKnHv6Qbky7V/MezkiDl4Tcih2zgYmCxsdYE5/uqUWPvjrSThVDol/+ysBLm3J5kG9CVZjcKLVvhQM+8mUZiA+xirNS05RvPZ+ZTfayYz9IGVZ9XHgKmU/VDhzN6fG/pQKusqgR8u//Us= 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=QOMtFZaY; arc=fail smtp.client-ip=40.107.102.59 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="QOMtFZaY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=F5Q68D5tCahIcrXY2E7m+gyS6nP+TX56A5PGjDg0hxQHaiE1Adr0vHdI8AzS31uIQW0B72d4izLXzh4YAGb2EZH+I4I0YE3XXf0avM8x4N715dRKVyD1EqP9Fcwblh3FH++tgJmRZX+LwPtqEp5KMPEdg0vvaeTmV2QmlU/cxczL2WqqFWKaKlv3BE6AWUmn3QWEqdqjFRUl337JqcUEyhKmgcwG7Y9F+HOZRSrLwJ4lHrsXsZabxwI5q+4CuHuFbv/O+3sWqIIw1tyYcCzQR1kjhvyGmJdP/FQDowPOoT6+2Wi7gu5CUFOkIRz7N+i4s8VCKfSfMJtYk9kK/XjXBw== 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=K3dZxCqjv1VLU2291Rb+o5DoddNBH5p1YJ6o/6rOV30=; b=bp3UqUD6jtnZii7KPLdWWYy5fzfKoAhiDQbz8Y7HxHRbhJ7kP9uythFTsP6H3nkJF6mVE3XrzLtzQyLEp25v0DnrOhL6R8E75CPRk0GqFdwFJ+RR1UZb2txu0364M20Xrv/RzKCt3P/VH6kIJxqJrSbsfm0OaJSwDEQnnib47OfPL0S9S89HV9wftW4JBkY+R5E/F/A+oVpVMRvtspS4/auN7K4Gr+AF//H4yz0Mi57YStE2Tpcg2ivncvRnehj+x1xuPzCIXWsLersq0MTewjxRogw3QjPzDvaybgCEORGyzRuJAnYdgtTqyeOeDF/Jvv/5ZQncxucHNYuk4IfNnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; 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=K3dZxCqjv1VLU2291Rb+o5DoddNBH5p1YJ6o/6rOV30=; b=QOMtFZaYpC5J9DO+Hqgt2n8pR8vsztpWAgD9upqKlTJ5s+GENPwo+mT7hmFqpWblQPwShXQDy4pGs6aYV4IPpukLEp9/hI9liBNJlDAj+4K7t7tna64Nbn6s1vHClpgtJHOeIznZPkjuQ06ON+XWxOmfbcdM7kgZjL2bqoz/9HR2+v6BlEWGpYs9WQJSSPprZBdZniv1QGpk/01DAmpFp8JehagTA9HKKoiCoHKkAjCgMWdGAnHFbuclSUqkzGqVSYCOPDf7qVZRL2krpk5lsViyq/fIXHTzTeSXHvdQJOOm7wgBUPv00L/hU2BroUPFfsbMXOi+C/hKhmDIMBnwnQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) by MN0PR12MB6174.namprd12.prod.outlook.com (2603:10b6:208:3c5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.44; Fri, 28 Mar 2025 14:23:15 +0000 Received: from CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.8534.043; Fri, 28 Mar 2025 14:23:14 +0000 Date: Fri, 28 Mar 2025 11:23:13 -0300 From: Jason Gunthorpe To: Linus Torvalds Cc: linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, Leon Romanovsky Subject: [GIT PULL] Please pull RDMA subsystem changes Message-ID: <20250328142313.GA117859@nvidia.com> Content-Disposition: inline X-ClientProxiedBy: BL1PR13CA0278.namprd13.prod.outlook.com (2603:10b6:208:2bc::13) To CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) Precedence: bulk X-Mailing-List: linux-rdma@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|MN0PR12MB6174:EE_ X-MS-Office365-Filtering-Correlation-Id: f7202310-ef02-4bf1-2f84-08dd6e041398 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?j8kqpxQiUJXOUX6cxa4MkHEOhkxAX0x?= =?utf-8?q?E/cnutJg8lN/H9jPLpt1GaXDlIVZ3O6HSnbzYuUK7UpzMr7zk03II3/cQBo7cOVCn?= =?utf-8?q?8vVhg6WyvlpWlnTVx6jZ5H3bjb4dNGDrwi3dz+9h6wkwXNiUoYmxPvothHiM2dVHy?= =?utf-8?q?IDTJpgkVRIskunNaEu/jSkzCPUb7z5BDooSNuAbgimczETsSDAUN6VwzSnu7jQyVp?= =?utf-8?q?PCHU2mlDHplzSKsSQ2YqPHQegSPACvStL8V4Xe0WBajioPZuYPwYYrga/1YBSd4hX?= =?utf-8?q?OvawjuLz6jZy4YXsAwH7bCggXeDRvHgRlycLU2WDNBwyFR5imNXu3x+2txdrIP2Wm?= =?utf-8?q?TzV1z1Esu/Bs38d7G3//2MBo4U7XVIQO6bmSD9d8OAp6uESP6bdrXO1+pENigokCE?= =?utf-8?q?fZ0o/OjdQvYK+dADaYB81Poy/xJ5wjDhc7nODLUF5TOCQQ0vA/sDnw29nDWsmdDr2?= =?utf-8?q?fgZGgRTTyC69PHbXy8Wo7BQ8HIEtOmAxUkQflXTtqZPni3pfQpFpUmW7Mb0ZUWYkp?= =?utf-8?q?mWlAGes0dir/QimjezwZcQ71Lvq6uH66IyXbJPj+2VivYUhqWVaZcgERbHol7HZVi?= =?utf-8?q?z+NJjJqsARTb9V6jc/Ip+bzo32FvCINu3qYVnrETB1myLE72YYq3YtZEdN74/qij/?= =?utf-8?q?HNz76XeXdouVTYTEyxIIJC0Jzm/GA5HwvseN4QYoLXwCdIRP5bTx932wfd7B01EXX?= =?utf-8?q?M9fHx3SVIiO97G4SXmWbOzxgFfNqvGCP10KjPfSoUwkJ06vDXDONzoKSzsVBh+o7C?= =?utf-8?q?rdxTelUEQj5i8BzZjR0tg8EiGq0EJujnByFSx2kKKYRN7svh3xhxDkrRayrbEjTxR?= =?utf-8?q?rl2KX6EPwU7yWh8mNvhV2Hz4TIMbtdBxT6vhlEFXKVQh1CxrfNM4mCsjjr+NLV3Ip?= =?utf-8?q?XPGDPoeUWd206mWRkx46chLvCxHEhQds4Q2HzJEWHRLihS5DO70cD3AUuTblL9UJs?= =?utf-8?q?+e+apJIoH7bJL+XsEUDxVYQMkzLsXfXZNt5cMrV/6eCGUI/3hOI+n5V4kmclrRzhy?= =?utf-8?q?Yah13feYQSQIY1oZ2V0t1qXzrbO8ktBtwAlnmbAQsZhrA/vjU11YvuOuJnTcZFe8/?= =?utf-8?q?dBiLzTo32+QMshC0F0sOhA1B4totTLmwRTQA6LnmtO5Zph35el0l+JslzQFahNCbo?= =?utf-8?q?ThjsmlEuqRL5ZtpsERxTNV8cnEyAk2jiAbE7uXAiGtuKuZozZijCG8VMl3XjmequB?= =?utf-8?q?VP4sYPTgrSvMMUUyEP4+QdJWtZi5u0TIwiRXpLjq45Qu/e3xgN32HqSND8KnpMW0K?= =?utf-8?q?I36AGXHAyVH3jvgY/vhJcqGVOxQLPi7ZeV11rrRcnuoxxNdOSmhqkx6Q/cOm79aXx?= =?utf-8?q?YP+VwM+pJJHeMPXJUDdjUX3f/WdHXhpPJIlA/GjcGXXrg44V3MI4RFg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?UQbc7YwEJDBI40AAwhvgFI8zQM5l?= =?utf-8?q?j/Yh5qoxaUjYx/sSGv5jGI11CJ9LLrYoJjqfwcD/T7nEp1sMU1ZFOlZUbJz9apGYD?= =?utf-8?q?LvLJ+a0Gd4hJhFTkik1Qx/DpwDbaFzt6T0+9A9VwGggITTCow4oJd7kZys+RNSauF?= =?utf-8?q?ykwQLBoaGqefzF9Dx5jX0mAoqLKJjrr2TTBwxLWeKq+LTWPVurkos6frrD79MZhRx?= =?utf-8?q?iKh09iglPWV1jMVfbSiIAXf63tNsuJn3+QLTdc/G9XIRNsRgv85EDbxYlHln9xQ8W?= =?utf-8?q?w627TUHSnaecAW1fMzd0KbGNV7LTeorLLxAtsPBXWBNXE760bLmzlYgpKduJXJ/ob?= =?utf-8?q?VGt97MPeUBXZYHOOAqL2CsW2Zn3Q/xeEwrsbnOpv4+MseIOcXRbOE4NLvxQkflc39?= =?utf-8?q?zCci9jO20FGee8stOpwOENSFFw7yVugc/Zv2IiqIBs55nExjmZBvxrx4hO2RUhjNP?= =?utf-8?q?V+VNYl+sk9+BqMh0CMen3jJDmRd1/E7un0gjw1OHC3ine8Nvs3rUvqvK9MeKbDMx2?= =?utf-8?q?ZgV8QNrOg0qAFtgWfxTAzqtno5rQzfBC0tYP4kAAF/OMa/G6SlF97CvbNSzWfvf53?= =?utf-8?q?8a7Lr2fCHASL4jNNWRA/HsNoo7ZFKZ8WdwiBwTJ0zcll2gyv+s34roHeZgKSTNwdf?= =?utf-8?q?IbmOcpOhHNsgAQN638Tj0PDUvHWhex23bMuzUsJh4sj32S2R8M1iaDmhFZtKLpqWE?= =?utf-8?q?L9UdzGu2JJbKLeFt5gDcTQDWXu5SY7GRLsZGM2F/DRVYsDt6PLUsdUdagnD/AYKZU?= =?utf-8?q?EnD240rzpGOkIAJM5O892AmSiF0aCe2cwPtQ4+ZTuK8X1GAfOLz3l5uMqyt7bx8wG?= =?utf-8?q?qCUnN0LnxuLYba1Qf8R0nFxhb796HDUuRtEEw+svPR8gQomj5swx18+TKCoQKxeys?= =?utf-8?q?t69t6aOXZJWjTAl24JxFgzK3NhjpeSaJZiuwGIQZUvRtPRGQ7T9ZgGBn57gbHgxVL?= =?utf-8?q?pgmHio6P7JwMu7+NF62JhRlQRSzLgwCv0CS8nVvFB/mY+nH74yt8RZQuVadKyrKFs?= =?utf-8?q?Aa9ZCuYVnvWd4y2I0Loni5R/yAjQQ+gz7XWig3JOA5Vvgh1naHDn0WKlnlDHNDr68?= =?utf-8?q?3F7Wl88Z2wHeYJl82aJ2A9iWGs+DcevUksnfH/H5IMAH0aEEoBUxk1pWPm/hxQ0eD?= =?utf-8?q?/uub9F2fF9hENxcpyKCtZTJUErQDyIQFTf4+FRsxFLbY93MkSLXJH5XA2fh+mYPud?= =?utf-8?q?/AwSlBLHdX8z42jPszyI++6/OcURUxzmNdTifBvlpCPer6M+q5R/NTEb3cPPuIVg1?= =?utf-8?q?bPYdqoHCwXIrmdZ8Qi9pFCo2slAI5rgg4eyyfjrd2GMVP88WQ7B/pUv91zYQlGHzC?= =?utf-8?q?6vypGSqHCCost79UNpSBV4Nd3vw79zZkxFONXQezHSMvRwjuoBn9rvwTt/LQ+Ppfv?= =?utf-8?q?rLp7/xLGfLrgJUoihD5XXnA9jwP+Q7sFd5PtiF/KcZde1HGJnFR36a/bBcxtekOVc?= =?utf-8?q?da9n/4RwpOQvvQXDIvKVyY7iOoOSa6HLkduELqCvmjzKauLzt+paPcTCrAS+xOQAk?= =?utf-8?q?29rvC0auXLG+?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f7202310-ef02-4bf1-2f84-08dd6e041398 X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Mar 2025 14:23:14.7511 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: eEBz0d+R1AWMHWlMSwJd5L01zYC8aeF/+BtR+YtQCJEFJnxCCS4zHk6e2N0uebXR X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6174 Hi Linus, There is a bigger merge conflict in rxe against the rc branch. I've provided the for-linus-merged tag with a merge to v6.14 containing the resolution from linux-next. Here is the diff: +++ b/drivers/infiniband/hw/mlx5/mr.c @@@ -2031,7 -2023,8 +2032,9 @@@ static int mlx5_revoke_mr(struct mlx5_i struct mlx5_ib_dev *dev = to_mdev(mr->ibmr.device); struct mlx5_cache_ent *ent = mr->mmkey.cache_ent; bool is_odp = is_odp_mr(mr); + bool is_odp_dma_buf = is_dmabuf_mr(mr) && + !to_ib_umem_dmabuf(mr->umem)->pinned; + bool from_cache = !!ent; int ret = 0; if (is_odp) +++ b/drivers/infiniband/sw/rxe/rxe.c @@@ -71,45 -72,10 +69,39 @@@ static void rxe_init_device_param(struc rxe->attr.max_pkeys = RXE_MAX_PKEYS; rxe->attr.local_ca_ack_delay = RXE_LOCAL_CA_ACK_DELAY; - ndev = rxe_ib_device_get_netdev(&rxe->ib_dev); - if (!ndev) - return; - + if (ndev->addr_len) { + memcpy(rxe->raw_gid, ndev->dev_addr, + min_t(unsigned int, ndev->addr_len, ETH_ALEN)); + } else { + /* + * This device does not have a HW address, but + * connection mangagement requires a unique gid. + */ + eth_random_addr(rxe->raw_gid); + } + addrconf_addr_eui48((unsigned char *)&rxe->attr.sys_image_guid, - ndev->dev_addr); + rxe->raw_gid); - dev_put(ndev); - rxe->max_ucontext = RXE_MAX_UCONTEXT; + + if (IS_ENABLED(CONFIG_INFINIBAND_ON_DEMAND_PAGING)) { + rxe->attr.kernel_cap_flags |= IBK_ON_DEMAND_PAGING; + + /* IB_ODP_SUPPORT_IMPLICIT is not supported right now. */ + rxe->attr.odp_caps.general_caps |= IB_ODP_SUPPORT; + + rxe->attr.odp_caps.per_transport_caps.ud_odp_caps |= IB_ODP_SUPPORT_SEND; + rxe->attr.odp_caps.per_transport_caps.ud_odp_caps |= IB_ODP_SUPPORT_RECV; + rxe->attr.odp_caps.per_transport_caps.ud_odp_caps |= IB_ODP_SUPPORT_SRQ_RECV; + + rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_SEND; + rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_RECV; + rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_WRITE; + rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_READ; + rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_ATOMIC; + rxe->attr.odp_caps.per_transport_caps.rc_odp_caps |= IB_ODP_SUPPORT_SRQ_RECV; + } } /* initialize port attributes */ @@@ -141,18 -107,13 +133,13 @@@ static void rxe_init_port_param(struct /* initialize port state, note IB convention that HCA ports are always * numbered from 1 */ -static void rxe_init_ports(struct rxe_dev *rxe, struct net_device *ndev) +static void rxe_init_ports(struct rxe_dev *rxe) { struct rxe_port *port = &rxe->port; - struct net_device *ndev; rxe_init_port_param(port); - ndev = rxe_ib_device_get_netdev(&rxe->ib_dev); - if (!ndev) - return; addrconf_addr_eui48((unsigned char *)&port->port_guid, - ndev->dev_addr); + rxe->raw_gid); - dev_put(ndev); spin_lock_init(&port->port_lock); } @@@ -170,12 -131,12 +157,12 @@@ static void rxe_init_pools(struct rxe_d } /* initialize rxe device state */ - static void rxe_init(struct rxe_dev *rxe) + static void rxe_init(struct rxe_dev *rxe, struct net_device *ndev) { /* init default device parameters */ - rxe_init_device_param(rxe); + rxe_init_device_param(rxe, ndev); - rxe_init_ports(rxe, ndev); + rxe_init_ports(rxe); rxe_init_pools(rxe); /* init pending mmap list */ Thanks, Jason The tag for-linus-merged with my merge resolution to your tree is also available to pull. The following changes since commit 15b103df80b25025040faa8f35164c2595977bdb: net/mlx5: fs, add RDMA TRANSPORT steering domain support (2025-03-08 13:22:49 -0500) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus for you to fetch changes up to 37826f0a8c2f6b6add5179003b8597e32a445362: IB/mad: Check available slots before posting receive WRs (2025-03-19 04:43:03 -0400) ---------------------------------------------------------------- RDMA v6.15 merge window pull request - Usual minor updates and fixes for bnxt_re, hfi1, rxe, mana, iser, mlx5, vmw_pvrdma, hns - Make rxe work on tun devices - mana gains more standard verbs as it moves toward supporting in-kernel verbs - DMABUF support for mana - Fix page size calculations when memory registration exceeds 4G - On Demand Paging support for rxe - mlx5 support for RDMA TRANSPORT flow tables and a new ucap mechanism to access control use of them - Optional RDMA_TX/RX counters per QP in mlx5 ---------------------------------------------------------------- Cheng Xu (1): RDMA/erdma: Prevent use-after-free in erdma_accept_newconn() Chiara Meiohas (6): RDMA/uverbs: Introduce UCAP (User CAPabilities) API RDMA/mlx5: Create UCAP char devices for supported device capabilities RDMA/uverbs: Add support for UCAPs in context creation RDMA/mlx5: Check enabled UCAPs when creating ucontext docs: infiniband: document the UCAP API RDMA/mlx5: Fix calculation of total invalidated pages Christian Göttsche (1): RDMA/mlx5: Reorder capability check last Daisuke Matsuda (7): RDMA/rxe: Move some code to rxe_loc.h in preparation for ODP RDMA/rxe: Add page invalidation support RDMA/rxe: Allow registering MRs for On-Demand Paging RDMA/rxe: Add support for Send/Recv/Write/Read with ODP RDMA/rxe: Add support for the traditional Atomic operations with ODP RDMA/rxe: Improve readability of ODP pagefault interface RDMA/rxe: Fix incorrect return value of rxe_odp_atomic_op() Dan Carpenter (3): RDMA/mana_ib: Fix error code in probe() RDMA/bnxt_re: Fix buffer overflow in debugfs code RDMA/mana_ib: Use safer allocation function() Dr. David Alan Gilbert (2): RDMA/hfi1: Remove unused one_qsfp_write RDMA/vmw_pvrdma: Remove unused pvrdma_modify_device Eric Biggers (3): RDMA/rxe: switch to using the crc32 library RDMA/irdma: Switch to using the crc32c library RDMA/siw: Switch to using the crc32c library Guofeng Yue (1): RDMA/hns: Inappropriate format characters cleanup Imanol (1): IB/iser: fix typos in iscsi_iser.c comments Kees Bakker (1): RDMA/mana_ib: Ensure variable err is initialized Konstantin Taranov (16): RDMA/mana_ib: Allow registration of DMA-mapped memory in PDs RDMA/mana_ib: implement get_dma_mr RDMA/mana_ib: helpers to allocate kernel queues RDMA/mana_ib: create kernel-level CQs RDMA/mana_ib: Create and destroy UD/GSI QP RDMA/mana_ib: UD/GSI QP creation for kernel RDMA/mana_ib: create/destroy AH net/mana: fix warning in the writer of client oob RDMA/mana_ib: UD/GSI work requests RDMA/mana_ib: implement req_notify_cq RDMA/mana_ib: extend mana QP table RDMA/mana_ib: polling of CQs for GSI/UD RDMA/mana_ib: indicate CM support RDMA/mana_ib: request error CQEs when supported RDMA/mana_ib: Implement DMABUF MR support RDMA/mana_ib: Fix integer overflow during queue creation Leon Romanovsky (2): Merge branch 'mlx5-next' into wip/leon-for-next Add support and infrastructure for RDMA TRANSPORT Long Li (2): net: mana: Change the function signature of mana_get_primary_netdev_rcu RDMA/mana_ib: Handle net event for pointing to the current netdev Maher Sanalla (5): IB/cache: Add log messages for IB device state changes RDMA/core: Use ib_port_state_to_str() for IB state sysfs IB/hfi1: Remove state transition log message and opa_lstate_name() RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject() IB/mad: Check available slots before posting receive WRs Michael Guralnik (4): RDMA/mlx5: Fix MR cache initialization error flow RDMA/mlx5: Fix cache entry update on dereg error RDMA/mlx5: Drop access_flags from _mlx5_mr_cache_alloc() RDMA/mlx5: Fix page_size variable overflow Michael Margolin (1): RDMA/core: Fix best page size finding when it can cross SG entries Nicolas Bouchinet (1): RDMA/core: Fixes infiniband sysctl bounds Patrisious Haddad (8): RDMA/mlx5: Expose RDMA TRANSPORT flow table types to userspace RDMA/mlx5: Add optional counters for RDMA_TX/RX_packets/bytes RDMA/core: Create and destroy rdma_counter using rdma_zalloc_drv_obj() RDMA/core: Add support to optional-counters binding configuration RDMA/core: Pass port to counter bind/unbind operations RDMA/mlx5: Compile fs.c regardless of INFINIBAND_USER_ACCESS config RDMA/mlx5: Support optional-counters binding for QPs RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow Preethi G (1): RDMA/bnxt_re: Support perf management counters Roman Gushchin (1): RDMA/core: Don't expose hw_counters outside of init net namespace Selvin Xavier (2): RDMA/bnxt_re: Congestion control settings using debugfs hook RDMA/bnxt_re: Fix the condition check while programming congestion control Shiraz Saleem (2): RDMA/mana_ib: Query feature_flags bitmask from FW RDMA/mana_ib: Add port statistics support Wang Liang (1): RDMA/core: Fix use-after-free when rename device name Zhu Yanjun (3): RDMA/rxe: Replace netdev dev addr with raw_gid RDMA/rxe: Add query_gid support RDMA/rxe: Make rping work with tun device Documentation/infiniband/index.rst | 1 + Documentation/infiniband/ucaps.rst | 71 +++ drivers/infiniband/core/Makefile | 3 +- drivers/infiniband/core/cache.c | 6 + drivers/infiniband/core/cma.c | 24 +- drivers/infiniband/core/counters.c | 52 +- drivers/infiniband/core/device.c | 20 +- drivers/infiniband/core/iwcm.c | 4 +- drivers/infiniband/core/mad.c | 38 +- drivers/infiniband/core/nldev.c | 18 +- drivers/infiniband/core/sysfs.c | 15 +- drivers/infiniband/core/ucaps.c | 267 +++++++++ drivers/infiniband/core/ucma.c | 4 +- drivers/infiniband/core/umem.c | 36 +- drivers/infiniband/core/uverbs_cmd.c | 163 +++--- drivers/infiniband/core/uverbs_main.c | 2 + drivers/infiniband/core/uverbs_std_types_device.c | 4 + drivers/infiniband/core/verbs.c | 13 +- drivers/infiniband/hw/bnxt_re/bnxt_re.h | 6 + drivers/infiniband/hw/bnxt_re/debugfs.c | 215 ++++++- drivers/infiniband/hw/bnxt_re/debugfs.h | 15 + drivers/infiniband/hw/bnxt_re/hw_counters.c | 92 +++ drivers/infiniband/hw/bnxt_re/ib_verbs.c | 36 ++ drivers/infiniband/hw/bnxt_re/ib_verbs.h | 6 + drivers/infiniband/hw/bnxt_re/main.c | 1 + drivers/infiniband/hw/erdma/erdma_cm.c | 1 - drivers/infiniband/hw/hfi1/chip.c | 18 - drivers/infiniband/hw/hfi1/chip.h | 1 - drivers/infiniband/hw/hfi1/driver.c | 2 +- drivers/infiniband/hw/hfi1/mad.c | 4 +- drivers/infiniband/hw/hfi1/qsfp.c | 20 - drivers/infiniband/hw/hfi1/qsfp.h | 2 - drivers/infiniband/hw/hns/hns_roce_mr.c | 2 +- drivers/infiniband/hw/hns/hns_roce_qp.c | 2 +- drivers/infiniband/hw/hns/hns_roce_srq.c | 2 +- drivers/infiniband/hw/irdma/Kconfig | 1 + drivers/infiniband/hw/irdma/main.h | 1 - drivers/infiniband/hw/irdma/osdep.h | 6 +- drivers/infiniband/hw/irdma/puda.c | 19 +- drivers/infiniband/hw/irdma/puda.h | 5 +- drivers/infiniband/hw/irdma/utils.c | 47 +- drivers/infiniband/hw/mana/Makefile | 2 +- drivers/infiniband/hw/mana/ah.c | 58 ++ drivers/infiniband/hw/mana/counters.c | 105 ++++ drivers/infiniband/hw/mana/counters.h | 44 ++ drivers/infiniband/hw/mana/cq.c | 228 +++++++- drivers/infiniband/hw/mana/device.c | 82 ++- drivers/infiniband/hw/mana/main.c | 103 +++- drivers/infiniband/hw/mana/mana_ib.h | 210 ++++++- drivers/infiniband/hw/mana/mr.c | 105 ++++ drivers/infiniband/hw/mana/qp.c | 245 +++++++- drivers/infiniband/hw/mana/shadow_queue.h | 115 ++++ drivers/infiniband/hw/mana/wr.c | 168 ++++++ drivers/infiniband/hw/mlx5/Makefile | 2 +- drivers/infiniband/hw/mlx5/counters.c | 195 ++++++- drivers/infiniband/hw/mlx5/counters.h | 15 + drivers/infiniband/hw/mlx5/cq.c | 2 +- drivers/infiniband/hw/mlx5/devx.c | 41 +- drivers/infiniband/hw/mlx5/devx.h | 5 +- drivers/infiniband/hw/mlx5/fs.c | 637 ++++++++++++++++++++- drivers/infiniband/hw/mlx5/fs.h | 17 +- drivers/infiniband/hw/mlx5/main.c | 77 ++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 23 + drivers/infiniband/hw/mlx5/mr.c | 52 +- drivers/infiniband/hw/mlx5/odp.c | 10 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 28 - drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 2 - drivers/infiniband/sw/rxe/Kconfig | 3 +- drivers/infiniband/sw/rxe/Makefile | 2 + drivers/infiniband/sw/rxe/rxe.c | 40 +- drivers/infiniband/sw/rxe/rxe.h | 38 -- drivers/infiniband/sw/rxe/rxe_icrc.c | 40 +- drivers/infiniband/sw/rxe/rxe_loc.h | 35 +- drivers/infiniband/sw/rxe/rxe_mr.c | 13 +- drivers/infiniband/sw/rxe/rxe_odp.c | 326 +++++++++++ drivers/infiniband/sw/rxe/rxe_req.c | 1 - drivers/infiniband/sw/rxe/rxe_resp.c | 18 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 24 +- drivers/infiniband/sw/rxe/rxe_verbs.h | 42 +- drivers/infiniband/sw/siw/Kconfig | 4 +- drivers/infiniband/sw/siw/siw.h | 37 +- drivers/infiniband/sw/siw/siw_main.c | 22 +- drivers/infiniband/sw/siw/siw_qp.c | 54 +- drivers/infiniband/sw/siw/siw_qp_rx.c | 23 +- drivers/infiniband/sw/siw/siw_qp_tx.c | 44 +- drivers/infiniband/sw/siw/siw_verbs.c | 3 - drivers/infiniband/ulp/iser/iscsi_iser.c | 8 +- drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 120 +++- .../ethernet/mellanox/mlx5/core/esw/acl/helper.c | 2 +- .../net/ethernet/mellanox/mlx5/core/esw/legacy.c | 2 +- .../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 6 +- drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 2 + drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 178 +++++- drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 12 +- .../net/ethernet/mellanox/mlx5/core/fs_ft_pool.c | 6 +- .../net/ethernet/mellanox/mlx5/core/fs_ft_pool.h | 2 - drivers/net/ethernet/mellanox/mlx5/core/fw.c | 7 + .../ethernet/mellanox/mlx5/core/lib/fs_chains.c | 3 +- drivers/net/ethernet/mellanox/mlx5/core/main.c | 1 + drivers/net/ethernet/microsoft/mana/gdma_main.c | 7 +- drivers/net/ethernet/microsoft/mana/mana_en.c | 22 +- include/linux/mlx5/device.h | 16 +- include/linux/mlx5/driver.h | 6 + include/linux/mlx5/fs.h | 12 +- include/linux/mlx5/mlx5_ifc.h | 53 +- include/net/mana/gdma.h | 7 + include/net/mana/mana.h | 4 +- include/rdma/ib_ucaps.h | 30 + include/rdma/ib_verbs.h | 30 +- include/rdma/rdma_counter.h | 7 +- include/rdma/uverbs_std_types.h | 2 +- include/uapi/rdma/ib_user_ioctl_cmds.h | 1 + include/uapi/rdma/mlx5_user_ioctl_cmds.h | 1 + include/uapi/rdma/mlx5_user_ioctl_verbs.h | 2 + include/uapi/rdma/rdma_netlink.h | 2 + 115 files changed, 4433 insertions(+), 703 deletions(-) (diffstat from tag for-linus-merged) diff --cc drivers/infiniband/hw/mlx5/mr.c index 2080458cabd1ca,753faa9ad06a88..b7c8c926c57870 --- a/drivers/infiniband/hw/mlx5/mr.c diff --cc drivers/infiniband/sw/rxe/rxe.c index 4e56a371deb5ff,e27478fe9456c9..c83e2cf8274814 --- a/drivers/infiniband/sw/rxe/rxe.c