[S390] New get_cpu_id() inline assembly

2007-02-21 Thread Martin Schwidefsky
From: Michael Holzheu <[EMAIL PROTECTED]>

[S390] New get_cpu_id() inline assembly

Replace two stidp inline assemblies with one global implementation.

Signed-off-by: Michael Holzheu <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---

 arch/s390/kernel/early.c |2 +-
 arch/s390/kernel/setup.c |2 +-
 include/asm-s390/processor.h |5 +
 3 files changed, 7 insertions(+), 2 deletions(-)

diff -urpN linux-2.6/arch/s390/kernel/early.c 
linux-2.6-patched/arch/s390/kernel/early.c
--- linux-2.6/arch/s390/kernel/early.c  2007-02-21 10:47:06.0 +0100
+++ linux-2.6-patched/arch/s390/kernel/early.c  2007-02-21 10:47:29.0 
+0100
@@ -129,7 +129,7 @@ static noinline __init void detect_machi
 {
struct cpuinfo_S390 *cpuinfo = _lowcore.cpu_data;
 
-   asm volatile("stidp %0" : "=m" (S390_lowcore.cpu_data.cpu_id));
+   get_cpu_id(_lowcore.cpu_data.cpu_id);
 
/* Running under z/VM ? */
if (cpuinfo->cpu_id.version == 0xff)
diff -urpN linux-2.6/arch/s390/kernel/setup.c 
linux-2.6-patched/arch/s390/kernel/setup.c
--- linux-2.6/arch/s390/kernel/setup.c  2007-02-21 10:47:06.0 +0100
+++ linux-2.6-patched/arch/s390/kernel/setup.c  2007-02-21 10:47:29.0 
+0100
@@ -106,7 +106,7 @@ void __devinit cpu_init (void)
 /*
  * Store processor id in lowcore (used e.g. in timer_interrupt)
  */
-   asm volatile("stidp %0": "=m" (S390_lowcore.cpu_data.cpu_id));
+   get_cpu_id(_lowcore.cpu_data.cpu_id);
 S390_lowcore.cpu_data.cpu_addr = addr;
 
 /*
diff -urpN linux-2.6/include/asm-s390/processor.h 
linux-2.6-patched/include/asm-s390/processor.h
--- linux-2.6/include/asm-s390/processor.h  2007-02-21 10:47:14.0 
+0100
+++ linux-2.6-patched/include/asm-s390/processor.h  2007-02-21 
10:47:29.0 +0100
@@ -36,6 +36,11 @@ typedef struct
 unsigned int unused  : 16;
 } __attribute__ ((packed)) cpuid_t;
 
+static inline void get_cpu_id(cpuid_t *ptr)
+{
+   asm volatile("stidp 0(%1)" : "=m" (*ptr) : "a" (ptr));
+}
+
 struct cpuinfo_S390
 {
 cpuid_t  cpu_id;
-- 
blue skies,  IBM Deutschland Entwicklung GmbH
   MartinVorsitzender des Aufsichtsrats: Johann Weihen
 Geschäftsführung: Herbert Kircher 
Martin Schwidefsky   Sitz der Gesellschaft: Böblingen
Linux on zSeries Registergericht: Amtsgericht Stuttgart,
   Development   HRB 243294
   
"Reality continues to ruin my life." - Calvin.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[S390] New get_cpu_id() inline assembly

2007-02-21 Thread Martin Schwidefsky
From: Michael Holzheu [EMAIL PROTECTED]

[S390] New get_cpu_id() inline assembly

Replace two stidp inline assemblies with one global implementation.

Signed-off-by: Michael Holzheu [EMAIL PROTECTED]
Signed-off-by: Martin Schwidefsky [EMAIL PROTECTED]
---

 arch/s390/kernel/early.c |2 +-
 arch/s390/kernel/setup.c |2 +-
 include/asm-s390/processor.h |5 +
 3 files changed, 7 insertions(+), 2 deletions(-)

diff -urpN linux-2.6/arch/s390/kernel/early.c 
linux-2.6-patched/arch/s390/kernel/early.c
--- linux-2.6/arch/s390/kernel/early.c  2007-02-21 10:47:06.0 +0100
+++ linux-2.6-patched/arch/s390/kernel/early.c  2007-02-21 10:47:29.0 
+0100
@@ -129,7 +129,7 @@ static noinline __init void detect_machi
 {
struct cpuinfo_S390 *cpuinfo = S390_lowcore.cpu_data;
 
-   asm volatile(stidp %0 : =m (S390_lowcore.cpu_data.cpu_id));
+   get_cpu_id(S390_lowcore.cpu_data.cpu_id);
 
/* Running under z/VM ? */
if (cpuinfo-cpu_id.version == 0xff)
diff -urpN linux-2.6/arch/s390/kernel/setup.c 
linux-2.6-patched/arch/s390/kernel/setup.c
--- linux-2.6/arch/s390/kernel/setup.c  2007-02-21 10:47:06.0 +0100
+++ linux-2.6-patched/arch/s390/kernel/setup.c  2007-02-21 10:47:29.0 
+0100
@@ -106,7 +106,7 @@ void __devinit cpu_init (void)
 /*
  * Store processor id in lowcore (used e.g. in timer_interrupt)
  */
-   asm volatile(stidp %0: =m (S390_lowcore.cpu_data.cpu_id));
+   get_cpu_id(S390_lowcore.cpu_data.cpu_id);
 S390_lowcore.cpu_data.cpu_addr = addr;
 
 /*
diff -urpN linux-2.6/include/asm-s390/processor.h 
linux-2.6-patched/include/asm-s390/processor.h
--- linux-2.6/include/asm-s390/processor.h  2007-02-21 10:47:14.0 
+0100
+++ linux-2.6-patched/include/asm-s390/processor.h  2007-02-21 
10:47:29.0 +0100
@@ -36,6 +36,11 @@ typedef struct
 unsigned int unused  : 16;
 } __attribute__ ((packed)) cpuid_t;
 
+static inline void get_cpu_id(cpuid_t *ptr)
+{
+   asm volatile(stidp 0(%1) : =m (*ptr) : a (ptr));
+}
+
 struct cpuinfo_S390
 {
 cpuid_t  cpu_id;
-- 
blue skies,  IBM Deutschland Entwicklung GmbH
   MartinVorsitzender des Aufsichtsrats: Johann Weihen
 Geschäftsführung: Herbert Kircher 
Martin Schwidefsky   Sitz der Gesellschaft: Böblingen
Linux on zSeries Registergericht: Amtsgericht Stuttgart,
   Development   HRB 243294
   
Reality continues to ruin my life. - Calvin.

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/