[PATCH 2/2] pci: endpoint: Fix kernel panic after put_device()

From: Rolf Evers-Fischer
Date: Wed Feb 21 2018 - 07:49:20 EST


From: Rolf Evers-Fischer <rolf.evers.fischer@xxxxxxxxx>

'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()'.

Change-Id: I14ca19f96abfbbb489dd1f4d489e085329d7112e
Signed-off-by: Rolf Evers-Fischer <rolf.evers.fischer@xxxxxxxxx>
Signed-off-by: Rolf Evers-Fischer <embedded24@xxxxxxxxxxxxxxxx>
---
drivers/pci/endpoint/pci-epf-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/endpoint/pci-epf-core.c b/drivers/pci/endpoint/pci-epf-core.c
index 23d0e128d1a5..3718b4c5814a 100644
--- a/drivers/pci/endpoint/pci-epf-core.c
+++ b/drivers/pci/endpoint/pci-epf-core.c
@@ -243,7 +243,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);
--
2.16.2