/* Assign device name (for debugging) */
rndis->name = netdev->dev->name;
- /* Register network device */
- if ( ( rc = register_netdev ( netdev ) ) != 0 ) {
- DBGC ( rndis, "RNDIS %s could not register: %s\n",
- rndis->name, strerror ( rc ) );
- goto err_register;
- }
-
/* Open RNDIS device to read MAC addresses */
if ( ( rc = rndis->op->open ( rndis ) ) != 0 ) {
DBGC ( rndis, "RNDIS %s could not open: %s\n",
/* Close RNDIS device */
rndis->op->close ( rndis );
+ /* Register network device */
+ if ( ( rc = register_netdev ( netdev ) ) != 0 ) {
+ DBGC ( rndis, "RNDIS %s could not register: %s\n",
+ rndis->name, strerror ( rc ) );
+ goto err_register;
+ }
+
return 0;
+ unregister_netdev ( netdev );
+ err_register:
err_query_link:
err_query_current:
err_query_permanent:
err_initialise:
rndis->op->close ( rndis );
err_open:
- unregister_netdev ( netdev );
- err_register:
return rc;
}