Commit 372e15c5 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Doug Ledford
Browse files

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: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent cd35cf4b
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -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;
+1 −4
Original line number Diff line number Diff line
@@ -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;