PCI: endpoint: Fix kernel panic after put_device()
authorRolf Evers-Fischer <rolf.evers.fischer@aptiv.com>
Wed, 28 Feb 2018 17:32:19 +0000 (18:32 +0100)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Thu, 1 Mar 2018 11:58:45 +0000 (11:58 +0000)
'put_device()' calls the relase function 'pci_epf_dev_release()',
which already frees 'epf->name' and 'epf'.

Therefore we must not free them again after 'put_device()'.

Fixes: 5e8cb4033807 ("PCI: endpoint: Add EP core layer to enable EP controller and EP functions")

Signed-off-by: Rolf Evers-Fischer <rolf.evers.fischer@aptiv.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
drivers/pci/endpoint/pci-epf-core.c

index 1f2506f..1878a67 100644 (file)
@@ -232,7 +232,7 @@ struct pci_epf *pci_epf_create(const char *name)
 
 put_dev:
        put_device(dev);
-       kfree(epf->name);
+       return ERR_PTR(ret);
 
 free_epf:
        kfree(epf);