OSDN Git Service

csky: Enable LOCKDEP_SUPPORT
authorGuo Ren <guoren@linux.alibaba.com>
Thu, 2 Apr 2020 11:39:42 +0000 (19:39 +0800)
committerGuo Ren <guoren@linux.alibaba.com>
Thu, 2 Apr 2020 11:39:42 +0000 (19:39 +0800)
Lockdep is needed by proving the spinlocks and rwlocks. Currently,
we only put trace_hardirqs_on/off with csky_irq and
ret_from_exception.

Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
arch/csky/Kconfig
arch/csky/kernel/entry.S

index a75b8e1..998188f 100644 (file)
@@ -69,6 +69,9 @@ config CSKY
        select PCI_SYSCALL if PCI
        select PCI_MSI if PCI
 
+config LOCKDEP_SUPPORT
+       def_bool y
+
 config CPU_HAS_CACHEV2
        bool
 
index 0bde1d9..8b040a1 100644 (file)
@@ -225,6 +225,13 @@ ret_from_exception:
        cmpnei  r12, 0
        bt      exit_work
 1:
+#ifdef CONFIG_TRACE_IRQFLAGS
+       ld      r10, (sp, LSAVE_PSR)
+       btsti   r10, 6
+       bf      2f
+       jbsr    trace_hardirqs_on
+2:
+#endif
        RESTORE_ALL
 
 exit_work:
@@ -280,6 +287,10 @@ ENTRY(csky_irq)
        zero_fp
        psrset  ee
 
+#ifdef CONFIG_TRACE_IRQFLAGS
+       jbsr    trace_hardirqs_off
+#endif
+
 #ifdef CONFIG_PREEMPTION
        mov     r9, sp                  /* Get current stack  pointer */
        bmaski  r10, THREAD_SHIFT