Index: linux-3.10.20/net/nat/hw_nat/ra_nat.c =================================================================== --- linux-3.10.20.orig/net/nat/hw_nat/ra_nat.c +++ linux-3.10.20/net/nat/hw_nat/ra_nat.c @@ -3577,12 +3577,14 @@ static void PpeSetDstPort(uint32_t Ebl) struct net_device *dev; #if defined (CONFIG_SUPPORT_OPENWRT) dev=ra_dev_get_by_name("eth0"); - printk("eth2 ifindex =%x\n", dev->ifindex); + printk("eth0 ifindex =%x\n", dev->ifindex); DstPort[dev->ifindex] = dev; + DP_GMAC1 = dev->ifindex; #ifdef CONFIG_RAETH_GMAC2 dev=ra_dev_get_by_name("eth1"); - printk("eth2 ifindex =%x\n", dev->ifindex); + printk("eth1 ifindex =%x\n", dev->ifindex); DstPort[dev->ifindex] = dev; + DPORT_GMAC2 = dev->ifindex;; #endif #else dev=ra_dev_get_by_name("eth2"); @@ -3616,9 +3618,12 @@ static void PpeSetDstPort(uint32_t Ebl) DstPort[DP_USB] = ra_dev_get_by_name("eth1"); // USB interface name #endif // CONFIG_RA_HW_NAT_NIC_USB // } else { - - -#if defined (CONFIG_RA_HW_NAT_WIFI_NEW_ARCH) +#if defined (CONFIG_RA_HW_NAT_WIFI_NEW_ARCH) + +#if 1 + if (DstPort[DP_GMAC]) dev_put(DstPort[DP_GMAC]); + if (DstPort[DP_GMAC2]) dev_put(DstPort[DP_GMAC2]); +#else int j = 0; for (j=0; j