From: Daniel Mack on
On Mon, Apr 12, 2010 at 01:17:25PM +0200, Daniel Mack wrote:
> For more clearance what the functions actually do,
>
> usb_buffer_alloc() is renamed to usb_alloc_coherent()
> usb_buffer_free() is renamed to usb_free_coherent()
>
> They should only be used in code which really needs DMA coherency.
>
> All call sites have been changed accordingly, except for staging
> drivers.

Is this ok? As it's quite big, I think it should be merged soon if there
are no objections.

Thanks,
Daniel


> Signed-off-by: Daniel Mack <daniel(a)caiaq.de>
> Cc: Alan Stern <stern(a)rowland.harvard.edu>
> Cc: Greg KH <gregkh(a)suse.de>
> Cc: Pedro Ribeiro <pedrib(a)gmail.com>
> Cc: akpm(a)linux-foundation.org
> Cc: linux-usb(a)vger.kernel.org
> Cc: alsa-devel(a)alsa-project.org
> ---
> Documentation/DocBook/writing_usb_driver.tmpl | 2 +-
> Documentation/usb/dma.txt | 4 +-
> drivers/hid/usbhid/hid-core.c | 16 +++++-----
> drivers/hid/usbhid/usbkbd.c | 12 ++++----
> drivers/hid/usbhid/usbmouse.c | 6 ++--
> drivers/input/joystick/xpad.c | 16 +++++-----
> drivers/input/misc/ati_remote.c | 12 ++++----
> drivers/input/misc/ati_remote2.c | 4 +-
> drivers/input/misc/cm109.c | 24 +++++++-------
> drivers/input/misc/keyspan_remote.c | 6 ++--
> drivers/input/misc/powermate.c | 16 +++++-----
> drivers/input/misc/yealink.c | 24 +++++++-------
> drivers/input/mouse/appletouch.c | 12 ++++----
> drivers/input/mouse/bcm5974.c | 24 +++++++-------
> drivers/input/tablet/acecad.c | 6 ++--
> drivers/input/tablet/aiptek.c | 14 ++++----
> drivers/input/tablet/gtco.c | 12 ++++----
> drivers/input/tablet/kbtab.c | 6 ++--
> drivers/input/tablet/wacom_sys.c | 10 +++---
> drivers/input/touchscreen/usbtouchscreen.c | 8 ++--
> drivers/media/dvb/dvb-usb/usb-urb.c | 7 ++--
> drivers/media/dvb/ttusb-dec/ttusb_dec.c | 6 ++--
> drivers/media/video/au0828/au0828-video.c | 4 +-
> drivers/media/video/cx231xx/cx231xx-core.c | 14 ++++----
> drivers/media/video/em28xx/em28xx-core.c | 4 +-
> drivers/media/video/gspca/benq.c | 4 +-
> drivers/media/video/gspca/gspca.c | 30 +++++++++---------
> drivers/media/video/hdpvr/hdpvr-video.c | 8 ++--
> drivers/media/video/tlg2300/pd-video.c | 14 ++++----
> drivers/media/video/usbvision/usbvision-core.c | 16 +++++-----
> drivers/media/video/uvc/uvc_video.c | 4 +-
> drivers/net/can/usb/ems_usb.c | 18 +++++-----
> drivers/net/usb/kaweth.c | 12 ++++----
> drivers/net/wireless/ath/ar9170/usb.c | 8 ++--
> drivers/net/wireless/zd1211rw/zd_usb.c | 10 +++---
> drivers/usb/class/cdc-acm.c | 22 +++++++-------
> drivers/usb/class/cdc-wdm.c | 38 ++++++++++++------------
> drivers/usb/class/usblp.c | 2 +-
> drivers/usb/core/usb.c | 20 ++++++------
> drivers/usb/misc/appledisplay.c | 6 ++--
> drivers/usb/misc/ftdi-elan.c | 18 +++++-----
> drivers/usb/misc/iowarrior.c | 12 ++++----
> drivers/usb/misc/usblcd.c | 8 ++--
> drivers/usb/misc/usbtest.c | 16 +++++-----
> drivers/usb/storage/onetouch.c | 12 ++++----
> drivers/usb/storage/usb.c | 12 ++++----
> drivers/usb/usb-skeleton.c | 10 +++---
> drivers/watchdog/pcwd_usb.c | 6 ++--
> include/linux/usb.h | 6 ++--
> sound/usb/midi.c | 14 ++++----
> sound/usb/misc/ua101.c | 16 +++++-----
> sound/usb/urb.c | 18 +++++-----
> 52 files changed, 315 insertions(+), 314 deletions(-)
>
> diff --git a/Documentation/DocBook/writing_usb_driver.tmpl b/Documentation/DocBook/writing_usb_driver.tmpl
> index eeff19c..bd97a13 100644
> --- a/Documentation/DocBook/writing_usb_driver.tmpl
> +++ b/Documentation/DocBook/writing_usb_driver.tmpl
> @@ -342,7 +342,7 @@ static inline void skel_delete (struct usb_skel *dev)
> {
> kfree (dev->bulk_in_buffer);
> if (dev->bulk_out_buffer != NULL)
> - usb_buffer_free (dev->udev, dev->bulk_out_size,
> + usb_free_coherent (dev->udev, dev->bulk_out_size,
> dev->bulk_out_buffer,
> dev->write_urb->transfer_dma);
> usb_free_urb (dev->write_urb);
> diff --git a/Documentation/usb/dma.txt b/Documentation/usb/dma.txt
> index cfdcd16..a37e59c 100644
> --- a/Documentation/usb/dma.txt
> +++ b/Documentation/usb/dma.txt
> @@ -43,10 +43,10 @@ and effects like cache-trashing can impose subtle penalties.
> kind of addresses to store in urb->transfer_buffer and urb->transfer_dma.
> You'd also set URB_NO_TRANSFER_DMA_MAP in urb->transfer_flags:
>
> - void *usb_buffer_alloc (struct usb_device *dev, size_t size,
> + void *usb_alloc_coherent (struct usb_device *dev, size_t size,
> int mem_flags, dma_addr_t *dma);
>
> - void usb_buffer_free (struct usb_device *dev, size_t size,
> + void usb_free_coherent (struct usb_device *dev, size_t size,
> void *addr, dma_addr_t dma);
>
> Most drivers should *NOT* be using these primitives; they don't need
> diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
> index 56d06cd..8496f3a 100644
> --- a/drivers/hid/usbhid/hid-core.c
> +++ b/drivers/hid/usbhid/hid-core.c
> @@ -783,13 +783,13 @@ static int hid_alloc_buffers(struct usb_device *dev, struct hid_device *hid)
> {
> struct usbhid_device *usbhid = hid->driver_data;
>
> - usbhid->inbuf = usb_buffer_alloc(dev, usbhid->bufsize, GFP_KERNEL,
> + usbhid->inbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
> &usbhid->inbuf_dma);
> - usbhid->outbuf = usb_buffer_alloc(dev, usbhid->bufsize, GFP_KERNEL,
> + usbhid->outbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
> &usbhid->outbuf_dma);
> - usbhid->cr = usb_buffer_alloc(dev, sizeof(*usbhid->cr), GFP_KERNEL,
> + usbhid->cr = usb_alloc_coherent(dev, sizeof(*usbhid->cr), GFP_KERNEL,
> &usbhid->cr_dma);
> - usbhid->ctrlbuf = usb_buffer_alloc(dev, usbhid->bufsize, GFP_KERNEL,
> + usbhid->ctrlbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
> &usbhid->ctrlbuf_dma);
> if (!usbhid->inbuf || !usbhid->outbuf || !usbhid->cr ||
> !usbhid->ctrlbuf)
> @@ -844,10 +844,10 @@ static void hid_free_buffers(struct usb_device *dev, struct hid_device *hid)
> {
> struct usbhid_device *usbhid = hid->driver_data;
>
> - usb_buffer_free(dev, usbhid->bufsize, usbhid->inbuf, usbhid->inbuf_dma);
> - usb_buffer_free(dev, usbhid->bufsize, usbhid->outbuf, usbhid->outbuf_dma);
> - usb_buffer_free(dev, sizeof(*(usbhid->cr)), usbhid->cr, usbhid->cr_dma);
> - usb_buffer_free(dev, usbhid->bufsize, usbhid->ctrlbuf, usbhid->ctrlbuf_dma);
> + usb_free_coherent(dev, usbhid->bufsize, usbhid->inbuf, usbhid->inbuf_dma);
> + usb_free_coherent(dev, usbhid->bufsize, usbhid->outbuf, usbhid->outbuf_dma);
> + usb_free_coherent(dev, sizeof(*(usbhid->cr)), usbhid->cr, usbhid->cr_dma);
> + usb_free_coherent(dev, usbhid->bufsize, usbhid->ctrlbuf, usbhid->ctrlbuf_dma);
> }
>
> static int usbhid_parse(struct hid_device *hid)
> diff --git a/drivers/hid/usbhid/usbkbd.c b/drivers/hid/usbhid/usbkbd.c
> index f843443..b86f866 100644
> --- a/drivers/hid/usbhid/usbkbd.c
> +++ b/drivers/hid/usbhid/usbkbd.c
> @@ -197,11 +197,11 @@ static int usb_kbd_alloc_mem(struct usb_device *dev, struct usb_kbd *kbd)
> return -1;
> if (!(kbd->led = usb_alloc_urb(0, GFP_KERNEL)))
> return -1;
> - if (!(kbd->new = usb_buffer_alloc(dev, 8, GFP_ATOMIC, &kbd->new_dma)))
> + if (!(kbd->new = usb_alloc_coherent(dev, 8, GFP_ATOMIC, &kbd->new_dma)))
> return -1;
> - if (!(kbd->cr = usb_buffer_alloc(dev, sizeof(struct usb_ctrlrequest), GFP_ATOMIC, &kbd->cr_dma)))
> + if (!(kbd->cr = usb_alloc_coherent(dev, sizeof(struct usb_ctrlrequest), GFP_ATOMIC, &kbd->cr_dma)))
> return -1;
> - if (!(kbd->leds = usb_buffer_alloc(dev, 1, GFP_ATOMIC, &kbd->leds_dma)))
> + if (!(kbd->leds = usb_alloc_coherent(dev, 1, GFP_ATOMIC, &kbd->leds_dma)))
> return -1;
>
> return 0;
> @@ -211,9 +211,9 @@ static void usb_kbd_free_mem(struct usb_device *dev, struct usb_kbd *kbd)
> {
> usb_free_urb(kbd->irq);
> usb_free_urb(kbd->led);
> - usb_buffer_free(dev, 8, kbd->new, kbd->new_dma);
> - usb_buffer_free(dev, sizeof(struct usb_ctrlrequest), kbd->cr, kbd->cr_dma);
> - usb_buffer_free(dev, 1, kbd->leds, kbd->leds_dma);
> + usb_free_coherent(dev, 8, kbd->new, kbd->new_dma);
> + usb_free_coherent(dev, sizeof(struct usb_ctrlrequest), kbd->cr, kbd->cr_dma);
> + usb_free_coherent(dev, 1, kbd->leds, kbd->leds_dma);
> }
>
> static int usb_kbd_probe(struct usb_interface *iface,
> diff --git a/drivers/hid/usbhid/usbmouse.c b/drivers/hid/usbhid/usbmouse.c
> index 72ab4b2..79b2bf8 100644
> --- a/drivers/hid/usbhid/usbmouse.c
> +++ b/drivers/hid/usbhid/usbmouse.c
> @@ -142,7 +142,7 @@ static int usb_mouse_probe(struct usb_interface *intf, const struct usb_device_i
> if (!mouse || !input_dev)
> goto fail1;
>
> - mouse->data = usb_buffer_alloc(dev, 8, GFP_ATOMIC, &mouse->data_dma);
> + mouse->data = usb_alloc_coherent(dev, 8, GFP_ATOMIC, &mouse->data_dma);
> if (!mouse->data)
> goto fail1;
>
> @@ -205,7 +205,7 @@ static int usb_mouse_probe(struct usb_interface *intf, const struct usb_device_i
> fail3:
> usb_free_urb(mouse->irq);
> fail2:
> - usb_buffer_free(dev, 8, mouse->data, mouse->data_dma);
> + usb_free_coherent(dev, 8, mouse->data, mouse->data_dma);
> fail1:
> input_free_device(input_dev);
> kfree(mouse);
> @@ -221,7 +221,7 @@ static void usb_mouse_disconnect(struct usb_interface *intf)
> usb_kill_urb(mouse->irq);
> input_unregister_device(mouse->dev);
> usb_free_urb(mouse->irq);
> - usb_buffer_free(interface_to_usbdev(intf), 8, mouse->data, mouse->data_dma);
> + usb_free_coherent(interface_to_usbdev(intf), 8, mouse->data, mouse->data_dma);
> kfree(mouse);
> }
> }
> diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
> index 9b3353b..c1087ce 100644
> --- a/drivers/input/joystick/xpad.c
> +++ b/drivers/input/joystick/xpad.c
> @@ -533,8 +533,8 @@ static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad)
> if (xpad->xtype != XTYPE_XBOX360 && xpad->xtype != XTYPE_XBOX)
> return 0;
>
> - xpad->odata = usb_buffer_alloc(xpad->udev, XPAD_PKT_LEN,
> - GFP_KERNEL, &xpad->odata_dma);
> + xpad->odata = usb_alloc_coherent(xpad->udev, XPAD_PKT_LEN,
> + GFP_KERNEL, &xpad->odata_dma);
> if (!xpad->odata)
> goto fail1;
>
> @@ -554,7 +554,7 @@ static int xpad_init_output(struct usb_interface *intf, struct usb_xpad *xpad)
>
> return 0;
>
> - fail2: usb_buffer_free(xpad->udev, XPAD_PKT_LEN, xpad->odata, xpad->odata_dma);
> + fail2: usb_free_coherent(xpad->udev, XPAD_PKT_LEN, xpad->odata, xpad->odata_dma);
> fail1: return error;
> }
>
> @@ -568,7 +568,7 @@ static void xpad_deinit_output(struct usb_xpad *xpad)
> {
> if (xpad->xtype == XTYPE_XBOX360 || xpad->xtype == XTYPE_XBOX) {
> usb_free_urb(xpad->irq_out);
> - usb_buffer_free(xpad->udev, XPAD_PKT_LEN,
> + usb_free_coherent(xpad->udev, XPAD_PKT_LEN,
> xpad->odata, xpad->odata_dma);
> }
> }
> @@ -788,8 +788,8 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
> if (!xpad || !input_dev)
> goto fail1;
>
> - xpad->idata = usb_buffer_alloc(udev, XPAD_PKT_LEN,
> - GFP_KERNEL, &xpad->idata_dma);
> + xpad->idata = usb_alloc_coherent(udev, XPAD_PKT_LEN,
> + GFP_KERNEL, &xpad->idata_dma);
> if (!xpad->idata)
> goto fail1;
>
> @@ -942,7 +942,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
> fail5: usb_kill_urb(xpad->irq_in);
> fail4: usb_free_urb(xpad->irq_in);
> fail3: xpad_deinit_output(xpad);
> - fail2: usb_buffer_free(udev, XPAD_PKT_LEN, xpad->idata, xpad->idata_dma);
> + fail2: usb_free_coherent(udev, XPAD_PKT_LEN, xpad->idata, xpad->idata_dma);
> fail1: input_free_device(input_dev);
> kfree(xpad);
> return error;
> @@ -964,7 +964,7 @@ static void xpad_disconnect(struct usb_interface *intf)
> usb_kill_urb(xpad->irq_in);
> }
> usb_free_urb(xpad->irq_in);
> - usb_buffer_free(xpad->udev, XPAD_PKT_LEN,
> + usb_free_coherent(xpad->udev, XPAD_PKT_LEN,
> xpad->idata, xpad->idata_dma);
> kfree(xpad);
> }
> diff --git a/drivers/input/misc/ati_remote.c b/drivers/input/misc/ati_remote.c
> index 614b65d..2b9a2c8 100644
> --- a/drivers/input/misc/ati_remote.c
> +++ b/drivers/input/misc/ati_remote.c
> @@ -620,13 +620,13 @@ static void ati_remote_irq_in(struct urb *urb)
> static int ati_remote_alloc_buffers(struct usb_device *udev,
> struct ati_remote *ati_remote)
> {
> - ati_remote->inbuf = usb_buffer_alloc(udev, DATA_BUFSIZE, GFP_ATOMIC,
> - &ati_remote->inbuf_dma);
> + ati_remote->inbuf = usb_alloc_coherent(udev, DATA_BUFSIZE, GFP_ATOMIC,
> + &ati_remote->inbuf_dma);
> if (!ati_remote->inbuf)
> return -1;
>
> - ati_remote->outbuf = usb_buffer_alloc(udev, DATA_BUFSIZE, GFP_ATOMIC,
> - &ati_remote->outbuf_dma);
> + ati_remote->outbuf = usb_alloc_coherent(udev, DATA_BUFSIZE, GFP_ATOMIC,
> + &ati_remote->outbuf_dma);
> if (!ati_remote->outbuf)
> return -1;
>
> @@ -649,10 +649,10 @@ static void ati_remote_free_buffers(struct ati_remote *ati_remote)
> usb_free_urb(ati_remote->irq_urb);
> usb_free_urb(ati_remote->out_urb);
>
> - usb_buffer_free(ati_remote->udev, DATA_BUFSIZE,
> + usb_free_coherent(ati_remote->udev, DATA_BUFSIZE,
> ati_remote->inbuf, ati_remote->inbuf_dma);
>
> - usb_buffer_free(ati_remote->udev, DATA_BUFSIZE,
> + usb_free_coherent(ati_remote->udev, DATA_BUFSIZE,
> ati_remote->outbuf, ati_remote->outbuf_dma);
> }
>
> diff --git a/drivers/input/misc/ati_remote2.c b/drivers/input/misc/ati_remote2.c
> index 2124b99..e148749 100644
> --- a/drivers/input/misc/ati_remote2.c
> +++ b/drivers/input/misc/ati_remote2.c
> @@ -589,7 +589,7 @@ static int ati_remote2_urb_init(struct ati_remote2 *ar2)
> int i, pipe, maxp;
>
> for (i = 0; i < 2; i++) {
> - ar2->buf[i] = usb_buffer_alloc(udev, 4, GFP_KERNEL, &ar2->buf_dma[i]);
> + ar2->buf[i] = usb_alloc_coherent(udev, 4, GFP_KERNEL, &ar2->buf_dma[i]);
> if (!ar2->buf[i])
> return -ENOMEM;
>
> @@ -617,7 +617,7 @@ static void ati_remote2_urb_cleanup(struct ati_remote2 *ar2)
>
> for (i = 0; i < 2; i++) {
> usb_free_urb(ar2->urb[i]);
> - usb_buffer_free(ar2->udev, 4, ar2->buf[i], ar2->buf_dma[i]);
> + usb_free_coherent(ar2->udev, 4, ar2->buf[i], ar2->buf_dma[i]);
> }
> }
>
> diff --git a/drivers/input/misc/cm109.c b/drivers/input/misc/cm109.c
> index 86457fe..635b7ac 100644
> --- a/drivers/input/misc/cm109.c
> +++ b/drivers/input/misc/cm109.c
> @@ -630,14 +630,14 @@ static const struct usb_device_id cm109_usb_table[] = {
> static void cm109_usb_cleanup(struct cm109_dev *dev)
> {
> if (dev->ctl_req)
> - usb_buffer_free(dev->udev, sizeof(*(dev->ctl_req)),
> - dev->ctl_req, dev->ctl_req_dma);
> + usb_free_coherent(dev->udev, sizeof(*(dev->ctl_req)),
> + dev->ctl_req, dev->ctl_req_dma);
> if (dev->ctl_data)
> - usb_buffer_free(dev->udev, USB_PKT_LEN,
> - dev->ctl_data, dev->ctl_dma);
> + usb_free_coherent(dev->udev, USB_PKT_LEN,
> + dev->ctl_data, dev->ctl_dma);
> if (dev->irq_data)
> - usb_buffer_free(dev->udev, USB_PKT_LEN,
> - dev->irq_data, dev->irq_dma);
> + usb_free_coherent(dev->udev, USB_PKT_LEN,
> + dev->irq_data, dev->irq_dma);
>
> usb_free_urb(dev->urb_irq); /* parameter validation in core/urb */
> usb_free_urb(dev->urb_ctl); /* parameter validation in core/urb */
> @@ -686,18 +686,18 @@ static int cm109_usb_probe(struct usb_interface *intf,
> goto err_out;
>
> /* allocate usb buffers */
> - dev->irq_data = usb_buffer_alloc(udev, USB_PKT_LEN,
> - GFP_KERNEL, &dev->irq_dma);
> + dev->irq_data = usb_alloc_coherent(udev, USB_PKT_LEN,
> + GFP_KERNEL, &dev->irq_dma);
> if (!dev->irq_data)
> goto err_out;
>
> - dev->ctl_data = usb_buffer_alloc(udev, USB_PKT_LEN,
> - GFP_KERNEL, &dev->ctl_dma);
> + dev->ctl_data = usb_alloc_coherent(udev, USB_PKT_LEN,
> + GFP_KERNEL, &dev->ctl_dma);
> if (!dev->ctl_data)
> goto err_out;
>
> - dev->ctl_req = usb_buffer_alloc(udev, sizeof(*(dev->ctl_req)),
> - GFP_KERNEL, &dev->ctl_req_dma);
> + dev->ctl_req = usb_alloc_coherent(udev, sizeof(*(dev->ctl_req)),
> + GFP_KERNEL, &dev->ctl_req_dma);
> if (!dev->ctl_req)
> goto err_out;
>
> diff --git a/drivers/input/misc/keyspan_remote.c b/drivers/input/misc/keyspan_remote.c
> index 86afdd1..a93c525 100644
> --- a/drivers/input/misc/keyspan_remote.c
> +++ b/drivers/input/misc/keyspan_remote.c
> @@ -464,7 +464,7 @@ static int keyspan_probe(struct usb_interface *interface, const struct usb_devic
> remote->in_endpoint = endpoint;
> remote->toggle = -1; /* Set to -1 so we will always not match the toggle from the first remote message. */
>
> - remote->in_buffer = usb_buffer_alloc(udev, RECV_SIZE, GFP_ATOMIC, &remote->in_dma);
> + remote->in_buffer = usb_alloc_coherent(udev, RECV_SIZE, GFP_ATOMIC, &remote->in_dma);
> if (!remote->in_buffer) {
> error = -ENOMEM;
> goto fail1;
> @@ -543,7 +543,7 @@ static int keyspan_probe(struct usb_interface *interface, const struct usb_devic
> return 0;
>
> fail3: usb_free_urb(remote->irq_urb);
> - fail2: usb_buffer_free(udev, RECV_SIZE, remote->in_buffer, remote->in_dma);
> + fail2: usb_free_coherent(udev, RECV_SIZE, remote->in_buffer, remote->in_dma);
> fail1: kfree(remote);
> input_free_device(input_dev);
>
> @@ -564,7 +564,7 @@ static void keyspan_disconnect(struct usb_interface *interface)
> input_unregister_device(remote->input);
> usb_kill_urb(remote->irq_urb);
> usb_free_urb(remote->irq_urb);
> - usb_buffer_free(remote->udev, RECV_SIZE, remote->in_buffer, remote->in_dma);
> + usb_free_coherent(remote->udev, RECV_SIZE, remote->in_buffer, remote->in_dma);
> kfree(remote);
> }
> }
> diff --git a/drivers/input/misc/powermate.c b/drivers/input/misc/powermate.c
> index 668913d..a0b00d6 100644
> --- a/drivers/input/misc/powermate.c
> +++ b/drivers/input/misc/powermate.c
> @@ -276,13 +276,13 @@ static int powermate_input_event(struct input_dev *dev, unsigned int type, unsig
>
> static int powermate_alloc_buffers(struct usb_device *udev, struct powermate_device *pm)
> {
> - pm->data = usb_buffer_alloc(udev, POWERMATE_PAYLOAD_SIZE_MAX,
> - GFP_ATOMIC, &pm->data_dma);
> + pm->data = usb_alloc_coherent(udev, POWERMATE_PAYLOAD_SIZE_MAX,
> + GFP_ATOMIC, &pm->data_dma);
> if (!pm->data)
> return -1;
>
> - pm->configcr = usb_buffer_alloc(udev, sizeof(*(pm->configcr)),
> - GFP_ATOMIC, &pm->configcr_dma);
> + pm->configcr = usb_alloc_coherent(udev, sizeof(*(pm->configcr)),
> + GFP_ATOMIC, &pm->configcr_dma);
> if (!pm->configcr)
> return -1;
>
> @@ -291,10 +291,10 @@ static int powermate_alloc_buffers(struct usb_device *udev, struct powermate_dev
>
> static void powermate_free_buffers(struct usb_device *udev, struct powermate_device *pm)
> {
> - usb_buffer_free(udev, POWERMATE_PAYLOAD_SIZE_MAX,
> - pm->data, pm->data_dma);
> - usb_buffer_free(udev, sizeof(*(pm->configcr)),
> - pm->configcr, pm->configcr_dma);
> + usb_free_coherent(udev, POWERMATE_PAYLOAD_SIZE_MAX,
> + pm->data, pm->data_dma);
> + usb_free_coherent(udev, sizeof(*(pm->configcr)),
> + pm->configcr, pm->configcr_dma);
> }
>
> /* Called whenever a USB device matching one in our supported devices table is connected */
> diff --git a/drivers/input/misc/yealink.c b/drivers/input/misc/yealink.c
> index 93a22ac..f584985 100644
> --- a/drivers/input/misc/yealink.c
> +++ b/drivers/input/misc/yealink.c
> @@ -836,12 +836,12 @@ static int usb_cleanup(struct yealink_dev *yld, int err)
> usb_free_urb(yld->urb_irq);
> usb_free_urb(yld->urb_ctl);
>
> - usb_buffer_free(yld->udev, sizeof(*(yld->ctl_req)),
> - yld->ctl_req, yld->ctl_req_dma);
> - usb_buffer_free(yld->udev, USB_PKT_LEN,
> - yld->ctl_data, yld->ctl_dma);
> - usb_buffer_free(yld->udev, USB_PKT_LEN,
> - yld->irq_data, yld->irq_dma);
> + usb_free_coherent(yld->udev, sizeof(*(yld->ctl_req)),
> + yld->ctl_req, yld->ctl_req_dma);
> + usb_free_coherent(yld->udev, USB_PKT_LEN,
> + yld->ctl_data, yld->ctl_dma);
> + usb_free_coherent(yld->udev, USB_PKT_LEN,
> + yld->irq_data, yld->irq_dma);
>
> kfree(yld);
> return err;
> @@ -886,18 +886,18 @@ static int usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
> return usb_cleanup(yld, -ENOMEM);
>
> /* allocate usb buffers */
> - yld->irq_data = usb_buffer_alloc(udev, USB_PKT_LEN,
> - GFP_ATOMIC, &yld->irq_dma);
> + yld->irq_data = usb_alloc_coherent(udev, USB_PKT_LEN,
> + GFP_ATOMIC, &yld->irq_dma);
> if (yld->irq_data == NULL)
> return usb_cleanup(yld, -ENOMEM);
>
> - yld->ctl_data = usb_buffer_alloc(udev, USB_PKT_LEN,
> - GFP_ATOMIC, &yld->ctl_dma);
> + yld->ctl_data = usb_alloc_coherent(udev, USB_PKT_LEN,
> + GFP_ATOMIC, &yld->ctl_dma);
> if (!yld->ctl_data)
> return usb_cleanup(yld, -ENOMEM);
>
> - yld->ctl_req = usb_buffer_alloc(udev, sizeof(*(yld->ctl_req)),
> - GFP_ATOMIC, &yld->ctl_req_dma);
> + yld->ctl_req = usb_alloc_coherent(udev, sizeof(*(yld->ctl_req)),
> + GFP_ATOMIC, &yld->ctl_req_dma);
> if (yld->ctl_req == NULL)
> return usb_cleanup(yld, -ENOMEM);
>
> diff --git a/drivers/input/mouse/appletouch.c b/drivers/input/mouse/appletouch.c
> index 53ec7dd..05edd75 100644
> --- a/drivers/input/mouse/appletouch.c
> +++ b/drivers/input/mouse/appletouch.c
> @@ -806,8 +806,8 @@ static int atp_probe(struct usb_interface *iface,
> if (!dev->urb)
> goto err_free_devs;
>
> - dev->data = usb_buffer_alloc(dev->udev, dev->info->datalen, GFP_KERNEL,
> - &dev->urb->transfer_dma);
> + dev->data = usb_alloc_coherent(dev->udev, dev->info->datalen, GFP_KERNEL,
> + &dev->urb->transfer_dma);
> if (!dev->data)
> goto err_free_urb;
>
> @@ -862,8 +862,8 @@ static int atp_probe(struct usb_interface *iface,
> return 0;
>
> err_free_buffer:
> - usb_buffer_free(dev->udev, dev->info->datalen,
> - dev->data, dev->urb->transfer_dma);
> + usb_free_coherent(dev->udev, dev->info->datalen,
> + dev->data, dev->urb->transfer_dma);
> err_free_urb:
> usb_free_urb(dev->urb);
> err_free_devs:
> @@ -881,8 +881,8 @@ static void atp_disconnect(struct usb_interface *iface)
> if (dev) {
> usb_kill_urb(dev->urb);
> input_unregister_device(dev->input);
> - usb_buffer_free(dev->udev, dev->info->datalen,
> - dev->data, dev->urb->transfer_dma);
> + usb_free_coherent(dev->udev, dev->info->datalen,
> + dev->data, dev->urb->transfer_dma);
> usb_free_urb(dev->urb);
> kfree(dev);
> }
> diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
> index 4f8fe08..aa3359a 100644
> --- a/drivers/input/mouse/bcm5974.c
> +++ b/drivers/input/mouse/bcm5974.c
> @@ -715,15 +715,15 @@ static int bcm5974_probe(struct usb_interface *iface,
> if (!dev->tp_urb)
> goto err_free_bt_urb;
>
> - dev->bt_data = usb_buffer_alloc(dev->udev,
> - dev->cfg.bt_datalen, GFP_KERNEL,
> - &dev->bt_urb->transfer_dma);
> + dev->bt_data = usb_alloc_coherent(dev->udev,
> + dev->cfg.bt_datalen, GFP_KERNEL,
> + &dev->bt_urb->transfer_dma);
> if (!dev->bt_data)
> goto err_free_urb;
>
> - dev->tp_data = usb_buffer_alloc(dev->udev,
> - dev->cfg.tp_datalen, GFP_KERNEL,
> - &dev->tp_urb->transfer_dma);
> + dev->tp_data = usb_alloc_coherent(dev->udev,
> + dev->cfg.tp_datalen, GFP_KERNEL,
> + &dev->tp_urb->transfer_dma);
> if (!dev->tp_data)
> goto err_free_bt_buffer;
>
> @@ -765,10 +765,10 @@ static int bcm5974_probe(struct usb_interface *iface,
> return 0;
>
> err_free_buffer:
> - usb_buffer_free(dev->udev, dev->cfg.tp_datalen,
> + usb_free_coherent(dev->udev, dev->cfg.tp_datalen,
> dev->tp_data, dev->tp_urb->transfer_dma);
> err_free_bt_buffer:
> - usb_buffer_free(dev->udev, dev->cfg.bt_datalen,
> + usb_free_coherent(dev->udev, dev->cfg.bt_datalen,
> dev->bt_data, dev->bt_urb->transfer_dma);
> err_free_urb:
> usb_free_urb(dev->tp_urb);
> @@ -788,10 +788,10 @@ static void bcm5974_disconnect(struct usb_interface *iface)
> usb_set_intfdata(iface, NULL);
>
> input_unregister_device(dev->input);
> - usb_buffer_free(dev->udev, dev->cfg.tp_datalen,
> - dev->tp_data, dev->tp_urb->transfer_dma);
> - usb_buffer_free(dev->udev, dev->cfg.bt_datalen,
> - dev->bt_data, dev->bt_urb->transfer_dma);
> + usb_free_coherent(dev->udev, dev->cfg.tp_datalen,
> + dev->tp_data, dev->tp_urb->transfer_dma);
> + usb_free_coherent(dev->udev, dev->cfg.bt_datalen,
> + dev->bt_data, dev->bt_urb->transfer_dma);
> usb_free_urb(dev->tp_urb);
> usb_free_urb(dev->bt_urb);
> kfree(dev);
> diff --git a/drivers/input/tablet/acecad.c b/drivers/input/tablet/acecad.c
> index 670c61c..c047016 100644
> --- a/drivers/input/tablet/acecad.c
> +++ b/drivers/input/tablet/acecad.c
> @@ -155,7 +155,7 @@ static int usb_acecad_probe(struct usb_interface *intf, const struct usb_device_
> goto fail1;
> }
>
> - acecad->data = usb_buffer_alloc(dev, 8, GFP_KERNEL, &acecad->data_dma);
> + acecad->data = usb_alloc_coherent(dev, 8, GFP_KERNEL, &acecad->data_dma);
> if (!acecad->data) {
> err= -ENOMEM;
> goto fail1;
> @@ -241,7 +241,7 @@ static int usb_acecad_probe(struct usb_interface *intf, const struct usb_device_
>
> return 0;
>
> - fail2: usb_buffer_free(dev, 8, acecad->data, acecad->data_dma);
> + fail2: usb_free_coherent(dev, 8, acecad->data, acecad->data_dma);
> fail1: input_free_device(input_dev);
> kfree(acecad);
> return err;
> @@ -256,7 +256,7 @@ static void usb_acecad_disconnect(struct usb_interface *intf)
> usb_kill_urb(acecad->irq);
> input_unregister_device(acecad->input);
> usb_free_urb(acecad->irq);
> - usb_buffer_free(interface_to_usbdev(intf), 10, acecad->data, acecad->data_dma);
> + usb_free_coherent(interface_to_usbdev(intf), 10, acecad->data, acecad->data_dma);
> kfree(acecad);
> }
> }
> diff --git a/drivers/input/tablet/aiptek.c b/drivers/input/tablet/aiptek.c
> index 4be039d..51b80b0 100644
> --- a/drivers/input/tablet/aiptek.c
> +++ b/drivers/input/tablet/aiptek.c
> @@ -1711,8 +1711,8 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
> goto fail1;
> }
>
> - aiptek->data = usb_buffer_alloc(usbdev, AIPTEK_PACKET_LENGTH,
> - GFP_ATOMIC, &aiptek->data_dma);
> + aiptek->data = usb_alloc_coherent(usbdev, AIPTEK_PACKET_LENGTH,
> + GFP_ATOMIC, &aiptek->data_dma);
> if (!aiptek->data) {
> dev_warn(&intf->dev, "cannot allocate usb buffer\n");
> goto fail1;
> @@ -1884,8 +1884,8 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
>
> fail4: sysfs_remove_group(&intf->dev.kobj, &aiptek_attribute_group);
> fail3: usb_free_urb(aiptek->urb);
> - fail2: usb_buffer_free(usbdev, AIPTEK_PACKET_LENGTH, aiptek->data,
> - aiptek->data_dma);
> + fail2: usb_free_coherent(usbdev, AIPTEK_PACKET_LENGTH, aiptek->data,
> + aiptek->data_dma);
> fail1: usb_set_intfdata(intf, NULL);
> input_free_device(inputdev);
> kfree(aiptek);
> @@ -1909,9 +1909,9 @@ static void aiptek_disconnect(struct usb_interface *intf)
> input_unregister_device(aiptek->inputdev);
> sysfs_remove_group(&intf->dev.kobj, &aiptek_attribute_group);
> usb_free_urb(aiptek->urb);
> - usb_buffer_free(interface_to_usbdev(intf),
> - AIPTEK_PACKET_LENGTH,
> - aiptek->data, aiptek->data_dma);
> + usb_free_coherent(interface_to_usbdev(intf),
> + AIPTEK_PACKET_LENGTH,
> + aiptek->data, aiptek->data_dma);
> kfree(aiptek);
> }
> }
> diff --git a/drivers/input/tablet/gtco.c b/drivers/input/tablet/gtco.c
> index 866a9ee..8ea6afe 100644
> --- a/drivers/input/tablet/gtco.c
> +++ b/drivers/input/tablet/gtco.c
> @@ -850,8 +850,8 @@ static int gtco_probe(struct usb_interface *usbinterface,
> gtco->usbdev = usb_get_dev(interface_to_usbdev(usbinterface));
>
> /* Allocate some data for incoming reports */
> - gtco->buffer = usb_buffer_alloc(gtco->usbdev, REPORT_MAX_SIZE,
> - GFP_KERNEL, &gtco->buf_dma);
> + gtco->buffer = usb_alloc_coherent(gtco->usbdev, REPORT_MAX_SIZE,
> + GFP_KERNEL, &gtco->buf_dma);
> if (!gtco->buffer) {
> err("No more memory for us buffers");
> error = -ENOMEM;
> @@ -982,8 +982,8 @@ static int gtco_probe(struct usb_interface *usbinterface,
> err_free_urb:
> usb_free_urb(gtco->urbinfo);
> err_free_buf:
> - usb_buffer_free(gtco->usbdev, REPORT_MAX_SIZE,
> - gtco->buffer, gtco->buf_dma);
> + usb_free_coherent(gtco->usbdev, REPORT_MAX_SIZE,
> + gtco->buffer, gtco->buf_dma);
> err_free_devs:
> input_free_device(input_dev);
> kfree(gtco);
> @@ -1005,8 +1005,8 @@ static void gtco_disconnect(struct usb_interface *interface)
> input_unregister_device(gtco->inputdevice);
> usb_kill_urb(gtco->urbinfo);
> usb_free_urb(gtco->urbinfo);
> - usb_buffer_free(gtco->usbdev, REPORT_MAX_SIZE,
> - gtco->buffer, gtco->buf_dma);
> + usb_free_coherent(gtco->usbdev, REPORT_MAX_SIZE,
> + gtco->buffer, gtco->buf_dma);
> kfree(gtco);
> }
>
> diff --git a/drivers/input/tablet/kbtab.c b/drivers/input/tablet/kbtab.c
> index 6682b17..d31b9c7 100644
> --- a/drivers/input/tablet/kbtab.c
> +++ b/drivers/input/tablet/kbtab.c
> @@ -129,7 +129,7 @@ static int kbtab_probe(struct usb_interface *intf, const struct usb_device_id *i
> if (!kbtab || !input_dev)
> goto fail1;
>
> - kbtab->data = usb_buffer_alloc(dev, 8, GFP_KERNEL, &kbtab->data_dma);
> + kbtab->data = usb_alloc_coherent(dev, 8, GFP_KERNEL, &kbtab->data_dma);
> if (!kbtab->data)
> goto fail1;
>
> @@ -182,7 +182,7 @@ static int kbtab_probe(struct usb_interface *intf, const struct usb_device_id *i
> return 0;
>
> fail3: usb_free_urb(kbtab->irq);
> - fail2: usb_buffer_free(dev, 10, kbtab->data, kbtab->data_dma);
> + fail2: usb_free_coherent(dev, 10, kbtab->data, kbtab->data_dma);
> fail1: input_free_device(input_dev);
> kfree(kbtab);
> return error;
> @@ -197,7 +197,7 @@ static void kbtab_disconnect(struct usb_interface *intf)
> usb_kill_urb(kbtab->irq);
> input_unregister_device(kbtab->dev);
> usb_free_urb(kbtab->irq);
> - usb_buffer_free(interface_to_usbdev(intf), 10, kbtab->data, kbtab->data_dma);
> + usb_free_coherent(interface_to_usbdev(intf), 10, kbtab->data, kbtab->data_dma);
> kfree(kbtab);
> }
> }
> diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
> index 8b5d287..5d5b3c3 100644
> --- a/drivers/input/tablet/wacom_sys.c
> +++ b/drivers/input/tablet/wacom_sys.c
> @@ -556,8 +556,8 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
> goto fail1;
> }
>
> - wacom_wac->data = usb_buffer_alloc(dev, WACOM_PKGLEN_MAX,
> - GFP_KERNEL, &wacom->data_dma);
> + wacom_wac->data = usb_alloc_coherent(dev, WACOM_PKGLEN_MAX,
> + GFP_KERNEL, &wacom->data_dma);
> if (!wacom_wac->data) {
> error = -ENOMEM;
> goto fail1;
> @@ -633,7 +633,7 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
> return 0;
>
> fail3: usb_free_urb(wacom->irq);
> - fail2: usb_buffer_free(dev, WACOM_PKGLEN_MAX, wacom_wac->data, wacom->data_dma);
> + fail2: usb_free_coherent(dev, WACOM_PKGLEN_MAX, wacom_wac->data, wacom->data_dma);
> fail1: input_free_device(input_dev);
> kfree(wacom);
> kfree(wacom_wac);
> @@ -649,8 +649,8 @@ static void wacom_disconnect(struct usb_interface *intf)
> usb_kill_urb(wacom->irq);
> input_unregister_device(wacom->dev);
> usb_free_urb(wacom->irq);
> - usb_buffer_free(interface_to_usbdev(intf), WACOM_PKGLEN_MAX,
> - wacom->wacom_wac->data, wacom->data_dma);
> + usb_free_coherent(interface_to_usbdev(intf), WACOM_PKGLEN_MAX,
> + wacom->wacom_wac->data, wacom->data_dma);
> kfree(wacom->wacom_wac);
> kfree(wacom);
> }
> diff --git a/drivers/input/touchscreen/usbtouchscreen.c b/drivers/input/touchscreen/usbtouchscreen.c
> index 99330bb..ea41a85 100644
> --- a/drivers/input/touchscreen/usbtouchscreen.c
> +++ b/drivers/input/touchscreen/usbtouchscreen.c
> @@ -1291,8 +1291,8 @@ static void usbtouch_close(struct input_dev *input)
> static void usbtouch_free_buffers(struct usb_device *udev,
> struct usbtouch_usb *usbtouch)
> {
> - usb_buffer_free(udev, usbtouch->type->rept_size,
> - usbtouch->data, usbtouch->data_dma);
> + usb_free_coherent(udev, usbtouch->type->rept_size,
> + usbtouch->data, usbtouch->data_dma);
> kfree(usbtouch->buffer);
> }
>
> @@ -1336,8 +1336,8 @@ static int usbtouch_probe(struct usb_interface *intf,
> if (!type->process_pkt)
> type->process_pkt = usbtouch_process_pkt;
>
> - usbtouch->data = usb_buffer_alloc(udev, type->rept_size,
> - GFP_KERNEL, &usbtouch->data_dma);
> + usbtouch->data = usb_alloc_coherent(udev, type->rept_size,
> + GFP_KERNEL, &usbtouch->data_dma);
> if (!usbtouch->data)
> goto out_free;
>
> diff --git a/drivers/media/dvb/dvb-usb/usb-urb.c b/drivers/media/dvb/dvb-usb/usb-urb.c
> index f9702e3..86d6893 100644
> --- a/drivers/media/dvb/dvb-usb/usb-urb.c
> +++ b/drivers/media/dvb/dvb-usb/usb-urb.c
> @@ -96,8 +96,9 @@ static int usb_free_stream_buffers(struct usb_data_stream *stream)
> while (stream->buf_num) {
> stream->buf_num--;
> deb_mem("freeing buffer %d\n",stream->buf_num);
> - usb_buffer_free(stream->udev, stream->buf_size,
> - stream->buf_list[stream->buf_num], stream->dma_addr[stream->buf_num]);
> + usb_free_coherent(stream->udev, stream->buf_size,
> + stream->buf_list[stream->buf_num],
> + stream->dma_addr[stream->buf_num]);
> }
> }
>
> @@ -116,7 +117,7 @@ static int usb_allocate_stream_buffers(struct usb_data_stream *stream, int num,
> for (stream->buf_num = 0; stream->buf_num < num; stream->buf_num++) {
> deb_mem("allocating buffer %d\n",stream->buf_num);
> if (( stream->buf_list[stream->buf_num] =
> - usb_buffer_alloc(stream->udev, size, GFP_ATOMIC,
> + usb_alloc_coherent(stream->udev, size, GFP_ATOMIC,
> &stream->dma_addr[stream->buf_num]) ) == NULL) {
> deb_mem("not enough memory for urb-buffer allocation.\n");
> usb_free_stream_buffers(stream);
> diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
> index 53baccb..fe1b803 100644
> --- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c
> +++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
> @@ -1257,7 +1257,7 @@ static int ttusb_dec_init_usb(struct ttusb_dec *dec)
> if(!dec->irq_urb) {
> return -ENOMEM;
> }
> - dec->irq_buffer = usb_buffer_alloc(dec->udev,IRQ_PACKET_SIZE,
> + dec->irq_buffer = usb_alloc_coherent(dec->udev,IRQ_PACKET_SIZE,
> GFP_ATOMIC, &dec->irq_dma_handle);
> if(!dec->irq_buffer) {
> usb_free_urb(dec->irq_urb);
> @@ -1550,8 +1550,8 @@ static void ttusb_dec_exit_rc(struct ttusb_dec *dec)
>
> usb_free_urb(dec->irq_urb);
>
> - usb_buffer_free(dec->udev,IRQ_PACKET_SIZE,
> - dec->irq_buffer, dec->irq_dma_handle);
> + usb_free_coherent(dec->udev,IRQ_PACKET_SIZE,
> + dec->irq_buffer, dec->irq_dma_handle);
>
> if (dec->rc_input_dev) {
> input_unregister_device(dec->rc_input_dev);
> diff --git a/drivers/media/video/au0828/au0828-video.c b/drivers/media/video/au0828/au0828-video.c
> index 8c140c0..a2a0f79 100644
> --- a/drivers/media/video/au0828/au0828-video.c
> +++ b/drivers/media/video/au0828/au0828-video.c
> @@ -177,7 +177,7 @@ void au0828_uninit_isoc(struct au0828_dev *dev)
> usb_unlink_urb(urb);
>
> if (dev->isoc_ctl.transfer_buffer[i]) {
> - usb_buffer_free(dev->usbdev,
> + usb_free_coherent(dev->usbdev,
> urb->transfer_buffer_length,
> dev->isoc_ctl.transfer_buffer[i],
> urb->transfer_dma);
> @@ -247,7 +247,7 @@ int au0828_init_isoc(struct au0828_dev *dev, int max_packets,
> }
> dev->isoc_ctl.urb[i] = urb;
>
> - dev->isoc_ctl.transfer_buffer[i] = usb_buffer_alloc(dev->usbdev,
> + dev->isoc_ctl.transfer_buffer[i] = usb_alloc_coherent(dev->usbdev,
> sb_size, GFP_KERNEL, &urb->transfer_dma);
> if (!dev->isoc_ctl.transfer_buffer[i]) {
> printk("unable to allocate %i bytes for transfer"
> diff --git a/drivers/media/video/cx231xx/cx231xx-core.c b/drivers/media/video/cx231xx/cx231xx-core.c
> index b24eee1..6ccd87d 100644
> --- a/drivers/media/video/cx231xx/cx231xx-core.c
> +++ b/drivers/media/video/cx231xx/cx231xx-core.c
> @@ -679,11 +679,11 @@ void cx231xx_uninit_isoc(struct cx231xx *dev)
> usb_unlink_urb(urb);
>
> if (dev->video_mode.isoc_ctl.transfer_buffer[i]) {
> - usb_buffer_free(dev->udev,
> - urb->transfer_buffer_length,
> - dev->video_mode.isoc_ctl.
> - transfer_buffer[i],
> - urb->transfer_dma);
> + usb_free_coherent(dev->udev,
> + urb->transfer_buffer_length,
> + dev->video_mode.isoc_ctl.
> + transfer_buffer[i],
> + urb->transfer_dma);
> }
> usb_free_urb(urb);
> dev->video_mode.isoc_ctl.urb[i] = NULL;
> @@ -770,8 +770,8 @@ int cx231xx_init_isoc(struct cx231xx *dev, int max_packets,
> dev->video_mode.isoc_ctl.urb[i] = urb;
>
> dev->video_mode.isoc_ctl.transfer_buffer[i] =
> - usb_buffer_alloc(dev->udev, sb_size, GFP_KERNEL,
> - &urb->transfer_dma);
> + usb_alloc_coherent(dev->udev, sb_size, GFP_KERNEL,
> + &urb->transfer_dma);
> if (!dev->video_mode.isoc_ctl.transfer_buffer[i]) {
> cx231xx_err("unable to allocate %i bytes for transfer"
> " buffer %i%s\n",
> diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
> index a41cc55..d4a9554 100644
> --- a/drivers/media/video/em28xx/em28xx-core.c
> +++ b/drivers/media/video/em28xx/em28xx-core.c
> @@ -966,7 +966,7 @@ void em28xx_uninit_isoc(struct em28xx *dev)
> usb_unlink_urb(urb);
>
> if (dev->isoc_ctl.transfer_buffer[i]) {
> - usb_buffer_free(dev->udev,
> + usb_free_coherent(dev->udev,
> urb->transfer_buffer_length,
> dev->isoc_ctl.transfer_buffer[i],
> urb->transfer_dma);
> @@ -1041,7 +1041,7 @@ int em28xx_init_isoc(struct em28xx *dev, int max_packets,
> }
> dev->isoc_ctl.urb[i] = urb;
>
> - dev->isoc_ctl.transfer_buffer[i] = usb_buffer_alloc(dev->udev,
> + dev->isoc_ctl.transfer_buffer[i] = usb_alloc_coherent(dev->udev,
> sb_size, GFP_KERNEL, &urb->transfer_dma);
> if (!dev->isoc_ctl.transfer_buffer[i]) {
> em28xx_err("unable to allocate %i bytes for transfer"
> diff --git a/drivers/media/video/gspca/benq.c b/drivers/media/video/gspca/benq.c
> index 43ac4af..fce8d94 100644
> --- a/drivers/media/video/gspca/benq.c
> +++ b/drivers/media/video/gspca/benq.c
> @@ -117,13 +117,13 @@ static int sd_start(struct gspca_dev *gspca_dev)
> return -ENOMEM;
> }
> gspca_dev->urb[n] = urb;
> - urb->transfer_buffer = usb_buffer_alloc(gspca_dev->dev,
> + urb->transfer_buffer = usb_alloc_coherent(gspca_dev->dev,
> SD_PKT_SZ * SD_NPKT,
> GFP_KERNEL,
> &urb->transfer_dma);
>
> if (urb->transfer_buffer == NULL) {
> - err("usb_buffer_alloc failed");
> + err("usb_alloc_coherent failed");
> return -ENOMEM;
> }
> urb->dev = gspca_dev->dev;
> diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
> index 222af47..00713f8 100644
> --- a/drivers/media/video/gspca/gspca.c
> +++ b/drivers/media/video/gspca/gspca.c
> @@ -213,7 +213,7 @@ static int alloc_and_submit_int_urb(struct gspca_dev *gspca_dev,
> goto error;
> }
>
> - buffer = usb_buffer_alloc(dev, ep->wMaxPacketSize,
> + buffer = usb_alloc_coherent(dev, ep->wMaxPacketSize,
> GFP_KERNEL, &urb->transfer_dma);
> if (!buffer) {
> ret = -ENOMEM;
> @@ -232,10 +232,10 @@ static int alloc_and_submit_int_urb(struct gspca_dev *gspca_dev,
> return ret;
>
> error_submit:
> - usb_buffer_free(dev,
> - urb->transfer_buffer_length,
> - urb->transfer_buffer,
> - urb->transfer_dma);
> + usb_free_coherent(dev,
> + urb->transfer_buffer_length,
> + urb->transfer_buffer,
> + urb->transfer_dma);
> error_buffer:
> usb_free_urb(urb);
> error:
> @@ -272,10 +272,10 @@ static void gspca_input_destroy_urb(struct gspca_dev *gspca_dev)
> if (urb) {
> gspca_dev->int_urb = NULL;
> usb_kill_urb(urb);
> - usb_buffer_free(gspca_dev->dev,
> - urb->transfer_buffer_length,
> - urb->transfer_buffer,
> - urb->transfer_dma);
> + usb_free_coherent(gspca_dev->dev,
> + urb->transfer_buffer_length,
> + urb->transfer_buffer,
> + urb->transfer_dma);
> usb_free_urb(urb);
> }
> }
> @@ -597,10 +597,10 @@ static void destroy_urbs(struct gspca_dev *gspca_dev)
> gspca_dev->urb[i] = NULL;
> usb_kill_urb(urb);
> if (urb->transfer_buffer != NULL)
> - usb_buffer_free(gspca_dev->dev,
> - urb->transfer_buffer_length,
> - urb->transfer_buffer,
> - urb->transfer_dma);
> + usb_free_coherent(gspca_dev->dev,
> + urb->transfer_buffer_length,
> + urb->transfer_buffer,
> + urb->transfer_dma);
> usb_free_urb(urb);
> }
> }
> @@ -721,13 +721,13 @@ static int create_urbs(struct gspca_dev *gspca_dev,
> return -ENOMEM;
> }
> gspca_dev->urb[n] = urb;
> - urb->transfer_buffer = usb_buffer_alloc(gspca_dev->dev,
> + urb->transfer_buffer = usb_alloc_coherent(gspca_dev->dev,
> bsize,
> GFP_KERNEL,
> &urb->transfer_dma);
>
> if (urb->transfer_buffer == NULL) {
> - err("usb_buffer_alloc failed");
> + err("usb_alloc_coherent failed");
> return -ENOMEM;
> }
> urb->dev = gspca_dev->dev;
> diff --git a/drivers/media/video/hdpvr/hdpvr-video.c b/drivers/media/video/hdpvr/hdpvr-video.c
> index 196f82d..b65efe2 100644
> --- a/drivers/media/video/hdpvr/hdpvr-video.c
> +++ b/drivers/media/video/hdpvr/hdpvr-video.c
> @@ -92,8 +92,8 @@ static int hdpvr_free_queue(struct list_head *q)
> buf = list_entry(p, struct hdpvr_buffer, buff_list);
>
> urb = buf->urb;
> - usb_buffer_free(urb->dev, urb->transfer_buffer_length,
> - urb->transfer_buffer, urb->transfer_dma);
> + usb_free_coherent(urb->dev, urb->transfer_buffer_length,
> + urb->transfer_buffer, urb->transfer_dma);
> usb_free_urb(urb);
> tmp = p->next;
> list_del(p);
> @@ -143,8 +143,8 @@ int hdpvr_alloc_buffers(struct hdpvr_device *dev, uint count)
> }
> buf->urb = urb;
>
> - mem = usb_buffer_alloc(dev->udev, dev->bulk_in_size, GFP_KERNEL,
> - &urb->transfer_dma);
> + mem = usb_alloc_coherent(dev->udev, dev->bulk_in_size, GFP_KERNEL,
> + &urb->transfer_dma);
> if (!mem) {
> v4l2_err(&dev->v4l2_dev,
> "cannot allocate usb transfer buffer\n");
> diff --git a/drivers/media/video/tlg2300/pd-video.c b/drivers/media/video/tlg2300/pd-video.c
> index cf8f18c..7bc2906 100644
> --- a/drivers/media/video/tlg2300/pd-video.c
> +++ b/drivers/media/video/tlg2300/pd-video.c
> @@ -476,10 +476,10 @@ static int prepare_iso_urb(struct video_data *video)
> goto out;
>
> video->urb_array[i] = urb;
> - mem = usb_buffer_alloc(udev,
> - ISO_PKT_SIZE * PK_PER_URB,
> - GFP_KERNEL,
> - &urb->transfer_dma);
> + mem = usb_alloc_coherent(udev,
> + ISO_PKT_SIZE * PK_PER_URB,
> + GFP_KERNEL,
> + &urb->transfer_dma);
>
> urb->complete = urb_complete_iso; /* handler */
> urb->dev = udev;
> @@ -519,8 +519,8 @@ int alloc_bulk_urbs_generic(struct urb **urb_array, int num,
> if (urb == NULL)
> return i;
>
> - mem = usb_buffer_alloc(udev, buf_size, gfp_flags,
> - &urb->transfer_dma);
> + mem = usb_alloc_coherent(udev, buf_size, gfp_flags,
> + &urb->transfer_dma);
> if (mem == NULL)
> return i;
>
> @@ -540,7 +540,7 @@ void free_all_urb_generic(struct urb **urb_array, int num)
> for (i = 0; i < num; i++) {
> urb = urb_array[i];
> if (urb) {
> - usb_buffer_free(urb->dev,
> + usb_free_coherent(urb->dev,
> urb->transfer_buffer_length,
> urb->transfer_buffer,
> urb->transfer_dma);
> diff --git a/drivers/media/video/usbvision/usbvision-core.c b/drivers/media/video/usbvision/usbvision-core.c
> index f7aae22..b9dd74f 100644
> --- a/drivers/media/video/usbvision/usbvision-core.c
> +++ b/drivers/media/video/usbvision/usbvision-core.c
> @@ -2493,10 +2493,10 @@ int usbvision_init_isoc(struct usb_usbvision *usbvision)
> }
> usbvision->sbuf[bufIdx].urb = urb;
> usbvision->sbuf[bufIdx].data =
> - usb_buffer_alloc(usbvision->dev,
> - sb_size,
> - GFP_KERNEL,
> - &urb->transfer_dma);
> + usb_alloc_coherent(usbvision->dev,
> + sb_size,
> + GFP_KERNEL,
> + &urb->transfer_dma);
> urb->dev = dev;
> urb->context = usbvision;
> urb->pipe = usb_rcvisocpipe(dev, usbvision->video_endp);
> @@ -2552,10 +2552,10 @@ void usbvision_stop_isoc(struct usb_usbvision *usbvision)
> for (bufIdx = 0; bufIdx < USBVISION_NUMSBUF; bufIdx++) {
> usb_kill_urb(usbvision->sbuf[bufIdx].urb);
> if (usbvision->sbuf[bufIdx].data){
> - usb_buffer_free(usbvision->dev,
> - sb_size,
> - usbvision->sbuf[bufIdx].data,
> - usbvision->sbuf[bufIdx].urb->transfer_dma);
> + usb_free_coherent(usbvision->dev,
> + sb_size,
> + usbvision->sbuf[bufIdx].data,
> + usbvision->sbuf[bufIdx].urb->transfer_dma);
> }
> usb_free_urb(usbvision->sbuf[bufIdx].urb);
> usbvision->sbuf[bufIdx].urb = NULL;
> diff --git a/drivers/media/video/uvc/uvc_video.c b/drivers/media/video/uvc/uvc_video.c
> index 821a996..53f3ef4 100644
> --- a/drivers/media/video/uvc/uvc_video.c
> +++ b/drivers/media/video/uvc/uvc_video.c
> @@ -739,7 +739,7 @@ static void uvc_free_urb_buffers(struct uvc_streaming *stream)
>
> for (i = 0; i < UVC_URBS; ++i) {
> if (stream->urb_buffer[i]) {
> - usb_buffer_free(stream->dev->udev, stream->urb_size,
> + usb_free_coherent(stream->dev->udev, stream->urb_size,
> stream->urb_buffer[i], stream->urb_dma[i]);
> stream->urb_buffer[i] = NULL;
> }
> @@ -780,7 +780,7 @@ static int uvc_alloc_urb_buffers(struct uvc_streaming *stream,
> for (; npackets > 1; npackets /= 2) {
> for (i = 0; i < UVC_URBS; ++i) {
> stream->urb_size = psize * npackets;
> - stream->urb_buffer[i] = usb_buffer_alloc(
> + stream->urb_buffer[i] = usb_alloc_coherent(
> stream->dev->udev, stream->urb_size,
> gfp_flags | __GFP_NOWARN, &stream->urb_dma[i]);
> if (!stream->urb_buffer[i]) {
> diff --git a/drivers/net/can/usb/ems_usb.c b/drivers/net/can/usb/ems_usb.c
> index 3345109..62be62f 100644
> --- a/drivers/net/can/usb/ems_usb.c
> +++ b/drivers/net/can/usb/ems_usb.c
> @@ -516,8 +516,8 @@ static void ems_usb_write_bulk_callback(struct urb *urb)
> netdev = dev->netdev;
>
> /* free up our allocated buffer */
> - usb_buffer_free(urb->dev, urb->transfer_buffer_length,
> - urb->transfer_buffer, urb->transfer_dma);
> + usb_free_coherent(urb->dev, urb->transfer_buffer_length,
> + urb->transfer_buffer, urb->transfer_dma);
>
> atomic_dec(&dev->active_tx_urbs);
>
> @@ -614,8 +614,8 @@ static int ems_usb_start(struct ems_usb *dev)
> return -ENOMEM;
> }
>
> - buf = usb_buffer_alloc(dev->udev, RX_BUFFER_SIZE, GFP_KERNEL,
> - &urb->transfer_dma);
> + buf = usb_alloc_coherent(dev->udev, RX_BUFFER_SIZE, GFP_KERNEL,
> + &urb->transfer_dma);
> if (!buf) {
> dev_err(netdev->dev.parent,
> "No memory left for USB buffer\n");
> @@ -635,8 +635,8 @@ static int ems_usb_start(struct ems_usb *dev)
> netif_device_detach(dev->netdev);
>
> usb_unanchor_urb(urb);
> - usb_buffer_free(dev->udev, RX_BUFFER_SIZE, buf,
> - urb->transfer_dma);
> + usb_free_coherent(dev->udev, RX_BUFFER_SIZE, buf,
> + urb->transfer_dma);
> break;
> }
>
> @@ -777,7 +777,7 @@ static netdev_tx_t ems_usb_start_xmit(struct sk_buff *skb, struct net_device *ne
> goto nomem;
> }
>
> - buf = usb_buffer_alloc(dev->udev, size, GFP_ATOMIC, &urb->transfer_dma);
> + buf = usb_alloc_coherent(dev->udev, size, GFP_ATOMIC, &urb->transfer_dma);
> if (!buf) {
> dev_err(netdev->dev.parent, "No memory left for USB buffer\n");
> usb_free_urb(urb);
> @@ -820,7 +820,7 @@ static netdev_tx_t ems_usb_start_xmit(struct sk_buff *skb, struct net_device *ne
> */
> if (!context) {
> usb_unanchor_urb(urb);
> - usb_buffer_free(dev->udev, size, buf, urb->transfer_dma);
> + usb_free_coherent(dev->udev, size, buf, urb->transfer_dma);
>
> dev_warn(netdev->dev.parent, "couldn't find free context\n");
>
> @@ -845,7 +845,7 @@ static netdev_tx_t ems_usb_start_xmit(struct sk_buff *skb, struct net_device *ne
> can_free_echo_skb(netdev, context->echo_index);
>
> usb_unanchor_urb(urb);
> - usb_buffer_free(dev->udev, size, buf, urb->transfer_dma);
> + usb_free_coherent(dev->udev, size, buf, urb->transfer_dma);
> dev_kfree_skb(skb);
>
> atomic_dec(&dev->active_tx_urbs);
> diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
> index 52671ea..a790a6d 100644
> --- a/drivers/net/usb/kaweth.c
> +++ b/drivers/net/usb/kaweth.c
> @@ -1155,13 +1155,13 @@ err_fw:
> if (!kaweth->irq_urb)
> goto err_tx_and_rx;
>
> - kaweth->intbuffer = usb_buffer_alloc( kaweth->dev,
> + kaweth->intbuffer = usb_alloc_coherent( kaweth->dev,
> INTBUFFERSIZE,
> GFP_KERNEL,
> &kaweth->intbufferhandle);
> if (!kaweth->intbuffer)
> goto err_tx_and_rx_and_irq;
> - kaweth->rx_buf = usb_buffer_alloc( kaweth->dev,
> + kaweth->rx_buf = usb_alloc_coherent( kaweth->dev,
> KAWETH_BUF_SIZE,
> GFP_KERNEL,
> &kaweth->rxbufferhandle);
> @@ -1202,9 +1202,9 @@ err_fw:
>
> err_intfdata:
> usb_set_intfdata(intf, NULL);
> - usb_buffer_free(kaweth->dev, KAWETH_BUF_SIZE, (void *)kaweth->rx_buf, kaweth->rxbufferhandle);
> + usb_free_coherent(kaweth->dev, KAWETH_BUF_SIZE, (void *)kaweth->rx_buf, kaweth->rxbufferhandle);
> err_all_but_rxbuf:
> - usb_buffer_free(kaweth->dev, INTBUFFERSIZE, (void *)kaweth->intbuffer, kaweth->intbufferhandle);
> + usb_free_coherent(kaweth->dev, INTBUFFERSIZE, (void *)kaweth->intbuffer, kaweth->intbufferhandle);
> err_tx_and_rx_and_irq:
> usb_free_urb(kaweth->irq_urb);
> err_tx_and_rx:
> @@ -1241,8 +1241,8 @@ static void kaweth_disconnect(struct usb_interface *intf)
> usb_free_urb(kaweth->tx_urb);
> usb_free_urb(kaweth->irq_urb);
>
> - usb_buffer_free(kaweth->dev, KAWETH_BUF_SIZE, (void *)kaweth->rx_buf, kaweth->rxbufferhandle);
> - usb_buffer_free(kaweth->dev, INTBUFFERSIZE, (void *)kaweth->intbuffer, kaweth->intbufferhandle);
> + usb_free_coherent(kaweth->dev, KAWETH_BUF_SIZE, (void *)kaweth->rx_buf, kaweth->rxbufferhandle);
> + usb_free_coherent(kaweth->dev, INTBUFFERSIZE, (void *)kaweth->intbuffer, kaweth->intbufferhandle);
>
> free_netdev(netdev);
> }
> diff --git a/drivers/net/wireless/ath/ar9170/usb.c b/drivers/net/wireless/ath/ar9170/usb.c
> index 0b0d2dc..14eda1d 100644
> --- a/drivers/net/wireless/ath/ar9170/usb.c
> +++ b/drivers/net/wireless/ath/ar9170/usb.c
> @@ -200,7 +200,7 @@ resubmit:
> return;
>
> free:
> - usb_buffer_free(aru->udev, 64, urb->transfer_buffer, urb->transfer_dma);
> + usb_free_coherent(aru->udev, 64, urb->transfer_buffer, urb->transfer_dma);
> }
>
> static void ar9170_usb_rx_completed(struct urb *urb)
> @@ -281,7 +281,7 @@ static int ar9170_usb_alloc_rx_irq_urb(struct ar9170_usb *aru)
> if (!urb)
> goto out;
>
> - ibuf = usb_buffer_alloc(aru->udev, 64, GFP_KERNEL, &urb->transfer_dma);
> + ibuf = usb_alloc_coherent(aru->udev, 64, GFP_KERNEL, &urb->transfer_dma);
> if (!ibuf)
> goto out;
>
> @@ -294,8 +294,8 @@ static int ar9170_usb_alloc_rx_irq_urb(struct ar9170_usb *aru)
> err = usb_submit_urb(urb, GFP_KERNEL);
> if (err) {
> usb_unanchor_urb(urb);
> - usb_buffer_free(aru->udev, 64, urb->transfer_buffer,
> - urb->transfer_dma);
> + usb_free_coherent(aru->udev, 64, urb->transfer_buffer,
> + urb->transfer_dma);
> }
>
> out:
> diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
> index d91ad1a..c257940 100644
> --- a/drivers/net/wireless/zd1211rw/zd_usb.c
> +++ b/drivers/net/wireless/zd1211rw/zd_usb.c
> @@ -664,15 +664,15 @@ static struct urb *alloc_rx_urb(struct zd_usb *usb)
> urb = usb_alloc_urb(0, GFP_KERNEL);
> if (!urb)
> return NULL;
> - buffer = usb_buffer_alloc(udev, USB_MAX_RX_SIZE, GFP_KERNEL,
> - &urb->transfer_dma);
> + buffer = usb_alloc_coherent(udev, USB_MAX_RX_SIZE, GFP_KERNEL,
> + &urb->transfer_dma);
> if (!buffer) {
> usb_free_urb(urb);
> return NULL;
> }
>
> usb_fill_bulk_urb(urb, udev, usb_rcvbulkpipe(udev, EP_DATA_IN),
> - buffer, USB_MAX_RX_SIZE,
> + buffer, USB_MAX_RX_SIZE,
> rx_urb_complete, usb);
> urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
>
> @@ -683,8 +683,8 @@ static void free_rx_urb(struct urb *urb)
> {
> if (!urb)
> return;
> - usb_buffer_free(urb->dev, urb->transfer_buffer_length,
> - urb->transfer_buffer, urb->transfer_dma);
> + usb_free_coherent(urb->dev, urb->transfer_buffer_length,
> + urb->transfer_buffer, urb->transfer_dma);
> usb_free_urb(urb);
> }
>
> diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
> index be6331e..66713ed 100644
> --- a/drivers/usb/class/cdc-acm.c
> +++ b/drivers/usb/class/cdc-acm.c
> @@ -892,7 +892,7 @@ static void acm_write_buffers_free(struct acm *acm)
> struct usb_device *usb_dev = interface_to_usbdev(acm->control);
>
> for (wb = &acm->wb[0], i = 0; i < ACM_NW; i++, wb++)
> - usb_buffer_free(usb_dev, acm->writesize, wb->buf, wb->dmah);
> + usb_free_coherent(usb_dev, acm->writesize, wb->buf, wb->dmah);
> }
>
> static void acm_read_buffers_free(struct acm *acm)
> @@ -901,8 +901,8 @@ static void acm_read_buffers_free(struct acm *acm)
> int i, n = acm->rx_buflimit;
>
> for (i = 0; i < n; i++)
> - usb_buffer_free(usb_dev, acm->readsize,
> - acm->rb[i].base, acm->rb[i].dma);
> + usb_free_coherent(usb_dev, acm->readsize,
> + acm->rb[i].base, acm->rb[i].dma);
> }
>
> /* Little helper: write buffers allocate */
> @@ -912,13 +912,13 @@ static int acm_write_buffers_alloc(struct acm *acm)
> struct acm_wb *wb;
>
> for (wb = &acm->wb[0], i = 0; i < ACM_NW; i++, wb++) {
> - wb->buf = usb_buffer_alloc(acm->dev, acm->writesize, GFP_KERNEL,
> + wb->buf = usb_alloc_coherent(acm->dev, acm->writesize, GFP_KERNEL,
> &wb->dmah);
> if (!wb->buf) {
> while (i != 0) {
> --i;
> --wb;
> - usb_buffer_free(acm->dev, acm->writesize,
> + usb_free_coherent(acm->dev, acm->writesize,
> wb->buf, wb->dmah);
> }
> return -ENOMEM;
> @@ -1177,7 +1177,7 @@ made_compressed_probe:
> tty_port_init(&acm->port);
> acm->port.ops = &acm_port_ops;
>
> - buf = usb_buffer_alloc(usb_dev, ctrlsize, GFP_KERNEL, &acm->ctrl_dma);
> + buf = usb_alloc_coherent(usb_dev, ctrlsize, GFP_KERNEL, &acm->ctrl_dma);
> if (!buf) {
> dev_dbg(&intf->dev, "out of memory (ctrl buffer alloc)\n");
> goto alloc_fail2;
> @@ -1210,11 +1210,11 @@ made_compressed_probe:
> for (i = 0; i < num_rx_buf; i++) {
> struct acm_rb *rb = &(acm->rb[i]);
>
> - rb->base = usb_buffer_alloc(acm->dev, readsize,
> + rb->base = usb_alloc_coherent(acm->dev, readsize,
> GFP_KERNEL, &rb->dma);
> if (!rb->base) {
> dev_dbg(&intf->dev,
> - "out of memory (read bufs usb_buffer_alloc)\n");
> + "out of memory (read bufs usb_alloc_coherent)\n");
> goto alloc_fail7;
> }
> }
> @@ -1306,7 +1306,7 @@ alloc_fail7:
> alloc_fail5:
> acm_write_buffers_free(acm);
> alloc_fail4:
> - usb_buffer_free(usb_dev, ctrlsize, acm->ctrl_buffer, acm->ctrl_dma);
> + usb_free_coherent(usb_dev, ctrlsize, acm->ctrl_buffer, acm->ctrl_dma);
> alloc_fail2:
> kfree(acm);
> alloc_fail:
> @@ -1356,8 +1356,8 @@ static void acm_disconnect(struct usb_interface *intf)
> stop_data_traffic(acm);
>
> acm_write_buffers_free(acm);
> - usb_buffer_free(usb_dev, acm->ctrlsize, acm->ctrl_buffer,
> - acm->ctrl_dma);
> + usb_free_coherent(usb_dev, acm->ctrlsize, acm->ctrl_buffer,
> + acm->ctrl_dma);
> acm_read_buffers_free(acm);
>
> if (!acm->combined_interfaces)
> diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
> index 189141c..094c76b 100644
> --- a/drivers/usb/class/cdc-wdm.c
> +++ b/drivers/usb/class/cdc-wdm.c
> @@ -276,14 +276,14 @@ static void free_urbs(struct wdm_device *desc)
>
> static void cleanup(struct wdm_device *desc)
> {
> - usb_buffer_free(interface_to_usbdev(desc->intf),
> - desc->wMaxPacketSize,
> - desc->sbuf,
> - desc->validity->transfer_dma);
> - usb_buffer_free(interface_to_usbdev(desc->intf),
> - desc->wMaxCommand,
> - desc->inbuf,
> - desc->response->transfer_dma);
> + usb_free_coherent(interface_to_usbdev(desc->intf),
> + desc->wMaxPacketSize,
> + desc->sbuf,
> + desc->validity->transfer_dma);
> + usb_free_coherent(interface_to_usbdev(desc->intf),
> + desc->wMaxCommand,
> + desc->inbuf,
> + desc->response->transfer_dma);
> kfree(desc->orq);
> kfree(desc->irq);
> kfree(desc->ubuf);
> @@ -705,17 +705,17 @@ next_desc:
> if (!desc->ubuf)
> goto err;
>
> - desc->sbuf = usb_buffer_alloc(interface_to_usbdev(intf),
> + desc->sbuf = usb_alloc_coherent(interface_to_usbdev(intf),
> desc->wMaxPacketSize,
> GFP_KERNEL,
> &desc->validity->transfer_dma);
> if (!desc->sbuf)
> goto err;
>
> - desc->inbuf = usb_buffer_alloc(interface_to_usbdev(intf),
> - desc->bMaxPacketSize0,
> - GFP_KERNEL,
> - &desc->response->transfer_dma);
> + desc->inbuf = usb_alloc_coherent(interface_to_usbdev(intf),
> + desc->bMaxPacketSize0,
> + GFP_KERNEL,
> + &desc->response->transfer_dma);
> if (!desc->inbuf)
> goto err2;
>
> @@ -742,15 +742,15 @@ out:
> return rv;
> err3:
> usb_set_intfdata(intf, NULL);
> - usb_buffer_free(interface_to_usbdev(desc->intf),
> - desc->bMaxPacketSize0,
> + usb_free_coherent(interface_to_usbdev(desc->intf),
> + desc->bMaxPacketSize0,
> desc->inbuf,
> desc->response->transfer_dma);
> err2:
> - usb_buffer_free(interface_to_usbdev(desc->intf),
> - desc->wMaxPacketSize,
> - desc->sbuf,
> - desc->validity->transfer_dma);
> + usb_free_coherent(interface_to_usbdev(desc->intf),
> + desc->wMaxPacketSize,
> + desc->sbuf,
> + desc->validity->transfer_dma);
> err:
> free_urbs(desc);
> kfree(desc->ubuf);
> diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c
> index 93b5f85..2250095 100644
> --- a/drivers/usb/class/usblp.c
> +++ b/drivers/usb/class/usblp.c
> @@ -27,7 +27,7 @@
> * v0.11 - add proto_bias option (Pete Zaitcev)
> * v0.12 - add hpoj.sourceforge.net ioctls (David Paschal)
> * v0.13 - alloc space for statusbuf (<status> not on stack);
> - * use usb_buffer_alloc() for read buf & write buf;
> + * use usb_alloc_coherent() for read buf & write buf;
> * none - Maintained in Linux kernel after v0.13
> */
>
> diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
> index 1297e9b..0561430 100644
> --- a/drivers/usb/core/usb.c
> +++ b/drivers/usb/core/usb.c
> @@ -718,7 +718,7 @@ int __usb_get_extra_descriptor(char *buffer, unsigned size,
> EXPORT_SYMBOL_GPL(__usb_get_extra_descriptor);
>
> /**
> - * usb_buffer_alloc - allocate dma-consistent buffer for URB_NO_xxx_DMA_MAP
> + * usb_alloc_coherent - allocate dma-consistent buffer for URB_NO_xxx_DMA_MAP
> * @dev: device the buffer will be used with
> * @size: requested buffer size
> * @mem_flags: affect whether allocation may block
> @@ -737,30 +737,30 @@ EXPORT_SYMBOL_GPL(__usb_get_extra_descriptor);
> * architectures where CPU caches are not DMA-coherent. On systems without
> * bus-snooping caches, these buffers are uncached.
> *
> - * When the buffer is no longer used, free it with usb_buffer_free().
> + * When the buffer is no longer used, free it with usb_free_coherent().
> */
> -void *usb_buffer_alloc(struct usb_device *dev, size_t size, gfp_t mem_flags,
> - dma_addr_t *dma)
> +void *usb_alloc_coherent(struct usb_device *dev, size_t size, gfp_t mem_flags,
> + dma_addr_t *dma)
> {
> if (!dev || !dev->bus)
> return NULL;
> return hcd_buffer_alloc(dev->bus, size, mem_flags, dma);
> }
> -EXPORT_SYMBOL_GPL(usb_buffer_alloc);
> +EXPORT_SYMBOL_GPL(usb_alloc_coherent);
>
> /**
> - * usb_buffer_free - free memory allocated with usb_buffer_alloc()
> + * usb_free_coherent - free memory allocated with usb_alloc_coherent()
> * @dev: device the buffer was used with
> * @size: requested buffer size
> * @addr: CPU address of buffer
> * @dma: DMA address of buffer
> *
> * This reclaims an I/O buffer, letting it be reused. The memory must have
> - * been allocated using usb_buffer_alloc(), and the parameters must match
> + * been allocated using usb_alloc_coherent(), and the parameters must match
> * those provided in that allocation request.
> */
> -void usb_buffer_free(struct usb_device *dev, size_t size, void *addr,
> - dma_addr_t dma)
> +void usb_free_coherent(struct usb_device *dev, size_t size, void *addr,
> + dma_addr_t dma)
> {
> if (!dev || !dev->bus)
> return;
> @@ -768,7 +768,7 @@ void usb_buffer_free(struct usb_device *dev, size_t size, void *addr,
> return;
> hcd_buffer_free(dev->bus, size, addr, dma);
> }
> -EXPORT_SYMBOL_GPL(usb_buffer_free);
> +EXPORT_SYMBOL_GPL(usb_free_coherent);
>
> /**
> * usb_buffer_map - create DMA mapping(s) for an urb
> diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c
> index 094f91c..1fa6ce3 100644
> --- a/drivers/usb/misc/appledisplay.c
> +++ b/drivers/usb/misc/appledisplay.c
> @@ -259,7 +259,7 @@ static int appledisplay_probe(struct usb_interface *iface,
> }
>
> /* Allocate buffer for interrupt data */
> - pdata->urbdata = usb_buffer_alloc(pdata->udev, ACD_URB_BUFFER_LEN,
> + pdata->urbdata = usb_alloc_coherent(pdata->udev, ACD_URB_BUFFER_LEN,
> GFP_KERNEL, &pdata->urb->transfer_dma);
> if (!pdata->urbdata) {
> retval = -ENOMEM;
> @@ -316,7 +316,7 @@ error:
> if (pdata->urb) {
> usb_kill_urb(pdata->urb);
> if (pdata->urbdata)
> - usb_buffer_free(pdata->udev, ACD_URB_BUFFER_LEN,
> + usb_free_coherent(pdata->udev, ACD_URB_BUFFER_LEN,
> pdata->urbdata, pdata->urb->transfer_dma);
> usb_free_urb(pdata->urb);
> }
> @@ -337,7 +337,7 @@ static void appledisplay_disconnect(struct usb_interface *iface)
> usb_kill_urb(pdata->urb);
> cancel_delayed_work(&pdata->work);
> backlight_device_unregister(pdata->bd);
> - usb_buffer_free(pdata->udev, ACD_URB_BUFFER_LEN,
From: Alan Stern on
On Tue, 13 Apr 2010, Daniel Mack wrote:

> On Mon, Apr 12, 2010 at 01:17:25PM +0200, Daniel Mack wrote:
> > For more clearance what the functions actually do,
> >
> > usb_buffer_alloc() is renamed to usb_alloc_coherent()
> > usb_buffer_free() is renamed to usb_free_coherent()
> >
> > They should only be used in code which really needs DMA coherency.
> >
> > All call sites have been changed accordingly, except for staging
> > drivers.
>
> Is this ok? As it's quite big, I think it should be merged soon if there
> are no objections.

I have no objection. All it does is rename a couple of functions.
There's no reason for this to go into 2.6.34; it can wait for the next
merge window.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Greg KH on
On Tue, Apr 13, 2010 at 03:27:36PM -0400, Alan Stern wrote:
> On Tue, 13 Apr 2010, Daniel Mack wrote:
>
> > On Mon, Apr 12, 2010 at 01:17:25PM +0200, Daniel Mack wrote:
> > > For more clearance what the functions actually do,
> > >
> > > usb_buffer_alloc() is renamed to usb_alloc_coherent()
> > > usb_buffer_free() is renamed to usb_free_coherent()
> > >
> > > They should only be used in code which really needs DMA coherency.
> > >
> > > All call sites have been changed accordingly, except for staging
> > > drivers.
> >
> > Is this ok? As it's quite big, I think it should be merged soon if there
> > are no objections.
>
> I have no objection. All it does is rename a couple of functions.
> There's no reason for this to go into 2.6.34; it can wait for the next
> merge window.

I think I will split this up into the following set of patches:
- rename the functions and add a macro for the old names
- rename all in-kernel usages
- rename the staging tree usages
- remove the macros

the first patch can go in to Linus's tree now, to make it easier for the
2nd and 3rd patches to live in linux-next easier as we might need to
look at the usages in other development trees before we can add the last
one.

Sound good?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Daniel Mack on
On Tue, Apr 13, 2010 at 01:26:07PM -0700, Greg KH wrote:
> I think I will split this up into the following set of patches:
> - rename the functions and add a macro for the old names
> - rename all in-kernel usages
> - rename the staging tree usages
> - remove the macros
>
> the first patch can go in to Linus's tree now, to make it easier for the
> 2nd and 3rd patches to live in linux-next easier as we might need to
> look at the usages in other development trees before we can add the last
> one.
>
> Sound good?

Yes, thanks a lot.

Daniel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/