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 <non...@netbsd.org>
@@ -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);

Reply via email to