Linux 2.6切换g_ether和mass storage,rmmod g_ether时候出现exception的解决方法

最近在Linux 2.6要实现一个切换g_ether和mass storage两个模式,

但是发现卸载g_ether的时候,会导致系统死机重启,放Google搜索了下,找到了问题的解决方法:

方法如下


 /* report disconnect; the driver is already quiesced */
 driver->disconnect(&udc_controller->gadget); /*加上这一行*/

 /* unbind gadget and unhook driver. */
 driver->unbind(&udc_controller->gadget);
 udc_controller->gadget.dev.driver = NULL;