Commit f917fc0e authored by Akihiro Tsukada's avatar Akihiro Tsukada Committed by Mauro Carvalho Chehab
Browse files

media: dvb-frontends/dvb-pll: fix module ref-counting



dvb-pll module was 'put' twice on exit:
once by dvb_frontend_detach() and another by dvb_module_release().

Signed-off-by: default avatarAkihiro Tsukada <tskd08@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent b30cc07d
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -884,6 +884,17 @@ dvb_pll_probe(struct i2c_client *client, const struct i2c_device_id *id)
	if (!dvb_pll_attach(fe, client->addr, client->adapter, desc_id))
		return -ENOMEM;

	/*
	 * Unset tuner_ops.release (== dvb_pll_release)
	 * which has been just set in the above dvb_pll_attach(),
	 * because if tuner_ops.release was left defined,
	 * this module would be 'put' twice on exit:
	 * once by dvb_frontend_detach() and another by dvb_module_release().
	 *
	 * dvb_pll_release is instead executed in the i2c driver's .remove(),
	 * keeping dvb_pll_attach untouched for legacy (dvb_attach) drivers.
	 */
	fe->ops.tuner_ops.release = NULL;
	dev_info(&client->dev, "DVB Simple Tuner attached.\n");
	return 0;
}