[2.6] DVB:Fix adapter module removal bug
PATCH 1/1 [2.6] DVB:Fix adapter module removal bug
Hello,
unfortunately it's possible to remove a DVB adapter module even if a DVB network device has been set up using this adapter.
The attached patch fixes this problem. Please apply. Thanks!
CU
Michael.
drivers/media/dvb/dvb-core/dvb_net.c +15 -2
@@ -1095,9 +1095,15 @@if (!capable (CAP_SYS_ADMIN ))return -EPERM ; + +if (!try_module_get (dvbdev->adapter->module)) +return -EPERM ; + result=dvb_net_add_if (dvbnet, dvbnetif->pid, dvbnetif->feedtype); -if (result<0 ) +if (result<0 ) { +module_put (dvbdev->adapter->module);return result; + } dvbnetif->if_num=result;break ; }
@@ -1120,6 +1126,7 @@case NET_REMOVE_IF :if (!capable (CAP_SYS_ADMIN ))return -EPERM ; +module_put (dvbdev->adapter->module);return dvb_net_remove_if (dvbnet, (int ) (long ) parg);/* binary compatiblity cruft */
@@ -1130,9 +1137,15 @@if (!capable (CAP_SYS_ADMIN ))return -EPERM ; + +if (!try_module_get (dvbdev->adapter->module)) +return -EPERM ; + result=dvb_net_add_if (dvbnet, dvbnetif->pid,DVB_NET_FEEDTYPE_MPE ); -if (result<0 ) +if (result<0 ) { +module_put (dvbdev->adapter->module);return result; + } dvbnetif->if_num=result;break ; }