diff options
author | Leon Romanovsky <leonro@mellanox.com> | 2018-02-21 18:12:43 +0200 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2018-02-22 22:31:18 -0500 |
commit | 372e15c5db5f3f15423a2e6e6a71b77b39026ecf (patch) | |
tree | 49f0ba8cab49c69da0ea801d12dabe4f616ffb15 | |
parent | cd35cf4b40f351fc9e53c2e2877a56da87dcd46d (diff) | |
download | talos-obmc-linux-372e15c5db5f3f15423a2e6e6a71b77b39026ecf.tar.gz talos-obmc-linux-372e15c5db5f3f15423a2e6e6a71b77b39026ecf.zip |
RDMA/uverbs: Reduce number of command header flags checks
Simplify the code by directly checking the availability of extended
command flog instead of doing multiple shift operations.
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
-rw-r--r-- | drivers/infiniband/core/uverbs_main.c | 11 | ||||
-rw-r--r-- | include/uapi/rdma/ib_user_verbs.h | 5 |
2 files changed, 3 insertions, 13 deletions
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c index 2a6deecf6f76..fbba831f879e 100644 --- a/drivers/infiniband/core/uverbs_main.c +++ b/drivers/infiniband/core/uverbs_main.c @@ -657,19 +657,12 @@ static bool verify_command_idx(u32 command, bool extended) static ssize_t process_hdr(struct ib_uverbs_cmd_hdr *hdr, u32 *command, bool *extended) { - u32 flags; - - if (hdr->command & ~(u32)(IB_USER_VERBS_CMD_FLAGS_MASK | + if (hdr->command & ~(u32)(IB_USER_VERBS_CMD_FLAG_EXTENDED | IB_USER_VERBS_CMD_COMMAND_MASK)) return -EINVAL; *command = hdr->command & IB_USER_VERBS_CMD_COMMAND_MASK; - flags = (hdr->command & - IB_USER_VERBS_CMD_FLAGS_MASK) >> IB_USER_VERBS_CMD_FLAGS_SHIFT; - - *extended = flags & IB_USER_VERBS_CMD_FLAG_EXTENDED; - if (flags & ~IB_USER_VERBS_CMD_FLAG_EXTENDED) - return -EINVAL; + *extended = hdr->command & IB_USER_VERBS_CMD_FLAG_EXTENDED; if (!verify_command_idx(*command, *extended)) return -EOPNOTSUPP; diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h index 04d0e67b1312..d56fba09dc8a 100644 --- a/include/uapi/rdma/ib_user_verbs.h +++ b/include/uapi/rdma/ib_user_verbs.h @@ -141,10 +141,7 @@ struct ib_uverbs_cq_moderation_caps { */ #define IB_USER_VERBS_CMD_COMMAND_MASK 0xff -#define IB_USER_VERBS_CMD_FLAGS_MASK 0xff000000u -#define IB_USER_VERBS_CMD_FLAGS_SHIFT 24 - -#define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80 +#define IB_USER_VERBS_CMD_FLAG_EXTENDED 0x80000000u struct ib_uverbs_cmd_hdr { __u32 command; |