diff options
author | sos <sos@FreeBSD.org> | 2001-03-21 11:49:07 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2001-03-21 11:49:07 +0000 |
commit | cbf67f9c44d11cef56adb2ae4c7586d92bfe83e7 (patch) | |
tree | b7086bcee53553862355905e8e37f46418331768 /sys/dev/ata/atapi-tape.c | |
parent | 988827577e34a2577a31ddbe6da7d7bfdb177b46 (diff) | |
download | FreeBSD-src-cbf67f9c44d11cef56adb2ae4c7586d92bfe83e7.zip FreeBSD-src-cbf67f9c44d11cef56adb2ae4c7586d92bfe83e7.tar.gz |
Set the device names as early as possible.
Diffstat (limited to 'sys/dev/ata/atapi-tape.c')
-rw-r--r-- | sys/dev/ata/atapi-tape.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/ata/atapi-tape.c b/sys/dev/ata/atapi-tape.c index c1e8ea4..c22fb8c 100644 --- a/sys/dev/ata/atapi-tape.c +++ b/sys/dev/ata/atapi-tape.c @@ -98,14 +98,19 @@ astattach(struct atapi_softc *atp) cdevsw_add(&ast_cdevsw); ast_cdev_done = 1; } + stp = malloc(sizeof(struct ast_softc), M_AST, M_NOWAIT | M_ZERO); if (!stp) { ata_printf(atp->controller, atp->unit, "out of memory\n"); return -1; } - bioq_init(&stp->queue); + stp->atp = atp; stp->lun = ata_get_lun(&ast_lun_map); + sprintf(name, "ast%d", stp->lun); + ata_set_name(atp->controller, atp->unit, name); + bioq_init(&stp->queue); + if (ast_sense(stp)) { free(stp, M_AST); return -1; @@ -127,6 +132,7 @@ astattach(struct atapi_softc *atp) ast_mode_select(stp, &identify, sizeof(identify)); ast_read_position(stp, 0, &position); } + devstat_add_entry(&stp->stats, "ast", stp->lun, DEV_BSIZE, DEVSTAT_NO_ORDERED_TAGS, DEVSTAT_TYPE_SEQUENTIAL | DEVSTAT_TYPE_IF_IDE, @@ -143,8 +149,6 @@ astattach(struct atapi_softc *atp) stp->dev2 = dev; stp->atp->flags |= ATAPI_F_MEDIA_CHANGED; stp->atp->driver = stp; - sprintf(name, "ast%d", stp->lun); - ata_set_name(atp->controller, atp->unit, name); ast_describe(stp); return 0; } |