aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/kernel-version.mk4
-rw-r--r--target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch2
-rw-r--r--target/linux/generic/patches-4.4/201-extra_optimization.patch16
-rw-r--r--target/linux/generic/patches-4.4/202-reduce_module_size.patch2
-rw-r--r--target/linux/generic/patches-4.4/280-rfkill-stubs.patch32
-rw-r--r--target/linux/generic/patches-4.4/304-mips_disable_fpu.patch2
-rw-r--r--target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch2
-rw-r--r--target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch10
-rw-r--r--target/linux/generic/patches-4.4/902-debloat_proc.patch4
-rw-r--r--target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch6
-rw-r--r--target/linux/mediatek/patches-4.4/0001-NET-multi-phy-support.patch6
-rw-r--r--target/linux/mvebu/patches-4.4/125-phy-provide-a-hook-for-link-up-link-down-events.patch18
-rw-r--r--target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch6
13 files changed, 53 insertions, 57 deletions
diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 0db1b357cb..64b25e8b4e 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -4,11 +4,11 @@ LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .29
LINUX_VERSION-4.1 = .20
-LINUX_VERSION-4.4 = .22
+LINUX_VERSION-4.4 = .23
LINUX_KERNEL_MD5SUM-3.18.29 = b25737a0bc98e80d12200de93f239c28
LINUX_KERNEL_MD5SUM-4.1.20 = 075c38a3a23ca5bc80437b13606df00a
-LINUX_KERNEL_MD5SUM-4.4.22 = 404802389c7f0bbe94dda95f9d058d9e
+LINUX_KERNEL_MD5SUM-4.4.23 = 39c3e2090931e83b7dd3438e7fb276d4
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
diff --git a/target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch b/target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch
index f823b59cb9..e877b0c947 100644
--- a/target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch
+++ b/target/linux/ar71xx/patches-4.4/500-MIPS-fw-myloader.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
-@@ -222,6 +222,7 @@ cflags-$(CONFIG_MIPS_COMPACT_BRANCHES_AL
+@@ -218,6 +218,7 @@ endif
#
libs-$(CONFIG_FW_ARC) += arch/mips/fw/arc/
libs-$(CONFIG_FW_CFE) += arch/mips/fw/cfe/
diff --git a/target/linux/generic/patches-4.4/201-extra_optimization.patch b/target/linux/generic/patches-4.4/201-extra_optimization.patch
index bcb6a007b9..508627a7e4 100644
--- a/target/linux/generic/patches-4.4/201-extra_optimization.patch
+++ b/target/linux/generic/patches-4.4/201-extra_optimization.patch
@@ -1,14 +1,18 @@
--- a/Makefile
+++ b/Makefile
-@@ -608,9 +608,9 @@ include arch/$(SRCARCH)/Makefile
- KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
+@@ -619,12 +619,12 @@ KBUILD_CFLAGS += $(call cc-option,-fno-d
+ KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
--KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
-+KBUILD_CFLAGS += -Os $(EXTRA_OPTIMIZATION) $(call cc-disable-warning,maybe-uninitialized,)
+-KBUILD_CFLAGS += -Os
++KBUILD_CFLAGS += -Os $(EXTRA_OPTIMIZATION)
else
+ ifdef CONFIG_PROFILE_ALL_BRANCHES
-KBUILD_CFLAGS += -O2
-+KBUILD_CFLAGS += -O2 -fno-reorder-blocks -fno-tree-ch $(EXTRA_OPTIMIZATION)
++KBUILD_CFLAGS += -O2 $(EXTRA_OPTIMIZATION)
+ else
+-KBUILD_CFLAGS += -O2
++KBUILD_CFLAGS += -O2 -fno-reorder-blocks -fno-tree-ch $(EXTRA_OPTIMIZATION)
+ endif
endif
- # Tell gcc to never replace conditional load with a non-conditional one
diff --git a/target/linux/generic/patches-4.4/202-reduce_module_size.patch b/target/linux/generic/patches-4.4/202-reduce_module_size.patch
index cef04d1a43..283d48d992 100644
--- a/target/linux/generic/patches-4.4/202-reduce_module_size.patch
+++ b/target/linux/generic/patches-4.4/202-reduce_module_size.patch
@@ -1,6 +1,6 @@
--- a/Makefile
+++ b/Makefile
-@@ -398,7 +398,7 @@ KBUILD_CFLAGS_KERNEL :=
+@@ -402,7 +402,7 @@ KBUILD_CFLAGS_KERNEL :=
KBUILD_AFLAGS := -D__ASSEMBLY__
KBUILD_AFLAGS_MODULE := -DMODULE
KBUILD_CFLAGS_MODULE := -DMODULE
diff --git a/target/linux/generic/patches-4.4/280-rfkill-stubs.patch b/target/linux/generic/patches-4.4/280-rfkill-stubs.patch
index 88649023ea..96a98e219a 100644
--- a/target/linux/generic/patches-4.4/280-rfkill-stubs.patch
+++ b/target/linux/generic/patches-4.4/280-rfkill-stubs.patch
@@ -1,7 +1,5 @@
-Index: linux-4.4.21/net/rfkill/Kconfig
-===================================================================
---- linux-4.4.21.orig/net/rfkill/Kconfig 2016-09-15 08:29:29.000000000 +0200
-+++ linux-4.4.21/net/rfkill/Kconfig 2016-09-27 18:23:27.210404930 +0200
+--- a/net/rfkill/Kconfig
++++ b/net/rfkill/Kconfig
@@ -1,7 +1,11 @@
#
# RF switch subsystem configuration
@@ -15,7 +13,7 @@ Index: linux-4.4.21/net/rfkill/Kconfig
tristate "RF switch subsystem support"
help
Say Y here if you want to have control over RF switches
-@@ -13,19 +17,19 @@
+@@ -13,19 +17,19 @@ menuconfig RFKILL
# LED trigger support
config RFKILL_LEDS
bool
@@ -38,7 +36,7 @@ Index: linux-4.4.21/net/rfkill/Kconfig
depends on REGULATOR
help
This options enable controlling radio transmitters connected to
-@@ -36,7 +40,7 @@
+@@ -36,7 +40,7 @@ config RFKILL_REGULATOR
config RFKILL_GPIO
tristate "GPIO RFKILL driver"
@@ -47,10 +45,8 @@ Index: linux-4.4.21/net/rfkill/Kconfig
depends on GPIOLIB || COMPILE_TEST
default n
help
-Index: linux-4.4.21/net/rfkill/Makefile
-===================================================================
---- linux-4.4.21.orig/net/rfkill/Makefile 2016-09-15 08:29:29.000000000 +0200
-+++ linux-4.4.21/net/rfkill/Makefile 2016-09-27 18:22:12.373010155 +0200
+--- a/net/rfkill/Makefile
++++ b/net/rfkill/Makefile
@@ -4,6 +4,6 @@
rfkill-y += core.o
@@ -59,11 +55,9 @@ Index: linux-4.4.21/net/rfkill/Makefile
+obj-$(CONFIG_RFKILL_FULL) += rfkill.o
obj-$(CONFIG_RFKILL_REGULATOR) += rfkill-regulator.o
obj-$(CONFIG_RFKILL_GPIO) += rfkill-gpio.o
-Index: linux-4.4.21/net/Makefile
-===================================================================
---- linux-4.4.21.orig/net/Makefile 2016-09-15 08:29:29.000000000 +0200
-+++ linux-4.4.21/net/Makefile 2016-09-27 18:23:43.954773045 +0200
-@@ -49,7 +49,7 @@
+--- a/net/Makefile
++++ b/net/Makefile
+@@ -49,7 +49,7 @@ obj-$(CONFIG_MAC80211) += mac80211/
obj-$(CONFIG_TIPC) += tipc/
obj-$(CONFIG_NETLABEL) += netlabel/
obj-$(CONFIG_IUCV) += iucv/
@@ -72,11 +66,9 @@ Index: linux-4.4.21/net/Makefile
obj-$(CONFIG_NET_9P) += 9p/
obj-$(CONFIG_CAIF) += caif/
ifneq ($(CONFIG_DCB),)
-Index: linux-4.4.21/include/linux/rfkill.h
-===================================================================
---- linux-4.4.21.orig/include/linux/rfkill.h 2016-09-15 08:29:29.000000000 +0200
-+++ linux-4.4.21/include/linux/rfkill.h 2016-09-27 18:47:20.426653801 +0200
-@@ -64,7 +64,7 @@
+--- a/include/linux/rfkill.h
++++ b/include/linux/rfkill.h
+@@ -64,7 +64,7 @@ struct rfkill_ops {
int (*set_block)(void *data, bool blocked);
};
diff --git a/target/linux/generic/patches-4.4/304-mips_disable_fpu.patch b/target/linux/generic/patches-4.4/304-mips_disable_fpu.patch
index 599e950ac8..aabb4f12b2 100644
--- a/target/linux/generic/patches-4.4/304-mips_disable_fpu.patch
+++ b/target/linux/generic/patches-4.4/304-mips_disable_fpu.patch
@@ -49,7 +49,7 @@ v2: incorporated changes suggested by Jonas Gorski
select OF
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
-@@ -289,7 +289,7 @@ OBJCOPYFLAGS += --remove-section=.regin
+@@ -285,7 +285,7 @@ OBJCOPYFLAGS += --remove-section=.regin
head-y := arch/mips/kernel/head.o
libs-y += arch/mips/lib/
diff --git a/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch b/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch
index 07fc097f1d..c8c2654697 100644
--- a/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch
+++ b/target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch
@@ -169,7 +169,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
err = br_ip6_multicast_add_group(br, port,
- &grec->grec_mca, vid);
+ &grec->grec_mca, vid, src);
- if (!err)
+ if (err)
break;
}
@@ -1427,7 +1453,8 @@ br_multicast_leave_group(struct net_brid
diff --git a/target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index cbd1a08127..a18689c2e5 100644
--- a/target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4205,6 +4205,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4221,6 +4221,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;
-@@ -5357,6 +5360,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5373,6 +5376,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *private)
-@@ -5428,6 +5473,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5444,6 +5489,7 @@ static int __netdev_upper_dev_link(struc
goto rollback_lower_mesh;
}
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
return 0;
-@@ -5554,6 +5600,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5570,6 +5616,7 @@ void netdev_upper_dev_unlink(struct net_
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
__netdev_adjacent_dev_unlink(dev, i->dev);
@@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
}
-@@ -6094,6 +6141,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6110,6 +6157,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
diff --git a/target/linux/generic/patches-4.4/902-debloat_proc.patch b/target/linux/generic/patches-4.4/902-debloat_proc.patch
index 04a7b638c1..45dc20bcd2 100644
--- a/target/linux/generic/patches-4.4/902-debloat_proc.patch
+++ b/target/linux/generic/patches-4.4/902-debloat_proc.patch
@@ -184,7 +184,7 @@
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -2646,10 +2646,12 @@ static const struct file_operations fib_
+@@ -2642,10 +2642,12 @@ static const struct file_operations fib_
int __net_init fib_proc_init(struct net *net)
{
@@ -199,7 +199,7 @@
&fib_triestat_fops))
goto out2;
-@@ -2659,17 +2661,21 @@ int __net_init fib_proc_init(struct net
+@@ -2655,17 +2657,21 @@ int __net_init fib_proc_init(struct net
return 0;
out3:
diff --git a/target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch b/target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch
index c19ddd3c5f..381170a396 100644
--- a/target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch
+++ b/target/linux/lantiq/patches-4.4/0026-NET-multi-phy-support.patch
@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -888,7 +888,8 @@ void phy_state_machine(struct work_struc
+@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */
if (!phydev->link) {
phydev->state = PHY_NOLINK;
@@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
phydev->adjust_link(phydev->attached_dev);
break;
}
-@@ -971,7 +972,8 @@ void phy_state_machine(struct work_struc
+@@ -973,7 +974,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev);
} else {
phydev->state = PHY_NOLINK;
@@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
}
phydev->adjust_link(phydev->attached_dev);
-@@ -983,7 +985,8 @@ void phy_state_machine(struct work_struc
+@@ -985,7 +987,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;
diff --git a/target/linux/mediatek/patches-4.4/0001-NET-multi-phy-support.patch b/target/linux/mediatek/patches-4.4/0001-NET-multi-phy-support.patch
index 4b75613979..b60eac0efc 100644
--- a/target/linux/mediatek/patches-4.4/0001-NET-multi-phy-support.patch
+++ b/target/linux/mediatek/patches-4.4/0001-NET-multi-phy-support.patch
@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -888,7 +888,8 @@ void phy_state_machine(struct work_struc
+@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */
if (!phydev->link) {
phydev->state = PHY_NOLINK;
@@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
phydev->adjust_link(phydev->attached_dev);
break;
}
-@@ -971,7 +972,8 @@ void phy_state_machine(struct work_struc
+@@ -973,7 +974,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev);
} else {
phydev->state = PHY_NOLINK;
@@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
}
phydev->adjust_link(phydev->attached_dev);
-@@ -983,7 +985,8 @@ void phy_state_machine(struct work_struc
+@@ -985,7 +987,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;
diff --git a/target/linux/mvebu/patches-4.4/125-phy-provide-a-hook-for-link-up-link-down-events.patch b/target/linux/mvebu/patches-4.4/125-phy-provide-a-hook-for-link-up-link-down-events.patch
index 17c1eadc16..b00968961f 100644
--- a/target/linux/mvebu/patches-4.4/125-phy-provide-a-hook-for-link-up-link-down-events.patch
+++ b/target/linux/mvebu/patches-4.4/125-phy-provide-a-hook-for-link-up-link-down-events.patch
@@ -22,7 +22,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -847,6 +847,16 @@ void phy_start(struct phy_device *phydev
+@@ -849,6 +849,16 @@ void phy_start(struct phy_device *phydev
}
EXPORT_SYMBOL(phy_start);
@@ -39,7 +39,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
/**
* phy_state_machine - Handle the state machine
* @work: work_struct that describes the work to be done
-@@ -888,8 +898,7 @@ void phy_state_machine(struct work_struc
+@@ -890,8 +900,7 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */
if (!phydev->link) {
phydev->state = PHY_NOLINK;
@@ -49,7 +49,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
break;
}
-@@ -901,9 +910,7 @@ void phy_state_machine(struct work_struc
+@@ -903,9 +912,7 @@ void phy_state_machine(struct work_struc
/* If AN is done, we're running */
if (err > 0) {
phydev->state = PHY_RUNNING;
@@ -60,7 +60,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
} else if (0 == phydev->link_timeout--)
needs_aneg = true;
break;
-@@ -928,8 +935,7 @@ void phy_state_machine(struct work_struc
+@@ -930,8 +937,7 @@ void phy_state_machine(struct work_struc
}
}
phydev->state = PHY_RUNNING;
@@ -70,7 +70,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
}
break;
case PHY_FORCING:
-@@ -939,13 +945,12 @@ void phy_state_machine(struct work_struc
+@@ -941,13 +947,12 @@ void phy_state_machine(struct work_struc
if (phydev->link) {
phydev->state = PHY_RUNNING;
@@ -86,7 +86,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
break;
case PHY_RUNNING:
/* Only register a CHANGE if we are polling or ignoring
-@@ -968,14 +973,12 @@ void phy_state_machine(struct work_struc
+@@ -970,14 +975,12 @@ void phy_state_machine(struct work_struc
if (phydev->link) {
phydev->state = PHY_RUNNING;
@@ -103,7 +103,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
if (phy_interrupt_is_valid(phydev))
err = phy_config_interrupt(phydev,
PHY_INTERRUPT_ENABLED);
-@@ -983,8 +986,7 @@ void phy_state_machine(struct work_struc
+@@ -985,8 +988,7 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;
@@ -113,7 +113,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
do_suspend = true;
}
break;
-@@ -1004,11 +1006,11 @@ void phy_state_machine(struct work_struc
+@@ -1006,11 +1008,11 @@ void phy_state_machine(struct work_struc
if (phydev->link) {
phydev->state = PHY_RUNNING;
@@ -127,7 +127,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
} else {
phydev->state = PHY_AN;
phydev->link_timeout = PHY_AN_TIMEOUT;
-@@ -1020,11 +1022,11 @@ void phy_state_machine(struct work_struc
+@@ -1022,11 +1024,11 @@ void phy_state_machine(struct work_struc
if (phydev->link) {
phydev->state = PHY_RUNNING;
diff --git a/target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch b/target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch
index 2c3807d344..f49660a56e 100644
--- a/target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch
+++ b/target/linux/ramips/patches-4.4/0034-NET-multi-phy-support.patch
@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -888,7 +888,8 @@ void phy_state_machine(struct work_struc
+@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */
if (!phydev->link) {
phydev->state = PHY_NOLINK;
@@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
phydev->adjust_link(phydev->attached_dev);
break;
}
-@@ -971,7 +972,8 @@ void phy_state_machine(struct work_struc
+@@ -973,7 +974,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev);
} else {
phydev->state = PHY_NOLINK;
@@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
}
phydev->adjust_link(phydev->attached_dev);
-@@ -983,7 +985,8 @@ void phy_state_machine(struct work_struc
+@@ -985,7 +987,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;