|
@@ -496,19 +496,20 @@ err_register:
|
|
static int fw_cfg_register_dir_entries(void)
|
|
static int fw_cfg_register_dir_entries(void)
|
|
{
|
|
{
|
|
int ret = 0;
|
|
int ret = 0;
|
|
|
|
+ __be32 files_count;
|
|
u32 count, i;
|
|
u32 count, i;
|
|
struct fw_cfg_file *dir;
|
|
struct fw_cfg_file *dir;
|
|
size_t dir_size;
|
|
size_t dir_size;
|
|
|
|
|
|
- fw_cfg_read_blob(FW_CFG_FILE_DIR, &count, 0, sizeof(count));
|
|
|
|
- count = be32_to_cpu(count);
|
|
|
|
|
|
+ fw_cfg_read_blob(FW_CFG_FILE_DIR, &files_count, 0, sizeof(files_count));
|
|
|
|
+ count = be32_to_cpu(files_count);
|
|
dir_size = count * sizeof(struct fw_cfg_file);
|
|
dir_size = count * sizeof(struct fw_cfg_file);
|
|
|
|
|
|
dir = kmalloc(dir_size, GFP_KERNEL);
|
|
dir = kmalloc(dir_size, GFP_KERNEL);
|
|
if (!dir)
|
|
if (!dir)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
|
|
|
|
- fw_cfg_read_blob(FW_CFG_FILE_DIR, dir, sizeof(count), dir_size);
|
|
|
|
|
|
+ fw_cfg_read_blob(FW_CFG_FILE_DIR, dir, sizeof(files_count), dir_size);
|
|
|
|
|
|
for (i = 0; i < count; i++) {
|
|
for (i = 0; i < count; i++) {
|
|
ret = fw_cfg_register_file(&dir[i]);
|
|
ret = fw_cfg_register_file(&dir[i]);
|