>You may be seeing PCI write posting. Try reading a harmless port after
>the outb calls

I think I've found the problem.  It's another effect of this business of 
overloading access information onto the pagetable C and B bits.

The way ioperm works on the ARM is that we open /dev/mem and mmap the 
appropriate range to get access to the ISA ports, then use mprotect to turn 
individual pages on and off to give at least some semblance of individual 
access control.  This was actually inherited from the Alpha port.

Now, the problem is that if you call mprotect(PROT_READ) this 
ends up being translated to a protection value of PAGE_READONLY (via the 
protection_map[] stuff).  And, surprise, PAGE_READONLY is actually
PTE_TYPE_SMALL | PTE_YOUNG | PTE_CACHEABLE.  Oops.

For the time being I guess it can be made to work by just always enabling 
access to all the I/O ports with mmap and never using mprotect.  It's a bit 
nasty though.

p.


unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]

Reply via email to