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);