(root)/kernel/ – Rev 758
Rev 757 |
Rev 759 |
Go to most recent revision |
Last modification |
Compare with Previous |
View Log
| Download
| RSS feed
Last modification
- Rev 758 2006-02-02 00:06:10
- Author: jermar
- Log message:
- sparc64 bugfix.
When disabling IMMU and DMMU the kernel has to perform synchronization operation
(e.g flush %r or membar #Sync instruction). There is no guarantee that the address
contained in %r is in DTLB and therefore the flush instruction can fault. Normally
this would be recognized and fixed by the OpenFirmware Fast Data MMU fault handler.
However, this handler lives in virtually mapped memory and an attempt to execute
there while the MMUs are disabled would result in a nested trap leading to error state.
Replacing flush %r instruction with membar #Sync, wich is sufficient in this case,
fixes this problem.