We'll use this macro in coming patches extensively.

Signed-off-by: Eugeniy Paltsev <eugeniy.palt...@synopsys.com>
---
 arch/arc/kernel/setup.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c
index 7ee89dc61f6e..edb55b6ee278 100644
--- a/arch/arc/kernel/setup.c
+++ b/arch/arc/kernel/setup.c
@@ -389,11 +389,23 @@ static char *arc_extn_mumbojumbo(int cpu_id, char *buf, 
int len)
        return buf;
 }
 
+static void chk_opt_strict(char *opt_name, bool hw_exists, bool opt_ena)
+{
+       if (hw_exists && !opt_ena)
+               pr_warn(" ! Enable %s for working apps\n", opt_name);
+       else if (!hw_exists && opt_ena)
+               panic("Disable %s, hardware NOT present\n", opt_name);
+}
+
+#define CHK_OPT_STRICT(opt_name, hw_exists)                            \
+({                                                                     \
+       chk_opt_strict(#opt_name, hw_exists, IS_ENABLED(opt_name));     \
+})
+
 static void arc_chk_core_config(void)
 {
        struct cpuinfo_arc *cpu = &cpuinfo_arc700[smp_processor_id()];
-       int saved = 0, present = 0;
-       char *opt_nm = NULL;
+       int present = 0;
 
        if (!cpu->extn.timer0)
                panic("Timer0 is not present!\n");
@@ -425,23 +437,14 @@ static void arc_chk_core_config(void)
         */
 
        if (is_isa_arcompact()) {
-               opt_nm = "CONFIG_ARC_FPU_SAVE_RESTORE";
-               saved = IS_ENABLED(CONFIG_ARC_FPU_SAVE_RESTORE);
-
                /* only DPDP checked since SP has no arch visible regs */
                present = cpu->extn.fpu_dp;
+               CHK_OPT_STRICT(CONFIG_ARC_FPU_SAVE_RESTORE, present);
        } else {
-               opt_nm = "CONFIG_ARC_HAS_ACCL_REGS";
-               saved = IS_ENABLED(CONFIG_ARC_HAS_ACCL_REGS);
-
                /* Accumulator Low:High pair (r58:59) present if DSP MPY or FPU 
*/
                present = cpu->extn_mpy.dsp | cpu->extn.fpu_sp | 
cpu->extn.fpu_dp;
+               CHK_OPT_STRICT(CONFIG_ARC_HAS_ACCL_REGS, present);
        }
-
-       if (present && !saved)
-               pr_warn("Enable %s for working apps\n", opt_nm);
-       else if (!present && saved)
-               panic("Disable %s, hardware NOT present\n", opt_nm);
 }
 
 /*
-- 
2.21.0


_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

Reply via email to