diff --git a/drivers/parport/share.c b/drivers/parport/share.c
index 8067f54ce050a6c8cf3a4c18d9b4ea560f017d94..d8079e37a60622dc11a498bbfb2b5508db3431b2 100644
--- a/drivers/parport/share.c
+++ b/drivers/parport/share.c
@@ -907,7 +907,8 @@ parport_register_dev_model(struct parport *port, const char *name,
 			spin_unlock(&port->physport->pardevice_lock);
 			pr_debug("%s: cannot grant exclusive access for device %s\n",
 				 port->name, name);
-			goto err_put_dev;
+			device_unregister(&par_dev->dev);
+			goto err_put_port;
 		}
 		port->flags |= PARPORT_FLAG_EXCL;
 	}