lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <ZTp2oLST3nR9AZk4@smile.fi.intel.com> Date: Thu, 26 Oct 2023 17:24:32 +0300 From: Andy Shevchenko <andriy.shevchenko@...ux.intel.com> To: Alexander Potapenko <glider@...gle.com> Cc: catalin.marinas@....com, will@...nel.org, pcc@...gle.com, andreyknvl@...il.com, aleksander.lobakin@...el.com, linux@...musvillemoes.dk, yury.norov@...il.com, alexandru.elisei@....com, linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, eugenis@...gle.com, syednwaris@...il.com, william.gray@...aro.org, Arnd Bergmann <arnd@...db.de> Subject: Re: [PATCH v10 1/2] lib/bitmap: add bitmap_{read,write}() On Thu, Oct 26, 2023 at 03:59:11PM +0200, Alexander Potapenko wrote: > From: Syed Nayyar Waris <syednwaris@...il.com> > > The two new functions allow reading/writing values of length up to > BITS_PER_LONG bits at arbitrary position in the bitmap. > > The code was taken from "bitops: Introduce the for_each_set_clump macro" > by Syed Nayyar Waris with a number of changes and simplifications: > - instead of using roundup(), which adds an unnecessary dependency > on <linux/math.h>, we calculate space as BITS_PER_LONG-offset; > - indentation is reduced by not using else-clauses (suggested by > checkpatch for bitmap_get_value()); > - bitmap_get_value()/bitmap_set_value() are renamed to bitmap_read() > and bitmap_write(); > - some redundant computations are omitted. Reviewed-by: Andy Shevchenko <andriy.shevchenko@...ux.intel.com> One nit below, though. ... > +/** > + * bitmap_write - write n-bit value within a memory region > + * @map: address to the bitmap memory region > + * @value: value to write, clamped to nbits > + * @start: bit offset of the n-bit value > + * @nbits: size of value in bits, nonzero, up to BITS_PER_LONG. > + * > + * bitmap_write() behaves as-if implemented as @nbits calls of __assign_bit(), > + * i.e. bits beyond @nbits are ignored: > + * > + * for (bit = 0; bit < nbits; bit++) > + * __assign_bit(start + bit, bitmap, val & BIT(bit)); > + * > + * For @nbits > BITS_PER_LONG no writes are performed. nbits == 0 hasn't been mentioned. (no, the main nit below) > + */ > +static inline void bitmap_write(unsigned long *map, > + unsigned long value, > + unsigned long start, unsigned long nbits) While noticing strange indentation (you have space for the parameter on the previous line, I realized that this is a counter-intuitive interface. Can you actually make value the last parameter? -- With Best Regards, Andy Shevchenko
Powered by blists - more mailing lists