803a804
> bool is_atomic = req->isAtomic();
828c829,830
< TlbEntry::DomainType::NoAccess, is_write,
---
> TlbEntry::DomainType::NoAccess,
> is_atomic ? false : is_write,
854a857,862
>
> // grant_read is used for faults from an atomic instruction that
> // both reads and writes from a memory location. From a ISS point
> // of view they count as read if a read to that address would have
> // generated the fault; they count as writes otherwise
> bool grant_read = true;
863a872
> grant_read = hap & 0x1;
870c879
< grant = hap & 0x1;
---
> grant = grant_read;
875a885
> grant_read = ap & 0x1;
908a919
> grant_read = false;
947a959
> grant_read = false;
993c1005,1006
< vaddr_tainted, te->domain, is_write,
---
> vaddr_tainted, te->domain,
> (is_atomic && !grant_read) ? false : is_write,