netdev_close() assumes that devices that are open are on the
open_list, which wasn't true if device specific opening failed.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
DBGC ( netdev, "NETDEV %s opening\n", netdev->name );
- /* Mark as opened */
- netdev->state |= NETDEV_OPEN;
-
/* Open the device */
if ( ( rc = netdev->op->open ( netdev ) ) != 0 )
return rc;
+ /* Mark as opened */
+ netdev->state |= NETDEV_OPEN;
+
/* Add to head of open devices list */
list_add ( &netdev->open_list, &open_net_devices );