ARC: Elide redundant setup of DMA callbacks
authorVineet Gupta <vgupta@synopsys.com>
Mon, 13 Jun 2016 14:38:27 +0000 (16:38 +0200)
committerVineet Gupta <vgupta@synopsys.com>
Wed, 10 Aug 2016 17:16:46 +0000 (10:16 -0700)
For resources shared by all cores such as SLC and IOC, only the master
core needs to do any setups / enabling / disabling etc.

Cc: <stable@vger.kernel.org>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/mm/cache.c

index 5a294b2c3cb307ac591293afae8c8a72409c97c5..0b10efe3a6a752c59d3a3d40a74759c30e380eaa 100644 (file)
@@ -921,6 +921,15 @@ void arc_cache_init(void)
 
        printk(arc_cache_mumbojumbo(0, str, sizeof(str)));
 
+       /*
+        * Only master CPU needs to execute rest of function:
+        *  - Assume SMP so all cores will have same cache config so
+        *    any geomtry checks will be same for all
+        *  - IOC setup / dma callbacks only need to be setup once
+        */
+       if (cpu)
+               return;
+
        if (IS_ENABLED(CONFIG_ARC_HAS_ICACHE)) {
                struct cpuinfo_arc_cache *ic = &cpuinfo_arc700[cpu].icache;