From: John Crispin Date: Thu, 5 Mar 2015 20:25:18 +0000 (+0000) Subject: lantiq: fix netdev setup in ltq-ptm-vdsl X-Git-Tag: reboot~4119 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=0d414e1c78bf85232e9597a53a715974578ede6c;p=openwrt%2Fstaging%2Fpepe2k.git lantiq: fix netdev setup in ltq-ptm-vdsl The initial fix for 3.18 in r44346 wrongly treated the newly added parameter of alloc_netdev to be another function pointer, causing ether_config to be skipped during ptm netdev init. Fix this by partially reverting r44346 and properly setting the newly added macro parameter. (Tested on VRX200 board) A similar change might be needed for ltq-ptm-adsl as well. Signed-off-by: Daniel Golle SVN-Revision: 44607 --- diff --git a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c index 9c25c154b5..b328261c5f 100644 --- a/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c +++ b/package/kernel/lantiq/ltq-ptm/src/ifxmips_ptm_vdsl.c @@ -66,7 +66,7 @@ unsigned long cgu_get_pp32_clock(void) return rate; } -static void ptm_setup(struct net_device *); +static void ptm_setup(struct net_device *, int); static struct net_device_stats *ptm_get_stats(struct net_device *); static int ptm_open(struct net_device *); static int ptm_stop(struct net_device *); @@ -134,9 +134,8 @@ unsigned int ifx_ptm_dbg_enable = DBG_ENABLE_MASK_ERR; * #################################### */ -static void ptm_setup(struct net_device *dev) +static void ptm_setup(struct net_device *dev, int ndev) { - int ndev = 0; dev->netdev_ops = &g_ptm_netdev_ops; netif_napi_add(dev, &g_ptm_priv_data.itf[ndev].napi, ptm_napi_poll, 16); dev->watchdog_timeo = ETH_WATCHDOG_TIMEOUT; @@ -952,9 +951,10 @@ static int ifx_ptm_init(void) } for ( i = 0; i < ARRAY_SIZE(g_net_dev); i++ ) { - g_net_dev[i] = alloc_netdev(0, g_net_dev_name[i], ether_setup, ptm_setup); + g_net_dev[i] = alloc_netdev(0, g_net_dev_name[i], NET_NAME_UNKNOWN, ether_setup); if ( g_net_dev[i] == NULL ) goto ALLOC_NETDEV_FAIL; + ptm_setup(g_net_dev[i], i); } for ( i = 0; i < ARRAY_SIZE(g_net_dev); i++ ) {