diff options
| author | Michael Brown | 2007-07-02 18:43:32 +0200 |
|---|---|---|
| committer | Michael Brown | 2007-07-02 18:43:32 +0200 |
| commit | 5f17089b148211dd8667af4efa9302a1f46dbc49 (patch) | |
| tree | 0d131e90f9b7d2ebdc9422e3d5bd24ff31dd0d98 /src/arch | |
| parent | Build bochs with ne2000 support, and add sample lines in bochsrc.txt (diff) | |
| download | ipxe-5f17089b148211dd8667af4efa9302a1f46dbc49.tar.gz ipxe-5f17089b148211dd8667af4efa9302a1f46dbc49.tar.xz ipxe-5f17089b148211dd8667af4efa9302a1f46dbc49.zip | |
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.
Diffstat (limited to 'src/arch')
| -rw-r--r-- | src/arch/i386/image/pxe_image.c | 12 |
1 files changed, 10 insertions, 2 deletions
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; } /** |
