diff options
| author | Michael Brown | 2012-07-12 17:04:41 +0200 |
|---|---|---|
| committer | Michael Brown | 2012-07-12 17:06:05 +0200 |
| commit | 88016deccf05e4370c1362fbc13405a2123a89a1 (patch) | |
| tree | bff99ef72764f47cda43bf0521e00ad2a8efdee9 /src | |
| parent | [settings] Expose exit status of failed command via ${errno} (diff) | |
| download | ipxe-88016deccf05e4370c1362fbc13405a2123a89a1.tar.gz ipxe-88016deccf05e4370c1362fbc13405a2123a89a1.tar.xz ipxe-88016deccf05e4370c1362fbc13405a2123a89a1.zip | |
[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 <mcb30@ipxe.org>
Diffstat (limited to 'src')
| -rw-r--r-- | src/arch/i386/image/pxe_image.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/arch/i386/image/pxe_image.c b/src/arch/i386/image/pxe_image.c index e037c7936..722f6bbce 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; } |
