• James Bottomley's avatar
    [PARISC] only make executable areas executable · d7dd2ff1
    James Bottomley authored
    Currently parisc has the whole kernel marked as RWX, meaning any
    kernel page at all is eligible to be executed.  This can cause a
    theoretical problem on systems with combined I/D TLB because the act
    of referencing a page causes a TLB insertion with an executable bit.
    This TLB entry may be used by the CPU as the basis for speculating the
    page into the I-Cache.  If this speculated page is subsequently used
    for a user process, there is the possibility we will get a stale
    I-cache line picked up as the binary executes.
    
    As a point of good practise, only mark actual kernel text pages as
    executable.  The same has to be done for init_text pages, but they're
    converted to data pages (and the I-Cache flushed) when the init memory
    is released.
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    d7dd2ff1
head.S 8.93 KB