mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
[media] videobuf-dvb: avoid spurious ENOMEM when CONFIG_DVB_NET=n
videobuf_dvb_register_bus relies on dvb_net_init to set dvbnet->dvbdev
on success, but ever since commit fcc8e7d8c0
("dvb_net: Simplify the
code if DVB NET is not defined"), ->dvbdev is left unset when
networking support is disabled. Therefore in such configurations
videobuf_dvb_register_bus always returns failure, tripping
little-tested error handling paths and preventing the device from
being initialized and used.
Now that dvb_net_init returns a nonzero value on error, we can use
that as a more reliable error indication. Do so.
Now your card be used with CONFIG_DVB_NET=n, and the kernel will pass
on a more useful error code describing what happened when
CONFIG_DVB_NET=y but dvb_net_init fails due to resource exhaustion.
Reported-by: David Fries <David@Fries.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
58fae6739f
commit
5c96ebb7ce
@ -226,9 +226,10 @@ static int videobuf_dvb_register_frontend(struct dvb_adapter *adapter,
|
||||
}
|
||||
|
||||
/* register network adapter */
|
||||
dvb_net_init(adapter, &dvb->net, &dvb->demux.dmx);
|
||||
if (dvb->net.dvbdev == NULL) {
|
||||
result = -ENOMEM;
|
||||
result = dvb_net_init(adapter, &dvb->net, &dvb->demux.dmx);
|
||||
if (result < 0) {
|
||||
printk(KERN_WARNING "%s: dvb_net_init failed (errno = %d)\n",
|
||||
dvb->name, result);
|
||||
goto fail_fe_conn;
|
||||
}
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user