winbond_init_one() returns 0 on success and an error code on failure. In the original code, we always just released the regions and return -ENODEV. This was introduce in 2006 by 7e45b0e5f6f6 "[PATCH] libata: Winbond support". Signed-off-by: Dan Carpenter <error27@xxxxxxxxx> --- Compile tested. diff --git a/drivers/ata/pata_winbond.c b/drivers/ata/pata_winbond.c index 6d8619b..b34b594 100644 --- a/drivers/ata/pata_winbond.c +++ b/drivers/ata/pata_winbond.c @@ -248,9 +248,10 @@ static __init int winbond_init(void) if (request_region(port, 2, "pata_winbond")) { ret = winbond_init_one(port); - if (ret <= 0) + if (ret < 0) release_region(port, 2); - else ct+= ret; + else + ct++; } } } -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html