--- memtest86+-4.20.orig/main.c 2011-01-23 20:11:04.000000000 +0200 +++ memtest86+-4.20/main.c 2011-11-17 00:47:14.552480190 +0200 @@ -112,7 +112,8 @@ static void __run_at(unsigned long addr) memmove((void *)addr, &_start, _end - _start); /* Jump to the start address */ p = (ulong *)(addr + startup_32 - _start); - goto *p; + + asm __volatile__ ("jmp *%%eax" : : "a" (p)); } static unsigned long run_at_addr = 0xffffffff;