kernel: update 4.4 to 4.4.83
Refresh patches. Minor update 704-phy-no-genphy-soft-reset.patch which was partially accepted upstream. Compile-tested on ar71xx. Runtime-tested on ar71xx. Fixes the following vulnerabilities: - CVE-2017-7533 (4.4.80) - CVE-2017-1000111 (4.4.82) - CVE-2017-1000112 (4.4.82) Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
This commit is contained in:
		
				
					committed by
					
						
						Stijn Tintel
					
				
			
			
				
	
			
			
			
						parent
						
							cae20f64b5
						
					
				
				
					commit
					4a1b87aba4
				
			@@ -3,10 +3,10 @@
 | 
			
		||||
LINUX_RELEASE?=1
 | 
			
		||||
 | 
			
		||||
LINUX_VERSION-3.18 = .43
 | 
			
		||||
LINUX_VERSION-4.4 = .79
 | 
			
		||||
LINUX_VERSION-4.4 = .83
 | 
			
		||||
 | 
			
		||||
LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
 | 
			
		||||
LINUX_KERNEL_HASH-4.4.79 = 0dbda3b51e11957fdb96c46844a823a212d46d6db680d77422ddea1a65bebca8
 | 
			
		||||
LINUX_KERNEL_HASH-4.4.83 = 5b5f0a0a6cdadcbe5e1c1c057470bb42880590fc97edee299fb1833d646856b4
 | 
			
		||||
 | 
			
		||||
ifdef KERNEL_PATCHVER
 | 
			
		||||
  LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
 | 
			
		||||
 
 | 
			
		||||
@@ -659,7 +659,7 @@ dwc_otg: Remove duplicate gadget probe/unregister function
 | 
			
		||||
 }
 | 
			
		||||
--- a/drivers/usb/core/hub.c
 | 
			
		||||
+++ b/drivers/usb/core/hub.c
 | 
			
		||||
