Commit 68c77d8a authored by Ralf Baechle's avatar Ralf Baechle

MIPS: COP2: CPP macro safety fixes.

 - Don't pass things to macros that couldn't be dereferences if that
   macro was actually a function.
 - Don't use empty function-like macros.
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent b10b43ba
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
extern void octeon_cop2_save(struct octeon_cop2_state *); extern void octeon_cop2_save(struct octeon_cop2_state *);
extern void octeon_cop2_restore(struct octeon_cop2_state *); extern void octeon_cop2_restore(struct octeon_cop2_state *);
#define cop2_save(r) octeon_cop2_save(r) #define cop2_save(r) octeon_cop2_save(&(r)->thread.cp2)
#define cop2_restore(r) octeon_cop2_restore(r) #define cop2_restore(r) octeon_cop2_restore(&(r)->thread.cp2)
#define cop2_present 1 #define cop2_present 1
#define cop2_lazy_restore 1 #define cop2_lazy_restore 1
...@@ -26,26 +26,26 @@ extern void octeon_cop2_restore(struct octeon_cop2_state *); ...@@ -26,26 +26,26 @@ extern void octeon_cop2_restore(struct octeon_cop2_state *);
extern void nlm_cop2_save(struct nlm_cop2_state *); extern void nlm_cop2_save(struct nlm_cop2_state *);
extern void nlm_cop2_restore(struct nlm_cop2_state *); extern void nlm_cop2_restore(struct nlm_cop2_state *);
#define cop2_save(r) nlm_cop2_save(r)
#define cop2_restore(r) nlm_cop2_restore(r) #define cop2_save(r) nlm_cop2_save(&(r)->thread.cp2)
#define cop2_restore(r) nlm_cop2_restore(&(r)->thread.cp2)
#define cop2_present 1 #define cop2_present 1
#define cop2_lazy_restore 0 #define cop2_lazy_restore 0
#elif defined(CONFIG_CPU_LOONGSON3) #elif defined(CONFIG_CPU_LOONGSON3)
#define cop2_save(r)
#define cop2_restore(r)
#define cop2_present 1 #define cop2_present 1
#define cop2_lazy_restore 1 #define cop2_lazy_restore 1
#define cop2_save(r) do { (r); } while (0)
#define cop2_restore(r) do { (r); } while (0)
#else #else
#define cop2_present 0 #define cop2_present 0
#define cop2_lazy_restore 0 #define cop2_lazy_restore 0
#define cop2_save(r) #define cop2_save(r) do { (r); } while (0)
#define cop2_restore(r) #define cop2_restore(r) do { (r); } while (0)
#endif #endif
enum cu2_ops { enum cu2_ops {
......
...@@ -92,7 +92,7 @@ do { \ ...@@ -92,7 +92,7 @@ do { \
KSTK_STATUS(prev) &= ~ST0_CU2; \ KSTK_STATUS(prev) &= ~ST0_CU2; \
__c0_stat = read_c0_status(); \ __c0_stat = read_c0_status(); \
write_c0_status(__c0_stat | ST0_CU2); \ write_c0_status(__c0_stat | ST0_CU2); \
cop2_save(&prev->thread.cp2); \ cop2_save(prev); \
write_c0_status(__c0_stat & ~ST0_CU2); \ write_c0_status(__c0_stat & ~ST0_CU2); \
} \ } \
__clear_software_ll_bit(); \ __clear_software_ll_bit(); \
...@@ -111,7 +111,7 @@ do { \ ...@@ -111,7 +111,7 @@ do { \
(KSTK_STATUS(current) & ST0_CU2)) { \ (KSTK_STATUS(current) & ST0_CU2)) { \
__c0_stat = read_c0_status(); \ __c0_stat = read_c0_status(); \
write_c0_status(__c0_stat | ST0_CU2); \ write_c0_status(__c0_stat | ST0_CU2); \
cop2_restore(&current->thread.cp2); \ cop2_restore(current); \
write_c0_status(__c0_stat & ~ST0_CU2); \ write_c0_status(__c0_stat & ~ST0_CU2); \
} \ } \
if (cpu_has_dsp) \ if (cpu_has_dsp) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment