ata: pata_parport: fix parport release without claim
authorOndrej Zary <linux@zary.sk>
Sat, 11 Mar 2023 19:25:38 +0000 (20:25 +0100)
committerDamien Le Moal <damien.lemoal@opensource.wdc.com>
Wed, 15 Mar 2023 01:35:00 +0000 (10:35 +0900)
When adapter is not found, pi->disconnect() is called without previous
pi->connect(). This results in error like this:
parport0: pata_parport tried to release parport when not owner

Add missing out_disconnect label and use it correctly.

Signed-off-by: Ondrej Zary <linux@zary.sk>
Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
drivers/ata/pata_parport/pata_parport.c

index 294a266a0dda579c58475678ade746f2e2c723ff..31c9677a45e333aa0d07ed9c87cac5b0ba09c6ed 100644 (file)
@@ -487,12 +487,13 @@ static struct pi_adapter *pi_init_one(struct parport *parport,
 
        pi_connect(pi);
        if (ata_host_activate(host, 0, NULL, 0, &pata_parport_sht))
-               goto out_unreg_parport;
+               goto out_disconnect;
 
        return pi;
 
-out_unreg_parport:
+out_disconnect:
        pi_disconnect(pi);
+out_unreg_parport:
        parport_unregister_device(pi->pardev);
        if (pi->proto->release_proto)
                pi->proto->release_proto(pi);