diff options
-rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvb_net.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_net.c b/linux/drivers/media/dvb/dvb-core/dvb_net.c index 93bf8f699..2d4e65e91 100644 --- a/linux/drivers/media/dvb/dvb-core/dvb_net.c +++ b/linux/drivers/media/dvb/dvb-core/dvb_net.c @@ -582,7 +582,8 @@ static int dvb_net_add_if(struct dvb_net *dvbnet, u16 pid) net->base_addr = pid; if ((result = register_netdev(net)) < 0) { - kfree(net); + dvbnet->device[if_num] = NULL; + free_netdev(net); return result; } @@ -622,6 +623,7 @@ static int dvb_net_remove_if(struct dvb_net *dvbnet, int num) flush_scheduled_work(); unregister_netdev(net); dvbnet->state[num]=0; + dvbnet->device[num] = NULL; free_netdev(net); return 0; |