efivarfs: 'efivarfs_file_write' function reorganization
This reorganization removes useless 'bytes' prior assignment and uses 'memdup_user' instead 'kmalloc' + 'copy_from_user'. Signed-off-by: Geyslan G. Bem <geyslan@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
This commit is contained in:
Родитель
0f8093a92d
Коммит
aca32b5768
|
@ -21,7 +21,7 @@ static ssize_t efivarfs_file_write(struct file *file,
|
|||
u32 attributes;
|
||||
struct inode *inode = file->f_mapping->host;
|
||||
unsigned long datasize = count - sizeof(attributes);
|
||||
ssize_t bytes = 0;
|
||||
ssize_t bytes;
|
||||
bool set = false;
|
||||
|
||||
if (count < sizeof(attributes))
|
||||
|
@ -33,14 +33,9 @@ static ssize_t efivarfs_file_write(struct file *file,
|
|||
if (attributes & ~(EFI_VARIABLE_MASK))
|
||||
return -EINVAL;
|
||||
|
||||
data = kmalloc(datasize, GFP_KERNEL);
|
||||
if (!data)
|
||||
return -ENOMEM;
|
||||
|
||||
if (copy_from_user(data, userbuf + sizeof(attributes), datasize)) {
|
||||
bytes = -EFAULT;
|
||||
goto out;
|
||||
}
|
||||
data = memdup_user(userbuf + sizeof(attributes), datasize);
|
||||
if (IS_ERR(data))
|
||||
return PTR_ERR(data);
|
||||
|
||||
bytes = efivar_entry_set_get_size(var, attributes, &datasize,
|
||||
data, &set);
|
||||
|
|
Загрузка…
Ссылка в новой задаче