On Thursday, July 12, 2012, Daniel Lezcano wrote: > Remove the index field. It could be given without adding extra > information in the cx structure. > > Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> I'm not sure about this one. The code seems to be more straightforward without it, actually. Why exactly do you need to remove the field? Rafael > --- > arch/x86/kernel/acpi/cstate.c | 18 +++++++++--------- > drivers/acpi/processor_idle.c | 15 +++++++-------- > include/acpi/processor.h | 11 +++++------ > 3 files changed, 21 insertions(+), 23 deletions(-) > > diff --git a/arch/x86/kernel/acpi/cstate.c b/arch/x86/kernel/acpi/cstate.c > index d2b7f27..faa7f50 100644 > --- a/arch/x86/kernel/acpi/cstate.c > +++ b/arch/x86/kernel/acpi/cstate.c > @@ -112,8 +112,8 @@ out: > return retval; > } > > -int acpi_processor_ffh_cstate_probe(unsigned int cpu, > - struct acpi_processor_cx *cx, struct acpi_power_register *reg) > +int acpi_processor_ffh_cstate_probe(unsigned int cpu, struct acpi_processor_cx *cx, > + int index, struct acpi_power_register *reg) > { > struct cstate_entry *percpu_entry; > struct cpuinfo_x86 *c = &cpu_data(cpu); > @@ -126,16 +126,16 @@ int acpi_processor_ffh_cstate_probe(unsigned int cpu, > return -1; > > percpu_entry = per_cpu_ptr(cpu_cstate_entry, cpu); > - percpu_entry->states[cx->index].eax = 0; > - percpu_entry->states[cx->index].ecx = 0; > + percpu_entry->states[index].eax = 0; > + percpu_entry->states[index].ecx = 0; > > /* Make sure we are running on right CPU */ > > retval = work_on_cpu(cpu, acpi_processor_ffh_cstate_probe_cpu, cx); > if (retval == 0) { > /* Use the hint in CST */ > - percpu_entry->states[cx->index].eax = cx->address; > - percpu_entry->states[cx->index].ecx = MWAIT_ECX_INTERRUPT_BREAK; > + percpu_entry->states[index].eax = cx->address; > + percpu_entry->states[index].ecx = MWAIT_ECX_INTERRUPT_BREAK; > } > > /* > @@ -173,14 +173,14 @@ void mwait_idle_with_hints(unsigned long ax, unsigned long cx) > } > } > > -void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cx) > +void acpi_processor_ffh_cstate_enter(int index) > { > unsigned int cpu = smp_processor_id(); > struct cstate_entry *percpu_entry; > > percpu_entry = per_cpu_ptr(cpu_cstate_entry, cpu); > - mwait_idle_with_hints(percpu_entry->states[cx->index].eax, > - percpu_entry->states[cx->index].ecx); > + mwait_idle_with_hints(percpu_entry->states[index].eax, > + percpu_entry->states[index].ecx); > } > EXPORT_SYMBOL_GPL(acpi_processor_ffh_cstate_enter); > > diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c > index da92c65..9808e60 100644 > --- a/drivers/acpi/processor_idle.c > +++ b/drivers/acpi/processor_idle.c > @@ -433,12 +433,11 @@ static int acpi_processor_get_power_info_cst(struct acpi_processor *pr) > current_count++; > > cx.address = reg->address; > - cx.index = current_count + 1; > > cx.entry_method = ACPI_CSTATE_SYSTEMIO; > if (reg->space_id == ACPI_ADR_SPACE_FIXED_HARDWARE) { > - if (acpi_processor_ffh_cstate_probe > - (pr->id, &cx, reg) == 0) { > + if (acpi_processor_ffh_cstate_probe( > + pr->id, &cx, current_count + 1, reg) == 0) { > cx.entry_method = ACPI_CSTATE_FFH; > } else if (cx.type == ACPI_STATE_C1) { > /* > @@ -707,13 +706,13 @@ static int acpi_idle_bm_check(void) > * > * Caller disables interrupt before call and enables interrupt after return. > */ > -static inline void acpi_idle_do_entry(struct acpi_processor_cx *cx) > +static inline void acpi_idle_do_entry(struct acpi_processor_cx *cx, int index) > { > /* Don't trace irqs off for idle */ > stop_critical_timings(); > if (cx->entry_method == ACPI_CSTATE_FFH) { > /* Call into architectural FFH based C-state */ > - acpi_processor_ffh_cstate_enter(cx); > + acpi_processor_ffh_cstate_enter(index); > } else if (cx->entry_method == ACPI_CSTATE_HALT) { > acpi_safe_halt(); > } else { > @@ -754,7 +753,7 @@ static int acpi_idle_enter_c1(struct cpuidle_device *dev, > > lapic_timer_state_broadcast(pr, cx, 1); > kt1 = ktime_get_real(); > - acpi_idle_do_entry(cx); > + acpi_idle_do_entry(cx, index); > kt2 = ktime_get_real(); > idle_time = ktime_to_us(ktime_sub(kt2, kt1)); > > @@ -848,7 +847,7 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, > kt1 = ktime_get_real(); > /* Tell the scheduler that we are going deep-idle: */ > sched_clock_idle_sleep_event(); > - acpi_idle_do_entry(cx); > + acpi_idle_do_entry(cx, index); > kt2 = ktime_get_real(); > idle_time_ns = ktime_to_ns(ktime_sub(kt2, kt1)); > idle_time = idle_time_ns; > @@ -960,7 +959,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, > ACPI_FLUSH_CPU_CACHE(); > } > > - acpi_idle_do_entry(cx); > + acpi_idle_do_entry(cx, index); > > /* Re-enable bus master arbitration */ > if (pr->flags.bm_check && pr->flags.bm_control) { > diff --git a/include/acpi/processor.h b/include/acpi/processor.h > index a70cbcc..d09c94f 100644 > --- a/include/acpi/processor.h > +++ b/include/acpi/processor.h > @@ -57,7 +57,6 @@ struct acpi_processor_cx { > u8 type; > u32 address; > u8 entry_method; > - u8 index; > u32 latency; > u32 power; > u32 usage; > @@ -249,8 +248,9 @@ void acpi_processor_power_init_bm_check(struct acpi_processor_flags *flags, > unsigned int cpu); > int acpi_processor_ffh_cstate_probe(unsigned int cpu, > struct acpi_processor_cx *cx, > + int index, > struct acpi_power_register *reg); > -void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cstate); > +void acpi_processor_ffh_cstate_enter(int index); > #else > static inline void acpi_processor_power_init_bm_check(struct > acpi_processor_flags > @@ -261,13 +261,12 @@ static inline void acpi_processor_power_init_bm_check(struct > } > static inline int acpi_processor_ffh_cstate_probe(unsigned int cpu, > struct acpi_processor_cx *cx, > - struct acpi_power_register > - *reg) > + int index, > + struct acpi_power_register *reg) > { > return -1; > } > -static inline void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx > - *cstate) > +static inline void acpi_processor_ffh_cstate_enter(int index) > { > return; > } > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html