diff options
| author | Michael Brown | 2014-05-03 02:07:38 +0200 |
|---|---|---|
| committer | Michael Brown | 2014-05-03 19:52:15 +0200 |
| commit | 206bd7bb64ddda692056ce1ebd68efbf794af803 (patch) | |
| tree | 3e57d935054a8f759d1963eadb6dafdbd2b3b74c /src/arch/i386 | |
| parent | [pxe] Profile UNDI transmit datapath (diff) | |
| download | ipxe-206bd7bb64ddda692056ce1ebd68efbf794af803.tar.gz ipxe-206bd7bb64ddda692056ce1ebd68efbf794af803.tar.xz ipxe-206bd7bb64ddda692056ce1ebd68efbf794af803.zip | |
[pxe] Work around missing PXENV_UNDI_OPEN only when necessary
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/i386')
| -rw-r--r-- | src/arch/i386/interface/pxe/pxe_undi.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/arch/i386/interface/pxe/pxe_undi.c b/src/arch/i386/interface/pxe/pxe_undi.c index a17b9b3b0..29e586ed2 100644 --- a/src/arch/i386/interface/pxe/pxe_undi.c +++ b/src/arch/i386/interface/pxe/pxe_undi.c @@ -330,8 +330,10 @@ pxenv_undi_transmit ( struct s_PXENV_UNDI_TRANSMIT *undi_transmit ) { * processing at this point, to work around callers that never * call PXENV_UNDI_OPEN before attempting to use the UNDI API. */ - netdev_rx_freeze ( pxe_netdev ); - netdev_irq ( pxe_netdev, 1 ); + if ( ! netdev_rx_frozen ( pxe_netdev ) ) { + netdev_rx_freeze ( pxe_netdev ); + netdev_irq ( pxe_netdev, 1 ); + } /* Identify network-layer protocol */ switch ( undi_transmit->Protocol ) { |
