wok rev 15980

syslinux/iso2exe: skip 15M-16M frequent hole
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Mar 01 10:30:44 2014 +0000 (2014-03-01)
parents 7e8a95a52792
children 3f0b08dbc9d3
files syslinux/stuff/iso2exe/bootlinux.c
line diff
     1.1 --- a/syslinux/stuff/iso2exe/bootlinux.c	Fri Feb 28 22:37:42 2014 +0100
     1.2 +++ b/syslinux/stuff/iso2exe/bootlinux.c	Sat Mar 01 10:30:44 2014 +0000
     1.3 @@ -83,7 +83,7 @@
     1.4  		mov	ax, #0x8793
     1.5  		mov	[si+0x15], al
     1.6  		xchg	[si+0x1D], al
     1.7 -		mov	[si+0x1F], al	// bits 24..31, doesn't work for me :(
     1.8 +		mov	[si+0x1F], al	// bits 24..31
     1.9  		int	0x15
    1.10  		add	sp, #0x30
    1.11  		popa
    1.12 @@ -117,8 +117,9 @@
    1.13  		}
    1.14  		p->align = PAGE_SIZE;
    1.15  		break;
    1.16 -	case 4096: // first initrd
    1.17 -		initrd_addr = p->base;
    1.18 +	case 4096: // first initrd : skip 0xF00000 .. 0x1000000 mapping hole
    1.19 +		initrd_addr = (p->base + size > 0xF00000 && 
    1.20 +				p->base < 0x1000000) ? 0x1000000 : p->base;
    1.21  		p->align = 4;
    1.22  	}
    1.23  	while (size) {