xilinx_dp_debugfs_write(struct file *f, const char __user *buf,
size_t size, loff_t *pos)
{
- char *kern_buff;
+ char *kern_buff, *kern_buff_start;
char *dp_test_req;
int ret;
int i;
kern_buff = kzalloc(size, GFP_KERNEL);
if (!kern_buff)
return -ENOMEM;
+ kern_buff_start = kern_buff;
ret = strncpy_from_user(kern_buff, buf, size);
if (ret < 0) {
- kfree(kern_buff);
+ kfree(kern_buff_start);
return ret;
}
for (i = 0; i < ARRAY_SIZE(dp_debugfs_reqs); i++) {
if (!strcasecmp(dp_test_req, dp_debugfs_reqs[i].req))
if (!dp_debugfs_reqs[i].write_handler(&kern_buff)) {
- kfree(kern_buff);
+ kfree(kern_buff_start);
return size;
}
}
- kfree(kern_buff);
+ kfree(kern_buff_start);
return -EINVAL;
}