On Thu, Feb 21, 2019 at 10:56:31AM -0800, Stephen Hemminger wrote: > On Thu, 21 Feb 2019 08:19:07 -0800 > Steve Wise wrote: > > > Pull in the latest rdma_netlink.h to get the RDMA_NLDEV_CMD_NEWLINK / > > RDMA_NLDEV_CMD_DELLINK API. > > > > Signed-off-by: Steve Wise > > --- > > rdma/include/uapi/rdma/rdma_netlink.h | 74 +++++++++++++++++++++++++++-------- > > 1 file changed, 58 insertions(+), 16 deletions(-) > > > > diff --git a/rdma/include/uapi/rdma/rdma_netlink.h b/rdma/include/uapi/rdma/rdma_netlink.h > > index 04c80cebef49..23a90ad52485 100644 > > --- a/rdma/include/uapi/rdma/rdma_netlink.h > > +++ b/rdma/include/uapi/rdma/rdma_netlink.h > > @@ -5,8 +5,7 @@ > > #include > > > > enum { > > - RDMA_NL_RDMA_CM = 1, > > - RDMA_NL_IWCM, > > + RDMA_NL_IWCM = 2, > > RDMA_NL_RSVD, > > RDMA_NL_LS, /* RDMA Local Services */ > > RDMA_NL_NLDEV, /* RDMA device interface */ > > You can't just drop elements from user ABI headers. > That is a break of kernel ABI guarantee. In RDMA subsystem, we have less pedantic rules and are removing unused and mistakenly added code. This removal scheme was suggested by Linus - remove and see who is complaining. The big advantage of RDMA is that we know exactly what is in use by our consumers. In this case, we knew for sure that no one is using RDMA_NL_RDMA_CM, and it never was backed by working user space. More on that, the talks of RDMA_NL_RDMA_CM removal started a long time ago, but took time till the patch was actually sent. So yes, if people use this enum value as subsidiary to 1, they will break. > > Instead, mark unused elements: > enum { > RDMA_NL_RDMA_CM = 1, /* deprecated */ > RDMA_NL_IWCM, > ...