summaryrefslogtreecommitdiff
path: root/net/caif
diff options
context:
space:
mode:
Diffstat (limited to 'net/caif')
-rw-r--r--net/caif/cfcnfg.c2
-rw-r--r--net/caif/cfserl.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/net/caif/cfcnfg.c b/net/caif/cfcnfg.c
index 52fe33bee02..7debfd4a031 100644
--- a/net/caif/cfcnfg.c
+++ b/net/caif/cfcnfg.c
@@ -521,6 +521,8 @@ got_phyid:
frml = cffrml_create(phyid, fcs);
if (!frml) {
+ if (phy_driver)
+ cfserl_destroy(phy_driver);
pr_warn("Out of memory\n");
kfree(phyinfo);
goto out;
diff --git a/net/caif/cfserl.c b/net/caif/cfserl.c
index 2715c84cfa8..403d57ad305 100644
--- a/net/caif/cfserl.c
+++ b/net/caif/cfserl.c
@@ -190,3 +190,9 @@ static void cfserl_ctrlcmd(struct cflayer *layr, enum caif_ctrlcmd ctrl,
{
layr->up->ctrlcmd(layr->up, ctrl, phyid);
}
+
+void cfserl_destroy(struct cflayer *layer)
+{
+ struct cfserl *cfserl = container_obj(layer);
+ kfree(cfserl);
+}