All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] USB: yurex: remove allocation of coherent buffer for setup-packet buffer
@ 2012-03-28 23:20 Tomoki Sekiyama
  2012-03-29 11:57 ` Sergei Shtylyov
  0 siblings, 1 reply; 5+ messages in thread
From: Tomoki Sekiyama @ 2012-03-28 23:20 UTC (permalink / raw)
  To: gregkh, linux-usb, linux-kernel

Removes allocation of coherent buffer for the control-request setup-packet
buffer from the yurex driver. Using coherent buffers for setup-packet is
obsoleted and does not work with some USB host implementations.

This patch also fixes missing URB_NO_TRANSFER_DMA_MAP flag in urb.

Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@gmail.com>
---
 drivers/usb/misc/yurex.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
index 897edda..7020146 100644
--- a/drivers/usb/misc/yurex.c
+++ b/drivers/usb/misc/yurex.c
@@ -99,9 +99,7 @@ static void yurex_delete(struct kref *kref)
 	usb_put_dev(dev->udev);
 	if (dev->cntl_urb) {
 		usb_kill_urb(dev->cntl_urb);
-		if (dev->cntl_req)
-			usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
-				dev->cntl_req, dev->cntl_urb->setup_dma);
+		kfree(dev->cntl_req);
 		if (dev->cntl_buffer)
 			usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
 				dev->cntl_buffer, dev->cntl_urb->transfer_dma);
@@ -234,9 +232,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
 	}
 
 	/* allocate buffer for control req */
-	dev->cntl_req = usb_alloc_coherent(dev->udev, YUREX_BUF_SIZE,
-					   GFP_KERNEL,
-					   &dev->cntl_urb->setup_dma);
+	dev->cntl_req = kmalloc(YUREX_BUF_SIZE, GFP_KERNEL);
 	if (!dev->cntl_req) {
 		err("Could not allocate cntl_req");
 		goto error;
@@ -286,7 +282,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
 			 usb_rcvintpipe(dev->udev, dev->int_in_endpointAddr),
 			 dev->int_buffer, YUREX_BUF_SIZE, yurex_interrupt,
 			 dev, 1);
-	dev->cntl_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
+	dev->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
 	if (usb_submit_urb(dev->urb, GFP_KERNEL)) {
 		retval = -EIO;
 		err("Could not submitting URB");
-- 
1.7.7.6


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] USB: yurex: remove allocation of coherent buffer for setup-packet buffer
  2012-03-28 23:20 [PATCH] USB: yurex: remove allocation of coherent buffer for setup-packet buffer Tomoki Sekiyama
@ 2012-03-29 11:57 ` Sergei Shtylyov
  2012-03-29 12:51   ` Tomoki Sekiyama
  2012-03-29 23:51   ` [PATCH 2/2] USB: yurex: Fix missing URB_NO_TRANSFER_DMA_MAP flag in urb Tomoki Sekiyama
  0 siblings, 2 replies; 5+ messages in thread
From: Sergei Shtylyov @ 2012-03-29 11:57 UTC (permalink / raw)
  To: Tomoki Sekiyama; +Cc: gregkh, linux-usb, linux-kernel

Hello.

On 29-03-2012 3:20, Tomoki Sekiyama wrote:

> Removes allocation of coherent buffer for the control-request setup-packet
> buffer from the yurex driver. Using coherent buffers for setup-packet is
> obsoleted and does not work with some USB host implementations.

> This patch also fixes missing URB_NO_TRANSFER_DMA_MAP flag in urb.

   Looks like the patch should be split into two then as it does two different
things.

> Signed-off-by: Tomoki Sekiyama<tomoki.sekiyama@gmail.com>
> ---
>   drivers/usb/misc/yurex.c |   10 +++-------
>   1 files changed, 3 insertions(+), 7 deletions(-)

> diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
> index 897edda..7020146 100644
> --- a/drivers/usb/misc/yurex.c
> +++ b/drivers/usb/misc/yurex.c
> @@ -99,9 +99,7 @@ static void yurex_delete(struct kref *kref)
>   	usb_put_dev(dev->udev);
>   	if (dev->cntl_urb) {
>   		usb_kill_urb(dev->cntl_urb);
> -		if (dev->cntl_req)
> -			usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
> -				dev->cntl_req, dev->cntl_urb->setup_dma);
> +		kfree(dev->cntl_req);
>   		if (dev->cntl_buffer)
>   			usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
>   				dev->cntl_buffer, dev->cntl_urb->transfer_dma);
> @@ -234,9 +232,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
>   	}
> 
>   	/* allocate buffer for control req */
> -	dev->cntl_req = usb_alloc_coherent(dev->udev, YUREX_BUF_SIZE,
> -					   GFP_KERNEL,
> -					&dev->cntl_urb->setup_dma);
> +	dev->cntl_req = kmalloc(YUREX_BUF_SIZE, GFP_KERNEL);
>   	if (!dev->cntl_req) {
>   		err("Could not allocate cntl_req");
>   		goto error;
> @@ -286,7 +282,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
>   			 usb_rcvintpipe(dev->udev, dev->int_in_endpointAddr),
>   			 dev->int_buffer, YUREX_BUF_SIZE, yurex_interrupt,
>   			 dev, 1);
> -	dev->cntl_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
> +	dev->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
>   	if (usb_submit_urb(dev->urb, GFP_KERNEL)) {
>   		retval = -EIO;
>   		err("Could not submitting URB");

WBR, Sergei

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] USB: yurex: remove allocation of coherent buffer for setup-packet buffer
  2012-03-29 11:57 ` Sergei Shtylyov
@ 2012-03-29 12:51   ` Tomoki Sekiyama
  2012-03-29 23:51     ` [PATCH 1/2] USB: yurex: Remove " Tomoki Sekiyama
  2012-03-29 23:51   ` [PATCH 2/2] USB: yurex: Fix missing URB_NO_TRANSFER_DMA_MAP flag in urb Tomoki Sekiyama
  1 sibling, 1 reply; 5+ messages in thread
