CC kernel/lockdep.o
kernel/lockdep.c: In function 'trace_hardirqs_on':
kernel/lockdep.c:2068: error: too many arguments to function 'trace_hardirqs_on_caller'
make[1]: *** [kernel/lockdep.o] Error 1
make: *** [kernel] Error 2
--- linux-2.6.24-rc7-rt1.orig/kernel/lockdep.c 2008-01-11 21:16:46.000000000 -0500
+++ linux-2.6.24-rc7-rt1/kernel/lockdep.c 2008-01-11 21:18:10.000000000 -0500
[... snip ...]
/*
* Hardirqs will be enabled:
*/
-void trace_hardirqs_on(void)
+notrace void trace_hardirqs_on_caller(void) <--- this should have 'unsigned long a0'
{
struct task_struct *curr = current;
unsigned long ip;
@@ -2050,6 +2059,13 @@ void trace_hardirqs_on(void)
curr->hardirq_enable_ip = ip;
curr->hardirq_enable_event = ++curr->irq_events;
debug_atomic_inc(&hardirqs_on_events);
+#ifdef CONFIG_CRITICAL_IRQSOFF_TIMING
+ time_hardirqs_on(a0, 0 /* CALLER_ADDR1 */); <--- a0 is used here
+#endif
+}
+
+void notrace trace_hardirqs_on(void) {
+ trace_hardirqs_on_caller(CALLER_ADDR0);
}
But then there is also trace_hardirqs_on_caller() in kernel/latency_trace.c
and both are not static.
Regards,
Mariusz
--