On Tue, Feb 8, 2011 at 5:35 PM, Dan Carpenter <error27@xxxxxxxxx> wrote: > On Tue, Feb 08, 2011 at 02:40:49PM +0100, Belisko Marek wrote: >> On Wed, Jan 26, 2011 at 3:30 PM, Dan Carpenter <error27@xxxxxxxxx> wrote: >> > Also when it does: >> > Â Â Â Âmemcpy(ft1000dev->tx_buf, *pUcFile, byte_length); >> > >> > That should probably be: >> > Â Â Â Âmemcpy(ft1000dev->tx_buf, *pUcFile, word_length * 4); >> No this shouldn't because before you have additional check: >> if (byte_length && ((byte_length % 64) == 0)) >> Â Â Â Â byte_length += 4; >> >> if (byte_length < 64) >> Â Â Â Â byte_length = 68; >> So in my opinion byte_length should stay. > > Yes. ÂWe make byte_length longer than the caller intended. ÂThe caller > knows the size of the source buffer. ÂWe have to pad the length of the > other buffer, but we should fill up the last part with zeroes instead > of reading past the end of the source buffer. > > (I am not very familiar with the code and I haven't looked outside this > function, so I may be wrong). > > Also I really bet that the thing where byte_length can't be a multiple > of 64 is bogus. ÂI've never heard of anything with a requirement like > that. Well I test it and it seems very strange and can't figure out why. Will remove all byte_length manipulations and device doesn't boot properly (finish with error). Add some prinkt to code figure out following: 1. byte_length = word_length *4 is < 64 we need to send via usb 68 bytes (despite 4 bytes are behind 64 (without this it can't boot). 2. also when e.g. word_length is 400 (400*4 = 1600) condition 1600%64 == 0 is valid and we send 1604 bytes to usb (also not sure why but without this change it also doesn't work). For little explanation when we get to state code load we ask device how many bytes should send so we will get reply and send block via usb. So maybe it's related that we send in our assumption correct data but usb request something else to properly working ;) > > regards, > dan carpenter > > > thanks, marek -- as simple and primitive as possible ------------------------------------------------- Marek Belisko - OPEN-NANDRA Freelance Developer Ruska Nova Ves 219 | Presov, 08005 Slovak Republic Tel: +421 915 052 184 skype: marekwhite icq: 290551086 web: http://open-nandra.com _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel