fix from David Daney, on busybox mailing list:
 > The problem is that if the zcip protocol times out at about the same 
 > time another ARP packet is being received, the newly calculated timeout 
 > may be set to wait forever.  This prevents the protocol from progressing 
 > through its various states.
 > 
 > The Fix is to set the timeout to zero if it used to be a positive 
 > number, but it has already expired.  This causes the next protocol state 
 > to be entered immediately instead of never.
 > 
 > If OK please commit.
 > 
 > Also note that if you may have to apply the patch on this page:
 > 
 > http://www.science.uva.nl/research/air/wiki/LinkLocalARPMeasurements
 > 
 > To the linux kernel to get proper zcip behavior.
 > 

diff --git a/networking/zcip.c b/networking/zcip.c
index 716c4a5..ed30bb3 100644
--- a/networking/zcip.c
+++ b/networking/zcip.c
@@ -437,7 +437,7 @@
 
 				gettimeofday(&tv2, NULL);
 				if (timercmp(&tv1, &tv2, <)) {
-					timeout = -1;
+					timeout = 0;
 				} else {
 					timersub(&tv1, &tv2, &tv1);
 					timeout = 1000 * tv1.tv_sec