arm64: irqflags: Fix clang build warnings
authorJulien Thierry <julien.thierry@arm.com>
Fri, 8 Feb 2019 09:36:48 +0000 (09:36 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 12 Feb 2019 11:33:57 +0000 (11:33 +0000)
Clang complains when passing asm operands that are smaller than the
registers they are mapped to:

arch/arm64/include/asm/irqflags.h:50:10: warning: value size does not
match register size specified by the constraint and modifier
[-Wasm-operand-widths]
                : "r" (GIC_PRIO_IRQON)

Fix it by casting the affected input operands to a type of the correct
size.

Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/irqflags.h

index d4597b2..43d8366 100644 (file)
@@ -47,7 +47,7 @@ static inline void arch_local_irq_enable(void)
                "dsb    sy",
                ARM64_HAS_IRQ_PRIO_MASKING)
                :
-               : "r" (GIC_PRIO_IRQON)
+               : "r" ((unsigned long) GIC_PRIO_IRQON)
                : "memory");
 }
 
@@ -58,7 +58,7 @@ static inline void arch_local_irq_disable(void)
                "msr_s  " __stringify(SYS_ICC_PMR_EL1) ", %0",
                ARM64_HAS_IRQ_PRIO_MASKING)
                :
-               : "r" (GIC_PRIO_IRQOFF)
+               : "r" ((unsigned long) GIC_PRIO_IRQOFF)
                : "memory");
 }
 
@@ -91,7 +91,7 @@ static inline unsigned long arch_local_save_flags(void)
                        "csel   %0, %0, %2, eq",
                        ARM64_HAS_IRQ_PRIO_MASKING)
                : "=&r" (flags), "+r" (daif_bits)
-               : "r" (GIC_PRIO_IRQOFF)
+               : "r" ((unsigned long) GIC_PRIO_IRQOFF)
                : "memory");
 
        return flags;