Alexander Lobakin ee20cdbede lib/bitmap: fix off-by-one in bitmap_to_arr64()
[ Upstream commit 428bc098635680a664779f26f24fe9197d186172 ]

GENMASK*() family takes the first and the last bits of the mask
*including* them. So, with the current code bitmap_to_arr64()
doesn't clear the tail properly:

nbits %  exp             mask                must be
1        GENMASK(1, 0)   0x3                 0x1
...
63       GENMASK(63, 0)  0xffffffffffffffff  0x7fffffffffffffff

This was found by making the function always available instead of
32-bit BE systems only (for reusing in some new functionality).
Turn the number of bits into the last bit set by subtracting 1.
@nbits is already checked to be positive beforehand.

Fixes: 0a97953fd221 ("lib: add bitmap_{from,to}_arr64")
Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Yury Norov <yury.norov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-08-17 15:15:52 +02:00
..
2022-06-12 14:51:51 +08:00
2022-05-09 17:20:37 -07:00
2021-07-08 11:48:20 -07:00
2021-09-08 11:50:26 -07:00
2022-03-03 10:47:52 +12:00
2021-07-08 11:48:20 -07:00
2021-07-08 11:48:20 -07:00
2021-11-18 13:16:22 -08:00
2021-05-06 19:24:12 -07:00
2018-08-16 12:14:42 -07:00
2021-01-21 14:06:00 -07:00
2022-03-07 12:48:35 -07:00
2021-08-19 09:02:55 +09:00
2022-04-22 21:30:57 +02:00
2021-01-03 20:05:18 -05:00
2022-01-15 08:47:31 -08:00
2022-03-07 12:48:35 -07:00
2022-04-29 14:38:01 -07:00
2022-07-10 13:55:49 -07:00
2021-08-19 09:02:55 +09:00
2022-06-12 14:51:51 +08:00
2022-05-27 21:24:19 -07:00
2021-07-08 11:48:20 -07:00
2021-07-08 11:48:20 -07:00
2022-06-12 14:51:51 +08:00
2018-10-16 13:45:44 +02:00
2022-06-12 14:51:51 +08:00
2021-07-08 11:48:20 -07:00
2021-07-08 11:48:20 -07:00
2021-08-08 13:00:20 +01:00
2021-09-17 13:52:17 +01:00
2021-07-08 11:48:20 -07:00
2021-07-08 11:48:20 -07:00
2021-07-08 11:48:20 -07:00
2022-06-03 10:34:34 -07:00
2022-04-29 14:38:01 -07:00
2021-06-18 11:43:09 +02:00
2021-07-08 11:48:20 -07:00
2022-01-20 08:52:54 +02:00
2018-10-15 16:31:29 -04:00