Commit 052c50d9 authored by Michael Krufky's avatar Michael Krufky Committed by Mauro Carvalho Chehab

V4L/DVB (5743): Tuner: clean up kfree() after release

Although it is safe to kfree(NULL), We only need to kfree(priv)
if the release callback is undefined.  As it stands now, there
is some redundancy in the operation of releasing the priv data
structures. This patch will call kfree(priv) and set priv to NULL,
if the release callback isnt defined.  Otherwise, let the release
callback handle this itself.
Thanks to Mauro Carvalho Chehab for suggesting this.
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 024cf530
...@@ -180,8 +180,10 @@ static void set_type(struct i2c_client *c, unsigned int type, ...@@ -180,8 +180,10 @@ static void set_type(struct i2c_client *c, unsigned int type,
/* discard private data, in case set_type() was previously called */ /* discard private data, in case set_type() was previously called */
if (t->release) if (t->release)
t->release(c); t->release(c);
kfree(t->priv); else {
t->priv = NULL; kfree(t->priv);
t->priv = NULL;
}
switch (t->type) { switch (t->type) {
case TUNER_MT2032: case TUNER_MT2032:
...@@ -566,7 +568,9 @@ static int tuner_detach(struct i2c_client *client) ...@@ -566,7 +568,9 @@ static int tuner_detach(struct i2c_client *client)
if (t->release) if (t->release)
t->release(client); t->release(client);
kfree(t->priv); else {
kfree(t->priv);
}
kfree(t); kfree(t);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment