IB/uverbs: Add a macro to define a type with no kernel known size

Sometimes the uverbs uAPI  doesn't really care about the structure it gets
from user-space. All it wants to do is to allocate enough space and send
it to the hardware/provider driver. Adding a UVERBS_ATTR_MIN_SIZE that
could be used for this scenarios. We use USHRT_MAX as the kernel known
size to bypass any zero validations.

Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
Matan Barak
2018-06-17 12:59:53 +03:00
committed by Jason Gunthorpe
parent 8762d149e8
commit 2d9c1bd7e1
2 changed files with 4 additions and 2 deletions

View File

@@ -215,6 +215,8 @@ struct uverbs_object_tree_def {
.min_len = ((uintptr_t)(&((_type *)0)->_last + 1)), .len = sizeof(_type)
#define UVERBS_ATTR_SIZE(_min_len, _len) \
.min_len = _min_len, .len = _len
#define UVERBS_ATTR_MIN_SIZE(_min_len) \
UVERBS_ATTR_SIZE(_min_len, USHRT_MAX)
/*
* In new compiler, UVERBS_ATTR could be simplified by declaring it as