kernel, profile: Remove some duplicate code from profile_hits()
PATCH 1/1 kernel, profile: Remove some duplicate code from profile_hits()
profile_hits() has a common check for prof_on and prof_buffer regardless of SMP or !SMP. So, remove some duplicate code by splitting profile_hits into two.
Signed-off-by Rakib Mullick <[email protected]>
---
kernel/profile.c +9 -7
@@ -303,14 +303,12 @@ static void profile_discard_flip_buffers(void)mutex_unlock (&profile_flip_mutex); } -void profile_hits (int type,void *__pc,unsigned int nr_hits) +void do_profile_hits (int type,void *__pc,unsigned int nr_hits) {unsigned long primary, secondary, flags, pc = (unsigned long )__pc;int i, j, cpu;struct profile_hit *hits; -if (prof_on != type || !prof_buffer) -return ; pc =min ((pc - (unsigned long )_stext) >> prof_shift, prof_len -1 ); i = primary = (pc & (NR_PROFILE_GRP -1 )) <<PROFILE_GRPSHIFT ; secondary = (~(pc <<1 ) & (NR_PROFILE_GRP -1 )) <<PROFILE_GRPSHIFT ;
@@ -417,16 +415,20 @@ out_free:#define profile_discard_flip_buffers () do { } while (0)#define profile_cpu_callback NULL -void profile_hits (int type,void *__pc,unsigned int nr_hits) +void do_profile_hits (int type,void *__pc,unsigned int nr_hits) {unsigned long pc; - -if (prof_on != type || !prof_buffer) -return ; pc = ((unsigned long )__pc - (unsigned long )_stext) >> prof_shift;atomic_add (nr_hits, &prof_buffer[min (pc, prof_len -1 )]); }#endif /* !CONFIG_SMP */ + +void profile_hits (int type,void *__pc,unsigned int nr_hits) +{ +if (prof_on != type || !prof_buffer) +return ; +do_profile_hits (type, __pc, nr_hits); +}EXPORT_SYMBOL_GPL (profile_hits);void profile_tick (int type)