summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/autoboot.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/usr/autoboot.c b/src/usr/autoboot.c
index ddfc37819..e67722981 100644
--- a/src/usr/autoboot.c
+++ b/src/usr/autoboot.c
@@ -16,7 +16,9 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include <string.h>
#include <vsprintf.h>
+#include <gpxe/netdevice.h>
#include <gpxe/autoboot.h>
/** @file
@@ -30,11 +32,21 @@ void test_dhcp ( struct net_device *netdev );
void autoboot ( void ) {
struct net_device *netdev;
+ int rc;
netdev = next_netdev ();
- if ( netdev ) {
- test_dhcp ( netdev );
- } else {
+ if ( ! netdev ) {
printf ( "No network device found\n" );
+ return;
+ }
+
+ if ( ( rc = netdev_open ( netdev ) ) != 0 ) {
+ printf ( "Could not open %s: %s\n", netdev_name ( netdev ),
+ strerror ( rc ) );
+ return;
}
+
+ test_dhcp ( netdev );
+
+ netdev_close ( netdev );
}