From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: EJ Hsu <ejh@nvidia.com>, Peter Chen <peter.chen@nxp.com>,
Felipe Balbi <balbi@kernel.org>, Sasha Levin <sashal@kernel.org>,
linux-usb@vger.kernel.org
Subject: [PATCH AUTOSEL 4.14 11/19] usb: gadget: fix wrong endpoint desc
Date: Fri, 20 Dec 2019 09:37:32 -0500 [thread overview]
Message-ID: <20191220143741.10220-11-sashal@kernel.org> (raw)
In-Reply-To: <20191220143741.10220-1-sashal@kernel.org>
From: EJ Hsu <ejh@nvidia.com>
[ Upstream commit e5b5da96da50ef30abb39cb9f694e99366404d24 ]
Gadget driver should always use config_ep_by_speed() to initialize
usb_ep struct according to usb device's operating speed. Otherwise,
usb_ep struct may be wrong if usb devcie's operating speed is changed.
The key point in this patch is that we want to make sure the desc pointer
in usb_ep struct will be set to NULL when gadget is disconnected.
This will force it to call config_ep_by_speed() to correctly initialize
usb_ep struct based on the new operating speed when gadget is
re-connected later.
Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: EJ Hsu <ejh@nvidia.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/usb/gadget/function/f_ecm.c | 6 +++++-
drivers/usb/gadget/function/f_rndis.c | 1 +
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/gadget/function/f_ecm.c b/drivers/usb/gadget/function/f_ecm.c
index 4c488d15b6f6e..dc99ed94f03d2 100644
--- a/drivers/usb/gadget/function/f_ecm.c
+++ b/drivers/usb/gadget/function/f_ecm.c
@@ -625,8 +625,12 @@ static void ecm_disable(struct usb_function *f)
DBG(cdev, "ecm deactivated\n");
- if (ecm->port.in_ep->enabled)
+ if (ecm->port.in_ep->enabled) {
gether_disconnect(&ecm->port);
+ } else {
+ ecm->port.in_ep->desc = NULL;
+ ecm->port.out_ep->desc = NULL;
+ }
usb_ep_disable(ecm->notify);
ecm->notify->desc = NULL;
diff --git a/drivers/usb/gadget/function/f_rndis.c b/drivers/usb/gadget/function/f_rndis.c
index c7c5b3ce1d988..2bde68f5d2463 100644
--- a/drivers/usb/gadget/function/f_rndis.c
+++ b/drivers/usb/gadget/function/f_rndis.c
@@ -622,6 +622,7 @@ static void rndis_disable(struct usb_function *f)
gether_disconnect(&rndis->port);
usb_ep_disable(rndis->notify);
+ rndis->notify->desc = NULL;
}
/*-------------------------------------------------------------------------*/
--
2.20.1
next prev parent reply other threads:[~2019-12-20 14:37 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-20 14:37 [PATCH AUTOSEL 4.14 01/19] nvme_fc: add module to ops template to allow module references Sasha Levin
2019-12-20 14:37 ` Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 02/19] iio: adc: max9611: Fix too short conversion time delay Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 03/19] PM / devfreq: Don't fail devfreq_dev_release if not in list Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 04/19] RDMA/cma: add missed unregister_pernet_subsys in init failure Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 05/19] rxe: correctly calculate iCRC for unaligned payloads Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 06/19] scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 07/19] scsi: qla2xxx: Don't call qlt_async_event twice Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 08/19] scsi: iscsi: qla4xxx: fix double free in probe Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 09/19] scsi: libsas: stop discovering if oob mode is disconnected Sasha Levin
[not found] ` <20191220143741.10220-1-sashal-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 10/19] drm/nouveau: Move the declaration of struct nouveau_conn_atom up a bit Sasha Levin
2019-12-20 14:37 ` Sasha Levin
2019-12-20 14:37 ` Sasha Levin
2019-12-20 14:37 ` Sasha Levin [this message]
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 12/19] net: make socket read/write_iter() honor IOCB_NOWAIT Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 13/19] md: raid1: check rdev before reference in raid1_sync_request func Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 14/19] s390/cpum_sf: Adjust sampling interval to avoid hitting sample limits Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 15/19] s390/cpum_sf: Avoid SBD overflow condition in irq handler Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 16/19] IB/mlx4: Follow mirror sequence of device add during device removal Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 17/19] xen-blkback: prevent premature module unload Sasha Levin
2019-12-20 14:37 ` [Xen-devel] " Sasha Levin
2019-12-20 14:37 ` [Xen-devel] [PATCH AUTOSEL 4.14 18/19] xen/balloon: fix ballooned page accounting without hotplug enabled Sasha Levin
2019-12-20 14:37 ` Sasha Levin
2019-12-20 14:37 ` [PATCH AUTOSEL 4.14 19/19] PM / hibernate: memory_bm_find_bit(): Tighten node optimisation Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191220143741.10220-11-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=balbi@kernel.org \
--cc=ejh@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=peter.chen@nxp.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.