Messages in this thread | | | From | Virupax SADASHIVPETIMATH <> | Date | Wed, 8 Aug 2012 08:40:04 +0200 | Subject | RE: [PATCH v2] usb:musb:musb_host: Handle highmem in PIO mode |
| |
> -----Original Message----- > From: Alan Stern [mailto:stern@rowland.harvard.edu] > Sent: Tuesday, August 07, 2012 11:17 PM > To: Virupax SADASHIVPETIMATH > Cc: balbi@ti.com; gregkh@linuxfoundation.org; linux-usb@vger.kernel.org; linux- > kernel@vger.kernel.org; linus.walleij@linaro.org; Praveena NADAHALLY; Rajaram > REGUPATHY; Vikrant BAPAT > Subject: Re: [PATCH v2] usb:musb:musb_host: Handle highmem in PIO mode > > > > + */ > > + if (!urb->transfer_buffer) > > + use_sg = true; > > Here you test urb->transfer_buffer.
I will make the test as if (!use_sg && !urb->transfer_buffer) use_sg = true;
> > + if (use_sg) { > > + /* sg_miter_start is already done in musb_ep_program */ > > + if (!sg_miter_next(&qh->sg_miter)) { > > + dev_err(musb->controller, "error: sg list empty\n"); > > + sg_miter_stop(&qh->sg_miter); > > + status = -EINVAL; > > + goto done; > > + } > > + urb->transfer_buffer = qh->sg_miter.addr; > > And here you set it. As a result, on the next iteration of this > routine the test above won't work right. (This function gets invoked > once for each entry in the sg list, right?) > > Is there any reason to set urb->transfer_buffer here? You could just > use qh->sg_miter.addr directly in the musb_write_fifo() call two lines > below.
I will change it.
Thanks Virupax S
| |