aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeon Romanovsky <leonro@mellanox.com>2018-02-21 18:12:43 +0200
committerDoug Ledford <dledford@redhat.com>2018-02-22 22:31:18 -0500
commit372e15c5db5f3f15423a2e6e6a71b77b39026ecf (patch)
tree49f0ba8cab49c69da0ea801d12dabe4f616ffb15
parentRDMA/uverbs: Replace user's types with kernel's types (diff)
downloadlinux-dev-372e15c5db5f3f15423a2e6e6a71b77b39026ecf.tar.xz
linux-dev-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>
Diffstat (limited to '')
-rw-r--r--drivers/infiniband/core/uverbs_main.c11
-rw-r--r--include/uapi/rdma/ib_user_verbs.h5
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;