From 88016deccf05e4370c1362fbc13405a2123a89a1 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 12 Jul 2012 16:04:41 +0100 Subject: [PATCH] [pxe] Reopen network device if NBP exits Attempt to restore the network device to the state it was in prior to calling the NBP. This simplifies the task of taking follow-up action in an iPXE script. Signed-off-by: Michael Brown --- src/arch/i386/image/pxe_image.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/arch/i386/image/pxe_image.c b/src/arch/i386/image/pxe_image.c index e037c793..722f6bbc 100644 --- a/src/arch/i386/image/pxe_image.c +++ b/src/arch/i386/image/pxe_image.c @@ -65,6 +65,7 @@ static int pxe_exec ( struct image *image ) { image ); return -ENODEV; } + netdev_get ( netdev ); /* Activate PXE */ pxe_activate ( netdev ); @@ -81,6 +82,12 @@ static int pxe_exec ( struct image *image ) { /* Deactivate PXE */ pxe_deactivate(); + /* Try to reopen network device. Ignore errors, since the NBP + * may have called PXENV_STOP_UNDI. + */ + netdev_open ( netdev ); + netdev_put ( netdev ); + return rc; }