Subject: [PATCH 19/31] MIPS: Replace __get_cpu_var uses in FPU emulator.


From: David Daney <[email protected]>

The use of __this_cpu_inc() requires a fundamental integer type, so
change the type of all the counters to unsigned long, which is the
same width they were before, but not wrapped in local_t.

Signed-off-by: David Daney <[email protected]>
Signed-off-by: Christoph Lameter <[email protected]>
---
arch/mips/include/asm/fpu_emulator.h | 14 +++++++-------
arch/mips/math-emu/cp1emu.c | 6 +++---
2 files changed, 10 insertions(+), 10 deletions(-)

Index: linux/arch/mips/include/asm/fpu_emulator.h
===================================================================
--- linux.orig/arch/mips/include/asm/fpu_emulator.h 2014-06-16 09:15:42.199326017 -0500
+++ linux/arch/mips/include/asm/fpu_emulator.h 2014-06-16 09:17:42.776959733 -0500
@@ -33,17 +33,17 @@
#ifdef CONFIG_DEBUG_FS

struct mips_fpu_emulator_stats {
- local_t emulated;
- local_t loads;
- local_t stores;
- local_t cp1ops;
- local_t cp1xops;
- local_t errors;
- local_t ieee754_inexact;
- local_t ieee754_underflow;
- local_t ieee754_overflow;
- local_t ieee754_zerodiv;
- local_t ieee754_invalidop;
+ unsigned long emulated;
+ unsigned long loads;
+ unsigned long stores;
+ unsigned long cp1ops;
+ unsigned long cp1xops;
+ unsigned long errors;
+ unsigned long ieee754_inexact;
+ unsigned long ieee754_underflow;
+ unsigned long ieee754_overflow;
+ unsigned long ieee754_zerodiv;
+ unsigned long ieee754_invalidop;
};

DECLARE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats);
@@ -51,7 +51,7 @@
#define MIPS_FPU_EMU_INC_STATS(M) \
do { \
preempt_disable(); \
- __local_inc(&__get_cpu_var(fpuemustats).M); \
+ __this_cpu_inc(fpuemustats.M); \
preempt_enable(); \
} while (0)


2014-06-20 20:07:40

by David Daney

[permalink] [raw]
Subject: Re: [PATCH 19/31] MIPS: Replace __get_cpu_var uses in FPU emulator.

+ [email protected], as that is the main MIPS patch reviewing list.

On 06/20/2014 12:31 PM, Christoph Lameter wrote:
> From: David Daney<[email protected]>
>
> The use of __this_cpu_inc() requires a fundamental integer type, so
> change the type of all the counters to unsigned long, which is the
> same width they were before, but not wrapped in local_t.
>
> Signed-off-by: David Daney<[email protected]>
> Signed-off-by: Christoph Lameter<[email protected]>
> ---
> arch/mips/include/asm/fpu_emulator.h | 14 +++++++-------
> arch/mips/math-emu/cp1emu.c | 6 +++---
> 2 files changed, 10 insertions(+), 10 deletions(-)
>
> Index: linux/arch/mips/include/asm/fpu_emulator.h
> ===================================================================
> --- linux.orig/arch/mips/include/asm/fpu_emulator.h 2014-06-16 09:15:42.199326017 -0500
> +++ linux/arch/mips/include/asm/fpu_emulator.h 2014-06-16 09:17:42.776959733 -0500
> @@ -33,17 +33,17 @@
> #ifdef CONFIG_DEBUG_FS
>
> struct mips_fpu_emulator_stats {
> - local_t emulated;
> - local_t loads;
> - local_t stores;
> - local_t cp1ops;
> - local_t cp1xops;
> - local_t errors;
> - local_t ieee754_inexact;
> - local_t ieee754_underflow;
> - local_t ieee754_overflow;
> - local_t ieee754_zerodiv;
> - local_t ieee754_invalidop;
> + unsigned long emulated;
> + unsigned long loads;
> + unsigned long stores;
> + unsigned long cp1ops;
> + unsigned long cp1xops;
> + unsigned long errors;
> + unsigned long ieee754_inexact;
> + unsigned long ieee754_underflow;
> + unsigned long ieee754_overflow;
> + unsigned long ieee754_zerodiv;
> + unsigned long ieee754_invalidop;
> };
>
> DECLARE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats);
> @@ -51,7 +51,7 @@
> #define MIPS_FPU_EMU_INC_STATS(M) \
> do { \
> preempt_disable(); \
> - __local_inc(&__get_cpu_var(fpuemustats).M); \
> + __this_cpu_inc(fpuemustats.M); \
> preempt_enable(); \
> } while (0)
>
>

2014-07-18 23:31:32

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH 19/31] MIPS: Replace __get_cpu_var uses in FPU emulator.

On Fri, Jun 20, 2014 at 02:31:34PM -0500, Christoph Lameter wrote:
>
> From: David Daney <[email protected]>
>
> The use of __this_cpu_inc() requires a fundamental integer type, so
> change the type of all the counters to unsigned long, which is the
> same width they were before, but not wrapped in local_t.
>
> Signed-off-by: David Daney <[email protected]>
> Signed-off-by: Christoph Lameter <[email protected]>

Applied to wq/for-3.17-consistent-ops. If this patch should be routed
differently, please holler.

Thanks.

--
tejun