From 5f17089b148211dd8667af4efa9302a1f46dbc49 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 2 Jul 2007 17:43:32 +0100 Subject: pxe_netdev now holds a reference to the network device. Use generic fields in struct device_description rather than assuming that the struct device * is contained within a pci_device or isapnp_device; this assumption is broken when using the undionly driver. Add PXENV_UNDI_SET_STATION_ADDRESS. --- src/arch/i386/image/pxe_image.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/arch') diff --git a/src/arch/i386/image/pxe_image.c b/src/arch/i386/image/pxe_image.c index 9cf546916..c64692900 100644 --- a/src/arch/i386/image/pxe_image.c +++ b/src/arch/i386/image/pxe_image.c @@ -40,6 +40,7 @@ struct image_type pxe_image_type __image_type ( PROBE_PXE ); */ static int pxe_exec ( struct image *image __unused ) { struct net_device *netdev; + int rc; /* Ensure that PXE stack is ready to use */ pxe_init_structures(); @@ -47,11 +48,18 @@ static int pxe_exec ( struct image *image __unused ) { /* Arbitrarily pick the first open network device to use for PXE */ for_each_netdev ( netdev ) { - pxe_netdev = netdev; + pxe_set_netdev ( netdev ); break; } - return pxe_start_nbp(); + /* Start PXE NBP */ + rc = pxe_start_nbp(); + + /* Deactivate PXE */ + pxe_set_netdev ( NULL ); + pxe_unhook_int1a(); + + return rc; } /** -- cgit v1.2.3-55-g7522