From 364befeccf01c07049b492d90e98c2c13457c7c3 Mon Sep 17 00:00:00 2001 From: Kevin Darbyshire-Bryant Date: Thu, 17 Aug 2017 13:21:21 +0100 Subject: 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 [cleanup commit message, add compile/runtime tested] Signed-off-by: Stijn Tintel --- .../pending-4.4/630-packet_socket_type.patch | 4 ++-- ...80-NET-skip-GRO-for-foreign-MAC-addresses.patch | 10 +++++----- .../generic/pending-4.4/701-phy_extension.patch | 2 +- .../pending-4.4/704-phy-no-genphy-soft-reset.patch | 22 ++-------------------- .../710-phy-add-mdio_register_board_info.patch | 2 +- .../generic/pending-4.4/721-phy_packets.patch | 2 +- .../811-pci_disable_usb_common_quirks.patch | 8 ++++---- 7 files changed, 16 insertions(+), 34 deletions(-) (limited to 'target/linux/generic') diff --git a/target/linux/generic/pending-4.4/630-packet_socket_type.patch b/target/linux/generic/pending-4.4/630-packet_socket_type.patch index d30878684f..8c6b7a37b5 100644 --- a/target/linux/generic/pending-4.4/630-packet_socket_type.patch +++ b/target/linux/generic/pending-4.4/630-packet_socket_type.patch @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau 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 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; diff --git a/target/linux/generic/pending-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 0c5871048b..0616eaa7c0 100644 --- a/target/linux/generic/pending-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau --- 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 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 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 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 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; diff --git a/target/linux/generic/pending-4.4/701-phy_extension.patch b/target/linux/generic/pending-4.4/701-phy_extension.patch index 6cb3fdfd44..a1c48b7a3a 100644 --- a/target/linux/generic/pending-4.4/701-phy_extension.patch +++ b/target/linux/generic/pending-4.4/701-phy_extension.patch @@ -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); diff --git a/target/linux/generic/pending-4.4/704-phy-no-genphy-soft-reset.patch b/target/linux/generic/pending-4.4/704-phy-no-genphy-soft-reset.patch index d876187d7c..7cec6d3226 100644 --- a/target/linux/generic/pending-4.4/704-phy-no-genphy-soft-reset.patch +++ b/target/linux/generic/pending-4.4/704-phy-no-genphy-soft-reset.patch @@ -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, diff --git a/target/linux/generic/pending-4.4/710-phy-add-mdio_register_board_info.patch b/target/linux/generic/pending-4.4/710-phy-add-mdio_register_board_info.patch index 4886dd0e3a..bd15df2384 100644 --- a/target/linux/generic/pending-4.4/710-phy-add-mdio_register_board_info.patch +++ b/target/linux/generic/pending-4.4/710-phy-add-mdio_register_board_info.patch @@ -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; diff --git a/target/linux/generic/pending-4.4/721-phy_packets.patch b/target/linux/generic/pending-4.4/721-phy_packets.patch index b163684c69..89ffdc558d 100644 --- a/target/linux/generic/pending-4.4/721-phy_packets.patch +++ b/target/linux/generic/pending-4.4/721-phy_packets.patch @@ -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); diff --git a/target/linux/generic/pending-4.4/811-pci_disable_usb_common_quirks.patch b/target/linux/generic/pending-4.4/811-pci_disable_usb_common_quirks.patch index f22bf804ef..c990681067 100644 --- a/target/linux/generic/pending-4.4/811-pci_disable_usb_common_quirks.patch +++ b/target/linux/generic/pending-4.4/811-pci_disable_usb_common_quirks.patch @@ -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); -- cgit v1.2.3