Dear Sirs,

I want to tell you a true story about one windows user who is not like
the others.

F4t discovered that his FR panics when he tries to connect it to his
windows box. Asked on -cdevel and was told that it's not reproducible
by others so he needs to investigate it himself. For that he needed to
somehow save kernel oops message and he was told to recompile a kernel
with lindi's ramconsole patch.

Surprisingly, instead of endless moaning, tales about unfairness in
life and other unrelated talks he did just what was required (guided
by lindi, of course).

With his kernel messages it was trivial to understand the source of a
problem, so i prepared a quick hack to workaround it and F4t confirmed
rndis networking now works with his windows xp sp2 (?).

Crude patch attached but i very much hope that someone other who
understands rndis better than me will come with a real solution soon.

Other than that i suggest those unfortunate windows users to install
the latest service pack.

A good hint from upstream developer is at [1].

[1] http://lists.zerezo.com/linux-kernel/msg19822805.html

>From f62e9dbdf6d3099b1cef93b573c4772e4a0b16bf Mon Sep 17 00:00:00 2001
From: Paul Fertser <[email protected]>
Date: Thu, 11 Jun 2009 10:16:14 +0400
Subject: [PATCH] RNDIS: crude hack to fix oops on connecting to WXP SP2

F4t discovered that his freerunner panics on connect to his windows box.
This crude hack workarounds the problem.

Not for inclusion!

Signed-off-by: Paul Fertser <[email protected]>
---
 drivers/usb/gadget/rndis.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/gadget/rndis.c b/drivers/usb/gadget/rndis.c
index 8c26f5e..5f0a2c3 100644
--- a/drivers/usb/gadget/rndis.c
+++ b/drivers/usb/gadget/rndis.c
@@ -294,9 +294,14 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
 	/* mandatory */
 	case OID_GEN_VENDOR_DESCRIPTION:
 		pr_debug("%s: OID_GEN_VENDOR_DESCRIPTION\n", __func__);
+#if 0
 		length = strlen (rndis_per_dev_params [configNr].vendorDescr);
 		memcpy (outbuf,
 			rndis_per_dev_params [configNr].vendorDescr, length);
+#endif
+		const char vendorDescr="dummy";
+		length = strlen (vendorDescr);
+		memcpy (outbuf,	vendorDescr, length);
 		retval = 0;
 		break;
 
-- 
1.6.0.6

-- 
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:[email protected]

Reply via email to