Commit 43dc8a31 authored by Stephen Hemminger's avatar Stephen Hemminger

[NET]: Fix syncppp wan device regression.

In 2.6.0-test6, I put in a patch which fixed sealevel driver, but broke
all the other wan devices because it got rid of one level of indirection.

This puts back the indirection, and hopefully prevents others from
misreading it the same way. The SPPP drivers expect that
netdev->priv points to device local structure whose first element
is a pointer to the ppp device. 
parent d64393ae
......@@ -1069,6 +1069,9 @@ void sppp_attach(struct ppp_device *pd)
struct sppp *sp = &pd->sppp;
unsigned long flags;
/* Make sure embedding is safe for sppp_of */
BUG_ON(sppp_of(dev) != sp);
spin_lock_irqsave(&spppq_lock, flags);
/* Initialize keepalive handler. */
if (! spppq)
......
......@@ -59,8 +59,9 @@ struct ppp_device
static inline struct sppp *sppp_of(struct net_device *dev)
{
struct ppp_device *ppp = dev->priv;
return &ppp->sppp;
struct ppp_device **ppp = dev->priv;
BUG_ON((*ppp)->dev != dev);
return &(*ppp)->sppp;
}
#define PP_KEEPALIVE 0x01 /* use keepalive protocol */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment