summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into elflinkelflinkH. Peter Anvin2014-01-174-11/+37
|\ | | | | | | | | | | | | | | | | Resolved Conflicts: NEWS core/fs/fs.c version Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| * diag/geodsp: README fixesGene Cumm2014-01-081-7/+25
| | | | | | | | | | | | Should clarify the situation; also word-wrap & save example Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * diag/geodsp: fix MakefileGene Cumm2014-01-081-3/+3
| | | | | | | | | | | | | | Results in null image Reported-By: ioannis Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * Remove some whitespaceRuben Kerkhof2013-12-301-1/+1
| | | | | | | | | | Signed-off-by: Ruben Kerkhof <ruben at rubenkerkhof.com> Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * isolinux: Clear upper half of EDX before usingH. Peter Anvin2013-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In checkin: cb015497a4e4 isolinux: Update LBA in getlinsec loop ... we use EDX as a sector count, but the sector count is actually in DX, and the upper half of EDX is uninitialized. If the BIOS enters with a nonzero value in the upper half of EDX, this breaks horribly. At least one set of BIOSes has been identified where if the LBA > 64K then the upper half of EDX will be nonzero. Reported-by: Carl Duff <cdrw2400@gmail.com> Reported-by: Philip Müller <philm@manjaro.org> Tested-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * NEWS: document changes in 4.07syslinux-4.07Matt Fleming2013-07-251-0/+8
| | | | | | | | Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * version: bump version and datesyslinux-4.07-pre1Matt Fleming2013-07-121-1/+1
| | | | | | | | | | | | Welcome to the 4.07 release cycle Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * menugen: Make it compatible with Py3kPaulo Alcantara2013-02-271-28/+28
| | | | | | | | | | Signed-off-by: Paulo Alcantara <pcacjr@zytor.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * isolinux: Update LBA in getlinsec loopMatt Fleming2013-01-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to increment the Logical Block Address in eax by the number of sectors we passed to getlinsec after every invocation, otherwise we'll start with the same sector everytime. This bug was discovered when booting an isohybrid image, which failed to boot after printing the following error, "Image checksum error, sorry..." because the isolinux.bin was bigger than 32K, and thus invoked the getlinsec loop that reads the file in chunks. Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * Merge branch 'searchdir_leak-406' of git://git.zytor.com/users/sha0/syslinux ↵Matt Fleming2012-12-041-108/+155
| |\ | | | | | | | | | | | | | | | | | | | | | | | | into stable Pull a change that fixes a resource leak from Shao Miller, * 'searchdir_leak-406' of git://git.zytor.com/users/sha0/syslinux: fs: Fix searchdir resource leak
| | * fs: Fix searchdir resource leakShao Miller2012-11-291-108/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a significant rewrite of the generic lookup logic inside core/fs/fs.c's searchdir function. Previously, there was a memory leak if a path involved multiple directories. After a sufficiently large number of invocations, this could be observed. Reported-by: Ady <ady-sf@hotmail.com> Signed-off-by: Shao Miller <sha0.miller@gmail.com>
| * | extlinux: Avoid dereferencing a garbage pointerMatt Fleming2012-11-051-3/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | If opt.reset_adv is set the call to ext_read_adv() is skipped which would have initialised 'filename'. This means that a pointer containing random data from the stack is passed to ext_write_adv(). Just delete the opt.reset_adv logic since modify_adv() handles that case anyway. Reported-by: Frediano Ziglio <frediano.ziglio@citrix.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | core/legacynet: Enable dot quad resolutionGene Cumm2014-01-081-0/+35
| | | | | | | | | | | | in dnsresolv.c:dns_resolv() Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | pxe, efi: Bad read of file size over TFTP on EFI64Celelibi2013-12-111-35/+11
| | | | | | | | | | | | | | | | | | | | | | | | A fancy pointers logic has been replaced with a plain old if / else branches. It was assigning only half of a 64 bits integer which is then assigned to a size_t. Thus leading to a bug on platform where size_t is 64 bits. Resolves bug #26 Signed-off-by: Celelibi <celelibi@gmail.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | isolinux: Clear upper half of EDX before usingH. Peter Anvin2013-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In checkin: cb015497a4e4 isolinux: Update LBA in getlinsec loop ... we use EDX as a sector count, but the sector count is actually in DX, and the upper half of EDX is uninitialized. If the BIOS enters with a nonzero value in the upper half of EDX, this breaks horribly. At least one set of BIOSes has been identified where if the LBA > 64K then the upper half of EDX will be nonzero. Reported-by: Carl Duff <cdrw2400@gmail.com> Reported-by: Philip Müller <philm@manjaro.org> Tested-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | com32: Fix a bug on history of commands.Raphael S.Carvalho2013-09-301-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | Previously, even zero-length commands would be added to the history when they shoudn't, e.g: just typing enter. For example, if you type: FOO -> (ENTER) -> (ENTER), then to get FOO from the history you would have to press the UP key twice. It also saves a bit of memory. Signed-off-by: Raphael S.Carvalho <raphael.scarv@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | com32: Fix bugs on cmd_reverse_search (Triple fault dimension)Raphael S.Carvalho2013-09-301-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cmd_reverse_search has a bug that the variable cursor is updated even if a command wasn't found. If this happens, and the next key falls into the default case, memmove's size parameter would be a negative number. This bug can be reproduced by doing the following: On cmd_reverse_search (ctrl-r), type multiple keys at the same time. 'Enjoy' the triple fault and a screen of random colors. There is also a small bug that turns the task of using (ctrl-r) on the first command impossible. Previously, this command was discarded. Signed-off-by: Raphael S.Carvalho <raphael.scarv@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | com32/disk: Code cleanup at disk_write_sectors and disk_read_sectors.Raphael S.Carvalho2013-09-302-83/+97
| | | | | | | | | | | | | | | | Pulled common code out of these functions into new ones. The functions chs_setup and ebios_setup were created for this purpose. Signed-off-by: Raphael S.Carvalho <raphael.scarv@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | PXE ISR: Force polling on select hardware WORKAROUNDGene Cumm2013-09-301-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By OUI == 00:23:ae and flags == 0xdc1b, detect select hardware. On select platforms (Dell OptiPlex 760, Dell OptiPlex 960; perhaps more), the interrupt appears to go "deaf" after a few seconds. By matching MAC OUI and flags value, force polling on these select platforms. I'm not sure if there's any better data available that shallow in the core. I believe PCI IDs can be fetched with functions from other libraries and the UUID and DMI data (the most likely to be useful is SYSPRODUCT) is available in ldlinux.c32. Commit message expanded with Matt Fleming's assistance Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | core/lwip: Fix NULL pointer checkGene Cumm2013-09-231-1/+1
| | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | PXE: use ddprintf macroGene Cumm2013-09-233-26/+26
| | | | | | | | | | | | Messages are needed before ldlinux.c32 is loaded Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | com32: Define ddprintf() macroGene Cumm2013-09-231-0/+3
| | | | | | | | | | | | | | | | Duplicating Debug Printf; Certain warning/error printf() statements are not visible if they occur before ldlinux.c32 is loaded Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | PXELINUX: specify PXE/lwIPGene Cumm2013-09-232-2/+8
| | | | | | | | | | | | Styled after SYSLINUX Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | undiif: show thread of execution on UNDIIF_ID_DEBUGGene Cumm2013-09-231-3/+7
| | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | core: dprintf() the banner.Gene Cumm2013-09-231-0/+2
| | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | PXELINUX: Use sendto() instead of connect()/send()/disconnect()Gene Cumm2013-09-234-8/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit prevents a race-condition on systems that have functional interrupts (observed with iPXE and select other Dell systems). Without this, the reply packet could be received by the core prior to the disconnect() call, see that it doesn't have a matching PCB (protocol control block, iirc) since the reply has a different far-end UDP port than the original request, and lwIP will discard the packet before PXELINUX can see it. net_core_sendto() instead of net_core_connect() net_core_send() net_core_disconnect() Commit message expanded with Matt Fleming's assistance Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | core: make mbox_post()/__sem_down_slow() check if validGene Cumm2013-08-032-2/+2
| | | | | | | | | | | | If the mailbox/semaphore is invalid, disallow additions. Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | core: mbox/semaphore NULL checksGene Cumm2013-08-035-24/+41
| | | | | | | | | | | | Also set mbox invalid and mbox pointer NULL when free()d Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | core/lwip/undi: Improve UNDIIF_ID_DEBUG messagesGene Cumm2013-08-031-8/+9
| | | | | | | | | | | | Remove extra space; add TCP flags Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | Allow for UNDIIF_ID_DEBUG in 1 mk linesyslinux-5.11-pre9Gene Cumm2013-07-202-1/+5
| | | | | | | | | | | | | | Add comments and 1 line to mk/devel.mk to debug headers of all packets sent/recieved through undiif.c. Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | core/lwip/undiif: dprint MAC/ARP/IP/ICMP/TCP/UDP headers; poll debugGene Cumm2013-07-202-1/+220
| | | | | | | | | | | | | | Encapsulate in #ifdef; use snprintf and 1 dprintf-like statement. Print debug message that polling has been forced Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | lwip/undiif: split arphdr._hwlen_protolenGene Cumm2013-07-131-5/+7
| | | | | | | | | | | | lwIP already split this in etharp.h Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | lwip: Allow LWIP_PLATFORM_* output to use dprintfGene Cumm2013-07-121-2/+12
| | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | lwip: undiif: Fix debug options to unique *_DEBUG macrosGene Cumm2013-07-122-35/+56
| | | | | | | | | | | | Don't reuse *_DEBUG macros intended for other source files. Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | Merge branch 'dynamic-debug' into elflinksyslinux-5.11-pre8Matt Fleming2013-07-0510-6/+182
|\ \
| * | mk: enable dynamic debug supportMatt Fleming2013-07-051-0/+1
| | | | | | | | | | | | | | | | | | | | | This will probably be disabled for releases, but it's definitely worthwhile having enabled for all prereleases. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * | debug.c32: Dynamically enable/disable debug code at runtimeMatt Fleming2013-07-057-3/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's useful to be able to enable (and disable) debug code at runtime, particularly for allowing users that are unable to build their own Syslinux releases the chance to provide useful debugging output. For example, say a user reports trouble with their PXE stack but doesn't have a development environment setup to turn on the debug code themselves. With this change you can simply request that they do, debug.c32 -e pxe_call unload_pxe open_file to enable the debug in those functions. By only turning on code in specific functions we reduce the chance of disrupting the buggy behaviour and improve the signal to noise ratio for print statements. To disable debug code use the -d flag, debug.c32 -d pxe_call To use this new feature simply do, if (syslinux_debug_enabled) { debug1(); debug2(); .... } from within the function you wish to add debug code. Note that this feature is not limited to print statements - you can put any code within the conditional, such as verifying a checksum or checking for memory leaks. The plan is to leave the dynamic debug code built in for all prereleases and to turn it off for final releases. People may still want to build with all dprintf() statements enabled, and so a new symbol, DYNAMIC_DEBUG, was introduced rather than repurposing the old DEBUG, DEBUG_STDIO and DEBUG_PORT symbols. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * | mk: include $(GCCWARN) when building ELF objectsMatt Fleming2013-07-052-3/+3
| | | | | | | | | | | | | | | | | | | | | It's currently impossible to turn on dprintf() statements in com32/modules because $(GCCWARN) isn't used as part of $(CFLAGS). Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | | Merge branch 'idle' into elflinksyslinux-5.11-pre7Matt Fleming2013-07-036-79/+6
|\ \ \
| * | | idle: Consolidate idle implementationsMatt Fleming2013-07-036-79/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Duplicate code is bad. Move all the idle code to C and delete the old assembly stuff. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * | | idle: enable interrupts before idlingMatt Fleming2013-07-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Users are *still* reporting executing __idle() with interrupts disabled, which ultimately leads to a hang. Just enable them explicitly before idling. Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | | | Merge branch 'doc-for-mfleming' of git://github.com/geneC/syslinux into elflinksyslinux-5.11-pre6Matt Fleming2013-07-032-5/+6
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | Pull doc/ and txt/ spelling corrections from Gene Cumm, * 'doc-for-mfleming' of git://github.com/geneC/syslinux: doc/ & txt/: Spelling fix
| * | | doc/ & txt/: Spelling fixGene Cumm2013-07-012-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also add octal note. Reported-By: Ady <ady-sf@hotmail.com> Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | | | core: we only need one reset_idle()Matt Fleming2013-07-023-9/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't need both an assembly version of reset_idle and an implementation in C. Having these two functions has led to a bug where we may idle with interrupts disabled because an 'sti' is only performed in the assembly version. This lead to a hang waiting for user input. Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | | load_linux: validate sanity of 'initrd_addr_max'syslinux-5.11-pre5Matt Fleming2013-07-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some kernel headers have bogus 'initrd_addr_max' fields. This field should never be zero. Set it to the old upper limit if unspecified. Failure to set a non-zero value for the field results in a bogus 'memlimit' value, thereby unnecessarily reserving part of the memmap. Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | | load_linux: Add dprintf statements to aid debuggingMatt Fleming2013-07-011-12/+29
| | | | | | | | | | | | | | | | | | | | | It's useful to know why a kernel is failing to load. Sprinkle some dprintf() statements with informative messages. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | | conio: Fix pollchar() for serial consolesyslinux-5.11-pre4Matt Fleming2013-07-011-4/+3
|/ / | | | | | | | | | | | | The check of the LSR value was inverted. This resulted in pollchar() always claiming that there was data to be read from the serial console. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | ldlinux: fix INCLUDE regressionsyslinux-5.11-pre3Matt Fleming2013-06-271-22/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | We don't want to overwrite 'ConfigName' when parsing a config file via the INCLUDE directive, which commit 5447ef821 ("ldlinux: Always update ConfigName when opening a config file") failed to take into account. In the INCLUDE case we're only parsing config fragments, and not a main config file. Rename parse_one_config() to parse_main_config() to more accurately reflect when it should be invoked (i.e. not for INCLUDE). Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | PXELINUX: implement our own version of local_boot16Matt Fleming2013-06-263-6/+66
| | | | | | | | | | | | | | | | | | We need to do different things for PXE, such as reset the PXE environment when booting from the local disk from PXELINUX. This fixes a localboot regression. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | Merge branch 'ipappend-fix-for-mfleming' of git://github.com/geneC/syslinux ↵Matt Fleming2013-06-264-4/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | into elflink Pull patches to standardize and document IPAPPEND/SYSAPPEND from Gene Cumm, * 'ipappend-fix-for-mfleming' of git://github.com/geneC/syslinux: doc/ & txt/: Document IPAPPEND/SYSAPPEND format core & menu: fix IPAPPEND/SYSAPPEND conversion