DragonFlyBSD Kernel Audit
DF-2067 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/raid/mfi/mfi_syspd.c b/sys/dev/raid/mfi/mfi_syspd.c
--- a/sys/dev/raid/mfi/mfi_syspd.c
+++ b/sys/dev/raid/mfi/mfi_syspd.c
@@ -132,8 +132,8 @@
 
 	sc->pd_dev_t = disk_create(sc->pd_unit, &sc->pd_disk, &mfi_syspd_ops);
 	sc->pd_dev_t->si_drv1 = sc;
-	sc->pd_dev_t->si_iosize_max = sc->pd_controller->mfi_max_io *
-	    secsize;
+	sc->pd_dev_t->si_iosize_max = min(sc->pd_controller->mfi_max_io *
+	    secsize, (sc->pd_controller->mfi_max_sge - 1) * PAGE_SIZE);
 
 	bzero(&info, sizeof(info));
 	info.d_media_blksize = secsize; /* mandatory */