@@ -4973,7 +4973,7 @@ static void port_event(struct usb_hub *h
 | 
			
		||||
@@ -4975,7 +4975,7 @@ static void port_event(struct usb_hub *h
 | 
			
		||||
 	if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
 | 
			
		||||
 		u16 status = 0, unused;
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
 | 
			
		||||
 
 | 
			
		||||
 	/* Make sure the range is really isolated. */
 | 
			
		||||
 	if (test_pages_isolated(outer_start, end, false)) {
 | 
			
		||||
-		pr_info("%s: [%lx, %lx) PFNs busy\n",
 | 
			
		||||
-		pr_info_ratelimited("%s: [%lx, %lx) PFNs busy\n",
 | 
			
		||||
-			__func__, outer_start, end);
 | 
			
		||||
 		ret = -EBUSY;
 | 
			
		||||
 		goto done;
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 | 
			
		||||
 | 
			
		||||
--- a/kernel/resource.c
 | 
			
		||||
+++ b/kernel/resource.c
 | 
			
		||||
@@ -237,6 +237,12 @@ static int __release_resource(struct res
 | 
			
		||||
@@ -246,6 +246,12 @@ static int __release_resource(struct res
 | 
			
		||||
 {
 | 
			
		||||
 	struct resource *tmp, **p;
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 
 | 
			
		||||
 	if (sock->type == SOCK_PACKET)
 | 
			
		||||
 		po->prot_hook.func = packet_rcv_spkt;
 | 
			
		||||
@@ -3739,6 +3742,16 @@ packet_setsockopt(struct socket *sock, i
 | 
			
		||||
@@ -3744,6 +3747,16 @@ packet_setsockopt(struct socket *sock, i
 | 
			
		||||
 		po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
 | 
			
		||||
 		return 0;
 | 
			
		||||
 	}
 | 
			
		||||
@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 	default:
 | 
			
		||||
 		return -ENOPROTOOPT;
 | 
			
		||||
 	}
 | 
			
		||||
@@ -3791,6 +3804,13 @@ static int packet_getsockopt(struct sock
 | 
			
		||||
@@ -3796,6 +3809,13 @@ static int packet_getsockopt(struct sock
 | 
			
		||||
 	case PACKET_VNET_HDR:
 | 
			
		||||
 		val = po->has_vnet_hdr;
 | 
			
		||||
 		break;
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 | 
			
		||||
--- a/net/core/dev.c
 | 
			
		||||
+++ b/net/core/dev.c
 | 
			
		||||
@@ -4249,6 +4249,9 @@ static enum gro_result dev_gro_receive(s
 | 
			
		||||
@@ -4256,6 +4256,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;
 | 
			
		||||
 
 | 
			
		||||
@@ -5415,6 +5418,48 @@ static void __netdev_adjacent_dev_unlink
 | 
			
		||||
@@ -5422,6 +5425,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)
 | 
			
		||||
@@ -5486,6 +5531,7 @@ static int __netdev_upper_dev_link(struc
 | 
			
		||||
@@ -5493,6 +5538,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;
 | 
			
		||||
@@ -5612,6 +5658,7 @@ void netdev_upper_dev_unlink(struct net_
 | 
			
		||||
@@ -5619,6 +5665,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, i->ref_nr);
 | 
			
		||||
 
 | 
			
		||||
@@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
 | 
			
		||||
 				      &changeupper_info.info);
 | 
			
		||||
 }
 | 
			
		||||
@@ -6152,6 +6199,7 @@ int dev_set_mac_address(struct net_devic
 | 
			
		||||
@@ -6159,6 +6206,7 @@ int dev_set_mac_address(struct net_devic
 | 
			
		||||
 	if (err)
 | 
			
		||||
 		return err;
 | 
			
		||||
 	dev->addr_assign_type = NET_ADDR_SET;
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@
 | 
			
		||||
  * @phydev: the phy_device struct
 | 
			
		||||
--- a/include/linux/phy.h
 | 
			
		||||
+++ b/include/linux/phy.h
 | 
			
		||||
@@ -796,6 +796,7 @@ void phy_start_machine(struct phy_device
 | 
			
		||||
@@ -800,6 +800,7 @@ void phy_start_machine(struct phy_device
 | 
			
		||||
 void phy_stop_machine(struct phy_device *phydev);
 | 
			
		||||
 int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
 | 
			
		||||
 int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,29 +1,11 @@
 | 
			
		||||
--- a/drivers/net/phy/phy_device.c
 | 
			
		||||
+++ b/drivers/net/phy/phy_device.c
 | 
			
		||||
@@ -1213,7 +1213,7 @@ int genphy_config_init(struct phy_device
 | 
			
		||||
 	return 0;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-static int gen10g_soft_reset(struct phy_device *phydev)
 | 
			
		||||
+static int no_soft_reset(struct phy_device *phydev)
 | 
			
		||||
 {
 | 
			
		||||
 	/* Do nothing for now */
 | 
			
		||||
 	return 0;
 | 
			
		||||
@@ -1448,7 +1448,7 @@ static struct phy_driver genphy_driver[]
 | 
			
		||||
 	.phy_id		= 0xffffffff,
 | 
			
		||||
 	.phy_id_mask	= 0xffffffff,
 | 
			
		||||
 	.name		= "Generic PHY",
 | 
			
		||||
-	.soft_reset	= genphy_soft_reset,
 | 
			
		||||
+	.soft_reset	= no_soft_reset,
 | 
			
		||||
 	.config_init	= genphy_config_init,
 | 
			
		||||
 	.features	= PHY_GBIT_FEATURES | SUPPORTED_MII |
 | 
			
		||||
 			  SUPPORTED_AUI | SUPPORTED_FIBRE |
 | 
			
		||||
@@ -1463,7 +1463,7 @@ static struct phy_driver genphy_driver[]
 | 
			
		||||
@@ -1465,7 +1465,7 @@ static struct phy_driver genphy_driver[]
 | 
			
		||||
 	.phy_id         = 0xffffffff,
 | 
			
		||||
 	.phy_id_mask    = 0xffffffff,
 | 
			
		||||
 	.name           = "Generic 10G PHY",
 | 
			
		||||
-	.soft_reset	= gen10g_soft_reset,
 | 
			
		||||
+	.soft_reset	= no_soft_reset,
 | 
			
		||||
+	.soft_reset	= genphy_no_soft_reset,
 | 
			
		||||
 	.config_init    = gen10g_config_init,
 | 
			
		||||
 	.features       = 0,
 | 
			
		||||
 	.config_aneg    = gen10g_config_aneg,
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@
 | 
			
		||||
 		phy_device_free(phydev);
 | 
			
		||||
--- a/include/linux/phy.h
 | 
			
		||||
+++ b/include/linux/phy.h
 | 
			
		||||
@@ -835,6 +835,23 @@ void mdio_bus_exit(void);
 | 
			
		||||
@@ -839,6 +839,23 @@ void mdio_bus_exit(void);
 | 
			
		||||
 
 | 
			
		||||
 extern struct bus_type mdio_bus_type;
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -86,7 +86,7 @@
 | 
			
		||||
 	help
 | 
			
		||||
--- a/net/core/dev.c
 | 
			
		||||
+++ b/net/core/dev.c
 | 
			
		||||
@@ -2736,10 +2736,20 @@ static int xmit_one(struct sk_buff *skb,
 | 
			
		||||
@@ -2743,10 +2743,20 @@ static int xmit_one(struct sk_buff *skb,
 | 
			
		||||
 	if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
 | 
			
		||||
 		dev_queue_xmit_nit(skb, dev);
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
 | 
			
		||||
--- a/drivers/usb/host/pci-quirks.c
 | 
			
		||||
+++ b/drivers/usb/host/pci-quirks.c
 | 
			
		||||
@@ -97,6 +97,8 @@ struct amd_chipset_type {
 | 
			
		||||
@@ -98,6 +98,8 @@ struct amd_chipset_type {
 | 
			
		||||
 	u8 rev;
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
 static struct amd_chipset_info {
 | 
			
		||||
 	struct pci_dev	*nb_dev;
 | 
			
		||||
 	struct pci_dev	*smbus_dev;
 | 
			
		||||
@@ -450,6 +452,10 @@ void usb_amd_dev_put(void)
 | 
			
		||||
@@ -457,6 +459,10 @@ void usb_amd_dev_put(void)
 | 
			
		||||
 }
 | 
			
		||||
 EXPORT_SYMBOL_GPL(usb_amd_dev_put);
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
 /*
 | 
			
		||||
  * Make sure the controller is completely inactive, unable to
 | 
			
		||||
  * generate interrupts or do DMA.
 | 
			
		||||
@@ -529,8 +535,17 @@ reset_needed:
 | 
			
		||||
@@ -536,8 +542,17 @@ reset_needed:
 | 
			
		||||
 	uhci_reset_hc(pdev, base);
 | 
			
		||||
 	return 1;
 | 
			
		||||
 }
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
 static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
 | 
			
		||||
 {
 | 
			
		||||
 	u16 cmd;
 | 
			
		||||
@@ -1095,3 +1110,4 @@ static void quirk_usb_early_handoff(stru
 | 
			
		||||
@@ -1102,3 +1117,4 @@ static void quirk_usb_early_handoff(stru
 | 
			
		||||
 }
 | 
			
		||||
 DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
 | 
			
		||||
 			PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 | 
			
		||||
 | 
			
		||||
--- a/drivers/net/phy/phy.c
 | 
			
		||||
+++ b/drivers/net/phy/phy.c
 | 
			
		||||
@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -893,7 +893,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;
 | 
			
		||||
 		}
 | 
			
		||||
@@ -973,7 +974,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -985,7 +986,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);
 | 
			
		||||
@@ -985,7 +987,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -997,7 +999,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
 	case PHY_HALTED:
 | 
			
		||||
 		if (phydev->link) {
 | 
			
		||||
 			phydev->link = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 | 
			
		||||
 | 
			
		||||
--- a/drivers/net/phy/phy.c
 | 
			
		||||
+++ b/drivers/net/phy/phy.c
 | 
			
		||||
@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -893,7 +893,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;
 | 
			
		||||
 		}
 | 
			
		||||
@@ -973,7 +974,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -985,7 +986,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);
 | 
			
		||||
@@ -985,7 +987,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -997,7 +999,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
 	case PHY_HALTED:
 | 
			
		||||
 		if (phydev->link) {
 | 
			
		||||
 			phydev->link = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -849,6 +849,16 @@ void phy_start(struct phy_device *phydev
 | 
			
		||||
@@ -852,6 +852,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
 | 
			
		||||
@@ -890,8 +900,7 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -893,8 +903,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;
 | 
			
		||||
 		}
 | 
			
		||||
 
 | 
			
		||||
@@ -903,9 +912,7 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -906,9 +915,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;
 | 
			
		||||
@@ -930,8 +937,7 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -933,8 +940,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:
 | 
			
		||||
@@ -941,13 +947,12 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -944,13 +950,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
 | 
			
		||||
@@ -970,14 +975,12 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -982,14 +987,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);
 | 
			
		||||
@@ -985,8 +988,7 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -997,8 +1000,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;
 | 
			
		||||
@@ -1006,11 +1008,11 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -1018,11 +1020,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;
 | 
			
		||||
@@ -1022,11 +1024,11 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -1034,11 +1036,11 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
 
 | 
			
		||||
 			if (phydev->link) {
 | 
			
		||||
 				phydev->state = PHY_RUNNING;
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 | 
			
		||||
 	case PHY_##_state:			\
 | 
			
		||||
--- a/include/linux/phy.h
 | 
			
		||||
+++ b/include/linux/phy.h
 | 
			
		||||
@@ -812,6 +812,7 @@ int phy_ethtool_gset(struct phy_device *
 | 
			
		||||
@@ -816,6 +816,7 @@ int phy_ethtool_gset(struct phy_device *
 | 
			
		||||
 int phy_ethtool_ioctl(struct phy_device *phydev, void *useraddr);
 | 
			
		||||
 int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd);
 | 
			
		||||
 int phy_start_interrupts(struct phy_device *phydev);
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 | 
			
		||||
 | 
			
		||||
--- a/drivers/net/phy/phy.c
 | 
			
		||||
+++ b/drivers/net/phy/phy.c
 | 
			
		||||
@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -893,7 +893,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;
 | 
			
		||||
 		}
 | 
			
		||||
@@ -973,7 +974,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -985,7 +986,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);
 | 
			
		||||
@@ -985,7 +987,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
@@ -997,7 +999,8 @@ void phy_state_machine(struct work_struc
 | 
			
		||||
 	case PHY_HALTED:
 | 
			
		||||
 		if (phydev->link) {
 | 
			
		||||
 			phydev->link = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
--- a/arch/mips/ralink/mt7621.c
 | 
			
		||||
+++ b/arch/mips/ralink/mt7621.c
 | 
			
		||||
@@ -18,6 +18,7 @@
 | 
			
		||||
@@ -21,6 +21,7 @@
 | 
			
		||||
 #include <asm/mach-ralink/ralink_regs.h>
 | 
			
		||||
 #include <asm/mach-ralink/mt7621.h>
 | 
			
		||||
 #include <asm/mips-boards/launch.h>
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #include <pinmux.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -179,6 +180,58 @@ bool plat_cpu_core_present(int core)
 | 
			
		||||
@@ -178,6 +179,58 @@ bool plat_cpu_core_present(int core)
 | 
			
		||||
 	return true;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@@ -79,7 +79,7 @@
 | 
			
		||||
 choice
 | 
			
		||||
--- a/arch/mips/ralink/timer-gic.c
 | 
			
		||||
+++ b/arch/mips/ralink/timer-gic.c
 | 
			
		||||
@@ -12,6 +12,7 @@
 | 
			
		||||
@@ -3,6 +3,7 @@
 | 
			
		||||
 #include <linux/of.h>
 | 
			
		||||
 #include <linux/clk-provider.h>
 | 
			
		||||
 #include <linux/clocksource.h>
 | 
			
		||||
@@ -87,7 +87,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #include "common.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +20,8 @@ void __init plat_time_init(void)
 | 
			
		||||
@@ -10,6 +11,8 @@ void __init plat_time_init(void)
 | 
			
		||||
 {
 | 
			
		||||
 	ralink_of_remap();
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user