On Tue, May 30, 2017 at 08:03:58PM +0200, Jiri Pirko wrote: > Tue, May 30, 2017 at 07:22:59PM CEST, leon@xxxxxxxxxx wrote: > >On Tue, May 30, 2017 at 10:15:14AM +0200, Jiri Pirko wrote: > >> Tue, May 30, 2017 at 09:58:45AM CEST, leon@xxxxxxxxxx wrote: > >> >On Tue, May 30, 2017 at 09:33:52AM +0200, Jiri Pirko wrote: > >> >> Tue, May 30, 2017 at 09:15:58AM CEST, leon@xxxxxxxxxx wrote: > >> >> >From: Yishai Hadas <yishaih@xxxxxxxxxxxx> > >> >> > > >> >> >Enable QP creation which is associated to underlay QP. This comes as a > >> >> >pre-patch for downstream patches in this series to enable flow steering > >> >> >from user space application on the underlay IPoIB QP. > >> >> > > >> >> >Signed-off-by: Yishai Hadas <yishaih@xxxxxxxxxxxx> > >> >> >Reviewed-by: Maor Gottlieb <maorg@xxxxxxxxxxxx > >> >> >Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx> > >> >> >--- > >> >> > >> >> [...] > >> >> > >> >> > >> >> >diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h > >> >> >index 477d629f539d..422b20456975 100644 > >> >> >--- a/include/uapi/rdma/ib_user_verbs.h > >> >> >+++ b/include/uapi/rdma/ib_user_verbs.h > >> >> >@@ -578,7 +578,7 @@ struct ib_uverbs_ex_create_qp { > >> >> > __u32 comp_mask; > >> >> > __u32 create_flags; > >> >> > __u32 rwq_ind_tbl_handle; > >> >> >- __u32 reserved1; > >> >> >+ __u32 associated_qpn; > >> >> > >> >> This breaks uapi... > >> > > >> >Not really, we are using comp_mask scheme to signal changes/predecessor > >> >of these structs. Users of this file and structs check comp_mask and > >> >access new fields only if they are exposed there. > >> > > >> >In this case, there are no users of reserved1 and hence it can be > >> >replace to the new field with corresponding comp_mask flag (IB_QP_CREATE_ASSOC_QPN) > >> >without worry of breakage. > >> > >> I, as an app could include ib_user_verbs.h and do: > >> > >> struct ib_uverbs_ex_create_qp something; > >> > >> something.reserved1 = 0; > >> > >> Than I won't compile, would I? > > > >You are right, the good thing that in IB world, there is no direct usage > >of these files and they are needed for rdma-core (libibverbs) library. > > Unfortunatelly, that does not make any difference. UAPI is UAPI... Yes, it makes. Changes in UAPI are allowed as long they don't break user space applications. In this case, there are no applications which uses this reserved fields directly. Just as an examples of UAPI changes which can break user-space applications, but don't: commit 26202873bb51fafdaa51be3e8de7aab9beb49f70 Author: Hans-Christian Noren Egtvedt <egtvedt@xxxxxxxxxxxx> Date: Sun Feb 26 12:56:39 2017 +0100 avr32: remove support for AVR32 architecture commit 1f4407e2548827e3e6e7b943640a2da90c611306 Author: David S. Miller <davem@xxxxxxxxxxxxx> Date: Fri Apr 21 15:59:52 2017 -0400 net: Remove NET_CORE_BUDGET_USECS from sysctl binary interface. commit 2611dc1939569718c65ffd59c8fb9ba7474d026c Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Date: Sat Apr 8 14:34:51 2017 -0400 Remove compat_sys_getdents64() commit bf74b20d00b13919db7ae5d1015636e76f56f6ae Author: David S. Miller <davem@xxxxxxxxxxxxx> Date: Sun Apr 9 14:45:21 2017 -0700 Revert "rtnl: Add support for netdev event to link messages" ..... > >
Attachment:
signature.asc
Description: PGP signature