On Thu, Jan 28, 2021 at 2:52 AM Yury Norov <yury.no...@gmail.com> wrote: > On Wed, Jan 27, 2021 at 12:02 AM Paul Gortmaker > <paul.gortma...@windriver.com> wrote:
... > > So, this change was added because Yury suggested that I "..store > > nmaskbits in the struct region, and avoid passing nmaskbits as a > > parameter." > > > > To which I originally noted "I considered that and went with the param > > so as to not open the door to someone possibly using an uninitialized > > struct value later." > > struct region is purely internal structure. It's declared on stack and filled > field-by-field using helpers. 'Someone' misusing the structure doesn't exist > because the structure doesn't exist out of the scope. > > > https://lore.kernel.org/lkml/20210122044357.gs16...@windriver.com/ > > > > Looking back, I had a similar thought as to yours, it seems... > > > > I am also thinking more and more that nbits doesn't belong in the > > region anyway - yes, a region gets validated against a specific nbits > > eventually, but it doesn't need an nbits field to be a complete > > specification. The region "0-3" is a complete specification for "the > > 1st four cores" and is as valid on a 4 core machine as it is on a 64 core > > machine -- a validation we do when we deploy the region on that machine. > > > > I will set this change aside and get the nbits value to getnum() another > > way, and leave the region struct as it was -- without a nbits field. > > > > This will also resolve having the macro handling of region that you were > > not really liking. > Region is a convenient structure. Adding nbits into it helps to remove > validation > logic from bitmap_set_region(), so it's worth doing this. > > Can you please have it unchanged? I have a compromise proposal here, i.e. why not to create a wrapper structure like struct bitmap_region { unsigned int nbits; struct region r; }; ? At least it will solve my concern and still be a local structure on the stack without adding new parameters to called functions. -- With Best Regards, Andy Shevchenko