Input: fm801-gp - Fix an error handling path

Message ID 2d4f01f3a721b0dcd34669ab01aff9eddaad53dc.1671485791.git.christophe.jaillet@wanadoo.fr
State New
Headers
Series Input: fm801-gp - Fix an error handling path |

Commit Message

Christophe JAILLET Dec. 19, 2022, 9:36 p.m. UTC
  This looks odd to call release_resource() for something allocated with
request_region().
Use release_region() instead.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
This patch is speculative and compile tested only.
---
 drivers/input/gameport/fm801-gp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Dmitry Torokhov Dec. 20, 2022, 6:59 p.m. UTC | #1
Hi Christophe,

On Mon, Dec 19, 2022 at 10:36:47PM +0100, Christophe JAILLET wrote:
> This looks odd to call release_resource() for something allocated with
> request_region().
> Use release_region() instead.

I do not see why it is weird. request_region() gives you an instance of
"resource" structure which can later be freed. If we indeed want to use
release_region() (and hardcode the length in both places) then we should
also remove gp->res_port member. But I really do not find anything wrong
nor do I want to touch these old drivers...

Thanks.
  

Patch

diff --git a/drivers/input/gameport/fm801-gp.c b/drivers/input/gameport/fm801-gp.c
index e785d36b1926..90ef1935084a 100644
--- a/drivers/input/gameport/fm801-gp.c
+++ b/drivers/input/gameport/fm801-gp.c
@@ -118,7 +118,7 @@  static void fm801_gp_remove(struct pci_dev *pci)
 	struct fm801_gp *gp = pci_get_drvdata(pci);
 
 	gameport_unregister_port(gp->gameport);
-	release_resource(gp->res_port);
+	release_region(gp->gameport->io, 0x10);
 	kfree(gp);
 
 	pci_disable_device(pci);