Эх сурвалжийг харах

Enable/disable irq's only if needed.

Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Thiemo Seufer 20 жил өмнө
parent
commit
049b13c358

+ 4 - 2
include/asm-mips/io.h

@@ -319,7 +319,8 @@ static inline type pfx##read##bwlq(volatile void __iomem *mem)		\
 	else if (cpu_has_64bits) {					\
 	else if (cpu_has_64bits) {					\
 		unsigned long __flags;					\
 		unsigned long __flags;					\
 									\
 									\
-		local_irq_save(__flags);				\
+		if (irq)						\
+			local_irq_save(__flags);			\
 		__asm__ __volatile__(					\
 		__asm__ __volatile__(					\
 			".set	mips3"		"\t\t# __readq"	"\n\t"	\
 			".set	mips3"		"\t\t# __readq"	"\n\t"	\
 			"ld	%L0, %1"			"\n\t"	\
 			"ld	%L0, %1"			"\n\t"	\
@@ -328,7 +329,8 @@ static inline type pfx##read##bwlq(volatile void __iomem *mem)		\
 			".set	mips0"				"\n"	\
 			".set	mips0"				"\n"	\
 			: "=r" (__val)					\
 			: "=r" (__val)					\
 			: "m" (*__mem));				\
 			: "m" (*__mem));				\
-		local_irq_restore(__flags);				\
+		if (irq)						\
+			local_irq_restore(__flags);			\
 	} else {							\
 	} else {							\
 		__val = 0;						\
 		__val = 0;						\
 		BUG();							\
 		BUG();							\