• James Bottomley's avatar
    [PARISC] prevent speculative re-read on cache flush · b7d45818
    James Bottomley authored
    According to Appendix F, the TLB is the primary arbiter of speculation.
    Thus, if a page has a TLB entry, it may be speculatively read into the
    cache.  On linux, this can cause us incoherencies because if we're about
    to do a disk read, we call get_user_pages() to do the flush/invalidate
    in user space, but we still potentially have the user TLB entries, and
    the cache could speculate the lines back into userspace (thus causing
    stale data to be used).  This is fixed by purging the TLB entries before
    we flush through the tmpalias space.  Now, the only way the line could
    be re-speculated is if the user actually tries to touch it (which is not
    allowed).
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    b7d45818
cache.c 13.4 KB