| From dd3708206b6b84e519de395054d9d74babb8d8b5 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 24 Aug 2022 16:26:00 +0800 |
| Subject: misc: ocxl: fix possible refcount leak in afu_ioctl() |
| |
| From: Hangyu Hua <hbh25y@gmail.com> |
| |
| [ Upstream commit c3b69ba5114c860d730870c03ab4ee45276e5e35 ] |
| |
| eventfd_ctx_put need to be called to put the refcount that gotten by |
| eventfd_ctx_fdget when ocxl_irq_set_handler fails. |
| |
| Fixes: 060146614643 ("ocxl: move event_fd handling to frontend") |
| Acked-by: Frederic Barrat <fbarrat@linux.ibm.com> |
| Signed-off-by: Hangyu Hua <hbh25y@gmail.com> |
| Link: https://lore.kernel.org/r/20220824082600.36159-1-hbh25y@gmail.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/misc/ocxl/file.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c |
| index c742ab02ae18..e094809b54ff 100644 |
| --- a/drivers/misc/ocxl/file.c |
| +++ b/drivers/misc/ocxl/file.c |
| @@ -259,6 +259,8 @@ static long afu_ioctl(struct file *file, unsigned int cmd, |
| if (IS_ERR(ev_ctx)) |
| return PTR_ERR(ev_ctx); |
| rc = ocxl_irq_set_handler(ctx, irq_id, irq_handler, irq_free, ev_ctx); |
| + if (rc) |
| + eventfd_ctx_put(ev_ctx); |
| break; |
| |
| case OCXL_IOCTL_GET_METADATA: |
| -- |
| 2.35.1 |
| |