Skip to content

Commit

Permalink
amdkfd: don't open-code memdup_user()
Browse files Browse the repository at this point in the history
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Jan 6, 2016
1 parent abb0f6a commit 8f1d57c
Showing 1 changed file with 7 additions and 26 deletions.
33 changes: 7 additions & 26 deletions drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
Original file line number Diff line number Diff line change
Expand Up @@ -559,19 +559,10 @@ static int kfd_ioctl_dbg_address_watch(struct file *filep,

/* this is the actual buffer to work with */

args_buff = kmalloc(args->buf_size_in_bytes -
sizeof(*args), GFP_KERNEL);
if (args_buff == NULL)
return -ENOMEM;

status = copy_from_user(args_buff, cmd_from_user,
args_buff = memdup_user(args_buff,
args->buf_size_in_bytes - sizeof(*args));

if (status != 0) {
pr_debug("Failed to copy address watch user data\n");
kfree(args_buff);
return -EINVAL;
}
if (IS_ERR(args_buff))
return PTR_ERR(args_buff);

aw_info.process = p;

Expand Down Expand Up @@ -677,22 +668,12 @@ static int kfd_ioctl_dbg_wave_control(struct file *filep,
if (cmd_from_user == NULL)
return -EINVAL;

/* this is the actual buffer to work with */
/* copy the entire buffer from user */

args_buff = kmalloc(args->buf_size_in_bytes - sizeof(*args),
GFP_KERNEL);

if (args_buff == NULL)
return -ENOMEM;

/* Now copy the entire buffer from user */
status = copy_from_user(args_buff, cmd_from_user,
args_buff = memdup_user(cmd_from_user,
args->buf_size_in_bytes - sizeof(*args));
if (status != 0) {
pr_debug("Failed to copy wave control user data\n");
kfree(args_buff);
return -EINVAL;
}
if (IS_ERR(args_buff))
return PTR_ERR(args_buff);

/* move ptr to the start of the "pay-load" area */
wac_info.process = p;
Expand Down

0 comments on commit 8f1d57c

Please sign in to comment.