From: Donald Sharp Date: Mon, 5 Jun 2017 16:10:31 +0000 (-0400) Subject: pimd: Reschedule the correct interface for incoming packets X-Git-Tag: frr-4.0-dev~468^2~66 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=9487552c1c5b71a2d210f5b002807793839efa99;p=mirror%2Ffrr.git pimd: Reschedule the correct interface for incoming packets Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c index bd6d16c37b..80ce6f066f 100644 --- a/pimd/pim_pim.c +++ b/pimd/pim_pim.c @@ -286,7 +286,7 @@ static void pim_sock_read_on(struct interface *ifp); static int pim_sock_read(struct thread *t) { - struct interface *ifp; + struct interface *ifp, *orig_ifp; struct pim_interface *pim_ifp; int fd; struct sockaddr_in from; @@ -300,7 +300,7 @@ static int pim_sock_read(struct thread *t) static long long count = 0; int cont = 1; - ifp = THREAD_ARG(t); + orig_ifp = ifp = THREAD_ARG(t); fd = THREAD_FD(t); pim_ifp = ifp->info; @@ -344,7 +344,7 @@ static int pim_sock_read(struct thread *t) result = 0; /* good */ done: - pim_sock_read_on(ifp); + pim_sock_read_on(orig_ifp); if (result) { ++pim_ifp->pim_ifstat_hello_recvfail;