projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9c8e2e6
)
gadgetfs: ep_io - wait until IRQ finishes
author
Jozef Martiniak
<jomajm@gmail.com>
Fri, 8 Jul 2022 07:06:44 +0000
(09:06 +0200)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Thu, 25 Aug 2022 09:40:35 +0000
(11:40 +0200)
[ Upstream commit
04cb742d4d8f30dc2e83b46ac317eec09191c68e
]
after usb_ep_queue() if wait_for_completion_interruptible() is
interrupted we need to wait until IRQ gets finished.
Otherwise complete() from epio_complete() can corrupt stack.
Signed-off-by: Jozef Martiniak <jomajm@gmail.com>
Link:
https://lore.kernel.org/r/20220708070645.6130-1-jomajm@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/gadget/legacy/inode.c
patch
|
blob
|
history
diff --git
a/drivers/usb/gadget/legacy/inode.c
b/drivers/usb/gadget/legacy/inode.c
index 3279b4767424c4f0737ac77338eb58bcbac7f304..9e8b678f0548e754b0ebdf3380d63cdf67cf01ed 100644
(file)
--- a/
drivers/usb/gadget/legacy/inode.c
+++ b/
drivers/usb/gadget/legacy/inode.c
@@
-362,6
+362,7
@@
ep_io (struct ep_data *epdata, void *buf, unsigned len)
spin_unlock_irq (&epdata->dev->lock);
DBG (epdata->dev, "endpoint gone\n");
+ wait_for_completion(&done);
epdata->status = -ENODEV;
}
}