All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-2.6 1/2] Revert "rndis_host: Poll status channel before control channel"
@ 2010-07-02 22:39 Ben Hutchings
  2010-07-02 22:40 ` [PATCH net-2.6 2/2] usbnet: Set parent device early for netdev_printk() Ben Hutchings
  2010-07-03  4:48 ` [PATCH net-2.6 1/2] Revert "rndis_host: Poll status channel before control channel" David Miller
  0 siblings, 2 replies; 6+ messages in thread
From: Ben Hutchings @ 2010-07-02 22:39 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, Luís Picciochi Oliveira

This reverts commit c17b274dc2aa538b68c1f02b01a3c4e124b435ba.

That change was reported to break rndis_wlan support for the WUSB54GS.

Reported-by: Luís Picciochi Oliveira <pitxyoki@gmail.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 drivers/net/usb/rndis_host.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c
index 28d3ee1..dd8a4ad 100644
--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
@@ -104,10 +104,8 @@ static void rndis_msg_indicate(struct usbnet *dev, struct rndis_indicate *msg,
 int rndis_command(struct usbnet *dev, struct rndis_msg_hdr *buf, int buflen)
 {
 	struct cdc_state	*info = (void *) &dev->data;
-	struct usb_cdc_notification notification;
 	int			master_ifnum;
 	int			retval;
-	int			partial;
 	unsigned		count;
 	__le32			rsp;
 	u32			xid = 0, msg_len, request_id;
@@ -135,17 +133,13 @@ int rndis_command(struct usbnet *dev, struct rndis_msg_hdr *buf, int buflen)
 	if (unlikely(retval < 0 || xid == 0))
 		return retval;
 
-	/* Some devices don't respond on the control channel until
-	 * polled on the status channel, so do that first. */
-	retval = usb_interrupt_msg(
-		dev->udev,
-		usb_rcvintpipe(dev->udev, dev->status->desc.bEndpointAddress),
-		&notification, sizeof(notification), &partial,
-		RNDIS_CONTROL_TIMEOUT_MS);
-	if (unlikely(retval < 0))
-		return retval;
+	// FIXME Seems like some devices discard responses when
+	// we time out and cancel our "get response" requests...
+	// so, this is fragile.  Probably need to poll for status.
 
-	/* Poll the control channel; the request probably completed immediately */
+	/* ignore status endpoint, just poll the control channel;
+	 * the request probably completed immediately
+	 */
 	rsp = buf->msg_type | RNDIS_MSG_COMPLETION;
 	for (count = 0; count < 10; count++) {
 		memset(buf, 0, CONTROL_BUFFER_SIZE);
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-07-03  4:49 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-02 22:39 [PATCH net-2.6 1/2] Revert "rndis_host: Poll status channel before control channel" Ben Hutchings
2010-07-02 22:40 ` [PATCH net-2.6 2/2] usbnet: Set parent device early for netdev_printk() Ben Hutchings
2010-07-02 22:56   ` Ben Hutchings
2010-07-03  4:49     ` David Miller
2010-07-03  4:49   ` David Miller
2010-07-03  4:48 ` [PATCH net-2.6 1/2] Revert "rndis_host: Poll status channel before control channel" David Miller

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.