Hi Juergen,
It helps to actually Cc the person who broke it ;-)
On Thu, Jun 23, 2022 at 11:46:07AM +0200, Juergen Gross wrote:
Commit e32683c6f7d2 ("x86/mm: Fix RESERVE_BRK() for older binutils")
put the brk area into the .bss..brk section (placed directly behind
.bss),
Hm? It didn't actually do that.
For individual translation units, it did rename the section from
".brk_reservation" to ".bss..brk". But then during linking it's still
placed in .brk in vmlinux, just like before.
causing it not to be cleared initially. As the brk area is used
to allocate early page tables, these might contain garbage in not
explicitly written entries.
This is especially a problem for Xen PV guests, as the hypervisor will
validate page tables (check for writable page tables and hypervisor
private bits) before accepting them to be used. There have been reports
of early crashes of PV guests due to illegal page table contents.
Fix that by letting clear_bss() clear the brk area, too.
While it does make sense to clear the brk area, I don't understand how
my patch broke this. How was it getting cleared before?
Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature