Skip to content

Commit cf44fc3

Browse files
ribaldasmb49
authored andcommitted
media: dvb-usb: dib0700_devices: Add missing release_firmware()
BugLink: https://bugs.launchpad.net/bugs/2077600 [ Upstream commit 4b267c2 ] Add missing release_firmware on the error paths. drivers/media/usb/dvb-usb/dib0700_devices.c:2415 stk9090m_frontend_attach() warn: 'state->frontend_firmware' from request_firmware() not released on lines: 2415. drivers/media/usb/dvb-usb/dib0700_devices.c:2497 nim9090md_frontend_attach() warn: 'state->frontend_firmware' from request_firmware() not released on lines: 2489,2497. Signed-off-by: Ricardo Ribalda <[email protected]> Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Sasha Levin <[email protected]> Signed-off-by: Portia Stephens <[email protected]> Signed-off-by: Roxana Nicolescu <[email protected]>
1 parent c05cca9 commit cf44fc3

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

drivers/media/usb/dvb-usb/dib0700_devices.c

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2412,7 +2412,12 @@ static int stk9090m_frontend_attach(struct dvb_usb_adapter *adap)
24122412

24132413
adap->fe_adap[0].fe = dvb_attach(dib9000_attach, &adap->dev->i2c_adap, 0x80, &stk9090m_config);
24142414

2415-
return adap->fe_adap[0].fe == NULL ? -ENODEV : 0;
2415+
if (!adap->fe_adap[0].fe) {
2416+
release_firmware(state->frontend_firmware);
2417+
return -ENODEV;
2418+
}
2419+
2420+
return 0;
24162421
}
24172422

24182423
static int dib9090_tuner_attach(struct dvb_usb_adapter *adap)
@@ -2485,16 +2490,23 @@ static int nim9090md_frontend_attach(struct dvb_usb_adapter *adap)
24852490
dib9000_i2c_enumeration(&adap->dev->i2c_adap, 1, 0x20, 0x80);
24862491
adap->fe_adap[0].fe = dvb_attach(dib9000_attach, &adap->dev->i2c_adap, 0x80, &nim9090md_config[0]);
24872492

2488-
if (adap->fe_adap[0].fe == NULL)
2493+
if (!adap->fe_adap[0].fe) {
2494+
release_firmware(state->frontend_firmware);
24892495
return -ENODEV;
2496+
}
24902497

24912498
i2c = dib9000_get_i2c_master(adap->fe_adap[0].fe, DIBX000_I2C_INTERFACE_GPIO_3_4, 0);
24922499
dib9000_i2c_enumeration(i2c, 1, 0x12, 0x82);
24932500

24942501
fe_slave = dvb_attach(dib9000_attach, i2c, 0x82, &nim9090md_config[1]);
24952502
dib9000_set_slave_frontend(adap->fe_adap[0].fe, fe_slave);
24962503

2497-
return fe_slave == NULL ? -ENODEV : 0;
2504+
if (!fe_slave) {
2505+
release_firmware(state->frontend_firmware);
2506+
return -ENODEV;
2507+
}
2508+
2509+
return 0;
24982510
}
24992511

25002512
static int nim9090md_tuner_attach(struct dvb_usb_adapter *adap)

0 commit comments

Comments
 (0)