diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2004-02-18 21:36:53 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2004-02-18 21:36:53 +0000 |
| commit | 0b7ed341e106c1583e873116529015d2ae042fd0 (patch) | |
| tree | 16cf67c25fa19d01be97b31241d2c56e85a88674 /sys/dev/mlx/mlx_disk.c | |
| parent | f63503fcbb7a5b0e118435058a2d2c56f1083252 (diff) | |
Notes
Diffstat (limited to 'sys/dev/mlx/mlx_disk.c')
| -rw-r--r-- | sys/dev/mlx/mlx_disk.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/sys/dev/mlx/mlx_disk.c b/sys/dev/mlx/mlx_disk.c index bd864664842f..2ad0bc6ba533 100644 --- a/sys/dev/mlx/mlx_disk.c +++ b/sys/dev/mlx/mlx_disk.c @@ -219,30 +219,33 @@ mlxd_attach(device_t dev) sc->mlxd_drive->ms_size / ((1024 * 1024) / MLX_BLKSIZE), sc->mlxd_drive->ms_size, sc->mlxd_drive->ms_raidlevel, state); - sc->mlxd_disk.d_open = mlxd_open; - sc->mlxd_disk.d_close = mlxd_close; - sc->mlxd_disk.d_ioctl = mlxd_ioctl; - sc->mlxd_disk.d_strategy = mlxd_strategy; - sc->mlxd_disk.d_name = "mlxd"; - sc->mlxd_disk.d_drv1 = sc; - sc->mlxd_disk.d_sectorsize = MLX_BLKSIZE; - sc->mlxd_disk.d_mediasize = MLX_BLKSIZE * (off_t)sc->mlxd_drive->ms_size; - sc->mlxd_disk.d_fwsectors = sc->mlxd_drive->ms_sectors; - sc->mlxd_disk.d_fwheads = sc->mlxd_drive->ms_heads; + sc->mlxd_disk = disk_alloc(); + sc->mlxd_disk->d_open = mlxd_open; + sc->mlxd_disk->d_close = mlxd_close; + sc->mlxd_disk->d_ioctl = mlxd_ioctl; + sc->mlxd_disk->d_strategy = mlxd_strategy; + sc->mlxd_disk->d_name = "mlxd"; + sc->mlxd_disk->d_unit = sc->mlxd_unit; + sc->mlxd_disk->d_drv1 = sc; + sc->mlxd_disk->d_sectorsize = MLX_BLKSIZE; + sc->mlxd_disk->d_mediasize = MLX_BLKSIZE * (off_t)sc->mlxd_drive->ms_size; + sc->mlxd_disk->d_fwsectors = sc->mlxd_drive->ms_sectors; + sc->mlxd_disk->d_fwheads = sc->mlxd_drive->ms_heads; + sc->mlxd_disk->d_flags = DISKFLAG_NEEDSGIANT; /* * Set maximum I/O size to the lesser of the recommended maximum and the practical * maximum except on v2 cards where the maximum is set to 8 pages. */ if (sc->mlxd_controller->mlx_iftype == MLX_IFTYPE_2) - sc->mlxd_disk.d_maxsize = 8 * PAGE_SIZE; + sc->mlxd_disk->d_maxsize = 8 * PAGE_SIZE; else { s1 = sc->mlxd_controller->mlx_enq2->me_maxblk * MLX_BLKSIZE; s2 = (sc->mlxd_controller->mlx_enq2->me_max_sg - 1) * PAGE_SIZE; - sc->mlxd_disk.d_maxsize = imin(s1, s2); + sc->mlxd_disk->d_maxsize = imin(s1, s2); } - disk_create(sc->mlxd_unit, &sc->mlxd_disk, 0, NULL, NULL); + disk_create(sc->mlxd_disk, DISK_VERSION); return (0); } @@ -254,7 +257,7 @@ mlxd_detach(device_t dev) debug_called(1); - disk_destroy(&sc->mlxd_disk); + disk_destroy(sc->mlxd_disk); return(0); } |
