diff options
| author | Mike Smith <msmith@FreeBSD.org> | 2000-05-06 08:54:33 +0000 |
|---|---|---|
| committer | Mike Smith <msmith@FreeBSD.org> | 2000-05-06 08:54:33 +0000 |
| commit | baff09db2cf68bb71d0dbd02758fd44a3dfca6a0 (patch) | |
| tree | f44ef05626ddf72d84737cde250e514315176450 /sys/dev/mlx/mlx_disk.c | |
| parent | 1fdb6e6c6943ff0661c0351d1d1c9bf0ce963c5e (diff) | |
Notes
Diffstat (limited to 'sys/dev/mlx/mlx_disk.c')
| -rw-r--r-- | sys/dev/mlx/mlx_disk.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/dev/mlx/mlx_disk.c b/sys/dev/mlx/mlx_disk.c index 190f7a785468..558474921fe4 100644 --- a/sys/dev/mlx/mlx_disk.c +++ b/sys/dev/mlx/mlx_disk.c @@ -236,6 +236,7 @@ mlxd_attach(device_t dev) device_t parent; char *state; dev_t dsk; + int s1, s2; debug_called(1); @@ -272,8 +273,13 @@ mlxd_attach(device_t dev) dsk->si_drv1 = sc; sc->mlxd_dev_t = dsk; - /* set maximum I/O size */ - dsk->si_iosize_max = sc->mlxd_controller->mlx_enq2->me_maxblk * MLX_BLKSIZE; + /* + * Set maximum I/O size to the lesser of the recommended maximum and the practical + * maximum. + */ + s1 = sc->mlxd_controller->mlx_enq2->me_maxblk * MLX_BLKSIZE; + s2 = (sc->mlxd_controller->mlx_enq2->me_max_sg - 1) * PAGE_SIZE; + dsk->si_iosize_max = imin(s1, s2); return (0); } |
