@@ -190,18 +190,18 @@ static inline ktime_t next_intr_time(struct pps_generator_pp *dev)
dev->port_write_time + 3 * SAFETY_INTERVAL));
}
-static void parport_attach(struct parport *port)
+static int parport_attach(struct parport *port)
{
if (attached) {
/* we already have a port */
- return;
+ return -EALREADY;
}
device.pardev = parport_register_device(port, KBUILD_MODNAME,
NULL, NULL, NULL, PARPORT_FLAG_EXCL, &device);
if (!device.pardev) {
pr_err("couldn't register with %s\n", port->name);
- return;
+ return -ENODEV;
}
if (parport_claim_or_block(device.pardev) < 0) {
@@ -218,10 +218,11 @@ static void parport_attach(struct parport *port)
device.timer.function = hrtimer_event;
hrtimer_start(&device.timer, next_intr_time(&device), HRTIMER_MODE_ABS);
- return;
+ return 0;
err_unregister_dev:
parport_unregister_device(device.pardev);
+ return -ENODEV;
}
static void parport_detach(struct parport *port)
now that we are monitoring the return value from attach, make the required changes to return proper value from its attach function. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> --- drivers/pps/generators/pps_gen_parport.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)