These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / mtd / maps / physmap_of.c
index ff26e97..e46b4e9 100644 (file)
@@ -130,6 +130,8 @@ static const char * const *of_get_probes(struct device_node *dp)
                        count++;
 
        res = kzalloc((count + 1)*sizeof(*res), GFP_KERNEL);
+       if (!res)
+               return NULL;
        count = 0;
        while (cplen > 0) {
                res[count] = cp;
@@ -147,7 +149,7 @@ static void of_free_probes(const char * const *probes)
                kfree(probes);
 }
 
-static struct of_device_id of_flash_match[];
+static const struct of_device_id of_flash_match[];
 static int of_flash_probe(struct platform_device *dev)
 {
        const char * const *part_probe_types;
@@ -288,7 +290,6 @@ static int of_flash_probe(struct platform_device *dev)
                } else {
                        info->list_size++;
                }
-               info->list[i].mtd->owner = THIS_MODULE;
                info->list[i].mtd->dev.parent = &dev->dev;
        }
 
@@ -311,6 +312,10 @@ static int of_flash_probe(struct platform_device *dev)
 
        ppdata.of_node = dp;
        part_probe_types = of_get_probes(dp);
+       if (!part_probe_types) {
+               err = -ENOMEM;
+               goto err_out;
+       }
        mtd_device_parse_register(info->cmtd, part_probe_types, &ppdata,
                        NULL, 0);
        of_free_probes(part_probe_types);
@@ -327,7 +332,7 @@ err_flash_remove:
        return err;
 }
 
-static struct of_device_id of_flash_match[] = {
+static const struct of_device_id of_flash_match[] = {
        {
                .compatible     = "cfi-flash",
                .data           = (void *)"cfi_probe",