Module Name: src
Committed By: jmcneill
Date: Wed Jun 23 20:55:50 UTC 2021
Modified Files:
src/sys/stand/efiboot: efiblock.c
Log Message:
Fix buffer size for alignment adjusted block I/O reads.
To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/stand/efiboot/efiblock.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/stand/efiboot/efiblock.c
diff -u src/sys/stand/efiboot/efiblock.c:1.15 src/sys/stand/efiboot/efiblock.c:1.16
--- src/sys/stand/efiboot/efiblock.c:1.15 Tue Jun 22 21:56:51 2021
+++ src/sys/stand/efiboot/efiblock.c Wed Jun 23 20:55:50 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: efiblock.c,v 1.15 2021/06/22 21:56:51 jmcneill Exp $ */
+/* $NetBSD: efiblock.c,v 1.16 2021/06/23 20:55:50 jmcneill Exp $ */
/*-
* Copyright (c) 2016 Kimihiro Nonaka <[email protected]>
@@ -133,7 +133,9 @@ efi_block_do_read_blockio(struct efi_blo
blkbuf_offset = off % bdev->bio->Media->BlockSize;
blkbuf_size = (lba_end - lba_start) * bdev->bio->Media->BlockSize;
if (bdev->bio->Media->IoAlign > 1) {
- blkbuf_size += bdev->bio->Media->IoAlign - 1;
+ blkbuf_size = (blkbuf_size + bdev->bio-Media->IoAlign - 1) /
+ bdev->bio->Media->IoAlign *
+ bdev->bio->Media->IoAlign;
}
blkbuf = AllocatePool(blkbuf_size);