From: Larry Finger <Larry.Finger@lwfinger.net>
To: Christian Lamparter <chunkeey@googlemail.com>
Cc: Ian Jeffray <ian@emobix.co.uk>, linux-wireless@vger.kernel.org
Subject: Re: r8712u driver - on ARM
Date: Sat, 01 Oct 2011 12:52:37 -0500 [thread overview]
Message-ID: <4E875365.50206@lwfinger.net> (raw)
In-Reply-To: <201110011822.00637.chunkeey@googlemail.com>
On 10/01/2011 11:22 AM, Christian Lamparter wrote:
> On Saturday 01 October 2011 18:01:08 Larry Finger wrote:
>> Ian,
>>
>> Most of the skb assignments in r8712u are aligned OK and most aligned on
>> 512-byte boundaries, but there was one that had the minimal offset of 14 bytes.
>> The attached patch should fix it. Does it help?
> Interesting, this "patch" goes in a completely different direction.
> Can you tell me where the driver aligns the frames which will be
> xmitted by the device [i.e.: which is passed to the usb subsystem
> by usb_submit_urb]? Because that's what actually matters.
In this driver, all references are to _usb_submit_urb(), which is defined to be
usb_submit_urb() in one of the header files. That made it easy to insert a test
for misalignment of the DMA buffer as follows:
Index: wireless-testing-new/drivers/staging/rtl8712/osdep_service.h
===================================================================
--- wireless-testing-new.orig/drivers/staging/rtl8712/osdep_service.h
+++ wireless-testing-new/drivers/staging/rtl8712/osdep_service.h
@@ -34,7 +34,7 @@
#include <linux/if_arp.h>
#include <linux/firmware.h>
#define _usb_alloc_urb(x, y) usb_alloc_urb(x, y)
-#define _usb_submit_urb(x, y) usb_submit_urb(x, y)
+//#define _usb_submit_urb(x, y) usb_submit_urb(x, y)
struct __queue {
struct list_head queue;
@@ -232,5 +232,13 @@ static inline u32 _RND512(u32 sz)
return ((sz >> 9) + ((sz & 511) ? 1 : 0)) << 9;
}
+static inline int _usb_submit_urb(struct urb *urb, gfp_t mem_flags)
+{
+ if (urb->transfer_dma & 3) {
+ pr_info("Transfer_dma 0x%x not on 4-byte boundary\n",
(uint)urb->transfer_dma);
+ dump_stack();
+ }
+ return usb_submit_urb(urb, mem_flags);
+}
#endif
I never hit the pr_info() and the associated dump_stack(). If that test is
sufficient, then buffer misalignment is not the source of the problem.
Larry
next prev parent reply other threads:[~2011-10-01 17:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-27 15:36 r8712u driver - on ARM Ian Jeffray
2011-09-27 16:24 ` Larry Finger
2011-09-30 18:39 ` Ian Jeffray
2011-09-30 19:06 ` Christian Lamparter
2011-10-01 0:51 ` Larry Finger
2011-10-01 16:01 ` Larry Finger
2011-10-01 16:22 ` Christian Lamparter
2011-10-01 17:52 ` Larry Finger [this message]
2011-10-01 18:01 ` Christian Lamparter
2011-10-01 18:10 ` Ian Jeffray
2011-10-01 18:49 ` Larry Finger
2011-10-01 18:54 ` Christian Lamparter
2011-10-01 19:24 ` Larry Finger
2011-10-01 23:24 ` Ian Jeffray
2011-10-12 15:30 ` Ian Jeffray
2011-10-12 17:28 ` Larry Finger
2011-10-01 17:00 ` Ian Jeffray
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=4E875365.50206@lwfinger.net \
--to=larry.finger@lwfinger.net \
--cc=chunkeey@googlemail.com \
--cc=ian@emobix.co.uk \
--cc=linux-wireless@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 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).