Subject: Re: linux-next: manual merge of the tip tree with the drm tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 28 Nov 2019 10:36:52 +1100

Hi all,

On Thu, 10 Oct 2019 12:51:06 +1100 Stephen Rothwell <[email-masked]> wrote:
>
> Today's linux-next merge of the tip tree got a conflict in:
> 
>   drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> 
> between commit:
> 
>   2850748ef876 ("drm/i915: Pull i915_vma_pin under the vm->mutex")
> 
> from the drm tree and commit:
> 
>   5facae4f3549 ("locking/lockdep: Remove unused @nested argument from lock_release()")
> 
> from the tip tree.
> 
> I fixed it up (see below) and can carry the fix as necessary. This is
> now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your
> tree is submitted for merging. You may also want to consider
> cooperating with the maintainer of the conflicting tree to minimise any
> particularly complex conflicts.
> 
> -- 
> Cheers,
> Stephen Rothwell
> 
> diff --cc drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> index fd3ce6da8497,1a51b3598d63..000000000000
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> @@@ -436,9 -497,22 +436,9 @@@ void i915_gem_shrinker_taints_mutex(str
>   
>   	fs_reclaim_acquire(GFP_KERNEL);
>   
>  -	/*
>  -	 * As we invariably rely on the struct_mutex within the shrinker,
>  -	 * but have a complicated recursion dance, taint all the mutexes used
>  -	 * within the shrinker with the struct_mutex. For completeness, we
>  -	 * taint with all subclass of struct_mutex, even though we should
>  -	 * only need tainting by I915_MM_NORMAL to catch possible ABBA
>  -	 * deadlocks from using struct_mutex inside @mutex.
>  -	 */
>  -	mutex_acquire(&i915->drm.struct_mutex.dep_map,
>  -		      I915_MM_SHRINKER, 0, _RET_IP_);
>  -
>   	mutex_acquire(&mutex->dep_map, 0, 0, _RET_IP_);
> - 	mutex_release(&mutex->dep_map, 0, _RET_IP_);
> + 	mutex_release(&mutex->dep_map, _RET_IP_);
>   
>  -	mutex_release(&i915->drm.struct_mutex.dep_map, _RET_IP_);
>  -
>   	fs_reclaim_release(GFP_KERNEL);
>   
>   	if (unlock)

This is now a conflict between the drm tree and Linus' tree.

-- 
Cheers,
Stephen Rothwell