From: Jacob Moroni <jmoroni@google.com>
To: tatyana.e.nikolova@intel.com, jgg@ziepe.ca, leon@kernel.org
Cc: linux-rdma@vger.kernel.org, Jacob Moroni <jmoroni@google.com>
Subject: [PATCH rdma-next v2 0/5] RDMA/irdma: Adopt robust udata
Date: Mon, 29 Jun 2026 23:25:27 +0000 [thread overview]
Message-ID: <20260629232532.2057423-1-jmoroni@google.com> (raw)
This series brings irdma up to uverbs_robust_udata compliance.
The driver has been audited to confirm that:
1. Methods which do not accept udata input perform an explicit
check for no (or zero value) input.
2. Methods which do accept input perform the correct validation
to ensure that additional udata beyond the kernel's current
ABI definition is zero, and to enforce the required minimum
length.
3. Methods which do not return udata responses use the proper
helper.
The irdma driver is backwards compatible with the legacy i40iw
provider, so special care was taken to avoid breaking any legacy
binaries, as there were some small differences in the ABI/semantics.
This has passed the rdma-unit-test suite using the normal irdma
provider from upstream rdma-core.
Changes in v2:
* Fixed Sashiko findings:
- Moved ib_respond_empty_udata to beginning of most
methods to close gaps where it could previously
return 0 without calling ib_respond_empty_udata. This
also fixes issues where the ib_respond_empty_udata
call itself could fail, which may leave resources
in an inconsistent state (kernel believes object
is alive, but driver resources have been cleaned up).
- Moved input validation to beginning of modify_qp
methods to close gaps where the op could be invoked
with udata but without input checking.
- Fixed a QPN leak that could occur during QP create
by moving input validation earlier.
v1: https://lore.kernel.org/linux-rdma/20260627025642.4064973-1-jmoroni@google.com/T/#t
Jacob Moroni (5):
RDMA/irdma: Enforce empty udata input for no-input ops
RDMA/irdma: Use robust udata input copy helpers
RDMA/irdma: Use ib_respond_empty_udata where applicable
RDMA/irdma: Use robust udata helper for QP creation
RDMA/irdma: Enable uverbs_robust_udata compliance flag
drivers/infiniband/hw/irdma/verbs.c | 217 +++++++++++++++++++---------
include/uapi/rdma/irdma-abi.h | 1 +
2 files changed, 149 insertions(+), 69 deletions(-)
--
2.55.0.rc0.799.gd6f94ed593-goog
next reply other threads:[~2026-06-29 23:25 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-29 23:25 Jacob Moroni [this message]
2026-06-29 23:25 ` [PATCH rdma-next v2 1/5] RDMA/irdma: Enforce empty udata input for no-input ops Jacob Moroni
2026-06-29 23:25 ` [PATCH rdma-next v2 2/5] RDMA/irdma: Use robust udata input copy helpers Jacob Moroni
2026-06-29 23:25 ` [PATCH rdma-next v2 3/5] RDMA/irdma: Use ib_respond_empty_udata where applicable Jacob Moroni
2026-06-29 23:25 ` [PATCH rdma-next v2 4/5] RDMA/irdma: Use robust udata helper for QP creation Jacob Moroni
2026-06-29 23:25 ` [PATCH rdma-next v2 5/5] RDMA/irdma: Enable uverbs_robust_udata compliance flag Jacob Moroni
2026-06-30 17:23 ` [PATCH rdma-next v2 0/5] RDMA/irdma: Adopt robust udata Jacob Moroni
2026-06-30 19:18 ` Jason Gunthorpe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260629232532.2057423-1-jmoroni@google.com \
--to=jmoroni@google.com \
--cc=jgg@ziepe.ca \
--cc=leon@kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=tatyana.e.nikolova@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox