From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Hershberger Date: Wed, 26 Sep 2018 16:48:52 -0500 Subject: [U-Boot] [PATCH v2 00/10] net: Fix packet corruption issue when handling asynch replies Message-ID: <20180926214902.38803-1-joe.hershberger@ni.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de The issue [1] was reported by (Peter) Tran Tien Dat. Unfortunately his fix for the issue broke notmal operation and I don't feel is a good way to address the issue. Also, the situation was not covered in the unit tests, so we'll add them now. First we refactor the unit test capability of the sandbox ethernet fake driver so that we can exercise that part of the network stack, then add the tests where we prove that the async replies work, but that in the process, the action expected by the user (ping in this case) is broken. Lastly, we correct the problem and change the unit tests to also expect success of the user's operation. [1] https://patchwork.ozlabs.org/patch/939617/ Changes in v2: - Added parameter comments - Changed return value to use typical error approach - In test, stop calling reply functions when one matches - add comments as to the use of the uts variable - add missing commit message - check the return of the injection handler and pass on overflow error - rename local "uc_priv" variable to "dev_priv" to not be misleading. - return an error instead of 0 / 1 - return bool instead of int Joe Hershberger (10): net: sandbox: Move disabled flag into priv struct net: sandbox: Refactor sandbox send function net: sandbox: Make the fake eth driver response configurable net: sandbox: Share the priv structure with tests net: sandbox: Allow fake eth to handle more than 1 packet response net: Add an accessor to know if waiting for ARP net: sandbox: Add a priv ptr for tests to use test: eth: Add a test for ARP requests test: eth: Add a test for the target being pinged net: Don't overwrite waiting packets with asynchronous replies arch/sandbox/include/asm/eth.h | 93 +++++++++ drivers/net/sandbox.c | 417 +++++++++++++++++++++++++++++++---------- include/net.h | 9 + net/arp.c | 20 +- net/arp.h | 1 + net/net.c | 8 + net/ping.c | 7 +- test/dm/eth.c | 170 +++++++++++++++++ 8 files changed, 616 insertions(+), 109 deletions(-) -- 2.11.0