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 v3 0/7] RDMA/irdma: Adopt robust udata
Date: Thu, 2 Jul 2026 17:06:45 +0000 [thread overview]
Message-ID: <20260702170652.4159201-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.
NOTE: This series is based on a few irdma bug fix patches
which have not yet been merged:
- RDMA/irdma: Prevent user-triggered null deref on QP create
https://patchwork.kernel.org/project/linux-rdma/list/?series=1113053
- RDMA/irdma: Prevent premature deregistration of user ring MRs
https://patchwork.kernel.org/project/linux-rdma/list/?series=1113648
Changes in v3:
* Add ib_no_udata_io helper to more easily handle the
common case of no input/no output ops.
* Fixed regression in create_qp failure path caught by sashiko.
* Rebased on top of previous posted irdma fixes.
* Fixed an additional latent legacy compat bug in create_qp.
* Added missing response buffer clearing for reg/rereg_user_mr.
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.
v2: https://lore.kernel.org/linux-rdma/20260629232532.2057423-1-jmoroni@google.com/
v1: https://lore.kernel.org/linux-rdma/20260627025642.4064973-1-jmoroni@google.com/T/#t
Jacob Moroni (7):
RDMA/core: Add ib_no_udata_io() helper
RDMA/irdma: Add checks for no udata
RDMA/irdma: Clear udata response buffers where necessary
RDMA/irdma: Use robust input copy helpers
RDMA/irdma: Use robust udata helper for QP creation
RDMA/irdma: Fix legacy i40iw compat check in create_qp
RDMA/irdma: Enable uverbs_robust_udata compliance flag
drivers/infiniband/hw/irdma/verbs.c | 216 +++++++++++++++++++---------
include/rdma/uverbs_ioctl.h | 20 +++
include/uapi/rdma/irdma-abi.h | 1 +
3 files changed, 167 insertions(+), 70 deletions(-)
--
2.55.0.rc0.799.gd6f94ed593-goog
next reply other threads:[~2026-07-02 17:06 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-02 17:06 Jacob Moroni [this message]
2026-07-02 17:06 ` [PATCH rdma-next v3 1/7] RDMA/core: Add ib_no_udata_io() helper Jacob Moroni
2026-07-02 17:06 ` [PATCH rdma-next v3 2/7] RDMA/irdma: Add checks for no udata Jacob Moroni
2026-07-02 17:06 ` [PATCH rdma-next v3 3/7] RDMA/irdma: Clear udata response buffers where necessary Jacob Moroni
2026-07-02 17:06 ` [PATCH rdma-next v3 4/7] RDMA/irdma: Use robust input copy helpers Jacob Moroni
2026-07-02 17:06 ` [PATCH rdma-next v3 5/7] RDMA/irdma: Use robust udata helper for QP creation Jacob Moroni
2026-07-02 17:06 ` [PATCH rdma-next v3 6/7] RDMA/irdma: Fix legacy i40iw compat check in create_qp Jacob Moroni
2026-07-02 17:06 ` [PATCH rdma-next v3 7/7] RDMA/irdma: Enable uverbs_robust_udata compliance flag Jacob Moroni
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=20260702170652.4159201-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