mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 01:10:04 +00:00
media: ddbridge: only register frontends in fe2 if fe is not NULL
Smatch reported: drivers/media/pci/ddbridge/ddbridge-core.c:1602 dvb_input_attach() error: we previously assumed 'dvb->fe' could be null (see line 1595) dvb->fe2 will ever only be populated when dvb->fe is set. So only handle registration of dvb->fe2 when dvb->fe got set beforehand by moving the registration into the "if (dvb->fe)" conditional. Cc: Ralph Metzler <rjkm@metzlerbros.de> Signed-off-by: Daniel Scheller <d.scheller@gmx.net> Tested-by: Richard Scobie <r.scobie@clear.net.nz> Tested-by: Jasmin Jessich <jasmin@anw.at> Tested-by: Dietmar Spingler <d_spingler@freenet.de> Tested-by: Manfred Knick <Manfred.Knick@t-online.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
e89e02a865
commit
f597f2a8fc
1 changed files with 11 additions and 9 deletions
|
@ -1506,23 +1506,25 @@ static int dvb_input_attach(struct ddb_input *input)
|
|||
return 0;
|
||||
}
|
||||
dvb->attached = 0x30;
|
||||
|
||||
if (dvb->fe) {
|
||||
if (dvb_register_frontend(adap, dvb->fe) < 0)
|
||||
return -ENODEV;
|
||||
|
||||
if (dvb->fe2) {
|
||||
if (dvb_register_frontend(adap, dvb->fe2) < 0)
|
||||
return -ENODEV;
|
||||
dvb->fe2->tuner_priv = dvb->fe->tuner_priv;
|
||||
memcpy(&dvb->fe2->ops.tuner_ops,
|
||||
&dvb->fe->ops.tuner_ops,
|
||||
sizeof(struct dvb_tuner_ops));
|
||||
}
|
||||
}
|
||||
if (dvb->fe2) {
|
||||
if (dvb_register_frontend(adap, dvb->fe2) < 0)
|
||||
return -ENODEV;
|
||||
dvb->fe2->tuner_priv = dvb->fe->tuner_priv;
|
||||
memcpy(&dvb->fe2->ops.tuner_ops,
|
||||
&dvb->fe->ops.tuner_ops,
|
||||
sizeof(struct dvb_tuner_ops));
|
||||
}
|
||||
|
||||
dvb->attached = 0x31;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int port_has_encti(struct ddb_port *port)
|
||||
{
|
||||
struct device *dev = port->dev->dev;
|
||||
|
|
Loading…
Reference in a new issue