Commit 69abc735 authored by Bart Van Assche's avatar Bart Van Assche Committed by Doug Ledford
Browse files

RDMA/uverbs: Make the code in ib_uverbs_cmd_verbs() less confusing



This patch reduces the number of #ifdefs and also avoids that
smatch reports the following:

drivers/infiniband/core/uverbs_ioctl.c:276: ib_uverbs_cmd_verbs() warn: if statement not indented
drivers/infiniband/core/uverbs_ioctl.c:280: ib_uverbs_cmd_verbs() warn: possible memory leak of 'ctx'
drivers/infiniband/core/uverbs_ioctl.c:315: ib_uverbs_cmd_verbs() warn: if statement not indented

References: commit fac9658c ("IB/core: Add new ioctl interface")
Signed-off-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
Acked-by: default avatarMatan Barak <matanb@mellanox.com>
Cc: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent e575a9bb
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
@@ -241,9 +241,7 @@ static long ib_uverbs_cmd_verbs(struct ib_device *ib_dev,
	struct uverbs_attr *curr_attr;
	unsigned long *curr_bitmap;
	size_t ctx_size;
#ifdef UVERBS_OPTIMIZE_USING_STACK_SZ
	uintptr_t data[UVERBS_OPTIMIZE_USING_STACK_SZ / sizeof(uintptr_t)];
#endif

	if (hdr->reserved)
		return -EINVAL;
@@ -269,12 +267,9 @@ static long ib_uverbs_cmd_verbs(struct ib_device *ib_dev,
			(method_spec->num_child_attrs / BITS_PER_LONG +
			 method_spec->num_buckets);

#ifdef UVERBS_OPTIMIZE_USING_STACK_SZ
	if (ctx_size <= UVERBS_OPTIMIZE_USING_STACK_SZ)
		ctx = (void *)data;

	if (!ctx)
#endif
		ctx = kmalloc(ctx_size, GFP_KERNEL);
	if (!ctx)
		return -ENOMEM;
@@ -311,9 +306,7 @@ static long ib_uverbs_cmd_verbs(struct ib_device *ib_dev,
	err = uverbs_handle_method(buf, ctx->uattrs, hdr->num_attrs, ib_dev,
				   file, method_spec, ctx->uverbs_attr_bundle);
out:
#ifdef UVERBS_OPTIMIZE_USING_STACK_SZ
	if (ctx_size > UVERBS_OPTIMIZE_USING_STACK_SZ)
#endif
	if (ctx != (void *)data)
		kfree(ctx);
	return err;
}