mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
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 fac9658cab
("IB/core: Add new ioctl interface")
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Acked-by: Matan Barak <matanb@mellanox.com>
Cc: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
e575a9bba0
commit
69abc735f4
1 changed files with 3 additions and 10 deletions
|
@ -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,13 +267,10 @@ 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);
|
||||
ctx = kmalloc(ctx_size, GFP_KERNEL);
|
||||
if (!ctx)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -311,10 +306,8 @@ 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
|
||||
kfree(ctx);
|
||||
if (ctx != (void *)data)
|
||||
kfree(ctx);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue