From nobody Tue Sep 15 14:48:00 2026 X-Original-To: dev-commits-src-main@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 4hklHh6sK3z6sKS3 for ; Tue, 15 Sep 2026 14:48:00 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hklHh4Sc0z4P48 for ; Tue, 15 Sep 2026 14:48:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789483680; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5TzG5WHWFZOp3RWiyHzAp8d1ABhPYy4WeEqL/R/mBmY=; b=QWURAHRCWux/0wO7Pvalh7GypZumICfpJ35IAy2RDCGRnULNu84tgrDf4Vx25Jxv/bNOzN 2AE1peUu+mouoDTiqsz/IGjIk/VD6vQf3xAHQ9MTIt+4gg1QWS1snYESe6Dd5N31uU033c tfprhp/L2I0K2+Cw+UDZpU433p5CAWbplzTnOSQsP9wjK02rZNFNdePTc4jR90H7ACTcq5 DR8Y+OI9GsyYQR3jBCCGC5GCyUWM8BK7X0Ap+4qaX9LLjhX7WzHHDaJruKLEBfxK/hve35 66KemcynVKlgTP0ra3M3Mxx95moiOC/VmNz9YpGz+bjbtpC17R/C8zhKEcBHOA== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789483680; b=swVgJD98icT5LP0sutNtnbLd2Xtuea3myYj5slj3P02GoMRv8UkHrzZKYDzxwhofdo7jfV ET4Our0NLsGBSMygOq947fmzFktWainEhZQNZRJzhxzSWMdjle++e56/1xllvQ8TraX8LR qaaBOB171VUyHzFtMDS3SftUyyjbBCi6xk1F8AGH9wyl42lsDwoVgaL3CiC96Jk1uLZyU0 mbeLLqSb56jeJmBHHuJ+M3o8deZsO2tCQeNEYZYsNXyKXhde7NMBHS4xPKQdxbr8BRo2Kq CJOTkqE+WaOY34d9xVEfCLchCCD/ufPiUw1YnD2MU1keQK946zLhZ8RTVKHnhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789483680; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5TzG5WHWFZOp3RWiyHzAp8d1ABhPYy4WeEqL/R/mBmY=; b=rgJILfqxW4HMXbVhdIUyGE5EBpqECzTN7gYGLgitSIQ0k++WTzmZtQhrK+h8bXug0cvgLr tNJ7VonwONFeo8jo0amijU0albnEd+PvSH4o/SB+3m11gh2eBCJkEH9MJFvHyoCw/g2VST khUyGjfVPSolqChqdBnqYd+BcWk5xWxEGFEQpPDM1//NL643Hd9xAfxu7/HjOdM7xkVKuB cObnsMNv0gi/XQ53/33u8I5mcqAIfoqyUW+agShLLxaNSOO5xBpUWnFvfCHPnPC8THe5XM NcNll2VguRt6oBYp1yVYqsMHKSeHh6VpcSNhp4cFQY9heSfiYaMi6cbFCWPOpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hklHh3XdFz14nC for ; Tue, 15 Sep 2026 14:48:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 381a2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 15 Sep 2026 14:48:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Greg KH From: John Baldwin Subject: git: a83be0b237bc - main - iw_cxgbe: Do not dma memory off of the stack List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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: a83be0b237bccff39301fbaa43353f2dbd34e719 Auto-Submitted: auto-generated Date: Tue, 15 Sep 2026 14:48:00 +0000 Message-Id: <6aa95aa0.381a2.9547377@gitrepo.freebsd.org> The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=a83be0b237bccff39301fbaa43353f2dbd34e719 commit a83be0b237bccff39301fbaa43353f2dbd34e719 Author: Greg KH AuthorDate: 2019-10-01 16:56:11 +0000 Commit: John Baldwin CommitDate: 2026-09-15 14:22:40 +0000 iw_cxgbe: Do not dma memory off of the stack Obtained from: Linux commit 3840c5b78803b2b6cc1ff820100a74a092c40cbb --- sys/dev/cxgbe/iw_cxgbe/mem.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/sys/dev/cxgbe/iw_cxgbe/mem.c b/sys/dev/cxgbe/iw_cxgbe/mem.c index 61f7888ca1cb..117a2efdfc0e 100644 --- a/sys/dev/cxgbe/iw_cxgbe/mem.c +++ b/sys/dev/cxgbe/iw_cxgbe/mem.c @@ -206,13 +206,17 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry, struct c4iw_wr_wait *wr_waitp) { int err; - struct fw_ri_tpte tpt; + struct fw_ri_tpte *tpt; u32 stag_idx; static atomic_t key; if (c4iw_stopped(rdev)) return -EIO; + tpt = kmalloc(sizeof(*tpt), GFP_KERNEL); + if (!tpt) + return -ENOMEM; + stag_state = stag_state > 0; stag_idx = (*stag) >> 8; @@ -222,6 +226,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry, mutex_lock(&rdev->stats.lock); rdev->stats.stag.fail++; mutex_unlock(&rdev->stats.lock); + kfree(tpt); return -ENOMEM; } mutex_lock(&rdev->stats.lock); @@ -237,30 +242,30 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry, /* write TPT entry */ if (reset_tpt_entry) - memset(&tpt, 0, sizeof(tpt)); + memset(tpt, 0, sizeof(*tpt)); else { if (page_size > ilog2(C4IW_MAX_PAGE_SIZE) - 12) return -EINVAL; - tpt.valid_to_pdid = cpu_to_be32(F_FW_RI_TPTE_VALID | + tpt->valid_to_pdid = cpu_to_be32(F_FW_RI_TPTE_VALID | V_FW_RI_TPTE_STAGKEY((*stag & M_FW_RI_TPTE_STAGKEY)) | V_FW_RI_TPTE_STAGSTATE(stag_state) | V_FW_RI_TPTE_STAGTYPE(type) | V_FW_RI_TPTE_PDID(pdid)); - tpt.locread_to_qpid = cpu_to_be32(V_FW_RI_TPTE_PERM(perm) | + tpt->locread_to_qpid = cpu_to_be32(V_FW_RI_TPTE_PERM(perm) | (bind_enabled ? F_FW_RI_TPTE_MWBINDEN : 0) | V_FW_RI_TPTE_ADDRTYPE((zbva ? FW_RI_ZERO_BASED_TO : FW_RI_VA_BASED_TO))| V_FW_RI_TPTE_PS(page_size)); - tpt.nosnoop_pbladdr = !pbl_size ? 0 : cpu_to_be32( + tpt->nosnoop_pbladdr = !pbl_size ? 0 : cpu_to_be32( V_FW_RI_TPTE_PBLADDR(PBL_OFF(rdev, pbl_addr)>>3)); - tpt.len_lo = cpu_to_be32((u32)(len & 0xffffffffUL)); - tpt.va_hi = cpu_to_be32((u32)(to >> 32)); - tpt.va_lo_fbo = cpu_to_be32((u32)(to & 0xffffffffUL)); - tpt.dca_mwbcnt_pstag = cpu_to_be32(0); - tpt.len_hi = cpu_to_be32((u32)(len >> 32)); + tpt->len_lo = cpu_to_be32((u32)(len & 0xffffffffUL)); + tpt->va_hi = cpu_to_be32((u32)(to >> 32)); + tpt->va_lo_fbo = cpu_to_be32((u32)(to & 0xffffffffUL)); + tpt->dca_mwbcnt_pstag = cpu_to_be32(0); + tpt->len_hi = cpu_to_be32((u32)(len >> 32)); } err = write_adapter_mem(rdev, stag_idx + (rdev->adap->vres.stag.start >> 5), - sizeof(tpt), &tpt, wr_waitp); + sizeof(*tpt), tpt, wr_waitp); if (reset_tpt_entry) { t4_stag_free(rdev->adap, stag_idx, 1); @@ -268,6 +273,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry, rdev->stats.stag.cur -= 32; mutex_unlock(&rdev->stats.lock); } + kfree(tpt); return err; }