MIPS: Introduce set_elf_platform() helper function
Subsystems (2)
PATCH 1/3 MIPS: Introduce set_elf_platform() helper function
From: Robert Millan <[email protected]>
Replace these sequences:
if (cpu == 0)
__elf_platform = "foo";
with a trivial inline function.
--- arch/mips/include/asm/elf.h | 6 ++++++ arch/mips/kernel/cpu-probe.c | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-)
arch/mips/include/asm/elf.h +6 -0
@@ -348,6 +348,12 @@ extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);#define ELF_PLATFORM __elf_platformextern 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.
arch/mips/kernel/cpu-probe.c +2 -4
@@ -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" );
Signature · 1 line
1.7.4.3
PATCH 2/3 MIPS: Set ELF AT_PLATFORM string for BMIPS processors
--- arch/mips/kernel/cpu-probe.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
arch/mips/kernel/cpu-probe.c +5 -0
@@ -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 ; }
Signature · 1 line
1.7.4.3
Ralf Baechle
AppliedRe: [PATCH 2/3] MIPS: Set ELF AT_PLATFORM string for BMIPS processors
Queued for 2.6.40. Thanks Kevin!
Ralf
PATCH 3/3 MIPS: Set ELF AT_PLATFORM string for Loongson2 processors
In reply to Kevin CernekeeFrom: Robert Millan <[email protected]>
--- arch/mips/kernel/cpu-probe.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-)
arch/mips/kernel/cpu-probe.c +10 -0
@@ -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 |
Signature · 1 line
1.7.4.3
Ralf Baechle
AppliedRe: [PATCH 3/3] MIPS: Set ELF AT_PLATFORM string for Loongson2 processors
Queued for 2.6.40. Thanks Kevin!
Ralf
Quoted 22 lines · Kevin Cernekee
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(-)arch/mips/include/asm/elf.h +0
-0
arch/mips/include/asm/elf.h extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *); · line 356
Quoted 9 lines
arch/mips/include/asm/elf.h +6
-0@@ -348,6 +348,12 @@ extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);#define ELF_PLATFORM __elf_platformextern 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
Quoted 24 lines
arch/mips/include/asm/elf.h +0
-0/* * See comments in asm-alpha/elf.h, this is the same thing * on the MIPS. arch/mips/kernel/cpu-probe.c +2
-4@@ -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" );