From: Robert Millan <[email protected]>
Replace these sequences:
if (cpu == 0)
__elf_platform = "foo";
with a trivial inline function.
Signed-off-by: Robert Millan <[email protected]>
Acked-by: David Daney <[email protected]>
Signed-off-by: Kevin Cernekee <[email protected]>
---
arch/mips/include/asm/elf.h | 6 ++++++
arch/mips/kernel/cpu-probe.c | 6 ++----
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
index 455c0ac..455da05 100644
--- a/arch/mips/include/asm/elf.h
+++ b/arch/mips/include/asm/elf.h
@@ -348,6 +348,12 @@ extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);
#define ELF_PLATFORM __elf_platform
extern const char *__elf_platform;
+static inline void set_elf_platform(int cpu, const char *plat)
+{
+ if (cpu == 0)
+ __elf_platform = plat;
+}
+
/*
* See comments in asm-alpha/elf.h, this is the same thing
* on the MIPS.
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index f65d4c8..5633ab1 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -956,14 +956,12 @@ static inline void cpu_probe_cavium(struct cpuinfo_mips *c, unsigned int cpu)
c->cputype = CPU_CAVIUM_OCTEON_PLUS;
__cpu_name[cpu] = "Cavium Octeon+";
platform:
- if (cpu == 0)
- __elf_platform = "octeon";
+ set_elf_platform(cpu, "octeon");
break;
case PRID_IMP_CAVIUM_CN63XX:
c->cputype = CPU_CAVIUM_OCTEON2;
__cpu_name[cpu] = "Cavium Octeon II";
- if (cpu == 0)
- __elf_platform = "octeon2";
+ set_elf_platform(cpu, "octeon2");
break;
default:
printk(KERN_INFO "Unknown Octeon chip!\n");
--
1.7.4.3
From: Robert Millan <[email protected]>
Signed-off-by: Robert Millan <[email protected]>
Acked-by: David Daney <[email protected]>
Signed-off-by: Kevin Cernekee <[email protected]>
---
arch/mips/kernel/cpu-probe.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index e3cf292..27ef0fc 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -614,6 +614,16 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c, unsigned int cpu)
case PRID_IMP_LOONGSON2:
c->cputype = CPU_LOONGSON2;
__cpu_name[cpu] = "ICT Loongson-2";
+
+ switch (c->processor_id & PRID_REV_MASK) {
+ case PRID_REV_LOONGSON2E:
+ set_elf_platform(cpu, "loongson2e");
+ break;
+ case PRID_REV_LOONGSON2F:
+ set_elf_platform(cpu, "loongson2f");
+ break;
+ }
+
c->isa_level = MIPS_CPU_ISA_III;
c->options = R4K_OPTS |
MIPS_CPU_FPU | MIPS_CPU_LLSC |
--
1.7.4.3
Signed-off-by: Kevin Cernekee <[email protected]>
---
arch/mips/kernel/cpu-probe.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 5633ab1..e3cf292 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -911,12 +911,14 @@ static inline void cpu_probe_broadcom(struct cpuinfo_mips *c, unsigned int cpu)
case PRID_IMP_BMIPS32_REV8:
c->cputype = CPU_BMIPS32;
__cpu_name[cpu] = "Broadcom BMIPS32";
+ set_elf_platform(cpu, "bmips32");
break;
case PRID_IMP_BMIPS3300:
case PRID_IMP_BMIPS3300_ALT:
case PRID_IMP_BMIPS3300_BUG:
c->cputype = CPU_BMIPS3300;
__cpu_name[cpu] = "Broadcom BMIPS3300";
+ set_elf_platform(cpu, "bmips3300");
break;
case PRID_IMP_BMIPS43XX: {
int rev = c->processor_id & 0xff;
@@ -925,15 +927,18 @@ static inline void cpu_probe_broadcom(struct cpuinfo_mips *c, unsigned int cpu)
rev <= PRID_REV_BMIPS4380_HI) {
c->cputype = CPU_BMIPS4380;
__cpu_name[cpu] = "Broadcom BMIPS4380";
+ set_elf_platform(cpu, "bmips4380");
} else {
c->cputype = CPU_BMIPS4350;
__cpu_name[cpu] = "Broadcom BMIPS4350";
+ set_elf_platform(cpu, "bmips4350");
}
break;
}
case PRID_IMP_BMIPS5000:
c->cputype = CPU_BMIPS5000;
__cpu_name[cpu] = "Broadcom BMIPS5000";
+ set_elf_platform(cpu, "bmips5000");
c->options |= MIPS_CPU_ULRI;
break;
}
--
1.7.4.3
On 04/16/2011 11:29 AM, Kevin Cernekee wrote:
> From: Robert Millan<[email protected]>
>
> Replace these sequences:
>
> if (cpu == 0)
> __elf_platform = "foo";
>
> with a trivial inline function.
>
> Signed-off-by: Robert Millan<[email protected]>
> Acked-by: David Daney<[email protected]>
> Signed-off-by: Kevin Cernekee<[email protected]>
> ---
> arch/mips/include/asm/elf.h | 6 ++++++
> arch/mips/kernel/cpu-probe.c | 6 ++----
> 2 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
> index 455c0ac..455da05 100644
> --- a/arch/mips/include/asm/elf.h
> +++ b/arch/mips/include/asm/elf.h
> @@ -348,6 +348,12 @@ extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);
> #define ELF_PLATFORM __elf_platform
> extern const char *__elf_platform;
>
> +static inline void set_elf_platform(int cpu, const char *plat)
> +{
> + if (cpu == 0)
> + __elf_platform = plat;
> +}
> +
Now I want to NAK it.
This function is only ever used in cpu-probe.c, can't we just put it in
there (and then make it non-inline)? The less stuff in elf.h the better.
David Daney
> /*
> * See comments in asm-alpha/elf.h, this is the same thing
> * on the MIPS.
> diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
> index f65d4c8..5633ab1 100644
> --- a/arch/mips/kernel/cpu-probe.c
> +++ b/arch/mips/kernel/cpu-probe.c
> @@ -956,14 +956,12 @@ static inline void cpu_probe_cavium(struct cpuinfo_mips *c, unsigned int cpu)
> c->cputype = CPU_CAVIUM_OCTEON_PLUS;
> __cpu_name[cpu] = "Cavium Octeon+";
> platform:
> - if (cpu == 0)
> - __elf_platform = "octeon";
> + set_elf_platform(cpu, "octeon");
> break;
> case PRID_IMP_CAVIUM_CN63XX:
> c->cputype = CPU_CAVIUM_OCTEON2;
> __cpu_name[cpu] = "Cavium Octeon II";
> - if (cpu == 0)
> - __elf_platform = "octeon2";
> + set_elf_platform(cpu, "octeon2");
> break;
> default:
> printk(KERN_INFO "Unknown Octeon chip!\n");
Queued for 2.6.40. Thanks Kevin!
Ralf
Queued for 2.6.40. Thanks Kevin!
Ralf