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 <daniel@makrotopia.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44607
3c298f89-4303-0410-b956-
a3cf2f4a3e73
-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 *);
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 *);
* ####################################
*/
* ####################################
*/
-static void ptm_setup(struct net_device *dev)
+static void ptm_setup(struct net_device *dev, int ndev)
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;
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;
}
for ( i = 0; i < ARRAY_SIZE(g_net_dev); i++ ) {
}
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;
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++ ) {
}
for ( i = 0; i < ARRAY_SIZE(g_net_dev); i++ ) {