summaryrefslogtreecommitdiffstats
path: root/sys/dev/mlx/mlx_disk.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/mlx/mlx_disk.c')
-rw-r--r--sys/dev/mlx/mlx_disk.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/dev/mlx/mlx_disk.c b/sys/dev/mlx/mlx_disk.c
index 22328ba..5420326 100644
--- a/sys/dev/mlx/mlx_disk.c
+++ b/sys/dev/mlx/mlx_disk.c
@@ -80,9 +80,8 @@ static struct cdevsw mlxd_cdevsw = {
/* bmaj */ MLXD_BDEV_MAJOR
};
-static devclass_t mlxd_devclass;
+devclass_t mlxd_devclass;
static struct cdevsw mlxddisk_cdevsw;
-static int disks_registered = 0;
static device_method_t mlxd_methods[] = {
DEVMETHOD(device_probe, mlxd_probe),
@@ -272,7 +271,7 @@ mlxd_attach(device_t dev)
dsk = disk_create(sc->mlxd_unit, &sc->mlxd_disk, 0, &mlxd_cdevsw, &mlxddisk_cdevsw);
dsk->si_drv1 = sc;
- disks_registered++;
+ sc->mlxd_dev_t = dsk;
/* set maximum I/O size */
dsk->si_iosize_max = sc->mlxd_controller->mlx_enq2->me_maxblk * MLX_BLKSIZE;
@@ -288,10 +287,7 @@ mlxd_detach(device_t dev)
debug_called(1);
devstat_remove_entry(&sc->mlxd_stats);
-
- /* hack to handle lack of destroy_disk() */
- if (--disks_registered == 0)
- cdevsw_remove(&mlxddisk_cdevsw);
+ disk_destroy(sc->mlxd_dev_t);
return(0);
}
OpenPOWER on IntegriCloud