summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/block/paride/pt.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/block/paride/pt.c')
-rw-r--r--kernel/drivers/block/paride/pt.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/drivers/block/paride/pt.c b/kernel/drivers/block/paride/pt.c
index 2596042eb..1740d75e8 100644
--- a/kernel/drivers/block/paride/pt.c
+++ b/kernel/drivers/block/paride/pt.c
@@ -232,6 +232,7 @@ static int pt_identify(struct pt_unit *tape);
static struct pt_unit pt[PT_UNITS];
static char pt_scratch[512]; /* scratch block buffer */
+static void *par_drv; /* reference of parport driver */
/* kernel glue structures */
@@ -605,6 +606,12 @@ static int pt_detect(void)
printk("%s: %s version %s, major %d\n", name, name, PT_VERSION, major);
+ par_drv = pi_register_driver(name);
+ if (!par_drv) {
+ pr_err("failed to register %s driver\n", name);
+ return -1;
+ }
+
specified = 0;
for (unit = 0; unit < PT_UNITS; unit++) {
struct pt_unit *tape = &pt[unit];
@@ -644,6 +651,7 @@ static int pt_detect(void)
if (found)
return 0;
+ pi_unregister_driver(par_drv);
printk("%s: No ATAPI tape drive detected\n", name);
return -1;
}