On Thu, Nov 22, 2018 at 11:47:45AM -0700, Jason Gunthorpe wrote: > On Mon, Nov 12, 2018 at 10:59:48PM +0200, Leon Romanovsky wrote: > > From: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > > > >From Jason, > > > > This extends the uverbs_uapi to have the notion of a disabled object and > > in turn disabled methods. Objects that are not supported by the driver > > become disabled and all the uAPI entry points are removed. > > > > The same approach is extended to the write() interface by harmonizing > > the write() method description with ioctl within the uverbs_api. > > > > Blocking commands very early on makes it harder to exploit any error > > path bugs that may exist, and provides the necessary infrastructure for > > an API introspection feature down the road. > > > > Along the way this introduces the next step towards making the specs > > macros saner but introducing a list-base description of the specs at the > > top level of the tree instead of the existing tree based description. > > This reworking is necessary to allow splitting data describing objects > > across multiple files. > > > > The introduction of meta-data for write() interface commands is the > > first step toward unifying the write/write_ex/ioctl command path into a > > consistent and interchangeable flow. Later series will add additional > > meta-data using this same framework. > > > > Thanks > > > > Jason Gunthorpe (10): > > RDMA/mlx5: Do not generate the uabi specs unconditionally > > RDMA/uverbs: Use a linear list to describe the compiled-in uapi > > RDMA/uverbs: Factor out the add/get pattern into a helper > > RDMA/uverbs: Add helpers to mark uapi functions as unsupported > > RDMA/mlx5: Use the uapi disablement APIs instead of code > > RDMA/uverbs: Require all objects to have a driver destroy function > > RDMA/verbs: Store the write/write_ex uapi entry points in the > > uverbs_api > > RDMA/uverbs: Convert the write interface to use uverbs_api > > RDMA/uverbs: Make all the method functions in uverbs_cmd static > > RDMA/uverbs: Check for NULL driver methods for every write call > > I applied this to for-next, but it didn't apply cleanly as this series > was not based directly anything likefor-next. > I'm based on mlx5-next which doesn't include two more series, one is on the air from Saeed and another from me. > The resolutions were simple, so I did them, but please check my work. > I have the same main.c. Thanks > Applying: RDMA/mlx5: Do not generate the uabi specs unconditionally > Applying: RDMA/uverbs: Use a linear list to describe the compiled-in uapi > Using index info to reconstruct a base tree... > M drivers/infiniband/hw/mlx5/main.c > M drivers/infiniband/hw/mlx5/mlx5_ib.h > M include/rdma/ib_verbs.h > Falling back to patching base and 3-way merge... > Auto-merging include/rdma/ib_verbs.h > Auto-merging drivers/infiniband/hw/mlx5/mlx5_ib.h > Auto-merging drivers/infiniband/hw/mlx5/main.c > Applying: RDMA/uverbs: Factor out the add/get pattern into a helper > Applying: RDMA/uverbs: Add helpers to mark uapi functions as unsupported > Applying: RDMA/mlx5: Use the uapi disablement APIs instead of code > Using index info to reconstruct a base tree... > M drivers/infiniband/hw/mlx5/main.c > M drivers/infiniband/hw/mlx5/mlx5_ib.h > Falling back to patching base and 3-way merge... > Auto-merging drivers/infiniband/hw/mlx5/mlx5_ib.h > CONFLICT (content): Merge conflict in drivers/infiniband/hw/mlx5/mlx5_ib.h > Auto-merging drivers/infiniband/hw/mlx5/main.c > CONFLICT (content): Merge conflict in drivers/infiniband/hw/mlx5/main.c > error: Failed to merge in the changes. > Patch failed at 0005 RDMA/mlx5: Use the uapi disablement APIs instead of code > Applying: RDMA/mlx5: Use the uapi disablement APIs instead of code > Applying: RDMA/uverbs: Require all objects to have a driver destroy function > Applying: RDMA/verbs: Store the write/write_ex uapi entry points in the uverbs_api > Applying: RDMA/uverbs: Convert the write interface to use uverbs_api > Applying: RDMA/uverbs: Make all the method functions in uverbs_cmd static > Applying: RDMA/uverbs: Check for NULL driver methods for every write call > > Jason
Attachment:
signature.asc
Description: PGP signature