{
struct softirq_action *h = softirq_vec + vec_nr;
int prev_count;
+#ifdef CONFIG_AMLOGIC_DEBUG_LOCKUP
+ int cpu;
+ unsigned long long tin;
+#endif
prev_count = preempt_count();
kstat_incr_softirqs_this_cpu(vec_nr);
trace_softirq_entry(vec_nr);
+#ifdef CONFIG_AMLOGIC_DEBUG_LOCKUP
+ cpu = smp_processor_id();
+ sirq_in_hook(cpu, &tin, (void *)h->action);
+#endif
h->action(h);
+#ifdef CONFIG_AMLOGIC_DEBUG_LOCKUP
+ sirq_out_hook(cpu, tin, (void *)h->action);
+#endif
trace_softirq_exit(vec_nr);
if (unlikely(prev_count != preempt_count())) {
pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
int max_restart = MAX_SOFTIRQ_RESTART;
bool in_hardirq;
__u32 pending;
-#ifdef CONFIG_AMLOGIC_DEBUG_LOCKUP
- int cpu;
- unsigned long long tin;
-#endif
/*
* Mask out PF_MEMALLOC s current task context is borrowed for the