Subject: Re: linux-next: build failure after merge of the drm-intel tree

From: Jani Nikula <[email-masked]>
Date: Wed, 11 Dec 2019 11:31:51 +0200

On Tue, 10 Dec 2019, Stephen Rothwell <[email-masked]> wrote:
> Hi all,
>
> [Just adding Dave Airlie to the cc list]
>
> On Tue, 10 Dec 2019 09:39:57 +1100 Stephen Rothwell <[email-masked]> wrote:
>>
>> After merging the drm-intel tree, today's linux-next build (x86_64
>> allmodconfig) failed like this:

FYI, I've now backmerged drm-next and thus v5.5-rc1 to
drm-intel-next-queued, resolving the conflict.

BR,
Jani.

>> 
>> In file included from include/linux/spinlock_types.h:18,
>>                  from include/linux/mutex.h:16,
>>                  from include/linux/kernfs.h:12,
>>                  from include/linux/sysfs.h:16,
>>                  from include/linux/kobject.h:20,
>>                  from include/linux/of.h:17,
>>                  from include/linux/irqdomain.h:35,
>>                  from include/linux/acpi.h:13,
>>                  from drivers/gpu/drm/i915/i915_drv.c:30:
>> drivers/gpu/drm/i915/gem/i915_gem_object.h: In function 'i915_gem_object_pin_pages':
>> include/linux/lockdep.h:635:2: error: too many arguments to function 'lock_release'
>>   635 |  lock_release(&(lock)->dep_map, 0, _THIS_IP_);  \
>>       |  ^~~~~~~~~~~~
>> drivers/gpu/drm/i915/gem/i915_gem_object.h:294:2: note: in expansion of macro 'might_lock_nested'
>>   294 |  might_lock_nested(&obj->mm.lock, I915_MM_GET_PAGES);
>>       |  ^~~~~~~~~~~~~~~~~
>> include/linux/lockdep.h:352:13: note: declared here
>>   352 | extern void lock_release(struct lockdep_map *lock, unsigned long ip);
>>       |             ^~~~~~~~~~~~
>> In file included from include/linux/spinlock_types.h:18,
>>                  from include/linux/spinlock.h:83,
>>                  from include/linux/mmzone.h:8,
>>                  from include/linux/gfp.h:6,
>>                  from include/linux/slab.h:15,
>>                  from drivers/gpu/drm/i915/i915_irq.c:32:
>> drivers/gpu/drm/i915/gem/i915_gem_object.h: In function 'i915_gem_object_pin_pages':
>> include/linux/lockdep.h:635:2: error: too many arguments to function 'lock_release'
>>   635 |  lock_release(&(lock)->dep_map, 0, _THIS_IP_);  \
>>       |  ^~~~~~~~~~~~
>> drivers/gpu/drm/i915/gem/i915_gem_object.h:294:2: note: in expansion of macro 'might_lock_nested'
>>   294 |  might_lock_nested(&obj->mm.lock, I915_MM_GET_PAGES);
>>       |  ^~~~~~~~~~~~~~~~~
>> include/linux/lockdep.h:352:13: note: declared here
>>   352 | extern void lock_release(struct lockdep_map *lock, unsigned long ip);
>>       |             ^~~~~~~~~~~~
>> 
>> Caused by commit
>> 
>>   e692b4021a2e ("lockdep: add might_lock_nested()")
>> 
>> interacting with commit
>> 
>>   5facae4f3549 ("locking/lockdep: Remove unused @nested argument from lock_release()")
>> 
>> from Linus' tree.
>> 
>> I have applied the following merge fix patch for today:
>> 
>> From: Stephen Rothwell <[email-masked]>
>> Date: Tue, 10 Dec 2019 09:37:07 +1100
>> Subject: [PATCH] lockdep: fix up for lock_release API change
>> 
>> ---
>>  include/linux/lockdep.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
>> index 5bbfd5866081..664f52c6dd4c 100644
>> --- a/include/linux/lockdep.h
>> +++ b/include/linux/lockdep.h
>> @@ -632,7 +632,7 @@ do {									\
>>  	typecheck(struct lockdep_map *, &(lock)->dep_map);		\
>>  	lock_acquire(&(lock)->dep_map, subclass, 0, 1, 1, NULL,		\
>>  		     _THIS_IP_);					\
>> -	lock_release(&(lock)->dep_map, 0, _THIS_IP_);		\
>> +	lock_release(&(lock)->dep_map, _THIS_IP_);			\
>>  } while (0)
>>  
>>  #define lockdep_assert_irqs_enabled()	do {				\

-- 
Jani Nikula, Intel Open Source Graphics Center