• Luciano Coelho's avatar
    firmware: make sure the fw file size is not 0 · 4adf07fb
    Luciano Coelho authored
    If the requested firmware file size is 0 bytes in the filesytem, we
    will try to vmalloc(0), which causes a warning:
    
      vmalloc: allocation failure: 0 bytes
      kworker/1:1: page allocation failure: order:0, mode:0xd2
        __vmalloc_node_range+0x164/0x208
        __vmalloc_node+0x4c/0x58
        vmalloc+0x38/0x44
        _request_firmware_load+0x220/0x6b0
        request_firmware+0x64/0xc8
        wl18xx_setup+0xb4/0x570 [wl18xx]
        wlcore_nvs_cb+0x64/0x9f8 [wlcore]
        request_firmware_work_func+0x94/0x100
        process_one_work+0x1d0/0x750
        worker_thread+0x184/0x4ac
        kthread+0xb4/0xc0
    
    To fix this, check whether the file size is less than or equal to zero
    in fw_read_file_contents().
    
    Cc: stable <stable@vger.kernel.org> [3.7]
    Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
    Acked-by: default avatarMing Lei <ming.lei@canonical.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    4adf07fb
firmware_class.c 34.7 KB