Change the signature of dmx_unregister_demux. dmx_unregister_demux() may fail but 1) no caller checks it; 2) the caller should have already closed the demux. -> Modify the signature of the function and issue an error message. Signed-off-by: Francois Romieu <romieu@xxxxxxxxxxxxx> diff -puN drivers/media/dvb/dvb-core/dvb_demux.c~dvb-150 drivers/media/dvb/dvb-core/dvb_demux.c --- a/drivers/media/dvb/dvb-core/dvb_demux.c~dvb-150 2005-05-20 19:23:17.555864911 +0200 +++ b/drivers/media/dvb/dvb-core/dvb_demux.c 2005-05-20 19:23:17.564863412 +0200 @@ -48,20 +48,20 @@ static void dmx_register_demux(struct dm list_add(&demux->reg_list, &dmx_muxs); } -static int dmx_unregister_demux(struct dmx_demux* demux) +static void dmx_unregister_demux(struct dmx_demux *demux) { - struct list_head *pos, *n, *head=&dmx_muxs; + struct list_head *pos, *n, *head = &dmx_muxs; list_for_each_safe (pos, n, head) { if (DMX_DIR_ENTRY(pos) == demux) { - if (demux->users>0) - return -EINVAL; + if (demux->users > 0) { + printk(KERN_ERR "dvb_demux.c: still in use\n"); + break; + } list_del(pos); - return 0; + break; } } - - return -ENODEV; } _