[PATCH] test: ata
Pei Xiao <[email protected]> Wed, 29 Jul 2026 19:13:07 +0800
| Newsgroups | gmane.linux.kernel,gmane.linux.ide |
|---|---|
| Message-ID | <170fe5b11ca8bffc32b4ec6588c289b29da11896.1785323372.git.xiaopei01@kylinos.cn> |
hi maintainer and shuangpeng, I tested this patch passed. Signed-off-by: Pei Xiao <[email protected]> --- drivers/ata/pata_parport/pata_parport.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/ata/pata_parport/pata_parport.c b/drivers/ata/pata_parport/pata_parport.c index 40baeac594a9..34f09192a419 100644 --- a/drivers/ata/pata_parport/pata_parport.c +++ b/drivers/ata/pata_parport/pata_parport.c @@ -3,6 +3,7 @@ * Copyright 2023 Ondrej Zary * based on paride.c by Grant R. Guenther <[email protected]> */ +#include <linux/cleanup.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/parport.h> @@ -618,8 +619,9 @@ void pata_parport_unregister_driver(struct pi_protocol *pr) break; } idr_remove(&protocols, id); - mutex_unlock(&pi_mutex); driver_unregister(&pr->driver); + mutex_unlock(&pi_mutex); + } EXPORT_SYMBOL_GPL(pata_parport_unregister_driver); @@ -646,6 +648,7 @@ static ssize_t new_device_store(const struct bus_type *bus, const char *buf, siz port_wanted = -1; } + guard(mutex)(&pi_mutex); drv = driver_find(protocol, &pata_parport_bus_type); if (!drv) { if (strcmp(protocol, "auto")) { @@ -656,15 +659,12 @@ static ssize_t new_device_store(const struct bus_type *bus, const char *buf, siz } else { pr_wanted = container_of(drv, struct pi_protocol, driver); } - - mutex_lock(&pi_mutex); /* walk all parports */ idr_for_each_entry(&parport_list, parport, port_num) { if (port_num == port_wanted || port_wanted == -1) { parport = parport_find_number(port_num); if (!parport) { pr_err("no such port %s\n", port); - mutex_unlock(&pi_mutex); return -ENODEV; } /* walk all protocols */ @@ -677,7 +677,6 @@ static ssize_t new_device_store(const struct bus_type *bus, const char *buf, siz parport_put_port(parport); } } - mutex_unlock(&pi_mutex); if (!ok) return -ENODEV; -- 2.25.1