iommu/arm-smmu: Add new lock to protect assign and unassign list
Simultaneous maps and/or unmaps will lead to a race condition, where if the assign list has multiple entries and one call is in the middle of an assign operation for one entry, and the other call removes the next element from the list and queues itself for the assign operation. When the first call returns from assign, and the list is empty, it will return back to the caller without completing the assign on all the ptes allocated for that mapping. This results in a page fault when the client is actually accessing the buffer. Protect the assign and unassign lists with a mutex to ensure that the operation is serialized and the control does not return back to the client before all the ptes have been correctly assigned. Change-Id: Idaf894671fee9fc9c8d339bfa17344b68dd0ad77 Signed-off-by:Neeti Desai <neetid@codeaurora.org> Signed-off-by:
Patrick Daly <pdaly@codeaurora.org>
Loading
Please register or sign in to comment