Thanks for the info. Sorry to ask you again, where does the usb driver (GobiNet in my case) comes into picture in receive packet flow. I suspect that the driver has to send some data (may be with some interrupts) to rx_complete and then it will go to rx_submit. Is my understanding is correct ? or if rx_submit is the first function to generate the data, then where does Gobinet driver comes into place. Could you please explain. I don't know how some usb driver works. This is the first time i am working on it. On Wed, May 25, 2016 at 4:36 PM, Bjørn Mork <bjorn@mork.no> wrote:
Narasimha M <mnarasimha786@gmail.com> writes:
I am able to see the corrupted data in rx_complete itself.
Then the only likely source is the device. In theory it could be the host controller, but that is very unliekely unless you use some out-of-tree driver there too.
You can easily verify that usbnet can be ruled out by follwing the earlier usbmon advice.
What are the possibilities for the data corruption in rx_complete. Any fixes to resolve this. And from where the data in rx_submit generates
rx_submit allocates new buffers using __netdev_alloc_skb_ip_align() like many other network drivers.
Bjørn
-- Narasimha