summaryrefslogtreecommitdiffstats
path: root/contrib/libc++/src/bind.cpp
diff options
context:
space:
mode:
authorjhibbits <jhibbits@FreeBSD.org>2017-04-01 18:52:48 +0000
committerjhibbits <jhibbits@FreeBSD.org>2017-04-01 18:52:48 +0000
commit16386726ac0fa090573e9c120df08d1001eabbd8 (patch)
tree5ffc6d009d464dd2cb567cc3c84d58b87507c32f /contrib/libc++/src/bind.cpp
parent9026e07ad110db878fcdc7ae51c8e9cdf035d749 (diff)
downloadFreeBSD-src-16386726ac0fa090573e9c120df08d1001eabbd8.zip
FreeBSD-src-16386726ac0fa090573e9c120df08d1001eabbd8.tar.gz
MFC r314885:
Fix booting with >4GB RAM on PowerMac G5 hardware === From Nathan Whitehorn: Open Firmware runs in virtual mode on the Powermac G5. This runs inside the kernel page table, which preserves all address translations made by OF before the kernel starts; as a result, the kernel address space is a strict superset of OF's. Where this explodes is if OF uses an unmapped SLB entry. The SLB fault handler runs in real mode and refers to the PCPU pointer in SPRG0, which blows up the kernel. Having a value of SPRG0 that works for the kernel is less fatal than preserving OF's value in this case. === The result of this is seemingly random panics from NULL dereferences, or hangs immediately upon boot. By not restoring SPRG0 for Open Firmware entry the kernel PCPU pointer is preserved and SLB faults are successful, resulting in a stable kernel. PR: 205458
Diffstat (limited to 'contrib/libc++/src/bind.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud