linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] lockdep: fix -Wunused-parameter for _THIS_IP_
@ 2022-03-14 22:19 Nick Desaulniers
  2022-03-15 15:00 ` Waiman Long
  0 siblings, 1 reply; 2+ messages in thread
From: Nick Desaulniers @ 2022-03-14 22:19 UTC (permalink / raw)
  To: Ingo Molnar, Waiman Long, Boqun Feng
  Cc: Nick Desaulniers, Catalin Marinas, Will Deacon, Paolo Bonzini,
	Thomas Gleixner, Peter Zijlstra, Andy Lutomirski, Juri Lelli,
	Vincent Guittot, Dietmar Eggemann, Steven Rostedt, Ben Segall,
	Mel Gorman, Daniel Bristot de Oliveira, Mark Rutland, Joey Gouly,
	Marc Zyngier, linux-arm-kernel, linux-kernel, kvm

While looking into a bug related to the compiler's handling of addresses
of labels, I noticed some uses of _THIS_IP_ seemed unused in lockdep.
Drive by cleanup.

-Wunused-parameter:
kernel/locking/lockdep.c:1383:22: warning: unused parameter 'ip'
kernel/locking/lockdep.c:4246:48: warning: unused parameter 'ip'
kernel/locking/lockdep.c:4844:19: warning: unused parameter 'ip'

Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
---
 arch/arm64/kernel/entry-common.c |  8 ++++----
 include/linux/irqflags.h         |  4 ++--
 include/linux/kvm_host.h         |  2 +-
 kernel/entry/common.c            |  6 +++---
 kernel/locking/lockdep.c         | 22 ++++++++--------------
 kernel/sched/idle.c              |  2 +-
 kernel/trace/trace_preemptirq.c  |  4 ++--
 7 files changed, 21 insertions(+), 27 deletions(-)

diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
index ef7fcefb96bd..8a4244316e25 100644
--- a/arch/arm64/kernel/entry-common.c
+++ b/arch/arm64/kernel/entry-common.c
@@ -73,7 +73,7 @@ static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs)
 	if (interrupts_enabled(regs)) {
 		if (regs->exit_rcu) {
 			trace_hardirqs_on_prepare();
-			lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+			lockdep_hardirqs_on_prepare();
 			rcu_irq_exit();
 			lockdep_hardirqs_on(CALLER_ADDR0);
 			return;
@@ -118,7 +118,7 @@ static __always_inline void enter_from_user_mode(struct pt_regs *regs)
 static __always_inline void __exit_to_user_mode(void)
 {
 	trace_hardirqs_on_prepare();
-	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+	lockdep_hardirqs_on_prepare();
 	user_enter_irqoff();
 	lockdep_hardirqs_on(CALLER_ADDR0);
 }
@@ -176,7 +176,7 @@ static void noinstr arm64_exit_nmi(struct pt_regs *regs)
 	ftrace_nmi_exit();
 	if (restore) {
 		trace_hardirqs_on_prepare();
-		lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+		lockdep_hardirqs_on_prepare();
 	}
 
 	rcu_nmi_exit();
@@ -212,7 +212,7 @@ static void noinstr arm64_exit_el1_dbg(struct pt_regs *regs)
 
 	if (restore) {
 		trace_hardirqs_on_prepare();
-		lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+		lockdep_hardirqs_on_prepare();
 	}
 
 	rcu_nmi_exit();
diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h
index 4b140938b03e..5ec0fa71399e 100644
--- a/include/linux/irqflags.h
+++ b/include/linux/irqflags.h
@@ -20,13 +20,13 @@
 #ifdef CONFIG_PROVE_LOCKING
   extern void lockdep_softirqs_on(unsigned long ip);
   extern void lockdep_softirqs_off(unsigned long ip);
-  extern void lockdep_hardirqs_on_prepare(unsigned long ip);
+  extern void lockdep_hardirqs_on_prepare(void);
   extern void lockdep_hardirqs_on(unsigned long ip);
   extern void lockdep_hardirqs_off(unsigned long ip);
 #else
   static inline void lockdep_softirqs_on(unsigned long ip) { }
   static inline void lockdep_softirqs_off(unsigned long ip) { }
-  static inline void lockdep_hardirqs_on_prepare(unsigned long ip) { }
+  static inline void lockdep_hardirqs_on_prepare(void) { }
   static inline void lockdep_hardirqs_on(unsigned long ip) { }
   static inline void lockdep_hardirqs_off(unsigned long ip) { }
 #endif
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index f11039944c08..f32bed70a5c5 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -441,7 +441,7 @@ static __always_inline void guest_state_enter_irqoff(void)
 {
 	instrumentation_begin();
 	trace_hardirqs_on_prepare();
-	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+	lockdep_hardirqs_on_prepare();
 	instrumentation_end();
 
 	guest_context_enter_irqoff();
diff --git a/kernel/entry/common.c b/kernel/entry/common.c
index bad713684c2e..3ce3a0a6c762 100644
--- a/kernel/entry/common.c
+++ b/kernel/entry/common.c
@@ -124,7 +124,7 @@ static __always_inline void __exit_to_user_mode(void)
 {
 	instrumentation_begin();
 	trace_hardirqs_on_prepare();
-	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+	lockdep_hardirqs_on_prepare();
 	instrumentation_end();
 
 	user_enter_irqoff();
@@ -412,7 +412,7 @@ noinstr void irqentry_exit(struct pt_regs *regs, irqentry_state_t state)
 			instrumentation_begin();
 			/* Tell the tracer that IRET will enable interrupts */
 			trace_hardirqs_on_prepare();
-			lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+			lockdep_hardirqs_on_prepare();
 			instrumentation_end();
 			rcu_irq_exit();
 			lockdep_hardirqs_on(CALLER_ADDR0);
@@ -465,7 +465,7 @@ void noinstr irqentry_nmi_exit(struct pt_regs *regs, irqentry_state_t irq_state)
 	ftrace_nmi_exit();
 	if (irq_state.lockdep) {
 		trace_hardirqs_on_prepare();
-		lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+		lockdep_hardirqs_on_prepare();
 	}
 	instrumentation_end();
 
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
index f8a0212189ca..05604795b39c 100644
--- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c
@@ -1378,7 +1378,7 @@ static struct lock_list *alloc_list_entry(void)
  */
 static int add_lock_to_list(struct lock_class *this,
 			    struct lock_class *links_to, struct list_head *head,
-			    unsigned long ip, u16 distance, u8 dep,
+			    u16 distance, u8 dep,
 			    const struct lock_trace *trace)
 {
 	struct lock_list *entry;
@@ -3131,19 +3131,15 @@ check_prev_add(struct task_struct *curr, struct held_lock *prev,
 	 * to the previous lock's dependency list:
 	 */
 	ret = add_lock_to_list(hlock_class(next), hlock_class(prev),
-			       &hlock_class(prev)->locks_after,
-			       next->acquire_ip, distance,
-			       calc_dep(prev, next),
-			       *trace);
+			       &hlock_class(prev)->locks_after, distance,
+			       calc_dep(prev, next), *trace);
 
 	if (!ret)
 		return 0;
 
 	ret = add_lock_to_list(hlock_class(prev), hlock_class(next),
-			       &hlock_class(next)->locks_before,
-			       next->acquire_ip, distance,
-			       calc_depb(prev, next),
-			       *trace);
+			       &hlock_class(next)->locks_before, distance,
+			       calc_depb(prev, next), *trace);
 	if (!ret)
 		return 0;
 
@@ -4234,14 +4230,13 @@ static void __trace_hardirqs_on_caller(void)
 
 /**
  * lockdep_hardirqs_on_prepare - Prepare for enabling interrupts
- * @ip:		Caller address
  *
  * Invoked before a possible transition to RCU idle from exit to user or
  * guest mode. This ensures that all RCU operations are done before RCU
  * stops watching. After the RCU transition lockdep_hardirqs_on() has to be
  * invoked to set the final state.
  */
-void lockdep_hardirqs_on_prepare(unsigned long ip)
+void lockdep_hardirqs_on_prepare(void)
 {
 	if (unlikely(!debug_locks))
 		return;
@@ -4838,8 +4833,7 @@ EXPORT_SYMBOL_GPL(__lockdep_no_validate__);
 
 static void
 print_lock_nested_lock_not_held(struct task_struct *curr,
-				struct held_lock *hlock,
-				unsigned long ip)
+				struct held_lock *hlock)
 {
 	if (!debug_locks_off())
 		return;
@@ -5015,7 +5009,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
 	chain_key = iterate_chain_key(chain_key, hlock_id(hlock));
 
 	if (nest_lock && !__lock_is_held(nest_lock, -1)) {
-		print_lock_nested_lock_not_held(curr, hlock, ip);
+		print_lock_nested_lock_not_held(curr, hlock);
 		return 0;
 	}
 
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
index d17b0a5ce6ac..499a3e286cd0 100644
--- a/kernel/sched/idle.c
+++ b/kernel/sched/idle.c
@@ -105,7 +105,7 @@ void __cpuidle default_idle_call(void)
 		 * last -- this is very similar to the entry code.
 		 */
 		trace_hardirqs_on_prepare();
-		lockdep_hardirqs_on_prepare(_THIS_IP_);
+		lockdep_hardirqs_on_prepare();
 		rcu_idle_enter();
 		lockdep_hardirqs_on(_THIS_IP_);
 
diff --git a/kernel/trace/trace_preemptirq.c b/kernel/trace/trace_preemptirq.c
index f4938040c228..95b58bd757ce 100644
--- a/kernel/trace/trace_preemptirq.c
+++ b/kernel/trace/trace_preemptirq.c
@@ -46,7 +46,7 @@ void trace_hardirqs_on(void)
 		this_cpu_write(tracing_irq_cpu, 0);
 	}
 
-	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+	lockdep_hardirqs_on_prepare();
 	lockdep_hardirqs_on(CALLER_ADDR0);
 }
 EXPORT_SYMBOL(trace_hardirqs_on);
@@ -94,7 +94,7 @@ __visible void trace_hardirqs_on_caller(unsigned long caller_addr)
 		this_cpu_write(tracing_irq_cpu, 0);
 	}
 
-	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
+	lockdep_hardirqs_on_prepare();
 	lockdep_hardirqs_on(CALLER_ADDR0);
 }
 EXPORT_SYMBOL(trace_hardirqs_on_caller);
-- 
2.35.1.723.g4982287a31-goog


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] lockdep: fix -Wunused-parameter for _THIS_IP_
  2022-03-14 22:19 [PATCH] lockdep: fix -Wunused-parameter for _THIS_IP_ Nick Desaulniers
@ 2022-03-15 15:00 ` Waiman Long
  0 siblings, 0 replies; 2+ messages in thread
