From nobody Mon Jun 22 18:37:53 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gkcQH0Lksz6hnJs for ; Mon, 22 Jun 2026 18:37:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gkcQG4d1rz3p5f for ; Mon, 22 Jun 2026 18:37:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782153478; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BOF+4rTS4AO3Z3tadVvajE6JDVOPg7ncNpEmMAOYTSk=; b=mPIbdTGxvLIoxuFgLWFgNHkRbSLPs3ogcIJ+hAC6OZJxl4DMs7TskMgE2bcrXd8TLAi1wA bf8WnVeMJAJmgfYIQbHBsxomEHN0jpt4VytnKfWyITxZ+o/syS6H7IEZcmLrq3Okx/JAfD mMiFz9sUgf66UK9pfLJco071nENs7nAn+Cy5dM4VRTgoa7c1/lDkNlPGvt6YevCqjH5Z3T KdyPUlkddIEPbnQRkgDA6q7CGvmyMVfc0eIJgxkpPWJ0Eh8sGiO3dp0cwT9kUDU+pQzZp+ jnQ2UUjxlATR288wVmTY3i2WjJWp5cmN4GXqn4oLm6CTh1qp2Tv52qizKNxrBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1782153478; a=rsa-sha256; cv=none; b=JKngkQkMMJ4hMoRcY/FbmEgFiTBj2OfOFvQT8mA2SzXDUk34CwAgmmxhaXhRouB2HCB+VF wFeAzSHL+KLOgwQ6P1F0sFjJw7dgwF3cwdTq1Y0y0KzKnvPk+8KTGk/T3sTANeNs+2Hh1/ thjVrxpOjZ+K+UjpB9lUK1yJTgVqcx5wE572PGqzMgOjpuO09/IjV+WP28tyMwA/4pDla3 BontPO1tctpXpb6ZTflbdu7kr4/xEOdXBXz6hk7oELHLMItGKKtBaQSjFElKqPdrchOTmt H3lZRsUadc0ARyLsiGnVgS8bgWDhoCp7DH0Docb91yLpsjlo+s2goTbtLLiI6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782153478; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BOF+4rTS4AO3Z3tadVvajE6JDVOPg7ncNpEmMAOYTSk=; b=mV0r44rMPWfkNJWZhG/0CZOlUMcu3ifVk0NLj5ywUeCImUhfokPNXIJ3gQi3lJU2jVqrUy LBa4Tvs/JsVM351ruUGAJV2FfgczJHwoVJPiz8tAzlK0ZlZ3g2C1l473A7YeXYq6ImmEMT 2dKTEXbviD7qgqgc7Y/XBqUF2F/zI+g21lV80KLWj65yZMxX6IvlkuU1RD3Jsmc3D9DOl8 WGTPKo3WqhieWG8YNbhW3eLg+VEBS9A+Fy992jORKEn1zpQjHKIuTcd5WxZ+SzhWwuoJ+G szOJKHCvazHxHbJTcIG8IaPkmuW0DOGnc4tnCPX+euXd6c2P0QzUwRlSYtrdeA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gkcQG3QtGz10D5 for ; Mon, 22 Jun 2026 18:37:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31bed by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 22 Jun 2026 18:37:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 49ee94b291b4 - main - IB/ipoib: Prevent hung task or softlockup processing multicast response List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 49ee94b291b424caaafd456d52f0aa9da6ba168c Auto-Submitted: auto-generated Date: Mon, 22 Jun 2026 18:37:53 +0000 Message-Id: <6a398101.31bed.5a71a739@gitrepo.freebsd.org> The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=49ee94b291b424caaafd456d52f0aa9da6ba168c commit 49ee94b291b424caaafd456d52f0aa9da6ba168c Author: John Baldwin AuthorDate: 2026-05-28 15:50:58 +0000 Commit: John Baldwin CommitDate: 2026-06-22 18:36:53 +0000 IB/ipoib: Prevent hung task or softlockup processing multicast response Tested by: Wafa Hamzah (mlx5_ib) Tested by: John Baldwin (iw_cxgbe) Obtained from: Linux commit 3874397c0bdec3c21ce071711cd105165179b8eb Sponsored by: Chelsio Communications --- sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c | 13 ++++++++----- sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +- sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 7 +++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c index f3d377d513a8..eb4fb67ca11c 100644 --- a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c +++ b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c @@ -59,21 +59,24 @@ struct ipoib_ah *ipoib_create_ah(struct ipoib_dev_priv *priv, struct ib_pd *pd, struct ib_ah_attr *attr) { struct ipoib_ah *ah; + struct ib_ah *vah; ah = kmalloc(sizeof *ah, GFP_KERNEL); if (!ah) - return NULL; + return ERR_PTR(-ENOMEM); ah->priv = priv; ah->last_send = 0; kref_init(&ah->ref); - ah->ah = ib_create_ah(pd, attr, RDMA_CREATE_AH_SLEEPABLE); - if (IS_ERR(ah->ah)) { + vah = ib_create_ah(pd, attr, RDMA_CREATE_AH_SLEEPABLE); + if (IS_ERR(vah)) { kfree(ah); - ah = NULL; - } else + ah = (struct ipoib_ah *)vah; + } else { + ah->ah = vah; ipoib_dbg(priv, "Created ah %p\n", ah->ah); + } return ah; } diff --git a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c index fb1e34cfb215..d37021a54eb8 100644 --- a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -535,7 +535,7 @@ path_rec_completion(int status, struct ib_sa_path_rec *pathrec, void *path_ptr) spin_lock_irqsave(&priv->lock, flags); - if (ah) { + if (!IS_ERR_OR_NULL(ah)) { path->pathrec = *pathrec; old_ah = path->ah; diff --git a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c index 3e8954eba4e4..23cf5c8458d8 100644 --- a/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +++ b/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c @@ -211,8 +211,11 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast, av.grh.dgid = mcast->mcmember.mgid; ah = ipoib_create_ah(priv, priv->pd, &av); - if (!ah) { - ipoib_warn(priv, "ib_address_create failed\n"); + if (IS_ERR(ah)) { + ipoib_warn(priv, "ib_address_create failed %ld\n", + -PTR_ERR(ah)); + /* use original error */ + return PTR_ERR(ah); } else { spin_lock_irq(&priv->lock); mcast->ah = ah;