* [1/2] cdc-acm: do not reset notification buffer index upon urb unlinking
@ 2018-10-04 13:33 Oliver Neukum
0 siblings, 0 replies; 3+ messages in thread
From: Oliver Neukum @ 2018-10-04 13:33 UTC (permalink / raw)
To: Tobias Herzog; +Cc: gregkh, linux-kernel, linux-usb
On Sa, 2018-09-22 at 22:11 +0200, Tobias Herzog wrote:
> Resetting the write index of the notification buffer on urb unlink (e.g.
> closing a cdc-acm device from userspace) may lead to wrong interpretation
> of further received notifications, in case the index is not 0 when urb
> unlink happens (i.e. when parts of a notification already have been
> transferred). On the device side there is no "reset" of the notification
> transimission and thus we would get out of sync with the device.
>
> Signed-off-by: Tobias Herzog <t-herzog@gmx.de>
Acked-by: Oliver Neukum <oneukum@suse.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* [1/2] cdc-acm: do not reset notification buffer index upon urb unlinking
@ 2018-10-04 13:32 Oliver Neukum
0 siblings, 0 replies; 3+ messages in thread
From: Oliver Neukum @ 2018-10-04 13:32 UTC (permalink / raw)
To: Tobias Herzog; +Cc: gregkh, linux-kernel, linux-usb
On Sa, 2018-09-22 at 22:11 +0200, Tobias Herzog wrote:
> Resetting the write index of the notification buffer on urb unlink (e.g.
> closing a cdc-acm device from userspace) may lead to wrong interpretation
> of further received notifications, in case the index is not 0 when urb
> unlink happens (i.e. when parts of a notification already have been
> transferred). On the device side there is no "reset" of the notification
> transimission and thus we would get out of sync with the device.
Hi,
you are right, when you are describing the problem. The fix seems to me
to fix a part, albeit a large part of the issue. As far as I can tell,
the transfer could be partially succesful, meaning that the driver
loses a part in the middle of the notification.
Regards
Oliver
^ permalink raw reply [flat|nested] 3+ messages in thread
* [1/2] cdc-acm: do not reset notification buffer index upon urb unlinking
@ 2018-09-22 20:11 Tobias Herzog
0 siblings, 0 replies; 3+ messages in thread
From: Tobias Herzog @ 2018-09-22 20:11 UTC (permalink / raw)
To: oneukum; +Cc: gregkh, linux-usb, linux-kernel
Resetting the write index of the notification buffer on urb unlink (e.g.
closing a cdc-acm device from userspace) may lead to wrong interpretation
of further received notifications, in case the index is not 0 when urb
unlink happens (i.e. when parts of a notification already have been
transferred). On the device side there is no "reset" of the notification
transimission and thus we would get out of sync with the device.
Signed-off-by: Tobias Herzog <t-herzog@gmx.de>
---
drivers/usb/class/cdc-acm.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 27346d6..50339ca 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -355,7 +355,6 @@ static void acm_ctrl_irq(struct urb *urb)
case -ENOENT:
case -ESHUTDOWN:
/* this urb is terminated, clean up */
- acm->nb_index = 0;
dev_dbg(&acm->control->dev,
"%s - urb shutting down with status: %d\n",
__func__, status);
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-10-04 13:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-04 13:33 [1/2] cdc-acm: do not reset notification buffer index upon urb unlinking Oliver Neukum
-- strict thread matches above, loose matches on Subject: below --
2018-10-04 13:32 Oliver Neukum
2018-09-22 20:11 Tobias Herzog
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).