From: Daniel Scheller Date: Sun, 17 Dec 2017 15:40:43 +0000 (-0500) Subject: media: ddbridge: fix resources cleanup for CI hardware X-Git-Tag: v5.15~9456^2~131 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fac37bb124c221bde55ae77fbf8c7eff84881bda;p=platform%2Fkernel%2Flinux-starfive.git media: ddbridge: fix resources cleanup for CI hardware Do kfree() on port->en->data instead of port->en. port->en only holds a ptr to a struct dvb_ca_en50221, which is a member either of a memalloc'ed struct ddb_ci (DuoFlex CI, Octopus CI Duo) or a struct cxd (CXD2099AR based Single Flex, allocated by the cxd2099 driver). port->en.data though holds the ptr to the allocated memory, which must rather be kfree()'d. Change this accordingly. Cc: Ralph Metzler Signed-off-by: Daniel Scheller Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c b/drivers/media/pci/ddbridge/ddbridge-core.c index eda0043..a81125d 100644 --- a/drivers/media/pci/ddbridge/ddbridge-core.c +++ b/drivers/media/pci/ddbridge/ddbridge-core.c @@ -1990,7 +1990,7 @@ void ddb_ports_detach(struct ddb *dev) dvb_unregister_device(port->dvb[0].dev); if (port->en) { dvb_ca_en50221_release(port->en); - kfree(port->en); + kfree(port->en->data); port->en = NULL; } break;