aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Brown <mcb30@etherboot.org>2007-07-03 00:57:53 +0100
committerMichael Brown <mcb30@etherboot.org>2007-07-03 00:57:53 +0100
commit258afef751b82c5443038ce4e1d4b7d88f28cfd8 (patch)
treeef23a946a03515150be2acc33d3fdbee24bcf074 /src
parenta2a0c2eace7d4d25f6ac5cac90a1e02c205f212c (diff)
downloadipxe-258afef751b82c5443038ce4e1d4b7d88f28cfd8.zip
ipxe-258afef751b82c5443038ce4e1d4b7d88f28cfd8.tar.gz
ipxe-258afef751b82c5443038ce4e1d4b7d88f28cfd8.tar.bz2
Add missing call to free_iob() in pxenv_undi_isr().
Correct typo in pxenv_set_station_address().
Diffstat (limited to 'src')
-rw-r--r--src/interface/pxe/pxe_undi.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/interface/pxe/pxe_undi.c b/src/interface/pxe/pxe_undi.c
index 4e7529a..e085a93 100644
--- a/src/interface/pxe/pxe_undi.c
+++ b/src/interface/pxe/pxe_undi.c
@@ -35,7 +35,6 @@
#include <gpxe/ip.h>
#include <gpxe/arp.h>
#include <gpxe/rarp.h>
-#include <gpxe/shutdown.h>
#include "pxe.h"
/**
@@ -284,7 +283,7 @@ pxenv_undi_set_station_address ( struct s_PXENV_UNDI_SET_STATION_ADDRESS
&undi_set_station_address->StationAddress,
pxe_netdev->ll_protocol->ll_addr_len );
- undi_set_station_address = PXENV_STATUS_SUCCESS;
+ undi_set_station_address->Status = PXENV_STATUS_SUCCESS;
return PXENV_EXIT_SUCCESS;
}
@@ -559,12 +558,11 @@ PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr ) {
DBG ( " RECEIVE %zd", len );
if ( len > sizeof ( basemem_packet ) ) {
/* Should never happen */
- undi_isr->FuncFlag = PXENV_UNDI_ISR_OUT_DONE;
- undi_isr->Status = PXENV_STATUS_OUT_OF_RESOURCES;
- return PXENV_EXIT_FAILURE;
+ len = sizeof ( basemem_packet );
}
memcpy ( basemem_packet, iobuf->data, len );
+ /* Fill in UNDI_ISR structure */
undi_isr->FuncFlag = PXENV_UNDI_ISR_OUT_RECEIVE;
undi_isr->BufferLength = len;
undi_isr->FrameLength = len;
@@ -576,6 +574,9 @@ PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr ) {
/* Probably ought to fill in packet type */
undi_isr->ProtType = P_UNKNOWN;
undi_isr->PktType = XMT_DESTADDR;
+
+ /* Free packet */
+ free_iob ( iobuf );
break;
default :
DBG ( " INVALID(%04x)", undi_isr->FuncFlag );