Thanks to Asit's patch a while back, we've seen a lot less MCA's from accesses to the VGA range. There still seems to be one lurking though. I've traced it down to the prefetching in free_one_pgd(). This function prefetches farther than it needs to, and can easily try to prefetch from the VGA MMIO region at 0xa0000. On an HP zx1 system, this causes an MCA if the VGA card doesn't respond. There seem to be (at least) two solutions to this. One is to modify mm/memory.c such that it only prefetches to the extent that it uses. This might have some performance implications, but they're likely minimal. The other alternative, is that efi_memmap_walk() could detect this situation, and ignore a page of memory. This can be a generic test, just checking for usable memory directly adjacent to MMIO. I've included diffs to illustrate each solution. I'd be interested to know which people think is the more viable alternative or if there are other potential solutions. Thanks, Alex -- Alex Williamson Linux Development Lab alex_williamson@hp.com Hewlett Packard 970-898-9173 Fort Collins, CO