lkml.org 
[lkml]   [2011]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: Allocating buffers for USB transfers (again)
From
On Thu, Jul 7, 2011 at 2:14 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Daniel Mack wrote:
>> I have to revisit an issue we've discussed in length around a year ago
>> and which still remains unsolved. I've been getting feedback from more
>> users of my driver snd-usb-caiaq who report the issue found in bug
>> #15580 in the kernel bugzilla:
>> https://bugzilla.kernel.org/show_bug.cgi?id=15580
>>
>> Let me quickly summarize the current state of this issue as I see it.
>>
>> The problem seems to be that certain 64bit chipsets can't deal with
>> the fact that an URB's transfer_buffer is allocated with
>> kmalloc(GFP_KERNEL). The effect is that kmalloc() is very likely to
>> hand out memory which is not addressable by devices that are connected
>> via 32bit PCI busses, such as EHCI controllers. In theory, DMA bounce
>> buffers should be installed in such cases, or the IOMMU would be in
>> charge to re-map these buffers to suitable locations, but for at least
>> two people who have reported the issue, this obviously fails.
>
> The problem is that snd-usb-caiaq modifies the URB buffer after
> submission.

Hmm, no, it doesn't. I know I stated that once, but I confused the
implementation of the Linux driver with the approach I chose for the
Mac OS X driver code. Sorry about that.

The driver simply copies audio material to its output URB and calls
usb_submit_urb(). The URB buffer is not touched after that call.


Daniel


\
 
 \ /
  Last update: 2011-07-07 14:31    [W:0.535 / U:0.500 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site