fixup kernel loading firmware
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Mon, 25 Apr 2016 02:01:15 +0000 (02:01 +0000)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Wed, 22 Jun 2016 21:11:51 +0000 (21:11 +0000)
drivers/base/firmware_class.c

index bb9e2db..84ab7d9 100644 (file)
@@ -271,16 +271,14 @@ static ssize_t firmware_loading_show(struct device *dev,
 static void firmware_free_data(const struct firmware *fw)
 {
        int i;
-       /* Loaded directly? */
-       if (!fw->priv) {
-               vfree(fw->data);
-               return;
-       }
-       vunmap(fw->data);
        if (fw->pages) {
+               vunmap(fw->data);
                for (i = 0; i < PFN_UP(fw->size); i++)
                        __free_page(fw->pages[i]);
                kfree(fw->pages);
+       /* Loaded directly? */
+       } else {
+               vfree(fw->data);
        }
 }