diff --git a/sys/stand/efiboot/efiblock.c b/sys/stand/efiboot/efiblock.c index 465511a5834b..5c183d5087ff 100644 --- a/sys/stand/efiboot/efiblock.c +++ b/sys/stand/efiboot/efiblock.c @@ -419,7 +419,7 @@ efi_block_find_partitions_gpt(struct efi_block_dev *bdev) void *buf; UINTN sz; - status = efi_block_read(bdev, GPT_HDR_BLKNO * DEV_BSIZE, &hdr, + status = efi_block_read(bdev, GPT_HDR_BLKNO * bdev->bio->Media->BlockSize, &hdr, sizeof(hdr)); if (EFI_ERROR(status)) { return EIO; @@ -436,7 +436,7 @@ efi_block_find_partitions_gpt(struct efi_block_dev *bdev) return ENOMEM; status = efi_block_read(bdev, - le64toh(hdr.hdr_lba_table) * DEV_BSIZE, buf, sz); + le64toh(hdr.hdr_lba_table) * bdev->bio->Media->BlockSize, buf, sz); if (EFI_ERROR(status)) { FreePool(buf); return EIO; @@ -694,9 +694,12 @@ efi_block_strategy(void *devdata, int rw, daddr_t dblk, size_t size, void *buf, case EFI_BLOCK_PART_DISKLABEL: off = (dblk + bpart->disklabel.part.p_offset) * DEV_BSIZE; break; - case EFI_BLOCK_PART_GPT: - off = (dblk + le64toh(bpart->gpt.ent.ent_lba_start)) * DEV_BSIZE; + case EFI_BLOCK_PART_GPT: { + const UINT64 bsize = bpart->bdev->bio->Media->BlockSize; + const UINT64 lba = le64toh(bpart->gpt.ent.ent_lba_start); + off = dblk * DEV_BSIZE + lba * bsize; break; + } case EFI_BLOCK_PART_CD9660: off = dblk * ISO_DEFAULT_BLOCK_SIZE; break; diff --git a/sys/ufs/ffs/fs.h b/sys/ufs/ffs/fs.h index ca92949e7095..0a5c392d2529 100644 --- a/sys/ufs/ffs/fs.h +++ b/sys/ufs/ffs/fs.h @@ -616,7 +616,7 @@ struct ocg { * Turn file system block numbers into disk block addresses. * This maps file system blocks to device size blocks. */ -#if defined (_KERNEL) +#if defined (_KERNEL) || defined(_STANDALONE) #define FFS_FSBTODB(fs, b) ((b) << ((fs)->fs_fshift - DEV_BSHIFT)) #define FFS_DBTOFSB(fs, b) ((b) >> ((fs)->fs_fshift - DEV_BSHIFT)) #else