Hi, On Fri, 8 Mar 2024 at 20:50, Zhao Liu <zhao1....@linux.intel.com> wrote: > On Fri, Mar 08, 2024 at 02:20:45PM +0100, Thomas Huth wrote: > > Can we always rely on that? ... or is this just by luck due to the current > > implementation? In the latter case, I'd maybe rather drop this patch again. > > Thanks for the correction, I revisited and referenced more similar use > cases, and indeed, only if the flag "has_*" is true, its corresponding > field should be considered reliable.
* Is this because 'SMPConfiguration config' fields are not always initialized with default values? Is that a bug? Having 'SMPConfiguration' fields initialised to known default values could help to unify/simplify code which uses those fields. > Keeping explicit checking on has_* and explicit initialization of these > topology variables makes the code more readable. > > This patch is over-optimized and I would drop it. * Could we then simplify it in the following if <expression> === if ((config->has_cpus && config->cpus == 0) || ... || (config->has_maxcpus && config->maxcpus == 0)) could be if (!cpus || !drawers || ... || !maxcpus) { ... } === Thank you. --- - Prasad