···28282929 do {3030 size = sizeof(struct e820entry);3131- id = SMAP;3131+3232+ /* Important: %edx is clobbered by some BIOSes,3333+ so it must be either used for the error output3434+ or explicitly marked clobbered. */3235 asm("int $0x15; setc %0"3333- : "=am" (err), "+b" (next), "+d" (id), "+c" (size),3636+ : "=d" (err), "+b" (next), "=a" (id), "+c" (size),3437 "=m" (*desc)3535- : "D" (desc), "a" (0xe820));3838+ : "D" (desc), "d" (SMAP), "a" (0xe820));36393740 /* Some BIOSes stop returning SMAP in the middle of3841 the search loop. We don't know exactly how the BIOS