OSDN Git Service

RDMA/core: Add optional access flags range
authorMichael Guralnik <michaelgur@mellanox.com>
Wed, 8 Jan 2020 18:05:36 +0000 (20:05 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 16 Jan 2020 19:55:46 +0000 (15:55 -0400)
Define a range of access flags that are defined to be optional, both
uverbs and drivers should enable getting them and use if they are
applicable

This will be used, for example, for the relaxed ordering access flag which
unsupporting drivers can ignore.

Link: https://lore.kernel.org/r/1578506740-22188-7-git-send-email-yishaih@mellanox.com
Signed-off-by: Michael Guralnik <michaelgur@mellanox.com>
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
include/rdma/ib_verbs.h
include/uapi/rdma/ib_user_ioctl_verbs.h

index b20b89e..ed6cf11 100644 (file)
@@ -1419,7 +1419,9 @@ enum ib_access_flags {
        IB_ACCESS_ON_DEMAND = IB_UVERBS_ACCESS_ON_DEMAND,
        IB_ACCESS_HUGETLB = IB_UVERBS_ACCESS_HUGETLB,
 
-       IB_ACCESS_SUPPORTED = ((IB_ACCESS_HUGETLB << 1) - 1)
+       IB_ACCESS_OPTIONAL = IB_UVERBS_ACCESS_OPTIONAL_RANGE,
+       IB_ACCESS_SUPPORTED =
+               ((IB_ACCESS_HUGETLB << 1) - 1) | IB_ACCESS_OPTIONAL,
 };
 
 /*
index 9019b2d..76dbbd9 100644 (file)
@@ -41,6 +41,9 @@
 #define RDMA_UAPI_PTR(_type, _name)    __aligned_u64 _name
 #endif
 
+#define IB_UVERBS_ACCESS_OPTIONAL_FIRST (1 << 20)
+#define IB_UVERBS_ACCESS_OPTIONAL_LAST (1 << 29)
+
 enum ib_uverbs_access_flags {
        IB_UVERBS_ACCESS_LOCAL_WRITE = 1 << 0,
        IB_UVERBS_ACCESS_REMOTE_WRITE = 1 << 1,
@@ -50,6 +53,10 @@ enum ib_uverbs_access_flags {
        IB_UVERBS_ACCESS_ZERO_BASED = 1 << 5,
        IB_UVERBS_ACCESS_ON_DEMAND = 1 << 6,
        IB_UVERBS_ACCESS_HUGETLB = 1 << 7,
+
+       IB_UVERBS_ACCESS_OPTIONAL_RANGE =
+               ((IB_UVERBS_ACCESS_OPTIONAL_LAST << 1) - 1) &
+               ~(IB_UVERBS_ACCESS_OPTIONAL_FIRST - 1)
 };
 
 enum ib_uverbs_query_port_cap_flags {