exa: avoid infinite loops if UTS sw fallbacks.
The upload in finish access can cause an infinite loop if UTS returns FALSE in here. Fixes fd.o bug #24246. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
		
							parent
							
								
									db98b26ee1
								
							
						
					
					
						commit
						b5fcc5553e
					
				| 
						 | 
				
			
			@ -242,11 +242,6 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
 | 
			
		|||
	pBox++;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (access_prepared)
 | 
			
		||||
	exaFinishAccess(&pPixmap->drawable, fallback_index);
 | 
			
		||||
    else if (need_sync && sync)
 | 
			
		||||
	sync (pPixmap->drawable.pScreen);
 | 
			
		||||
 | 
			
		||||
    pExaPixmap->offscreen = save_offscreen;
 | 
			
		||||
    pPixmap->devKind = save_pitch;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -261,6 +256,11 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
 | 
			
		|||
    REGION_UNION(pScreen, pValidDst, pValidDst, &CopyReg);
 | 
			
		||||
 | 
			
		||||
    REGION_UNINIT(pScreen, &CopyReg);
 | 
			
		||||
 | 
			
		||||
    if (access_prepared)
 | 
			
		||||
	exaFinishAccess(&pPixmap->drawable, fallback_index);
 | 
			
		||||
    else if (need_sync && sync)
 | 
			
		||||
	sync (pPixmap->drawable.pScreen);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue