disk: Replace code that calculates the log of sector size with grub_log2ull()

Signed-off-by: Glenn Washburn <development@efficientek.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Glenn Washburn 2022-06-09 11:48:29 -05:00 committed by Daniel Kiper
parent a79c567f6b
commit 351c9c2fd0
17 changed files with 17 additions and 58 deletions

View File

@ -181,10 +181,7 @@ grub_ata_identify (struct grub_ata *dev)
if (secsize & (secsize - 1) || !secsize if (secsize & (secsize - 1) || !secsize
|| secsize > 1048576) || secsize > 1048576)
secsize = 256; secsize = 256;
for (dev->log_sector_size = 0; dev->log_sector_size = grub_log2ull (secsize) + 1;
(1U << dev->log_sector_size) < secsize;
dev->log_sector_size++);
dev->log_sector_size++;
} }
else else
dev->log_sector_size = 9; dev->log_sector_size = 9;

View File

@ -523,9 +523,7 @@ grub_efidisk_open (const char *name, struct grub_disk *disk)
if (m->block_size & (m->block_size - 1) || !m->block_size) if (m->block_size & (m->block_size - 1) || !m->block_size)
return grub_error (GRUB_ERR_IO, "invalid sector size %d", return grub_error (GRUB_ERR_IO, "invalid sector size %d",
m->block_size); m->block_size);
for (disk->log_sector_size = 0; disk->log_sector_size = grub_log2ull (m->block_size);
(1U << disk->log_sector_size) < m->block_size;
disk->log_sector_size++);
disk->data = d; disk->data = d;
grub_dprintf ("efidisk", "opening %s succeeded\n", name); grub_dprintf ("efidisk", "opening %s succeeded\n", name);

View File

@ -380,9 +380,7 @@ geli_scan (grub_disk_t disk, grub_cryptomount_args_t cargs)
newdev->hash = GRUB_MD_SHA512; newdev->hash = GRUB_MD_SHA512;
newdev->iv_hash = GRUB_MD_SHA256; newdev->iv_hash = GRUB_MD_SHA256;
for (newdev->log_sector_size = 0; newdev->log_sector_size = grub_log2ull (grub_le_to_cpu32 (header.sector_size));
(1U << newdev->log_sector_size) < grub_le_to_cpu32 (header.sector_size);
newdev->log_sector_size++);
if (grub_le_to_cpu32 (header.version) >= 5) if (grub_le_to_cpu32 (header.version) >= 5)
{ {

View File

@ -388,11 +388,7 @@ grub_biosdisk_open (const char *name, grub_disk_t disk)
&& !(drp->bytes_per_sector & (drp->bytes_per_sector - 1)) && !(drp->bytes_per_sector & (drp->bytes_per_sector - 1))
&& drp->bytes_per_sector >= 512 && drp->bytes_per_sector >= 512
&& drp->bytes_per_sector <= 16384) && drp->bytes_per_sector <= 16384)
{ disk->log_sector_size = grub_log2ull (drp->bytes_per_sector);
for (disk->log_sector_size = 0;
(1 << disk->log_sector_size) < drp->bytes_per_sector;
disk->log_sector_size++);
}
} }
} }
} }

View File

@ -1023,11 +1023,7 @@ grub_obdisk_open (const char *name, grub_disk_t disk)
dev->num_blocks = GRUB_DISK_SIZE_UNKNOWN; dev->num_blocks = GRUB_DISK_SIZE_UNKNOWN;
if (dev->block_size != 0) if (dev->block_size != 0)
{ dev->log_sector_size = grub_log2ull (dev->block_size);
for (dev->log_sector_size = 0;
(1U << dev->log_sector_size) < dev->block_size;
dev->log_sector_size++);
}
else else
dev->log_sector_size = 9; dev->log_sector_size = 9;

View File

@ -516,11 +516,7 @@ grub_ofdisk_open (const char *name, grub_disk_t disk)
return err; return err;
} }
if (block_size != 0) if (block_size != 0)
{ disk->log_sector_size = grub_log2ull (block_size);
for (disk->log_sector_size = 0;
(1U << disk->log_sector_size) < block_size;
disk->log_sector_size++);
}
else else
disk->log_sector_size = 9; disk->log_sector_size = 9;
} }

View File

@ -620,9 +620,7 @@ grub_scsi_open (const char *name, grub_disk_t disk)
grub_free (scsi); grub_free (scsi);
return grub_errno; return grub_errno;
} }
for (disk->log_sector_size = 0; disk->log_sector_size = grub_log2ull (scsi->blocksize);
(1U << disk->log_sector_size) < scsi->blocksize;
disk->log_sector_size++);
grub_dprintf ("scsi", "last_block=%" PRIuGRUB_UINT64_T ", blocksize=%u\n", grub_dprintf ("scsi", "last_block=%" PRIuGRUB_UINT64_T ", blocksize=%u\n",
scsi->last_block, scsi->blocksize); scsi->last_block, scsi->blocksize);

View File

