Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755203Ab0DGRwe (ORCPT ); Wed, 7 Apr 2010 13:52:34 -0400 Received: from cantor.suse.de ([195.135.220.2]:50618 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752960Ab0DGRwd (ORCPT ); Wed, 7 Apr 2010 13:52:33 -0400 Date: Wed, 07 Apr 2010 19:52:31 +0200 Message-ID: From: Takashi Iwai To: Alan Stern Cc: Greg KH , Daniel Mack , , Pedro Ribeiro , , Greg KH , , Subject: Re: USB transfer_buffer allocations on 64bit systems In-Reply-To: References: <20100407153154.GC13425@kroah.com> User-Agent: Wanderlust/2.15.6 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.7 Emacs/23.1 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1597 Lines: 40 At Wed, 7 Apr 2010 11:55:19 -0400 (EDT), Alan Stern wrote: > > On Wed, 7 Apr 2010, Greg KH wrote: > > > Yeah, I really don't want to have to change every driver in different > > ways just depending on if someone thinks it is going to need to run on > > this wierd hardware. > > It's not weird hardware, as far as I know. It's just a 64-bit system > with a 32-bit USB host controller. > > (And remember, while there are 64-bit EHCI controllers, there are not > any 64-bit OHCI or UHCI controllers. So whenever somebody plugs a > full-speed or low-speed device into a 64-bit machine, they will face > this problem. It's like the old problem of ISA devices that could > only do DMA to addresses in the first 16 MB of memory -- what the > original GFP_DMA flag was intended for.) > > > Alan, any objection to just using usb_buffer_alloc() for every driver? > > Or is that too much overhead? > > I don't know what the overhead is. But usb_buffer_alloc() requires the > caller to keep track of the buffer's DMA address, so it's not a simple > plug-in replacement. In addition, the consistent memory that > usb_buffer_alloc() provides is a scarce resource on some platforms. Yeah, also the area is aligned to kernel pages, and it may be much bigger than the requested (power-of-two). If not needed, we should avoid it. thanks, Takashi -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/