Re: [PATCH] Input: usbtouchscreen - initialize eGalax devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 31 Aug 2012, Dmitry Torokhov wrote:

> > > +		/* Send a "check active" packet. The response will be read
> > > +		 * later and ignored. */
> > > +		ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
> > > +				      0,
> > > +				      USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
> > > +				      0, 0, "\x0A\x01A", 0,
> > 
> >    You probably can't send data from the .const section (as well as off the
> > stack) -- they can be DMA'ed and there'll be issues with cache consistency on
> > non-x86 arches. You should allocate the data with kmalloc().
> >    Although, on the second thought, maybe I'm wrong in this case... not really
> > sure about sending -- receiving (to the .data section) could certainly be harmful...
> 
> Hmm, do we actually send anything here? The "size" passed to
> usb_control_msg() is 0 so I don't think we use that data at all...

Good point.  Perhaps the 0 is a typo, in which case data does get sent
and the buffer must be kmalloc'ed.  If the 0 is correct then the buffer
should be NULL, not "\x0A\x01A" (and what's the purpose of the leading
'0' in the second byte?).

In addition, although the bRequestType specifies USB_DIR_OUT, the pipe
value is usb_rcvctrlpipe.  Is this transfer meant to be IN or OUT?

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux