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 | |
| parent | f63503fcbb7a5b0e118435058a2d2c56f1083252 (diff) | |
Notes
Diffstat (limited to 'sys/dev/mlx')
| -rw-r--r-- | sys/dev/mlx/mlx_disk.c | 31 | ||||
| -rw-r--r-- | sys/dev/mlx/mlxvar.h | 2 |
2 files changed, 18 insertions, 15 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); } diff --git a/sys/dev/mlx/mlxvar.h b/sys/dev/mlx/mlxvar.h index 43cbcb1ac59e..e499569d279f 100644 --- a/sys/dev/mlx/mlxvar.h +++ b/sys/dev/mlx/mlxvar.h @@ -228,7 +228,7 @@ struct mlxd_softc device_t mlxd_dev; struct mlx_softc *mlxd_controller; struct mlx_sysdrive *mlxd_drive; - struct disk mlxd_disk; + struct disk *mlxd_disk; int mlxd_unit; int mlxd_flags; #define MLXD_OPEN (1<<0) /* drive is open (can't shut down) */ |