From: Waiman Long @ 2022-03-15 15:00 UTC (permalink / raw)
  To: Nick Desaulniers, Ingo Molnar, Boqun Feng
  Cc: Catalin Marinas, Will Deacon, Paolo Bonzini, Thomas Gleixner,
	Peter Zijlstra, Andy Lutomirski, Juri Lelli, Vincent Guittot,
	Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman,
	Daniel Bristot de Oliveira, Mark Rutland, Joey Gouly,
	Marc Zyngier, linux-arm-kernel, linux-kernel, kvm

On 3/14/22 18:19, Nick Desaulniers wrote:
> While looking into a bug related to the compiler's handling of addresses
> of labels, I noticed some uses of _THIS_IP_ seemed unused in lockdep.
> Drive by cleanup.
>
> -Wunused-parameter:
> kernel/locking/lockdep.c:1383:22: warning: unused parameter 'ip'
> kernel/locking/lockdep.c:4246:48: warning: unused parameter 'ip'
> kernel/locking/lockdep.c:4844:19: warning: unused parameter 'ip'
>
> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
> ---
>   arch/arm64/kernel/entry-common.c |  8 ++++----
>   include/linux/irqflags.h         |  4 ++--
>   include/linux/kvm_host.h         |  2 +-
>   kernel/entry/common.c            |  6 +++---
>   kernel/locking/lockdep.c         | 22 ++++++++--------------
>   kernel/sched/idle.c              |  2 +-
>   kernel/trace/trace_preemptirq.c  |  4 ++--
>   7 files changed, 21 insertions(+), 27 deletions(-)
>
> diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
> index ef7fcefb96bd..8a4244316e25 100644
> --- a/arch/arm64/kernel/entry-common.c
> +++ b/arch/arm64/kernel/entry-common.c
> @@ -73,7 +73,7 @@ static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs)
>   	if (interrupts_enabled(regs)) {
>   		if (regs->exit_rcu) {
>   			trace_hardirqs_on_prepare();
> -			lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +			lockdep_hardirqs_on_prepare();
>   			rcu_irq_exit();
>   			lockdep_hardirqs_on(CALLER_ADDR0);
>   			return;
> @@ -118,7 +118,7 @@ static __always_inline void enter_from_user_mode(struct pt_regs *regs)
>   static __always_inline void __exit_to_user_mode(void)
>   {
>   	trace_hardirqs_on_prepare();
> -	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +	lockdep_hardirqs_on_prepare();
>   	user_enter_irqoff();
>   	lockdep_hardirqs_on(CALLER_ADDR0);
>   }
> @@ -176,7 +176,7 @@ static void noinstr arm64_exit_nmi(struct pt_regs *regs)
>   	ftrace_nmi_exit();
>   	if (restore) {
>   		trace_hardirqs_on_prepare();
> -		lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +		lockdep_hardirqs_on_prepare();
>   	}
>   
>   	rcu_nmi_exit();
> @@ -212,7 +212,7 @@ static void noinstr arm64_exit_el1_dbg(struct pt_regs *regs)
>   
>   	if (restore) {
>   		trace_hardirqs_on_prepare();
> -		lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +		lockdep_hardirqs_on_prepare();
>   	}
>   
>   	rcu_nmi_exit();
> diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h
> index 4b140938b03e..5ec0fa71399e 100644
> --- a/include/linux/irqflags.h
> +++ b/include/linux/irqflags.h
> @@ -20,13 +20,13 @@
>   #ifdef CONFIG_PROVE_LOCKING
>     extern void lockdep_softirqs_on(unsigned long ip);
>     extern void lockdep_softirqs_off(unsigned long ip);
> -  extern void lockdep_hardirqs_on_prepare(unsigned long ip);
> +  extern void lockdep_hardirqs_on_prepare(void);
>     extern void lockdep_hardirqs_on(unsigned long ip);
>     extern void lockdep_hardirqs_off(unsigned long ip);
>   #else
>     static inline void lockdep_softirqs_on(unsigned long ip) { }
>     static inline void lockdep_softirqs_off(unsigned long ip) { }
> -  static inline void lockdep_hardirqs_on_prepare(unsigned long ip) { }
> +  static inline void lockdep_hardirqs_on_prepare(void) { }
>     static inline void lockdep_hardirqs_on(unsigned long ip) { }
>     static inline void lockdep_hardirqs_off(unsigned long ip) { }
>   #endif
> diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
> index f11039944c08..f32bed70a5c5 100644
> --- a/include/linux/kvm_host.h
> +++ b/include/linux/kvm_host.h
> @@ -441,7 +441,7 @@ static __always_inline void guest_state_enter_irqoff(void)
>   {
>   	instrumentation_begin();
>   	trace_hardirqs_on_prepare();
> -	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +	lockdep_hardirqs_on_prepare();
>   	instrumentation_end();
>   
>   	guest_context_enter_irqoff();
> diff --git a/kernel/entry/common.c b/kernel/entry/common.c
> index bad713684c2e..3ce3a0a6c762 100644
> --- a/kernel/entry/common.c
> +++ b/kernel/entry/common.c
> @@ -124,7 +124,7 @@ static __always_inline void __exit_to_user_mode(void)
>   {
>   	instrumentation_begin();
>   	trace_hardirqs_on_prepare();
> -	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +	lockdep_hardirqs_on_prepare();
>   	instrumentation_end();
>   
>   	user_enter_irqoff();
> @@ -412,7 +412,7 @@ noinstr void irqentry_exit(struct pt_regs *regs, irqentry_state_t state)
>   			instrumentation_begin();
>   			/* Tell the tracer that IRET will enable interrupts */
>   			trace_hardirqs_on_prepare();
> -			lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +			lockdep_hardirqs_on_prepare();
>   			instrumentation_end();
>   			rcu_irq_exit();
>   			lockdep_hardirqs_on(CALLER_ADDR0);
> @@ -465,7 +465,7 @@ void noinstr irqentry_nmi_exit(struct pt_regs *regs, irqentry_state_t irq_state)
>   	ftrace_nmi_exit();
>   	if (irq_state.lockdep) {
>   		trace_hardirqs_on_prepare();
> -		lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +		lockdep_hardirqs_on_prepare();
>   	}
>   	instrumentation_end();
>   
> diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
> index f8a0212189ca..05604795b39c 100644
> --- a/kernel/locking/lockdep.c
> +++ b/kernel/locking/lockdep.c
> @@ -1378,7 +1378,7 @@ static struct lock_list *alloc_list_entry(void)
>    */
>   static int add_lock_to_list(struct lock_class *this,
>   			    struct lock_class *links_to, struct list_head *head,
> -			    unsigned long ip, u16 distance, u8 dep,
> +			    u16 distance, u8 dep,
>   			    const struct lock_trace *trace)
>   {
>   	struct lock_list *entry;
> @@ -3131,19 +3131,15 @@ check_prev_add(struct task_struct *curr, struct held_lock *prev,
>   	 * to the previous lock's dependency list:
>   	 */
>   	ret = add_lock_to_list(hlock_class(next), hlock_class(prev),
> -			       &hlock_class(prev)->locks_after,
> -			       next->acquire_ip, distance,
> -			       calc_dep(prev, next),
> -			       *trace);
> +			       &hlock_class(prev)->locks_after, distance,
> +			       calc_dep(prev, next), *trace);
>   
>   	if (!ret)
>   		return 0;
>   
>   	ret = add_lock_to_list(hlock_class(prev), hlock_class(next),
> -			       &hlock_class(next)->locks_before,
> -			       next->acquire_ip, distance,
> -			       calc_depb(prev, next),
> -			       *trace);
> +			       &hlock_class(next)->locks_before, distance,
> +			       calc_depb(prev, next), *trace);
>   	if (!ret)
>   		return 0;
>   
> @@ -4234,14 +4230,13 @@ static void __trace_hardirqs_on_caller(void)
>   
>   /**
>    * lockdep_hardirqs_on_prepare - Prepare for enabling interrupts
> - * @ip:		Caller address
>    *
>    * Invoked before a possible transition to RCU idle from exit to user or
>    * guest mode. This ensures that all RCU operations are done before RCU
>    * stops watching. After the RCU transition lockdep_hardirqs_on() has to be
>    * invoked to set the final state.
>    */
> -void lockdep_hardirqs_on_prepare(unsigned long ip)
> +void lockdep_hardirqs_on_prepare(void)
>   {
>   	if (unlikely(!debug_locks))
>   		return;
> @@ -4838,8 +4833,7 @@ EXPORT_SYMBOL_GPL(__lockdep_no_validate__);
>   
>   static void
>   print_lock_nested_lock_not_held(struct task_struct *curr,
> -				struct held_lock *hlock,
> -				unsigned long ip)
> +				struct held_lock *hlock)
>   {
>   	if (!debug_locks_off())
>   		return;
> @@ -5015,7 +5009,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
>   	chain_key = iterate_chain_key(chain_key, hlock_id(hlock));
>   
>   	if (nest_lock && !__lock_is_held(nest_lock, -1)) {
> -		print_lock_nested_lock_not_held(curr, hlock, ip);
> +		print_lock_nested_lock_not_held(curr, hlock);
>   		return 0;
>   	}
>   
> diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
> index d17b0a5ce6ac..499a3e286cd0 100644
> --- a/kernel/sched/idle.c
> +++ b/kernel/sched/idle.c
> @@ -105,7 +105,7 @@ void __cpuidle default_idle_call(void)
>   		 * last -- this is very similar to the entry code.
>   		 */
>   		trace_hardirqs_on_prepare();
> -		lockdep_hardirqs_on_prepare(_THIS_IP_);
> +		lockdep_hardirqs_on_prepare();
>   		rcu_idle_enter();
>   		lockdep_hardirqs_on(_THIS_IP_);
>   
> diff --git a/kernel/trace/trace_preemptirq.c b/kernel/trace/trace_preemptirq.c
> index f4938040c228..95b58bd757ce 100644
> --- a/kernel/trace/trace_preemptirq.c
> +++ b/kernel/trace/trace_preemptirq.c
> @@ -46,7 +46,7 @@ void trace_hardirqs_on(void)
>   		this_cpu_write(tracing_irq_cpu, 0);
>   	}
>   
> -	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +	lockdep_hardirqs_on_prepare();
>   	lockdep_hardirqs_on(CALLER_ADDR0);
>   }
>   EXPORT_SYMBOL(trace_hardirqs_on);
> @@ -94,7 +94,7 @@ __visible void trace_hardirqs_on_caller(unsigned long caller_addr)
>   		this_cpu_write(tracing_irq_cpu, 0);
>   	}
>   
> -	lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> +	lockdep_hardirqs_on_prepare();
>   	lockdep_hardirqs_on(CALLER_ADDR0);
>   }
>   EXPORT_SYMBOL(trace_hardirqs_on_caller);

LGTM

Acked-by: Waiman Long <longman@redhat.com>


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-03-15 15:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-14 22:19 [PATCH] lockdep: fix -Wunused-parameter for _THIS_IP_ Nick Desaulniers
2022-03-15 15:00 ` Waiman Long

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).