Messages in this thread | | | Date | Thu, 28 Dec 2017 13:53:41 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH v1] x86/platform/intel-mid: Revert "Make 'bt_sfi_data' const" |
| |
* Julia Lawall <julia.lawall@lip6.fr> wrote:
> > > [...] There does seem to be a few cases where the field actually does hold an > > > integer. I guess this is not a problem? > > > > Could you point to such an example? > > drivers/thermal/intel_soc_dts_thermal.c:#define BYT_SOC_DTS_APIC_IRQ 86 > > and then: > > static const struct x86_cpu_id soc_thermal_ids[] = { > { X86_VENDOR_INTEL, 6, INTEL_FAM6_ATOM_SILVERMONT1, 0, > BYT_SOC_DTS_APIC_IRQ}, > {} > }; > > and finally: > > soc_dts_thres_irq = (int)match_cpu->driver_data; > > Also: > > arch/x86/kernel/apic/apic.c > > #define DEADLINE_MODEL_MATCH_REV(model, rev) \ > { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)rev > } > > DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_X, 0x0b000020), > DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_CORE, 0x22), > etc. (all 2-digit numbers in the remaining case).
Ok - I think in these cases the resulting long->pointer type conversion is a _lot_ less dangerous than the pointer->long conversion which caused the regression.
So unless the resulting code is excessively ugly, this feels like the right approach to me.
Thanks,
Ingo
| |