cregit-Linux how code gets into the kernel

Release 4.14 arch/powerpc/include/asm/cpu_has_feature.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __ASM_POWERPC_CPU_HAS_FEATURE_H

#define __ASM_POWERPC_CPU_HAS_FEATURE_H

#ifndef __ASSEMBLY__

#include <linux/bug.h>
#include <asm/cputable.h>


static inline bool early_cpu_has_feature(unsigned long feature) { return !!((CPU_FTRS_ALWAYS & feature) || (CPU_FTRS_POSSIBLE & cur_cpu_spec->cpu_features & feature)); }

Contributors

PersonTokensPropCommitsCommitProp
Kevin Hao32100.00%1100.00%
Total32100.00%1100.00%

#ifdef CONFIG_JUMP_LABEL_FEATURE_CHECKS #include <linux/jump_label.h> #define NUM_CPU_FTR_KEYS BITS_PER_LONG extern struct static_key_true cpu_feature_keys[NUM_CPU_FTR_KEYS];
static __always_inline bool cpu_has_feature(unsigned long feature) { int i; #ifndef __clang__ /* clang can't cope with this */ BUILD_BUG_ON(!__builtin_constant_p(feature)); #endif #ifdef CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG if (!static_key_initialized) { printk("Warning! cpu_has_feature() used prior to jump label init!\n"); dump_stack(); return early_cpu_has_feature(feature); } #endif if (CPU_FTRS_ALWAYS & feature) return true; if (!(CPU_FTRS_POSSIBLE & feature)) return false; i = __builtin_ctzl(feature); return static_branch_likely(&cpu_feature_keys[i]); }

Contributors

PersonTokensPropCommitsCommitProp
Kevin Hao6165.59%133.33%
Aneesh Kumar K.V2627.96%133.33%
Michael Ellerman66.45%133.33%
Total93100.00%3100.00%

#else
static inline bool cpu_has_feature(unsigned long feature) { return early_cpu_has_feature(feature); }

Contributors

PersonTokensPropCommitsCommitProp
Kevin Hao17100.00%1100.00%
Total17100.00%1100.00%

#endif #endif /* __ASSEMBLY__ */ #endif /* __ASM_POWERPC_CPU_HAS_FEATURE_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Kevin Hao14980.11%337.50%
Aneesh Kumar K.V2613.98%112.50%
Michael Ellerman73.76%225.00%
Nicholas Piggin31.61%112.50%
Greg Kroah-Hartman10.54%112.50%
Total186100.00%8100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.