@ -186,9 +186,7 @@ uboot_disk_open (const char *name, struct grub_disk *disk)
if (d->block_size == 0) if (d->block_size == 0)
return grub_error (GRUB_ERR_IO, "no block size"); return grub_error (GRUB_ERR_IO, "no block size");
for (disk->log_sector_size = 0; disk->log_sector_size = grub_log2ull (d->block_size);
(1U << disk->log_sector_size) < d->block_size;
disk->log_sector_size++);
grub_dprintf ("ubootdisk", "(%s) blocksize=%d, log_sector_size=%d\n", grub_dprintf ("ubootdisk", "(%s) blocksize=%d, log_sector_size=%d\n",
disk->name, d->block_size, disk->log_sector_size); disk->name, d->block_size, disk->log_sector_size);

View File

@ -113,9 +113,7 @@ grub_virtdisk_open (const char *name, grub_disk_t disk)
|| secsize > GRUB_XEN_PAGE_SIZE) || secsize > GRUB_XEN_PAGE_SIZE)
return grub_error (GRUB_ERR_IO, "unsupported sector size %d", secsize); return grub_error (GRUB_ERR_IO, "unsupported sector size %d", secsize);
for (disk->log_sector_size = 0; disk->log_sector_size = grub_log2ull (secsize);
(1U << disk->log_sector_size) < secsize; disk->log_sector_size++);
disk->total_sectors >>= disk->log_sector_size - 9; disk->total_sectors >>= disk->log_sector_size - 9;
return GRUB_ERR_NONE; return GRUB_ERR_NONE;

View File

@ -58,9 +58,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
if (sector_size & (sector_size - 1) || !sector_size) if (sector_size & (sector_size - 1) || !sector_size)
return -1; return -1;
for (log_sector_size = 0; log_sector_size = grub_log2ull (sector_size);
(1 << log_sector_size) < sector_size;
log_sector_size++);
if (log_secsize) if (log_secsize)
*log_secsize = log_sector_size; *log_secsize = log_sector_size;

View File

@ -116,9 +116,7 @@ grub_util_get_fd_size_volume (grub_util_fd_t fd __attribute__ ((unused)),
if (sector_size & (sector_size - 1) || !sector_size) if (sector_size & (sector_size - 1) || !sector_size)
return -1; return -1;
for (log_sector_size = 0; log_sector_size = grub_log2ull (sector_size);
(1 << log_sector_size) < sector_size;
log_sector_size++);
if (log_secsize) if (log_secsize)
*log_secsize = log_sector_size; *log_secsize = log_sector_size;

View File

@ -114,9 +114,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
sector_size = label.d_secsize; sector_size = label.d_secsize;
if (sector_size & (sector_size - 1) || !sector_size) if (sector_size & (sector_size - 1) || !sector_size)
return -1; return -1;
for (log_sector_size = 0; log_sector_size = grub_log2ull (sector_size);
(1 << log_sector_size) < sector_size;
log_sector_size++);
if (log_secsize) if (log_secsize)
*log_secsize = log_sector_size; *log_secsize = log_sector_size;

View File

@ -61,9 +61,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
return -1; return -1;
if (sector_size & (sector_size - 1) || !sector_size) if (sector_size & (sector_size - 1) || !sector_size)
return -1; return -1;
for (log_sector_size = 0; log_sector_size = grub_log2ull (sector_size);
(1 << log_sector_size) < sector_size;
log_sector_size++);
if (log_secsize) if (log_secsize)
*log_secsize = log_sector_size; *log_secsize = log_sector_size;

View File

@ -147,9 +147,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
if (sector_size & (sector_size - 1) || !sector_size) if (sector_size & (sector_size - 1) || !sector_size)
return -1; return -1;
for (log_sector_size = 0; log_sector_size = grub_log2ull (sector_size);
(1 << log_sector_size) < sector_size;
log_sector_size++);
if (log_secsize) if (log_secsize)
*log_secsize = log_sector_size; *log_secsize = log_sector_size;

View File

@ -83,9 +83,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
if (sector_size & (sector_size - 1) || !sector_size) if (sector_size & (sector_size - 1) || !sector_size)
return -1; return -1;
for (log_sector_size = 0; log_sector_size = grub_log2ull (sector_size);
(1 << log_sector_size) < sector_size;
log_sector_size++);
if (log_secsize) if (log_secsize)
*log_secsize = log_sector_size; *log_secsize = log_sector_size;

View File

@ -57,9 +57,7 @@ grub_util_get_fd_size_os (grub_util_fd_t fd, const char *name, unsigned *log_sec
if (sector_size & (sector_size - 1) || !sector_size) if (sector_size & (sector_size - 1) || !sector_size)
return -1; return -1;
for (log_sector_size = 0; log_sector_size = grub_log2ull (sector_size);
(1 << log_sector_size) < sector_size;
log_sector_size++);
if (log_secsize) if (log_secsize)
*log_secsize = log_sector_size; *log_secsize = log_sector_size;

View File

@ -185,9 +185,7 @@ grub_util_get_fd_size (grub_util_fd_t hd, const char *name_in,
size = g.Cylinders.QuadPart; size = g.Cylinders.QuadPart;
size *= g.TracksPerCylinder * g.SectorsPerTrack * g.BytesPerSector; size *= g.TracksPerCylinder * g.SectorsPerTrack * g.BytesPerSector;
for (log_sector_size = 0; log_sector_size = grub_log2ull (g.BytesPerSector);
(1 << log_sector_size) < g.BytesPerSector;
log_sector_size++);
} }
else else
{ {