Messages in this thread | | | From | "Luck, Tony" <> | Subject | RE: [PATCH v5 1/8] x86/resctrl: Prepare for new domain scope | Date | Wed, 30 Aug 2023 14:11:14 +0000 |
| |
> >+static int get_domain_id_from_scope(int cpu, enum resctrl_scope scope) > >+{ > >+ switch (scope) { > >+ case RESCTRL_L3_CACHE: > >+ return get_cpu_cacheinfo_id(cpu, 3); > >+ case RESCTRL_L2_CACHE: > >+ return get_cpu_cacheinfo_id(cpu, 2); > >+ default: > >+ WARN_ON_ONCE(1); > >+ break; > >+ } > >+ > >+ return -1; > >+} > > Is there some reason the "return -1" is outside of the default switch > case? > > Other switch statements in this patch do have returns inside the default > case, is this one different in some way?
I've sometimes had compilers complain about code written:
static int get_domain_id_from_scope(int cpu, enum resctrl_scope scope) { switch (scope) { case RESCTRL_L3_CACHE: return get_cpu_cacheinfo_id(cpu, 3); case RESCTRL_L2_CACHE: return get_cpu_cacheinfo_id(cpu, 2); default: WARN_ON_ONCE(1); return -1; } }
because they failed to notice that every path in the switch does a "return and they issue a warning that the function has no return value because they don't realize that the end of the function can't be reached.
So it's defensive programming against possible complier issues.
-Tony
| |