On 16.03.2018 16:47, sth...@nethelp.no wrote:
>> Can you test this patch? I did not tested it, but I think it should fix
>> this issue.
> 
> Looks like this is a patch against HEAD. I don't have any boxes
> running HEAD, but I can get one installed and test the patch this
> weekend (unless you want to produce a patch against 11.1-STABLE).
> 
> I tried the patch manually applied on 11.1-STABLE, but got lots of
> errors during kernel compilation (see the end of this message).

I made the patch for stable/11, but I need some time to build
kernel-toolchain, since compiler from head/ doesn't want to build
stable/11 kernel :)

-- 
WBR, Andrey V. Elsukov
Index: stable/11/sys/net/if_ethersubr.c
===================================================================
--- stable/11/sys/net/if_ethersubr.c	(revision 331055)
+++ stable/11/sys/net/if_ethersubr.c	(working copy)
@@ -292,7 +292,6 @@ ether_output(struct ifnet *ifp, struct mbuf *m,
 	int hlen;	/* link layer header length */
 	uint32_t pflags;
 	struct llentry *lle = NULL;
-	struct rtentry *rt0 = NULL;
 	int addref = 0;
 
 	phdr = NULL;
@@ -320,9 +319,20 @@ ether_output(struct ifnet *ifp, struct mbuf *m,
 				phdr = lle->r_linkdata;
 				hlen = lle->r_hdrlen;
 				pflags = lle->r_flags;
+				/*
+				 * XXX: Check if we have feedback request
+				 *      from arptimer()/nd6_llinfo_timer().
+				 */
+				if ((pflags & RLLE_VALID) &&
+				    lle->r_skip_req != 0) {
+					LLE_REQ_LOCK(lle);
+					/* Notify that entry was used */
+					lle->r_skip_req = 0;
+					lle->lle_hittime = time_uptime;
+					LLE_REQ_UNLOCK(lle);
+				}
 			}
 		}
-		rt0 = ro->ro_rt;
 	}
 
 #ifdef MAC

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to