mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 12:07:12 +00:00 
			
		
		
		
	tests/drm_import_export: Always loop with mutex held
We assume that lock is held on start of the loop scope. Some paths continuing inside loop didn't adhere to this assumption, causing segfault on unlocking an already unlocked mutex. Fix this by re-aquiring lock always. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93013 Cc: Michał Winiarski <michal.winiarski@intel.com> Cc: Thomas Wood <thomas.wood@intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
This commit is contained in:
		
							parent
							
								
									3b1a55874d
								
							
						
					
					
						commit
						32329b2e7d
					
				@ -161,20 +161,20 @@ static void *import_close_thread(void *data)
 | 
			
		||||
				pthread_mutex_unlock(&t->mutex);
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
				/* We take the lock right after entering the loop */
 | 
			
		||||
				/* Lock should be held on entering the loop */
 | 
			
		||||
				continue;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (bo == NULL) {
 | 
			
		||||
			/*
 | 
			
		||||
			 * If the bo is NULL it means that we've unreferenced in other
 | 
			
		||||
			 * thread - therefore we should expect ENOENT
 | 
			
		||||
			 */
 | 
			
		||||
			igt_assert_eq(errno, ENOENT);
 | 
			
		||||
			continue;
 | 
			
		||||
		} else {
 | 
			
		||||
			drm_intel_bo_unreference(bo);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		drm_intel_bo_unreference(bo);
 | 
			
		||||
 | 
			
		||||
		pthread_mutex_lock(&t->mutex);
 | 
			
		||||
	}
 | 
			
		||||
	pthread_mutex_unlock(&t->mutex);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user