From cdb83aaf5fe8de98b909d6655d6c7b9d8d2aadb2 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Tue, 12 Jan 2016 20:52:19 +0000 Subject: kernel/4.3: update to version 4.3.3 Signed-off-by: Hauke Mehrtens --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -2323,7 +2323,7 @@ static void tpacket_destruct_skb(struct +@@ -2329,7 +2329,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.3/143-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch b/target/linux/generic/patches-4.3/143-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch index aa315143fe..761cff316d 100644 --- a/target/linux/generic/patches-4.3/143-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch +++ b/target/linux/generic/patches-4.3/143-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch @@ -20,7 +20,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/mtd/bcm47xxpart.c +++ b/drivers/mtd/bcm47xxpart.c -@@ -118,8 +118,8 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -118,8 +118,8 @@ static int bcm47xxpart_parse(struct mtd_ /* Parse block by block looking for magics */ for (offset = 0; offset <= master->size - blocksize; offset += blocksize) { diff --git a/target/linux/generic/patches-4.3/144-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch b/target/linux/generic/patches-4.3/144-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch index f9e81f9395..9073f795e2 100644 --- a/target/linux/generic/patches-4.3/144-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch +++ b/target/linux/generic/patches-4.3/144-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch @@ -14,11 +14,9 @@ Signed-off-by: Rafał Miłecki drivers/mtd/bcm47xxpart.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) -diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c -index 4450e74..1ab3451 100644 --- a/drivers/mtd/bcm47xxpart.c +++ b/drivers/mtd/bcm47xxpart.c -@@ -66,11 +66,13 @@ static const char *bcm47xxpart_trx_data_part_name(struct mtd_info *master, +@@ -66,11 +66,13 @@ static const char *bcm47xxpart_trx_data_ { uint32_t buf; size_t bytes_read; @@ -36,7 +34,7 @@ index 4450e74..1ab3451 100644 goto out_default; } -@@ -95,6 +97,7 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -95,6 +97,7 @@ static int bcm47xxpart_parse(struct mtd_ int trx_part = -1; int last_trx_part = -1; int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, }; @@ -44,7 +42,7 @@ index 4450e74..1ab3451 100644 /* * Some really old flashes (like AT45DB*) had smaller erasesize-s, but -@@ -128,10 +131,11 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -128,10 +131,11 @@ static int bcm47xxpart_parse(struct mtd_ } /* Read beginning of the block */ @@ -60,7 +58,7 @@ index 4450e74..1ab3451 100644 continue; } -@@ -254,10 +258,11 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -254,10 +258,11 @@ static int bcm47xxpart_parse(struct mtd_ } /* Read middle of the block */ @@ -76,7 +74,7 @@ index 4450e74..1ab3451 100644 continue; } -@@ -277,10 +282,11 @@ static int bcm47xxpart_parse(struct mtd_info *master, +@@ -277,10 +282,11 @@ static int bcm47xxpart_parse(struct mtd_ } offset = master->size - possible_nvram_sizes[i]; @@ -92,6 +90,3 @@ index 4450e74..1ab3451 100644 continue; } --- -1.8.4.5 - diff --git a/target/linux/generic/patches-4.3/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch b/target/linux/generic/patches-4.3/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch deleted file mode 100644 index 1d0db6bdbd..0000000000 --- a/target/linux/generic/patches-4.3/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?= -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 ---- - 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 */ -@@ -167,6 +169,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; -@@ -235,6 +269,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.3/192-net-Fix-presrc-lookups.patch b/target/linux/generic/patches-4.3/192-net-Fix-presrc-lookups.patch deleted file mode 100644 index d47e80885c..0000000000 --- a/target/linux/generic/patches-4.3/192-net-Fix-presrc-lookups.patch +++ /dev/null @@ -1,58 +0,0 @@ -From patchwork Tue Nov 3 23:59:28 2015 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: net: Fix prefsrc lookups -From: David Ahern -X-Patchwork-Id: 539645 -Message-Id: <1446595168-27323-1-git-send-email-dsa@cumulusnetworks.com> -To: netdev@vger.kernel.org -Cc: vladi@aresgate.net, David Ahern -Date: Tue, 3 Nov 2015 15:59:28 -0800 - -A bug report (https://bugzilla.kernel.org/show_bug.cgi?id=107071) noted -that the follwoing ip command is failing with v4.3: - - $ ip route add 10.248.5.0/24 dev bond0.250 table vlan_250 src 10.248.5.154 - RTNETLINK answers: Invalid argument - -021dd3b8a142d changed the lookup of the given preferred source address to -use the table id passed in, but this assumes the local entries are in the -given table which is not necessarily true for non-VRF use cases. When -validating the preferred source fallback to the local table on failure. - -Fixes: 021dd3b8a142d ("net: Add routes to the table associated with the device") -Signed-off-by: David Ahern ---- -This is needed in v4.3. - - net/ipv4/fib_semantics.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - ---- a/net/ipv4/fib_semantics.c -+++ b/net/ipv4/fib_semantics.c -@@ -864,14 +864,21 @@ static bool fib_valid_prefsrc(struct fib - if (cfg->fc_type != RTN_LOCAL || !cfg->fc_dst || - fib_prefsrc != cfg->fc_dst) { - u32 tb_id = cfg->fc_table; -+ int rc; - - if (tb_id == RT_TABLE_MAIN) - tb_id = RT_TABLE_LOCAL; - -- if (inet_addr_type_table(cfg->fc_nlinfo.nl_net, -- fib_prefsrc, tb_id) != RTN_LOCAL) { -- return false; -+ rc = inet_addr_type_table(cfg->fc_nlinfo.nl_net, -+ fib_prefsrc, tb_id); -+ -+ if (rc != RTN_LOCAL && tb_id != RT_TABLE_LOCAL) { -+ rc = inet_addr_type_table(cfg->fc_nlinfo.nl_net, -+ fib_prefsrc, RT_TABLE_LOCAL); - } -+ -+ if (rc != RTN_LOCAL) -+ return false; - } - return true; - } diff --git a/target/linux/generic/patches-4.3/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch b/target/linux/generic/patches-4.3/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch index 1b1afd5d31..bdba30d415 100644 --- a/target/linux/generic/patches-4.3/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch +++ b/target/linux/generic/patches-4.3/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch @@ -48,7 +48,7 @@ Signed-off-by: Petr Štetiar --- a/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c -@@ -822,6 +822,7 @@ static const struct usb_device_id produc +@@ -823,6 +823,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 {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) */ -@@ -853,10 +854,24 @@ static const struct usb_device_id produc +@@ -854,10 +855,24 @@ static const struct usb_device_id produc }; MODULE_DEVICE_TABLE(usb, products); @@ -81,7 +81,7 @@ Signed-off-by: Petr Štetiar /* Workaround to enable dynamic IDs. This disables usbnet * blacklisting functionality. Which, if required, can be -@@ -868,6 +883,12 @@ static int qmi_wwan_probe(struct usb_int +@@ -869,6 +884,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.3/630-packet_socket_type.patch b/target/linux/generic/patches-4.3/630-packet_socket_type.patch index add00c7923..11c543636f 100644 --- a/target/linux/generic/patches-4.3/630-packet_socket_type.patch +++ b/target/linux/generic/patches-4.3/630-packet_socket_type.patch @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1750,6 +1750,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1764,6 +1764,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 /* * When we registered the protocol we saved the socket in the data -@@ -1757,6 +1758,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1771,6 +1772,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau /* * Yank back the headers [hope the device set this -@@ -1769,7 +1771,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1783,7 +1785,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -1976,12 +1978,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -1982,12 +1984,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 if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2101,12 +2103,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2107,12 +2109,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 if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3069,6 +3071,7 @@ static int packet_create(struct net *net +@@ -3089,6 +3091,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3684,6 +3687,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3704,6 +3707,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; } -@@ -3736,6 +3749,13 @@ static int packet_getsockopt(struct sock +@@ -3756,6 +3769,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.3/662-use_fq_codel_by_default.patch b/target/linux/generic/patches-4.3/662-use_fq_codel_by_default.patch index fba373a3c0..4ba20be353 100644 --- a/target/linux/generic/patches-4.3/662-use_fq_codel_by_default.patch +++ b/target/linux/generic/patches-4.3/662-use_fq_codel_by_default.patch @@ -32,7 +32,7 @@ { --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h -@@ -341,6 +341,7 @@ extern struct Qdisc_ops noop_qdisc_ops; +@@ -344,6 +344,7 @@ extern struct Qdisc_ops noop_qdisc_ops; extern struct Qdisc_ops pfifo_fast_ops; extern struct Qdisc_ops mq_qdisc_ops; extern struct Qdisc_ops noqueue_qdisc_ops; diff --git a/target/linux/generic/patches-4.3/664-codel_fix_3_12.patch b/target/linux/generic/patches-4.3/664-codel_fix_3_12.patch index 838c9f6206..2682441b1c 100644 --- a/target/linux/generic/patches-4.3/664-codel_fix_3_12.patch +++ b/target/linux/generic/patches-4.3/664-codel_fix_3_12.patch @@ -1,6 +1,6 @@ --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c -@@ -1936,7 +1936,7 @@ static int __init pktsched_init(void) +@@ -1945,7 +1945,7 @@ static int __init pktsched_init(void) return err; } diff --git a/target/linux/generic/patches-4.3/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/patches-4.3/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 7ae6abf80d..e325e5d020 100644 --- a/target/linux/generic/patches-4.3/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/patches-4.3/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski static const struct rt6_info ip6_blk_hole_entry_template = { .dst = { .__refcnt = ATOMIC_INIT(1), -@@ -1886,6 +1903,11 @@ int ip6_route_info_create(struct fib6_co +@@ -1902,6 +1919,11 @@ int ip6_route_info_create(struct fib6_co rt->dst.output = ip6_pkt_prohibit_out; rt->dst.input = ip6_pkt_prohibit; break; @@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -2488,6 +2510,17 @@ static int ip6_pkt_prohibit_out(struct s +@@ -2504,6 +2526,17 @@ static int ip6_pkt_prohibit_out(struct s return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -2728,7 +2761,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -2744,7 +2777,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -3084,6 +3118,9 @@ static int rt6_fill_node(struct net *net +@@ -3100,6 +3134,9 @@ static int rt6_fill_node(struct net *net case -EACCES: rtm->rtm_type = RTN_PROHIBIT; break; @@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski case -EAGAIN: rtm->rtm_type = RTN_THROW; break; -@@ -3352,6 +3389,8 @@ static int ip6_route_dev_notify(struct n +@@ -3368,6 +3405,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -3568,6 +3607,17 @@ static int __net_init ip6_route_net_init +@@ -3584,6 +3623,17 @@ static int __net_init ip6_route_net_init net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); @@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski #endif net->ipv6.sysctl.flush_delay = 0; -@@ -3586,6 +3636,8 @@ out: +@@ -3602,6 +3652,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -3603,6 +3655,7 @@ static void __net_exit ip6_route_net_exi +@@ -3619,6 +3671,7 @@ static void __net_exit ip6_route_net_exi #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_blk_hole_entry); @@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -3700,6 +3753,9 @@ int __init ip6_route_init(void) +@@ -3716,6 +3769,9 @@ int __init ip6_route_init(void) init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); -- cgit v1.2.3