vfio/spapr: Add cond_resched() for huge updates
Clearing very big IOMMU tables can trigger soft lockups. This adds cond_resched() to allow the scheduler to do context switching when it decides to. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
cf0d53ba49
commit
5c2fefd882
|
@ -507,6 +507,8 @@ static int tce_iommu_clear(struct tce_container *container,
|
||||||
enum dma_data_direction direction;
|
enum dma_data_direction direction;
|
||||||
|
|
||||||
for ( ; pages; --pages, ++entry) {
|
for ( ; pages; --pages, ++entry) {
|
||||||
|
cond_resched();
|
||||||
|
|
||||||
direction = DMA_NONE;
|
direction = DMA_NONE;
|
||||||
oldhpa = 0;
|
oldhpa = 0;
|
||||||
ret = iommu_tce_xchg(tbl, entry, &oldhpa, &direction);
|
ret = iommu_tce_xchg(tbl, entry, &oldhpa, &direction);
|
||||||
|
|
Loading…
Reference in a new issue