diff options
19 files changed, 44 insertions, 228 deletions
diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 26b964385b..f212c7ad69 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -3,12 +3,12 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .23 -LINUX_VERSION-4.1 = .13 +LINUX_VERSION-4.1 = .15 LINUX_VERSION-4.3 = LINUX_VERSION-4.4 = LINUX_KERNEL_MD5SUM-3.18.23 = dc6d265ab38716be3676ac294b481ad8 -LINUX_KERNEL_MD5SUM-4.1.13 = af9dd5d8f71185a64a8eccface15fc00 +LINUX_KERNEL_MD5SUM-4.1.15 = b227333912b161c96ff3e30f5041e1c0 LINUX_KERNEL_MD5SUM-4.3 = 58b35794eee3b6d52ce7be39357801e7 LINUX_KERNEL_MD5SUM-4.4 = 9a78fa2eb6c68ca5a40ed5af08142599 diff --git a/target/linux/ar71xx/patches-4.1/910-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-4.1/910-unaligned_access_hacks.patch index bd41bdf479..7fee654f03 100644 --- a/target/linux/ar71xx/patches-4.1/910-unaligned_access_hacks.patch +++ b/target/linux/ar71xx/patches-4.1/910-unaligned_access_hacks.patch @@ -214,7 +214,7 @@ #include <linux/uaccess.h> #include <linux/ipv6.h> #include <linux/icmpv6.h> -@@ -772,10 +773,10 @@ static void tcp_v6_send_response(struct +@@ -775,10 +776,10 @@ static void tcp_v6_send_response(struct topt = (__be32 *)(t1 + 1); if (tsecr) { @@ -241,7 +241,7 @@ */ --- a/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c -@@ -424,7 +424,7 @@ int ipv6_recv_error(struct sock *sk, str +@@ -426,7 +426,7 @@ int ipv6_recv_error(struct sock *sk, str ipv6_iface_scope_id(&sin->sin6_addr, IP6CB(skb)->iif); } else { @@ -250,7 +250,7 @@ &sin->sin6_addr); sin->sin6_scope_id = 0; } -@@ -761,12 +761,12 @@ int ip6_datagram_send_ctl(struct net *ne +@@ -763,12 +763,12 @@ int ip6_datagram_send_ctl(struct net *ne } if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { @@ -659,7 +659,7 @@ #define IP6_MF 0x0001 #define IP6_OFFSET 0xFFF8 -@@ -396,8 +396,8 @@ static inline void __ipv6_addr_set_half( +@@ -415,8 +415,8 @@ static inline void __ipv6_addr_set_half( } #endif #endif @@ -670,7 +670,7 @@ } static inline void ipv6_addr_set(struct in6_addr *addr, -@@ -456,6 +456,8 @@ static inline bool ipv6_prefix_equal(con +@@ -475,6 +475,8 @@ static inline bool ipv6_prefix_equal(con const __be32 *a1 = addr1->s6_addr32; const __be32 *a2 = addr2->s6_addr32; unsigned int pdw, pbi; @@ -679,7 +679,7 @@ /* check complete u32 in prefix */ pdw = prefixlen >> 5; -@@ -464,7 +466,9 @@ static inline bool ipv6_prefix_equal(con +@@ -483,7 +485,9 @@ static inline bool ipv6_prefix_equal(con /* check incomplete u32 in prefix */ pbi = prefixlen & 0x1f; @@ -690,7 +690,7 @@ return false; return true; -@@ -607,13 +611,13 @@ static inline void ipv6_addr_set_v4mappe +@@ -627,13 +631,13 @@ static inline void ipv6_addr_set_v4mappe */ static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen) { @@ -706,7 +706,7 @@ if (xb) return i * 32 + 31 - __fls(ntohl(xb)); } -@@ -739,17 +743,18 @@ static inline __be32 ip6_make_flowlabel( +@@ -759,17 +763,18 @@ static inline __be32 ip6_make_flowlabel( static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass, __be32 flowlabel) { diff --git a/target/linux/bcm53xx/patches-4.1/191-usb-xhci-add-Broadcom-specific-fake-doorbell.patch b/target/linux/bcm53xx/patches-4.1/191-usb-xhci-add-Broadcom-specific-fake-doorbell.patch index f25a9e5f12..c2cbe2cc09 100644 --- a/target/linux/bcm53xx/patches-4.1/191-usb-xhci-add-Broadcom-specific-fake-doorbell.patch +++ b/target/linux/bcm53xx/patches-4.1/191-usb-xhci-add-Broadcom-specific-fake-doorbell.patch @@ -74,7 +74,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> /* * Set the run bit and wait for the host to be running. */ -@@ -557,10 +590,25 @@ int xhci_init(struct usb_hcd *hcd) +@@ -567,10 +600,25 @@ int xhci_init(struct usb_hcd *hcd) static int xhci_run_finished(struct xhci_hcd *xhci) { @@ -103,7 +103,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> xhci->shared_hcd->state = HC_STATE_RUNNING; xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; -@@ -570,6 +618,9 @@ static int xhci_run_finished(struct xhci +@@ -580,6 +628,9 @@ static int xhci_run_finished(struct xhci xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Finished xhci_run for USB3 roothub"); return 0; diff --git a/target/linux/bcm53xx/patches-4.1/810-USB-bcma-use-simpler-devm_gpiod_get.patch b/target/linux/bcm53xx/patches-4.1/810-USB-bcma-use-simpler-devm_gpiod_get.patch index 32a5113845..f9b9870a15 100644 --- a/target/linux/bcm53xx/patches-4.1/810-USB-bcma-use-simpler-devm_gpiod_get.patch +++ b/target/linux/bcm53xx/patches-4.1/810-USB-bcma-use-simpler-devm_gpiod_get.patch @@ -12,7 +12,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> --- a/drivers/usb/host/bcma-hcd.c +++ b/drivers/usb/host/bcma-hcd.c -@@ -568,8 +568,7 @@ static int bcma_hcd_probe(struct bcma_device *dev) +@@ -568,8 +568,7 @@ static int bcma_hcd_probe(struct bcma_de usb_dev->core = dev; if (dev->dev.of_node) diff --git a/target/linux/brcm47xx/patches-4.1/400-mtd-bcm47xxpart-get-nvram.patch b/target/linux/brcm47xx/patches-4.1/400-mtd-bcm47xxpart-get-nvram.patch index de109e35f4..4fb8a87d4c 100644 --- a/target/linux/brcm47xx/patches-4.1/400-mtd-bcm47xxpart-get-nvram.patch +++ b/target/linux/brcm47xx/patches-4.1/400-mtd-bcm47xxpart-get-nvram.patch @@ -1,6 +1,6 @@ --- a/drivers/mtd/bcm47xxpart.c +++ b/drivers/mtd/bcm47xxpart.c -@@ -100,6 +100,7 @@ static int bcm47xxpart_parse(struct mtd_ +@@ -127,6 +127,7 @@ static int bcm47xxpart_parse(struct mtd_ int last_trx_part = -1; int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, }; int err; @@ -8,7 +8,7 @@ /* * Some really old flashes (like AT45DB*) had smaller erasesize-s, but -@@ -306,12 +307,23 @@ static int bcm47xxpart_parse(struct mtd_ +@@ -334,12 +335,23 @@ static int bcm47xxpart_parse(struct mtd_ if (buf[0] == NVRAM_HEADER) { bcm47xxpart_add_part(&parts[curr_part++], "nvram", master->size - blocksize, 0); diff --git a/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch b/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch index cf5a7198e9..6e3b031628 100644 --- a/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch +++ b/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -641,6 +641,51 @@ +@@ -641,6 +641,51 @@ static struct board_info __initdata boar }, }, }; @@ -52,7 +52,7 @@ #endif /* CONFIG_BCM63XX_CPU_6328 */ /* -@@ -2452,6 +2497,7 @@ +@@ -2452,6 +2497,7 @@ static const struct board_info __initcon &board_A4001N1, &board_dsl_274xb_f1, &board_FAST2704V2, @@ -60,7 +60,7 @@ #endif #ifdef CONFIG_BCM63XX_CPU_6338 &board_96338gw, -@@ -2550,6 +2596,7 @@ +@@ -2550,6 +2596,7 @@ static struct of_device_id const bcm963x { .compatible = "comtrend,ar-5381u", .data = &board_AR5381u, }, { .compatible = "comtrend,ar-5387un", .data = &board_AR5387un, }, { .compatible = "d-link,dsl-274xb-f", .data = &board_dsl_274xb_f1, }, diff --git a/target/linux/generic/patches-4.1/103-packet_allow_empty_payload.patch b/target/linux/generic/patches-4.1/103-packet_allow_empty_payload.patch index 052f457342..bad5b34e65 100644 --- a/target/linux/generic/patches-4.1/103-packet_allow_empty_payload.patch +++ b/target/linux/generic/patches-4.1/103-packet_allow_empty_payload.patch @@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -2106,7 +2106,7 @@ static void tpacket_destruct_skb(struct +@@ -2112,7 +2112,7 @@ static void tpacket_destruct_skb(struct static bool ll_header_truncated(const struct net_device *dev, int len) { /* net device doesn't like empty head */ diff --git a/target/linux/generic/patches-4.1/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch b/target/linux/generic/patches-4.1/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch deleted file mode 100644 index fce5d2967c..0000000000 --- a/target/linux/generic/patches-4.1/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a95f03e51471dbdbafd3391991d867ac2358ed02 Mon Sep 17 00:00:00 2001 -From: Jonas Gorski <jogo@openwrt.org> -Date: Sun, 23 Aug 2015 14:23:29 +0200 -Subject: [PATCH] usb: ehci-orion: fix probe for !GENERIC_PHY - -Commit d445913ce0ab7f ("usb: ehci-orion: add optional PHY support") -added support for optional phys, but devm_phy_optional_get returns --ENOSYS if GENERIC_PHY is not enabled. - -This causes probe failures, even when there are no phys specified: - -[ 1.443365] orion-ehci f1058000.usb: init f1058000.usb fail, -38 -[ 1.449403] orion-ehci: probe of f1058000.usb failed with error -38 - -Similar to dwc3, treat -ENOSYS as no phy. - -Fixes: d445913ce0ab7f ("usb: ehci-orion: add optional PHY support") - -Signed-off-by: Jonas Gorski <jogo@openwrt.org> ---- - drivers/usb/host/ehci-orion.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/usb/host/ehci-orion.c -+++ b/drivers/usb/host/ehci-orion.c -@@ -224,7 +224,8 @@ static int ehci_orion_drv_probe(struct p - priv->phy = devm_phy_optional_get(&pdev->dev, "usb"); - if (IS_ERR(priv->phy)) { - err = PTR_ERR(priv->phy); -- goto err_phy_get; -+ if (err != -ENOSYS) -+ goto err_phy_get; - } else { - err = phy_init(priv->phy); - if (err) diff --git a/target/linux/generic/patches-4.1/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch b/target/linux/generic/patches-4.1/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch deleted file mode 100644 index 71e89dc434..0000000000 --- a/target/linux/generic/patches-4.1/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 128524b9db3e4f4245226852bee771bd03db75be Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz> -Date: Tue, 3 Nov 2015 11:01:42 +0100 -Subject: [PATCH 1/2] USB: qcserial: Add support for Quectel EC20 Mini PCIe - module -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It seems like this device has same vendor and product IDs as G2K -devices, but it has different number of interfaces(4 vs 5) and also -different interface layout which makes it currently unusable: - - usbcore: registered new interface driver qcserial - usbserial: USB Serial support registered for Qualcomm USB modem - usb 2-1.2: unknown number of interfaces: 5 - -lsusb output: - - Bus 002 Device 003: ID 05c6:9215 Qualcomm, Inc. Acer Gobi 2000 Wireless - Device Descriptor: - bLength 18 - bDescriptorType 1 - bcdUSB 2.00 - bDeviceClass 0 (Defined at Interface level) - bDeviceSubClass 0 - bDeviceProtocol 0 - bMaxPacketSize0 64 - idVendor 0x05c6 Qualcomm, Inc. - idProduct 0x9215 Acer Gobi 2000 Wireless Modem - bcdDevice 2.32 - iManufacturer 1 Quectel - iProduct 2 Quectel LTE Module - iSerial 0 - bNumConfigurations 1 - Configuration Descriptor: - bLength 9 - bDescriptorType 2 - wTotalLength 209 - bNumInterfaces 5 - bConfigurationValue 1 - iConfiguration 0 - bmAttributes 0xa0 - (Bus Powered) - Remote Wakeup - MaxPower 500mA - -Signed-off-by: Petr Štetiar <ynezz@true.cz> ---- - drivers/usb/serial/qcserial.c | 39 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 39 insertions(+) - ---- a/drivers/usb/serial/qcserial.c -+++ b/drivers/usb/serial/qcserial.c -@@ -22,6 +22,8 @@ - #define DRIVER_AUTHOR "Qualcomm Inc" - #define DRIVER_DESC "Qualcomm USB Serial driver" - -+#define QUECTEL_EC20_IDPRODUCT 0x9215 -+ - /* standard device layouts supported by this driver */ - enum qcserial_layouts { - QCSERIAL_G2K = 0, /* Gobi 2000 */ -@@ -169,6 +171,38 @@ static const struct usb_device_id id_tab - }; - MODULE_DEVICE_TABLE(usb, id_table); - -+static int handle_quectel_ec20(struct device *dev, int ifnum) -+{ -+ int altsetting = 0; -+ -+ /* -+ * Quectel EC20 Mini PCIe LTE module layout: -+ * 0: DM/DIAG (use libqcdm from ModemManager for communication) -+ * 1: NMEA -+ * 2: AT-capable modem port -+ * 3: Modem interface -+ * 4: NDIS -+ */ -+ switch (ifnum) { -+ case 0: -+ dev_dbg(dev, "Quectel EC20 DM/DIAG interface found\n"); -+ break; -+ case 1: -+ dev_dbg(dev, "Quectel EC20 NMEA GPS interface found\n"); -+ break; -+ case 2: -+ case 3: -+ dev_dbg(dev, "Quectel EC20 Modem port found\n"); -+ break; -+ case 4: -+ /* Don't claim the QMI/net interface */ -+ altsetting = -1; -+ break; -+ } -+ -+ return altsetting; -+} -+ - static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) - { - struct usb_host_interface *intf = serial->interface->cur_altsetting; -@@ -237,6 +271,11 @@ static int qcprobe(struct usb_serial *se - altsetting = -1; - break; - case QCSERIAL_G2K: -+ if (nintf == 5 && id->idProduct == QUECTEL_EC20_IDPRODUCT) { -+ altsetting = handle_quectel_ec20(dev, ifnum); -+ goto done; -+ } -+ - /* - * Gobi 2K+ USB layout: - * 0: QMI/net diff --git a/target/linux/generic/patches-4.1/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch b/target/linux/generic/patches-4.1/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch index 47be6efbfd..935c731d0f 100644 --- a/target/linux/generic/patches-4.1/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch +++ b/target/linux/generic/patches-4.1/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch @@ -48,7 +48,7 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz> --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -815,6 +815,7 @@ static const struct usb_device_id produc +@@ -820,6 +820,7 @@ static const struct usb_device_id produc {QMI_GOBI_DEVICE(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem device (VL176) */ {QMI_GOBI_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */ {QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */ @@ -56,7 +56,7 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz> {QMI_GOBI_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem device (VR305) */ {QMI_GOBI_DEVICE(0x05c6, 0x9235)}, /* Top Global Gobi 2000 Modem device (VR306) */ {QMI_GOBI_DEVICE(0x05c6, 0x9275)}, /* iRex Technologies Gobi 2000 Modem device (VR307) */ -@@ -846,10 +847,24 @@ static const struct usb_device_id produc +@@ -851,10 +852,24 @@ static const struct usb_device_id produc }; MODULE_DEVICE_TABLE(usb, products); @@ -81,7 +81,7 @@ Signed-off-by: Petr Štetiar <ynezz@true.cz> /* Workaround to enable dynamic IDs. This disables usbnet * blacklisting functionality. Which, if required, can be -@@ -861,6 +876,12 @@ static int qmi_wwan_probe(struct usb_int +@@ -866,6 +881,12 @@ static int qmi_wwan_probe(struct usb_int id->driver_info = (unsigned long)&qmi_wwan_info; } diff --git a/target/linux/generic/patches-4.1/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch b/target/linux/generic/patches-4.1/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch index 6adac77669..5ad82f1f51 100644 --- a/target/linux/generic/patches-4.1/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch +++ b/target/linux/generic/patches-4.1/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch @@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> --- a/drivers/mtd/bcm47xxpart.c +++ b/drivers/mtd/bcm47xxpart.c -@@ -61,6 +61,34 @@ static void bcm47xxpart_add_part(struct mtd_partition *part, const char *name, +@@ -61,6 +61,34 @@ static void bcm47xxpart_add_part(struct part->mask_flags = mask_flags; } @@ -48,7 +48,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> static const char *bcm47xxpart_trx_data_part_name(struct mtd_info *master, size_t offset) { -@@ -182,6 +210,8 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -182,6 +210,8 @@ static int bcm47xxpart_parse(struct mtd_ /* TRX */ if (buf[0x000 / 4] == TRX_MAGIC) { @@ -57,7 +57,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> if (BCM47XXPART_MAX_PARTS - curr_part < 4) { pr_warn("Not enough partitions left to register trx, scanning stopped!\n"); break; -@@ -196,18 +226,18 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -196,18 +226,18 @@ static int bcm47xxpart_parse(struct mtd_ i = 0; /* We have LZMA loader if offset[2] points to sth */ if (trx->offset[2]) { @@ -82,7 +82,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> i++; } -@@ -219,11 +249,11 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -219,11 +249,11 @@ static int bcm47xxpart_parse(struct mtd_ if (trx->offset[i]) { const char *name; diff --git a/target/linux/generic/patches-4.1/630-packet_socket_type.patch b/target/linux/generic/patches-4.1/630-packet_socket_type.patch index ca6ce297c4..3b284f171f 100644 --- a/target/linux/generic/patches-4.1/630-packet_socket_type.patch +++ b/target/linux/generic/patches-4.1/630-packet_socket_type.patch @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1533,6 +1533,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1547,6 +1547,7 @@ static int packet_rcv_spkt(struct sk_buf { struct sock *sk; struct sockaddr_pkt *spkt; @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> /* * When we registered the protocol we saved the socket in the data -@@ -1540,6 +1541,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1554,6 +1555,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> /* * Yank back the headers [hope the device set this -@@ -1552,7 +1554,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1566,7 +1568,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -1759,12 +1761,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -1765,12 +1767,12 @@ static int packet_rcv(struct sk_buff *sk int skb_len = skb->len; unsigned int snaplen, res; @@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -1884,12 +1886,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -1890,12 +1892,12 @@ static int tpacket_rcv(struct sk_buff *s BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2851,6 +2853,7 @@ static int packet_create(struct net *net +@@ -2871,6 +2873,7 @@ static int packet_create(struct net *net spin_lock_init(&po->bind_lock); mutex_init(&po->pg_vec_lock); po->prot_hook.func = packet_rcv; @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3456,6 +3459,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3476,6 +3479,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@openwrt.org> default: return -ENOPROTOOPT; } -@@ -3507,6 +3520,13 @@ static int packet_getsockopt(struct sock +@@ -3527,6 +3540,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/patches-4.1/653-disable_netlink_trim.patch b/target/linux/generic/patches-4.1/653-disable_netlink_trim.patch index 5df265b025..be8bf7eede 100644 --- a/target/linux/generic/patches-4.1/653-disable_netlink_trim.patch +++ b/target/linux/generic/patches-4.1/653-disable_netlink_trim.patch @@ -1,6 +1,6 @@ --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c -@@ -1775,27 +1775,7 @@ void netlink_detachskb(struct sock *sk, +@@ -1776,27 +1776,7 @@ void netlink_detachskb(struct sock *sk, static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation) { diff --git a/target/linux/generic/patches-4.1/662-use_fq_codel_by_default.patch b/target/linux/generic/patches-4.1/662-use_fq_codel_by_default.patch index e7b781be9b..3cbbae3114 100644 --- a/target/linux/generic/patches-4.1/662-use_fq_codel_by_default.patch +++ b/target/linux/generic/patches-4.1/662-use_fq_codel_by_default.patch @@ -32,7 +32,7 @@ { --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h -@@ -340,6 +340,7 @@ extern struct Qdisc noop_qdisc; +@@ -343,6 +343,7 @@ extern struct Qdisc noop_qdisc; extern struct Qdisc_ops noop_qdisc_ops; extern struct Qdisc_ops pfifo_fast_ops; extern struct Qdisc_ops mq_qdisc_ops; diff --git a/target/linux/generic/patches-4.1/664-codel_fix_3_12.patch b/target/linux/generic/patches-4.1/664-codel_fix_3_12.patch index 6b2cbc5950..8e156fd79d 100644 --- a/target/linux/generic/patches-4.1/664-codel_fix_3_12.patch +++ b/target/linux/generic/patches-4.1/664-codel_fix_3_12.patch @@ -1,6 +1,6 @@ --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c -@@ -1951,7 +1951,7 @@ static int __init pktsched_init(void) +@@ -1960,7 +1960,7 @@ static int __init pktsched_init(void) return err; } diff --git a/target/linux/generic/patches-4.3/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch b/target/linux/generic/patches-4.3/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch deleted file mode 100644 index fce5d2967c..0000000000 --- a/target/linux/generic/patches-4.3/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a95f03e51471dbdbafd3391991d867ac2358ed02 Mon Sep 17 00:00:00 2001 -From: Jonas Gorski <jogo@openwrt.org> -Date: Sun, 23 Aug 2015 14:23:29 +0200 -Subject: [PATCH] usb: ehci-orion: fix probe for !GENERIC_PHY - -Commit d445913ce0ab7f ("usb: ehci-orion: add optional PHY support") -added support for optional phys, but devm_phy_optional_get returns --ENOSYS if GENERIC_PHY is not enabled. - -This causes probe failures, even when there are no phys specified: - -[ 1.443365] orion-ehci f1058000.usb: init f1058000.usb fail, -38 -[ 1.449403] orion-ehci: probe of f1058000.usb failed with error -38 - -Similar to dwc3, treat -ENOSYS as no phy. - -Fixes: d445913ce0ab7f ("usb: ehci-orion: add optional PHY support") - -Signed-off-by: Jonas Gorski <jogo@openwrt.org> ---- - drivers/usb/host/ehci-orion.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/usb/host/ehci-orion.c -+++ b/drivers/usb/host/ehci-orion.c -@@ -224,7 +224,8 @@ static int ehci_orion_drv_probe(struct p - priv->phy = devm_phy_optional_get(&pdev->dev, "usb"); - if (IS_ERR(priv->phy)) { - err = PTR_ERR(priv->phy); -- goto err_phy_get; -+ if (err != -ENOSYS) -+ goto err_phy_get; - } else { - err = phy_init(priv->phy); - if (err) diff --git a/target/linux/lantiq/patches-4.1/0025-NET-MIPS-lantiq-adds-xrx200-net.patch b/target/linux/lantiq/patches-4.1/0025-NET-MIPS-lantiq-adds-xrx200-net.patch index 35a2e18a05..8784b5b505 100644 --- a/target/linux/lantiq/patches-4.1/0025-NET-MIPS-lantiq-adds-xrx200-net.patch +++ b/target/linux/lantiq/patches-4.1/0025-NET-MIPS-lantiq-adds-xrx200-net.patch @@ -16,7 +16,7 @@ Subject: [PATCH 25/36] NET: MIPS: lantiq: adds xrx200-net --- a/drivers/net/ethernet/Kconfig +++ b/drivers/net/ethernet/Kconfig -@@ -101,7 +101,13 @@ +@@ -101,7 +101,13 @@ config LANTIQ_ETOP tristate "Lantiq SoC ETOP driver" depends on SOC_TYPE_XWAY ---help--- @@ -33,7 +33,7 @@ Subject: [PATCH 25/36] NET: MIPS: lantiq: adds xrx200-net source "drivers/net/ethernet/mellanox/Kconfig" --- a/drivers/net/ethernet/Makefile +++ b/drivers/net/ethernet/Makefile -@@ -43,6 +43,7 @@ +@@ -43,6 +43,7 @@ obj-$(CONFIG_IP1000) += icplus/ obj-$(CONFIG_JME) += jme.o obj-$(CONFIG_KORINA) += korina.o obj-$(CONFIG_LANTIQ_ETOP) += lantiq_etop.o diff --git a/target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch b/target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch index b2cd3565ae..c8288f925c 100644 --- a/target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch +++ b/target/linux/lantiq/patches-4.1/0050-MIPS-lantiq-add-clk_round_rate.patch @@ -17,9 +17,9 @@ Cc: <stable@vger.kernel.org> # 4.1+ --- a/arch/mips/lantiq/clk.c +++ b/arch/mips/lantiq/clk.c -@@ -99,6 +99,23 @@ int clk_set_rate(struct clk *clk, unsign +@@ -116,6 +116,23 @@ long clk_round_rate(struct clk *clk, uns } - EXPORT_SYMBOL(clk_set_rate); + EXPORT_SYMBOL(clk_round_rate); +long clk_round_rate(struct clk *clk, unsigned long rate) +{ diff --git a/target/linux/mediatek/patches/0047-xhci-mediatek-support-MTK-xHCI-host-controller.patch b/target/linux/mediatek/patches/0047-xhci-mediatek-support-MTK-xHCI-host-controller.patch index 135ac63e89..55e340d74f 100644 --- a/target/linux/mediatek/patches/0047-xhci-mediatek-support-MTK-xHCI-host-controller.patch +++ b/target/linux/mediatek/patches/0047-xhci-mediatek-support-MTK-xHCI-host-controller.patch @@ -784,7 +784,7 @@ Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> #define DRIVER_AUTHOR "Sarah Sharp" #define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver" -@@ -624,7 +625,11 @@ int xhci_run(struct usb_hcd *hcd) +@@ -634,7 +635,11 @@ int xhci_run(struct usb_hcd *hcd) "// Set the interrupt modulation register"); temp = readl(&xhci->ir_set->irq_control); temp &= ~ER_IRQ_INTERVAL_MASK; @@ -797,7 +797,7 @@ Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> writel(temp, &xhci->ir_set->irq_control); /* Set the HCD state before we enable the irqs */ -@@ -1698,6 +1703,9 @@ int xhci_drop_endpoint(struct usb_hcd *h +@@ -1708,6 +1713,9 @@ int xhci_drop_endpoint(struct usb_hcd *h xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep); @@ -807,7 +807,7 @@ Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n", (unsigned int) ep->desc.bEndpointAddress, udev->slot_id, -@@ -1793,6 +1801,12 @@ int xhci_add_endpoint(struct usb_hcd *hc +@@ -1803,6 +1811,12 @@ int xhci_add_endpoint(struct usb_hcd *hc return -ENOMEM; } |