Messages in this thread | | | Date | Sat, 18 Apr 2020 14:10:22 +0200 | From | Joerg Roedel <> | Subject | Re: [RFC PATCH] iommu/amd: fix a race in fetch_pte() |
| |
On Thu, Apr 16, 2020 at 09:42:41PM -0400, Qian Cai wrote: > So, this is still not enough that would still trigger storage driver offline under > memory pressure for a bit longer. It looks to me that in fetch_pte() there are > could still racy?
Yes, your patch still looks racy. You need to atomically read domain->pt_root to a stack variable and derive the pt_root pointer and the mode from that variable instead of domain->pt_root directly. If you read the domain->pt_root twice there could still be an update between the two reads. Probably the lock in increase_address_space() can also be avoided if pt_root is updated using cmpxchg()?
Regards,
Joerg
| |