sppp_lcp_open() is called from other places without that lock held, so it
is probably not totally stupid to drop it in the timer handler too.
It's good (and surprising) that someone is actually using that stuff.
Please beat on it for a while.
diff -puN drivers/net/wan/syncppp.c~syncppp-locking-fix drivers/net/wan/syncppp.c
--- 25/drivers/net/wan/syncppp.c~syncppp-locking-fix Fri May 23 14:28:50 2003
+++ 25-akpm/drivers/net/wan/syncppp.c Fri May 23 14:29:24 2003
@@ -1297,6 +1297,7 @@ static void sppp_cp_timeout (unsigned lo
spin_unlock_irqrestore(&spppq_lock, flags);
return;
}
+ spin_unlock_irqrestore(&spppq_lock, flags);
switch (sp->lcp.state) {
case LCP_STATE_CLOSED:
/* No ACK for Configure-Request, retry. */
@@ -1333,7 +1334,6 @@ static void sppp_cp_timeout (unsigned lo
}
break;
}
- spin_unlock_irqrestore(&spppq_lock, flags);
}
static char *sppp_lcp_type_name (u8 type)
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/