summaryrefslogtreecommitdiff
path: root/accel-pppd/ctrl/ipoe/ipoe.c
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pppd/ctrl/ipoe/ipoe.c')
-rw-r--r--accel-pppd/ctrl/ipoe/ipoe.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c
index 30ee87f0..a0ab5b85 100644
--- a/accel-pppd/ctrl/ipoe/ipoe.c
+++ b/accel-pppd/ctrl/ipoe/ipoe.c
@@ -1831,13 +1831,16 @@ void ipoe_recv_up(int ifindex, struct ethhdr *eth, struct iphdr *iph)
if (serv->ifindex != ifindex)
continue;
- if (!serv->opt_up)
+ if (!serv->opt_up) {
+ pthread_mutex_unlock(&serv_lock);
return;
+ }
pthread_mutex_lock(&serv->lock);
list_for_each_entry(ses, &serv->sessions, entry) {
if (ses->yiaddr == iph->saddr) {
pthread_mutex_unlock(&serv->lock);
+ pthread_mutex_unlock(&serv_lock);
return;
}
}