Date: Sat, 06 Dec 2008 09:45:04 -0800 From: Marcel Moolenaar <xcllnt@mac.com> To: Hans Petter Selasky <hselasky@c2i.net> Cc: freebsd-current@freebsd.org, freebsd-usb@freebsd.org Subject: Re: [Serious] busdma bug in -current in relation to USB hardware - review wanted Message-ID: <031DE609-3E5B-4508-BAB0-95800B7F02F4@mac.com> In-Reply-To: <200812061334.55365.hselasky@c2i.net> References: <20081107082740.GA1334@icarus.home.lan> <200811081023.10058.hselasky@freebsd.org> <200811161408.21562.hselasky@c2i.net> <200812061334.55365.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Dec 6, 2008, at 4:34 AM, Hans Petter Selasky wrote: > Hi, > > After various feedback from several people I have made a new patch > proposal > that will fix the busdma problem. > > See: > > http://perforce.freebsd.org/chv.cgi?CH=154181 > > Review wanted! The USB stack has a fixed page size of 4K. On our 64-bit platforms PAGE_SIZE is at least 8K. Your change is sloppy in that respect and doesn't make the distinction. That makes the patch a kluge. The definition of BUS_DMA_NO_REALIGN is based on circumstantial evidence only and as such, works as a side-effect. I don't think that's a good design. I don't think there's any reason not to preserve the page offset in all cases. So far all hardware worked whether or not their DMA pages were bounced and the non-bounced pages would have a possible non-zero page offset, whereas the bounced pages would always have a zero page offset. In short: it works either way. In particular, it works with the page offset preserved. Why not preserve it always? What's the downside? -- Marcel Moolenaar xcllnt@mac.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?031DE609-3E5B-4508-BAB0-95800B7F02F4>