Thomas Sailer wrote:
> On Sat, 2007-03-10 at 15:39 -0800, Phil Dibowitz wrote:
>>         while (bytes = read((int)fh, buf, SIZE)) {
>>                 printf("writing %d bytes (%d)\n",SIZE,++i);
>>                 if (usb_interrupt_write(udev, OUT_EP, buf, bytes, 2) < 0) {
> 
> read can return -1, at which point you stuff -1 into
> usb_interrupt_write, which likely interprets the length as an unsigned
> quantity, causing EFAULT.

Doh! That was exactly it. That'll teach me to not worry about error checking
"just because it's a test program" :) I was accidentally mixing fopen/read
instead of open and read. Thanks for catching that.

Sadly, I'm only slightly further. I have two files that generally get
transfered to the device:

  Connectivity.EZHex - this is a 'connectivity test' to transfer to the
     device
  Test.EZHex - this is a config blob for the remote.

The site always downloads the Connectivity one first, waits for confirmation
the windows/mac software was able to confirm communication, and then
downloads your config. The software uploads it, reboots the device, and done.

Anyway, Connectivity.EZHex is 3.5K and Test.EZHex is 716K.

But when I transfer 64 bytes at a time, on Connectivity.EZHex, I get 19
successful transfers (~1.2k) and the 20th gives me an error of -110, or "No
error" (the read was successful).

On Test.EZHex, I only get to the 12th transfer before I get -110, No error
(~7k).

So clearly something is going wrong... and I was rather determined to
troubleshoot awhile before asking... but "no error" really doesn't give me
much to go on. Amazingly, these interrupted transfers have not broken,
confused, or otherwise harmed my device!

-- 
Phil Dibowitz                             [EMAIL PROTECTED]
Open Source software and tech docs        Insanity Palace of Metallica
http://www.phildev.net/                   http://www.ipom.com/

"Never write it in C if you can do it in 'awk';
 Never do it in 'awk' if 'sed' can handle it;
 Never use 'sed' when 'tr' can do the job;
 Never invoke 'tr' when 'cat' is sufficient;
 Avoid using 'cat' whenever possible" -- Taylor's Laws of Programming


Attachment: signature.asc
Description: OpenPGP digital signature

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to