From nobody Thu Apr 9 13:22:41 2026 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DDCDA3A1E9E for ; Sun, 8 Mar 2026 20:14:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773000880; cv=none; b=MoK8AZrRJdI5HC1U0re0DtYM7JcvCOtT30uqFYdttKpQqDiQnRst3FOU4XxCzFVq5+T4L+dVquaD51WYBGT3YIjqrBVT2+hyhLnNifGVaOpnRu13udquEPXL6zhhXNjGEcPw15opzv9gl/8HO7Q2rHLRi+BOcu3QDSA9dIUoUuQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773000880; c=relaxed/simple; bh=xzSJCVQINHqp98FDmuwsR6YmeKB/Lv2LWfU3EU7r3MU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=jC1H6fOUddfHMk4aid07UnBKvKdfou6q6yovfJD9XhdJuu7N7Hs0WgqxErEFmRH+3C+44ZJDbUpXLgqDhRcVELQ9RZdvEpsdad6cTNsrKiJIOEtqNSzM3wf2B+ii9xEj1iTeJFZB9AOAbukTLPrRM5Fz1JbptJ4xSH9j+Rd9fzA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EBimrzlG; arc=none smtp.client-ip=209.85.216.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EBimrzlG" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-35980423087so3817331a91.3 for ; Sun, 08 Mar 2026 13:14:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773000877; x=1773605677; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=pqO+J4I/bu5ZWIIanV+1z7egiiiePfAh7lAfSkxvl/w=; b=EBimrzlGiAcGrdbkL1JgvMTbN9E3dflSDbpa9DQaXr6X+jPB1xaS2l5eVWQQWXqow0 wlvugD53F6jlgBVvvb98Fb42Dy4eW5CZxQ09NxjjnDmgvGGppr3sTpE34zrg/LI3Su5x D2Pe8Q+/gxKKUgZqHHKogfxBioiL/fcqzfOd40e8Rjlb9I7cpGHsWZEFwUh1eJ24wlxI jBfBDqq9pR+wpHCF22rRL7m9efDCm7iBb3REx+8dC/X4HJYmbyP/2sht5bKSEmV3yfkk lW5Ppy8ClULm+j5MHg48VSo0BfN1FxnbKbL/4n0ptMjBB9O5a0EhPNI/5Mcg2YD2M3pD +ufQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773000877; x=1773605677; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=pqO+J4I/bu5ZWIIanV+1z7egiiiePfAh7lAfSkxvl/w=; b=qISmP8c1CjnIiB7rMDFQMkv6b2dc2wdurnYnMK7IK3Dto9R62uR8VVrWy0oJ3HXwuS 2yh43trSlfPRLovD/6/fJloeQzkMq8F3/TYtJhFNGx6++gvpd9xUecZonv4Vihe7lfv0 Zrw30HAwMkubZEJBO7sKz3OkOrlcXQZ8rDGc87ujPZr8CHLPB3gfM3JD7GvviMdFRpgM ZWm4lu3HkjwbdVJspvwJj66VfFkowO7gw4yoXeRTn7X2U6FyD0j5wAd+AYd1L9cG17+d PAlxC3BMcEQvLelihy2ygPc08L0Al56lOu6hNO7dk4/jYOlQdKiiCKqCSWSQKVrhhqOH MJUA== X-Forwarded-Encrypted: i=1; AJvYcCWsRd6qmJn0joMrZL+k1ZM3LghbQZEiAX5MXjZJaQKR6zu71MpS7yLmx+x0syyOM6TzdCPB3ApAuYYKgeE=@vger.kernel.org X-Gm-Message-State: AOJu0YxqEtSmyoAl0FaB6pj+iAVOZQjaN8lQkigrnIH8LDCA5q1A9aed gfM6F/gAWIjphq4+LSJAFf529+SzPPCTobKzhfMUaCcoUs+Oy1IJ2j6a X-Gm-Gg: ATEYQzyUadavU3Gv1TZ48GTBTX3MOZkbP+8aNIgNZME5Oxq+YpX6aTaaZokOq86KLPI BLBaTIhAmkak7s2nyw17FuVEc8wDUDq0E3zyR4pQJ4r9uO/or4nMB9jCoKiwdrBtcraZvOJR/fr y9OD8t5VsTYHE0KgUahuU1k6A7cdJDrImcjDPyCHAu/rHQJaZaxYhosQ6pUX0vQqSYbBFbX2+2A U/2/PmDmXeg8iJOI65eKDfk9ZzQ2wxxiXtlmfu+rX+RX+OKioUx52G+VgUZCqOyOqWyHkbqgkqP Kq3BwIy/QtaoskuKUlJN/WonZW72Z3avwNuXBfJu2rlQWHERM8rjDWuPNDChM1J1/W9CVJms/l7 0NjuioFHd+cU74/1e2kdT9auqWoikKtVtQXVL1qoJkEKqVr2DDTwhR3JH4gAZIIrpC+kJRrFgus 8269Zs30B9e5ZxgjvNd6jGvPCnTgk68dNAiJmDsU6dR1J9bDPbNWM1j19N4XBCEHjG X-Received: by 2002:a17:90b:1850:b0:352:f2a6:334 with SMTP id 98e67ed59e1d1-359be2f9111mr7531977a91.16.1773000876941; Sun, 08 Mar 2026 13:14:36 -0700 (PDT) Received: from ryzen ([2601:644:8000:56f5::8bd]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359c005e224sm11014225a91.7.2026.03.08.13.14.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Mar 2026 13:14:36 -0700 (PDT) From: Rosen Penev To: linux-rdma@vger.kernel.org Cc: Selvin Xavier , linux-hardening@vger.kernel.org, gustavoars@kernel.org, Jason Gunthorpe , Leon Romanovsky , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] RDMA/ocrdma: kzalloc_objs to kzalloc_flex Date: Sun, 8 Mar 2026 13:14:19 -0700 Message-ID: <20260308201419.5260-1-rosenp@gmail.com> X-Mailer: git-send-email 2.53.0 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 Content-Type: text/plain; charset="utf-8" Simplify allocation by eliminating one. No longer need to kfree pages separately. Signed-off-by: Rosen Penev --- drivers/infiniband/hw/ocrdma/ocrdma.h | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 15 +++------------ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/drivers/infiniband/hw/ocrdma/ocrdma.h b/drivers/infiniband/hw/= ocrdma/ocrdma.h index 5584b781e2e8..da2deae6857b 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma.h +++ b/drivers/infiniband/hw/ocrdma/ocrdma.h @@ -190,8 +190,8 @@ struct ocrdma_mr { struct ib_mr ibmr; struct ib_umem *umem; struct ocrdma_hw_mr hwmr; - u64 *pages; u32 npages; + u64 pages[]; }; =20 struct ocrdma_stats { diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniba= nd/hw/ocrdma/ocrdma_verbs.c index 7383b67e1723..eb922b9b0075 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c @@ -910,7 +910,6 @@ int ocrdma_dereg_mr(struct ib_mr *ib_mr, struct ib_udat= a *udata) =20 (void) ocrdma_mbx_dealloc_lkey(dev, mr->hwmr.fr_mr, mr->hwmr.lkey); =20 - kfree(mr->pages); ocrdma_free_mr_pbl_tbl(dev, &mr->hwmr); =20 /* it could be user registered memory. */ @@ -2908,19 +2907,13 @@ struct ib_mr *ocrdma_alloc_mr(struct ib_pd *ibpd, e= num ib_mr_type mr_type, if (max_num_sg > dev->attr.max_pages_per_frmr) return ERR_PTR(-EINVAL); =20 - mr =3D kzalloc_obj(*mr); + mr =3D kzalloc_flex(*mr, pages, max_num_sg); if (!mr) return ERR_PTR(-ENOMEM); =20 - mr->pages =3D kzalloc_objs(*mr->pages, max_num_sg); - if (!mr->pages) { - status =3D -ENOMEM; - goto pl_err; - } - status =3D ocrdma_get_pbl_info(dev, mr, max_num_sg); if (status) - goto pbl_err; + goto pl_err; mr->hwmr.fr_mr =3D 1; mr->hwmr.remote_rd =3D 0; mr->hwmr.remote_wr =3D 0; @@ -2929,7 +2922,7 @@ struct ib_mr *ocrdma_alloc_mr(struct ib_pd *ibpd, enu= m ib_mr_type mr_type, mr->hwmr.mw_bind =3D 0; status =3D ocrdma_build_pbl_tbl(dev, &mr->hwmr); if (status) - goto pbl_err; + goto pl_err; status =3D ocrdma_reg_mr(dev, &mr->hwmr, pd->id, 0); if (status) goto mbx_err; @@ -2940,8 +2933,6 @@ struct ib_mr *ocrdma_alloc_mr(struct ib_pd *ibpd, enu= m ib_mr_type mr_type, return &mr->ibmr; mbx_err: ocrdma_free_mr_pbl_tbl(dev, &mr->hwmr); -pbl_err: - kfree(mr->pages); pl_err: kfree(mr); return ERR_PTR(-ENOMEM); --=20 2.53.0