Re: [PATCH rdma-next] RDMA/mana_ib: Retain create CQ flags field name
Leon Romanovsky <[email protected]> Thu, 6 Aug 2026 14:07:05 +0300
| Newsgroups | org.kernel.vger.linux-hyperv,org.kernel.vger.linux-rdma |
|---|---|
| Message-ID | <20260806110705.GE23431@unreal> |
On Tue, Aug 04, 2026 at 01:08:18PM +0200, Jiri Pirko wrote: > Mon, Aug 03, 2026 at 03:28:44PM +0200, [email protected] wrote: > >On Mon, Aug 03, 2026 at 01:59:07PM +0200, Jiri Pirko wrote: > >> Fri, Jul 31, 2026 at 02:54:31PM +0200, [email protected] wrote: > >> >> From: Jiri Pirko <[email protected]> > >> >> > >> >> Commit eb70d83a8645 ("RDMA/mana_ib: Adopt robust udata") renamed the > >> >> "flags" field of struct mana_ib_create_cq to "comp_mask", as > >> >> ib_copy_validate_udata_in_cm() only validates a member with that name. > >> >> > >> >> The layout did not change, but the field has been a part of the UAPI since > >> >> commit 44b607ad4cdf ("RDMA/mana_ib: implement uapi for creation of rnic > >> >> cq"), so the rename breaks userspace referring to it, for example the mana > >> >> provider of rdma-core assigning cmd_drv->flags. > >> >> > >> >> Convert the field to a union providing both names, so that > >> >> ib_copy_validate_udata_in_cm() still finds "comp_mask" and userspace keeps > >> >> "flags", without having to add a helper for this single case. > >> >> > >> > > >> >Thanks for the patch, but my understanding that it is a common practice to rename the fields, > >> >and kernels headers should not accumulate historical names. > >> > >> That is not doable in UAPI. > > > >There are multiple levels of UAPI contracts. In RDMA, we guarantee > >binary compatibility because userspace (rdma-core) is effectively the > >second half of the RDMA driver stack. These drivers do not exist > >without rdma-core. > > > >As such, this is exactly how the RDMA UAPI is intended to work. > > That is some odd UAPI... It is not about UAPI itself, but about the rules governing it. The rule is "don't break userspace"; it does not say "don't break the build". The latter primarily affects advanced users, who are expected to be capable of resolving build failures. Thanks