Index: linux-4.1.52/drivers/net/ppp/ppp_generic.c =================================================================== --- linux-4.1.52.orig/drivers/net/ppp/ppp_generic.c 2018-01-22 14:21:12.281630779 +0800 +++ linux-4.1.52/drivers/net/ppp/ppp_generic.c 2018-01-23 13:21:26.001634991 +0800 @@ -3028,7 +3028,7 @@ * num[1] == 1: vlanMux mode: ppp0.100, ppp1.200... * num[1] == 2: msc (multiple service mode) ppp0_1, ppp1_3... * num[1] == 3: pppoa0, pppoa1... - * + * num[1] == 4: pppowwan */ num[0] = u<<(32-(FIELD2+FIELD1+FIELD0))>>(32-FIELD0); num[1] = u<<(32-(FIELD2+FIELD1))>>(32-FIELD1); @@ -3049,6 +3049,11 @@ { sprintf(dev->name, "pppoa%d", num[0]); } +#if 1 /* support pppowwan */ + else if (num[1] == 4){ /* pppowwan */ + sprintf(dev->name, "pppowwan%d", num[0]); + } +#endif } #else sprintf(dev->name, "ppp%d", unit); @@ -3106,6 +3111,9 @@ ppp_lock(ppp); if (!ppp->closing) { #if defined(CONFIG_BCM_KF_PPP) +#if 1 /* support pppowwan */ + if(!strstr(ppp->dev->name,"pppowwan")){ +#endif int err; struct net_device *next_dev; next_dev = netdev_path_next_dev(ppp->dev); @@ -3118,6 +3126,9 @@ } if(next_dev != NULL) dev_put(next_dev); +#if 1 /* support pppowwan */ + } +#endif #endif ppp->closing = 1; ppp_unlock(ppp);