Merge "diag: Synchronize command registration table access"
This commit is contained in:
commit
864fd17d93
1 changed files with 4 additions and 0 deletions
|
@ -276,8 +276,10 @@ static ssize_t diag_dbgfs_read_table(struct file *file, char __user *ubuf,
|
|||
struct list_head *temp;
|
||||
struct diag_cmd_reg_t *item = NULL;
|
||||
|
||||
mutex_lock(&driver->cmd_reg_mutex);
|
||||
if (diag_dbgfs_table_index == driver->cmd_reg_count) {
|
||||
diag_dbgfs_table_index = 0;
|
||||
mutex_unlock(&driver->cmd_reg_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -286,6 +288,7 @@ static ssize_t diag_dbgfs_read_table(struct file *file, char __user *ubuf,
|
|||
buf = kzalloc(sizeof(char) * buf_size, GFP_KERNEL);
|
||||
if (ZERO_OR_NULL_PTR(buf)) {
|
||||
pr_err("diag: %s, Error allocating memory\n", __func__);
|
||||
mutex_unlock(&driver->cmd_reg_mutex);
|
||||
return -ENOMEM;
|
||||
}
|
||||
buf_size = ksize(buf);
|
||||
|
@ -330,6 +333,7 @@ static ssize_t diag_dbgfs_read_table(struct file *file, char __user *ubuf,
|
|||
break;
|
||||
}
|
||||
diag_dbgfs_table_index = i;
|
||||
mutex_unlock(&driver->cmd_reg_mutex);
|
||||
|
||||
*ppos = 0;
|
||||
ret = simple_read_from_buffer(ubuf, count, ppos, buf, bytes_in_buffer);
|
||||
|
|
Loading…
Add table
Reference in a new issue