mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 18:53:52 +08:00
lib/bitmap: extend comment for bitmap_(from,to)_arr32()
On LE systems bitmaps are naturally ordered, therefore we can potentially use bitmap_copy routines when converting from 32-bit arrays, even if host system is 64-bit. But it may lead to out-of-bond access due to unsafe typecast, and the bitmap_(from,to)_arr32 comment doesn't explain that clearly CC: Alexander Gordeev <agordeev@linux.ibm.com> CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com> CC: Christian Borntraeger <borntraeger@linux.ibm.com> CC: Claudio Imbrenda <imbrenda@linux.ibm.com> CC: David Hildenbrand <david@redhat.com> CC: Heiko Carstens <hca@linux.ibm.com> CC: Janosch Frank <frankja@linux.ibm.com> CC: Rasmus Villemoes <linux@rasmusvillemoes.dk> CC: Sven Schnelle <svens@linux.ibm.com> CC: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Yury Norov <yury.norov@gmail.com>
This commit is contained in:
parent
6d7131bd52
commit
e041e0ac53
@ -264,8 +264,12 @@ static inline void bitmap_copy_clear_tail(unsigned long *dst,
|
||||
}
|
||||
|
||||
/*
|
||||
* On 32-bit systems bitmaps are represented as u32 arrays internally, and
|
||||
* therefore conversion is not needed when copying data from/to arrays of u32.
|
||||
* On 32-bit systems bitmaps are represented as u32 arrays internally. On LE64
|
||||
* machines the order of hi and lo parts of numbers match the bitmap structure.
|
||||
* In both cases conversion is not needed when copying data from/to arrays of
|
||||
* u32. But in LE64 case, typecast in bitmap_copy_clear_tail() may lead
|
||||
* to out-of-bound access. To avoid that, both LE and BE variants of 64-bit
|
||||
* architectures are not using bitmap_copy_clear_tail().
|
||||
*/
|
||||
#if BITS_PER_LONG == 64
|
||||
void bitmap_from_arr32(unsigned long *bitmap, const u32 *buf,
|
||||
|
Loading…
Reference in New Issue
Block a user