From: Tomoki Sekiyama @ 2012-03-29 12:51 UTC (permalink / raw)
  To: Sergei Shtylyov; +Cc: gregkh, linux-usb, linux-kernel

Hello,

2012年3月29日20:57 Sergei Shtylyov <sshtylyov@mvista.com>:
> Hello.
>
> On 29-03-2012 3:20, Tomoki Sekiyama wrote:
>
>> Removes allocation of coherent buffer for the control-request setup-packet
>> buffer from the yurex driver. Using coherent buffers for setup-packet is
>> obsoleted and does not work with some USB host implementations.
>
>> This patch also fixes missing URB_NO_TRANSFER_DMA_MAP flag in urb.
>
>   Looks like the patch should be split into two then as it does two different
> things.
>
> WBR, Sergei

OK, I will split this patch into two pieces and re-send them.

Thank you,

Tomoki Sekiyama

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] USB: yurex: Remove allocation of coherent buffer for setup-packet buffer
  2012-03-29 12:51   ` Tomoki Sekiyama
@ 2012-03-29 23:51     ` Tomoki Sekiyama
  0 siblings, 0 replies; 5+ messages in thread
From: Tomoki Sekiyama @ 2012-03-29 23:51 UTC (permalink / raw)
  To: Sergei Shtylyov, gregkh, linux-usb, linux-kernel

Removes allocation of coherent buffer for the control-request setup-packet
buffer from the yurex driver. Using coherent buffers for setup-packet is
obsolete and does not work with some USB host implementations.

Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@gmail.com>
---
 drivers/usb/misc/yurex.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
index 897edda..a4a76fc 100644
--- a/drivers/usb/misc/yurex.c
+++ b/drivers/usb/misc/yurex.c
@@ -99,9 +99,7 @@ static void yurex_delete(struct kref *kref)
 	usb_put_dev(dev->udev);
 	if (dev->cntl_urb) {
 		usb_kill_urb(dev->cntl_urb);
-		if (dev->cntl_req)
-			usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
-				dev->cntl_req, dev->cntl_urb->setup_dma);
+		kfree(dev->cntl_req);
 		if (dev->cntl_buffer)
 			usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
 				dev->cntl_buffer, dev->cntl_urb->transfer_dma);
@@ -234,9 +232,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
 	}
 
 	/* allocate buffer for control req */
-	dev->cntl_req = usb_alloc_coherent(dev->udev, YUREX_BUF_SIZE,
-					   GFP_KERNEL,
-					   &dev->cntl_urb->setup_dma);
+	dev->cntl_req = kmalloc(YUREX_BUF_SIZE, GFP_KERNEL);
 	if (!dev->cntl_req) {
 		err("Could not allocate cntl_req");
 		goto error;
-- 
1.7.7.6

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] USB: yurex: Fix missing URB_NO_TRANSFER_DMA_MAP flag in urb
  2012-03-29 11:57 ` Sergei Shtylyov
  2012-03-29 12:51   ` Tomoki Sekiyama
@ 2012-03-29 23:51   ` Tomoki Sekiyama
  1 sibling, 0 replies; 5+ messages in thread
From: Tomoki Sekiyama @ 2012-03-29 23:51 UTC (permalink / raw)
  To: Sergei Shtylyov, gregkh, linux-usb, linux-kernel

Current probing code is setting URB_NO_TRANSFER_DMA_MAP flag into a wrong urb
structure, and this causes BUG_ON with some USB host implementations.
This patch fixes the issue.

Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@gmail.com>
---
 drivers/usb/misc/yurex.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
index a4a76fc..7020146 100644
--- a/drivers/usb/misc/yurex.c
+++ b/drivers/usb/misc/yurex.c
@@ -282,7 +282,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
 			 usb_rcvintpipe(dev->udev, dev->int_in_endpointAddr),
 			 dev->int_buffer, YUREX_BUF_SIZE, yurex_interrupt,
 			 dev, 1);
-	dev->cntl_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
+	dev->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
 	if (usb_submit_urb(dev->urb, GFP_KERNEL)) {
 		retval = -EIO;
 		err("Could not submitting URB");
-- 1.7.7.6


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-03-29 23:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-28 23:20 [PATCH] USB: yurex: remove allocation of coherent buffer for setup-packet buffer Tomoki Sekiyama
2012-03-29 11:57 ` Sergei Shtylyov
2012-03-29 12:51   ` Tomoki Sekiyama
2012-03-29 23:51     ` [PATCH 1/2] USB: yurex: Remove " Tomoki Sekiyama
2012-03-29 23:51   ` [PATCH 2/2] USB: yurex: Fix missing URB_NO_TRANSFER_DMA_MAP flag in urb Tomoki Sekiyama

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.