aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2016-01-12 20:52:19 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2016-01-12 20:52:19 +0000
commitcdb83aaf5fe8de98b909d6655d6c7b9d8d2aadb2 (patch)
treeaeb91c1e1c35fc3c481922ebb7234903b6c855e8 /target/linux/generic
parent93b50ade934436d00e5f68c3feabf030ace8d98d (diff)
downloadupstream-cdb83aaf5fe8de98b909d6655d6c7b9d8d2aadb2.tar.gz
upstream-cdb83aaf5fe8de98b909d6655d6c7b9d8d2aadb2.tar.bz2
upstream-cdb83aaf5fe8de98b909d6655d6c7b9d8d2aadb2.zip
kernel/4.3: update to version 4.3.3
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de SVN-Revision: 48224
Diffstat (limited to 'target/linux/generic')
-rw-r--r--target/linux/generic/patches-4.3/103-packet_allow_empty_payload.patch2
-rw-r--r--target/linux/generic/patches-4.3/143-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch2
-rw-r--r--target/linux/generic/patches-4.3/144-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch15
-rw-r--r--target/linux/generic/patches-4.3/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch114
-rw-r--r--target/linux/generic/patches-4.3/192-net-Fix-presrc-lookups.patch58
-rw-r--r--target/linux/generic/patches-4.3/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch6
-rw-r--r--target/linux/generic/patches-4.3/630-packet_socket_type.patch16
-rw-r--r--target/linux/generic/patches-4.3/662-use_fq_codel_by_default.patch2
-rw-r--r--target/linux/generic/patches-4.3/664-codel_fix_3_12.patch2
-rw-r--r--target/linux/generic/patches-4.3/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch18
10 files changed, 29 insertions, 206 deletions
diff --git a/target/linux/generic/patches-4.3/103-packet_allow_empty_payload.patch b/target/linux/generic/patches-4.3/103-packet_allow_empty_payload.patch
index 3e38bdfee2..ce37d5b360 100644
--- a/target/linux/generic/patches-4.3/103-packet_allow_empty_payload.patch
+++ b/target/linux/generic/patches-4.3/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
-@@ -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 <zajec5@gmail.com>
--- 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 <zajec5@gmail.com>
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?= <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 */
-@@ -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 <dsa@cumulusnetworks.com>
-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 <dsa@cumulusnetworks.com>
-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 <dsa@cumulusnetworks.com>
----
-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 <ynezz@true.cz>
--- 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 <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) */
-@@ -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 <ynezz@true.cz>
/* 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 <nbd@openwrt.org>
#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 <nbd@openwrt.org>
/*
* 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 <nbd@openwrt.org>
/*
* 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 <nbd@openwrt.org>
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 <nbd@openwrt.org>
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 <nbd@openwrt.org>
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 <nbd@openwrt.org>
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 <nbd@openwrt.org>
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 <jogo@openwrt.org>
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 <jogo@openwrt.org>
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 <jogo@openwrt.org>
/*
* 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 <jogo@openwrt.org>
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 <jogo@openwrt.org>
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 <jogo@openwrt.org>
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 <jogo@openwrt.org>
#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 <jogo@openwrt.org>
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 <jogo@openwrt.org>
#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);