On Fri, Dec 04, 2020 at 10:43:46AM -0600, Glenn Washburn wrote: > Reviewed-by: Daniel Kiper > Signed-off-by: Glenn Washburn > --- > grub-core/disk/luks2.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/grub-core/disk/luks2.c b/grub-core/disk/luks2.c > index 2335ded77..4fa5a0dbc 100644 > --- a/grub-core/disk/luks2.c > +++ b/grub-core/disk/luks2.c > @@ -642,8 +642,7 @@ luks2_recover_key (grub_disk_t source, > > /* Set up disk according to keyslot's segment. */ > crypt->offset_sectors = grub_divmod64 (segment.offset, segment.sector_size, NULL); > - crypt->log_sector_size = sizeof (unsigned int) * 8 > - - __builtin_clz ((unsigned int) segment.sector_size) - 1; > + crypt->log_sector_size = grub_log2ull (segment.sector_size); I was quite confused by the fact that previously we were using an unsigned int (which typically is 4 bytes on 64 bit systems), but now we're using the 8 byte wide uint64. Until I realized that `grub_log2ull(n)` uses `__builtin_clzll` instead of `__builtin_clz`. A commit message would've helped to clear up this confusion. Other than that: Reviewed-by: Patrick Steinhardt > /* Set to the source disk size, which is the maximum we allow. */ > max_crypt_sectors = grub_disk_convert_sector(source, > source->total_sectors, > -- > 2.27.0 >