I'm trying to use the bigphysarea patch to help me allocate big physical chunks of memory for use by some custom embedded devices. I've applied the bigphysarea-2.4.20 patch and built, no trouble, and I've got it to config for my PPC. I can see at boot time that the bigphysarea is getting its pages.
I'm trying to use a mmap call to the driver to map a chunk of this memory into the process. The mmap for the driver has this: pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE; vma->vm_flags |= VM_RESERVED; npages = (vma->vm_end - vma->vm_start) / PAGE_SIZE; heap_map_base = bigphysarea_alloc_pages(npages, 1, GFP_KERNEL); printk("XXXX Map base=%p, %ld pages\n", heap_map_base, npages); rc = remap_page_range(vma->vm_start, (unsigned long)heap_map_base, npages*PAGE_SIZE, vma->vm_page_prot); The mmap returns without an error, but any access to the mapped region gets me an immediate "Oops: machine check, sig: 7". I don't see it. Where is the stupid mistake that I'm invariably making? -- Steve Williams "The woods are lovely, dark and deep. steve at icarus.com But I have promises to keep, http://www.icarus.com and lines to code before I sleep, http://www.picturel.com And lines to code before I sleep."