fw_cfg: fix sparse warnings around FW_CFG_FILE_DIR read
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Wed, 28 Feb 2018 15:06:08 +0000 (16:06 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 20 Mar 2018 01:17:39 +0000 (03:17 +0200)
Use struct fw_cfg_files to read the directory size, fixing the sparse
warnings:

drivers/firmware/qemu_fw_cfg.c:485:17: warning: cast to restricted __be32

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/firmware/qemu_fw_cfg.c

index 0eb155fdfb35939fbdb703663be35ad468f977cd..00ad9b8624148a1800ea9d5d971823abc464aad9 100644 (file)
@@ -496,19 +496,20 @@ err_register:
 static int fw_cfg_register_dir_entries(void)
 {
        int ret = 0;
+       __be32 files_count;
        u32 count, i;
        struct fw_cfg_file *dir;
        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 = kmalloc(dir_size, GFP_KERNEL);
        if (!dir)
                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++) {
                ret = fw_cfg_register_file(&dir[i]);