···1111sleep modes.12121313Detection of the feature set is simple. A list of processors can be found in1414-arch/ppc/kernel/cputable.c. The PVR register is masked and compared with each1515-value in the list. If a match is found, the cpu_features of cur_cpu_spec is1616-assigned to the feature bitmask for this processor and a __setup_cpu function1717-is called.1414+arch/powerpc/kernel/cputable.c. The PVR register is masked and compared with1515+each value in the list. If a match is found, the cpu_features of cur_cpu_spec1616+is assigned to the feature bitmask for this processor and a __setup_cpu1717+function is called.18181919C code may test 'cur_cpu_spec[smp_processor_id()]->cpu_features' for a2020particular feature bit. This is done in quite a few places, for example···51515252The END_FTR_SECTION macros are implemented by storing information about this5353code in the '__ftr_fixup' ELF section. When do_cpu_ftr_fixups5454-(arch/ppc/kernel/misc.S) is invoked, it will iterate over the records in5454+(arch/powerpc/kernel/misc.S) is invoked, it will iterate over the records in5555__ftr_fixup, and if the required feature is not present it will loop writing5656nop's from each BEGIN_FTR_SECTION to END_FTR_SECTION.