diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-05-31 15:46:48 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2007-05-31 15:46:48 -0700 |
commit | 6db864e0a1c3cfa447892805782198c0c52f560d (patch) | |
tree | b3924187b7557803d002d0b197431ec26c213808 | |
parent | f12b67b9b1870fca92fdd6ef12873934d8ac63de (diff) | |
download | syslinux-6db864e0a1c3cfa447892805782198c0c52f560d.tar.gz |
Disable polling for ARP during idle.
Disable polling for ARP during idle. On some PXE stacks, e.g. Marvell,
this just takes way too long. Compared to that, losing an ARP is a
relatively benign event.
-rw-r--r-- | pxelinux.asm | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/pxelinux.asm b/pxelinux.asm index a5402c73..b9c541e7 100644 --- a/pxelinux.asm +++ b/pxelinux.asm @@ -53,15 +53,26 @@ SECTOR_SIZE equ TFTP_BLOCKSIZE ; ; This is what we need to do when idle -; -%define HAVE_IDLE 1 ; idle is not a noop +; *** This is disabled because some PXE stacks wait for unacceptably +; *** long if there are no packets receivable. + +%define HAVE_IDLE 0 ; idle is not a noop +%if HAVE_IDLE %macro RESET_IDLE 0 call reset_idle %endmacro %macro DO_IDLE 0 call check_for_arp %endmacro +%else +%macro RESET_IDLE 0 + ; Nothing +%endmacro +%macro DO_IDLE 0 + ; Nothing +%endmacro +%endif ; ; TFTP operation codes @@ -2282,6 +2293,8 @@ genipopt: ; passed since the last poll, and reset this when a character is ; received (RESET_IDLE). ; +%if HAVE_IDLE + reset_idle: push ax mov ax,[cs:BIOS_timer] @@ -2321,6 +2334,8 @@ check_for_arp: RESET_IDLE ret +%endif ; HAVE_IDLE + ; ----------------------------------------------------------------------------- ; Common modules ; ----------------------------------------------------------------------------- |