title: ARM Linux: bus error on one particular page of valid virtual memory
body: <p>I'm working on an embedded ARM Linux system, and occasionally (but not always) I get a bus error in my app when the page at virtual address 0x2b200000 is accessed. Depending on whether the compiler/linker put code or data at that address, I either get the bus error when reading variables, or when an instruction is fetched from that page. After the bus error I cat /proc/self/maps and confirm that the page is indeed mapped for something valid in my process.</p>
  
  <p>It does just seem to be that one page. Pages 0x2b201000 and 0x2b1ff000 are always ok (obviously there might be another bad address somewhere totally different and I just haven't happened to access it for anything).</p>
  
  <p>I realise there are a million unknowns here, but was wondering if anyone could point me in some direction of investigation. The system has custom driver .kos that use physical memory that is reserved or hidden from the rest of the kernel, but I don't get how that affects virtual addresses.</p>
  
  <p>Any nuggets of insight greatly appreciated.</p>