[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201008131258.55016.oneukum@suse.de>
Date: Fri, 13 Aug 2010 12:58:54 +0200
From: Oliver Neukum <oneukum@...e.de>
To: mfuzzey@...il.com
Cc: Matthieu CASTET <matthieu.castet@...rot.com>,
"Russell King - ARM Linux" <linux@....linux.org.uk>,
Gary King <GKing@...dia.com>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-usb" <linux-usb@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Greg KH <greg@...ah.com>
Subject: Re: Problem with non aligned DMA in usbnet on ARM
Am Freitag, 13. August 2010, 12:06:54 schrieb Martin Fuzzey:
> So I think a policy needs to be defined to ensure this and enforced in
> the code. I can see two possible methods:
>
> 1) Require that usb drivers submit buffers obtained from kmalloc() and
> friends with no extra offsets. If they want some other alignment later
> they can use memmove in the completion handler. Enforce this in the core
> by checking the buffer pointers are aligned to ARCH_KMALLOC_MINALIGN
>
> or
>
> 2) Require that usb_submit_urb() accept byte aligned buffers. Enforce
> this by a new test in usbtest (which all HCDs are expected to pass).
> Implement it either in individual HCDs that require it or by letting
> HCDs inform the core of their requirements and have the core do the
> alignment (as it already does the dma mapping). Of course HCDs that can
> implement byte aligned transfers (either natively or using tricks such
> as the one Russell suggested) should do so.
>
> I think 2) is the better solution because:
> a) Solution 1 will impose a runtime overhead even on platforms / HCDs
> that don't need it (including the most common cases)
> b) There are more drivers than HCDs
Yes. But it doesn't prevent you from publishing this information so
drivers can help the lower levels.
Regards
Oliver
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists