kernel: bump to 4.9.307, 4.14.272, 4.19.235
Added new Kconfig `HARDEN_BRANCH_HISTORY`. Manually-rebased patches: - generic/hack-4.9/204-module_strip.patch - generic/hack-4.9/220-gc_sections.patch - generic/hack-4.14/220-gc_sections.patch - generic/hack-4.19/220-gc_sections.patch - generic/backport-4.14/306-v4.16-netfilter-remove-saveroute-indirection-in-struct-nf_.patch Refreshed all patches. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
@@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-4.9 = .303
|
||||
LINUX_VERSION-4.14 = .268
|
||||
LINUX_VERSION-4.19 = .231
|
||||
LINUX_VERSION-4.9 = .307
|
||||
LINUX_VERSION-4.14 = .272
|
||||
LINUX_VERSION-4.19 = .235
|
||||
|
||||
LINUX_KERNEL_HASH-4.9.303 = 45e9050fc13df0fe2fe291512d261a07a7649b82a00c134eda0abc3a19121ae5
|
||||
LINUX_KERNEL_HASH-4.14.268 = cf62422aaa7f5a888ed3e5baeb89b90ba697cb712e653e52fd7dd8220f11b6f5
|
||||
LINUX_KERNEL_HASH-4.19.231 = 673123b3b3b05e2d8586c82a342ff2556e0b1f2caaadd643fefb9d91d58d8131
|
||||
LINUX_KERNEL_HASH-4.9.307 = 47470f83aa64e0098830a53176c959740742973663fead7ca7cc7b84e1f9d0f7
|
||||
LINUX_KERNEL_HASH-4.14.272 = 9b6178099cf33c534c971f3f065c0debe92788f0f504d54badb2f8c2ee089d69
|
||||
LINUX_KERNEL_HASH-4.19.235 = 530c5ac848111bbf7d1ad407a4ce8173ef8f9a4554477a32c695c5a4eaf02598
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
||||
@@ -312,7 +312,7 @@
|
||||
#endif /* _LINUX_TYPES_H */
|
||||
--- a/net/ipv4/af_inet.c
|
||||
+++ b/net/ipv4/af_inet.c
|
||||
@@ -1352,8 +1352,8 @@ struct sk_buff **inet_gro_receive(struct
|
||||
@@ -1355,8 +1355,8 @@ struct sk_buff **inet_gro_receive(struct
|
||||
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
|
||||
goto out_unlock;
|
||||
|
||||
@@ -576,7 +576,7 @@
|
||||
goto next_ht;
|
||||
--- a/net/ipv6/ip6_offload.c
|
||||
+++ b/net/ipv6/ip6_offload.c
|
||||
@@ -221,7 +221,7 @@ static struct sk_buff **ipv6_gro_receive
|
||||
@@ -223,7 +223,7 @@ static struct sk_buff **ipv6_gro_receive
|
||||
continue;
|
||||
|
||||
iph2 = (struct ipv6hdr *)(p->data + off);
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
#endif /* _LINUX_TYPES_H */
|
||||
--- a/net/ipv4/af_inet.c
|
||||
+++ b/net/ipv4/af_inet.c
|
||||
@@ -1319,8 +1319,8 @@ struct sk_buff **inet_gro_receive(struct
|
||||
@@ -1322,8 +1322,8 @@ struct sk_buff **inet_gro_receive(struct
|
||||
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
|
||||
goto out_unlock;
|
||||
|
||||
@@ -567,7 +567,7 @@
|
||||
goto next_ht;
|
||||
--- a/net/ipv6/ip6_offload.c
|
||||
+++ b/net/ipv6/ip6_offload.c
|
||||
@@ -221,7 +221,7 @@ static struct sk_buff **ipv6_gro_receive
|
||||
@@ -223,7 +223,7 @@ static struct sk_buff **ipv6_gro_receive
|
||||
continue;
|
||||
|
||||
iph2 = (struct ipv6hdr *)(p->data + off);
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
#endif /* _LINUX_TYPES_H */
|
||||
--- a/net/ipv4/af_inet.c
|
||||
+++ b/net/ipv4/af_inet.c
|
||||
@@ -1352,8 +1352,8 @@ struct sk_buff **inet_gro_receive(struct
|
||||
@@ -1355,8 +1355,8 @@ struct sk_buff **inet_gro_receive(struct
|
||||
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
|
||||
goto out_unlock;
|
||||
|
||||
@@ -556,7 +556,7 @@
|
||||
goto next_ht;
|
||||
--- a/net/ipv6/ip6_offload.c
|
||||
+++ b/net/ipv6/ip6_offload.c
|
||||
@@ -221,7 +221,7 @@ static struct sk_buff **ipv6_gro_receive
|
||||
@@ -223,7 +223,7 @@ static struct sk_buff **ipv6_gro_receive
|
||||
continue;
|
||||
|
||||
iph2 = (struct ipv6hdr *)(p->data + off);
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
#endif /* _LINUX_TYPES_H */
|
||||
--- a/net/ipv4/af_inet.c
|
||||
+++ b/net/ipv4/af_inet.c
|
||||
@@ -1422,8 +1422,8 @@ struct sk_buff *inet_gro_receive(struct
|
||||
@@ -1425,8 +1425,8 @@ struct sk_buff *inet_gro_receive(struct
|
||||
if (unlikely(ip_fast_csum((u8 *)iph, 5)))
|
||||
goto out_unlock;
|
||||
|
||||
@@ -556,7 +556,7 @@
|
||||
goto next_ht;
|
||||
--- a/net/ipv6/ip6_offload.c
|
||||
+++ b/net/ipv6/ip6_offload.c
|
||||
@@ -223,7 +223,7 @@ static struct sk_buff *ipv6_gro_receive(
|
||||
@@ -225,7 +225,7 @@ static struct sk_buff *ipv6_gro_receive(
|
||||
continue;
|
||||
|
||||
iph2 = (struct ipv6hdr *)(p->data + off);
|
||||
|
||||
@@ -37,7 +37,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
--- a/drivers/i2c/busses/i2c-bcm2835.c
|
||||
+++ b/drivers/i2c/busses/i2c-bcm2835.c
|
||||
@@ -56,6 +56,18 @@
|
||||
@@ -61,6 +61,18 @@
|
||||
#define BCM2835_I2C_CDIV_MIN 0x0002
|
||||
#define BCM2835_I2C_CDIV_MAX 0xFFFE
|
||||
|
||||
@@ -56,7 +56,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
struct bcm2835_i2c_dev {
|
||||
struct device *dev;
|
||||
void __iomem *regs;
|
||||
@@ -69,8 +81,78 @@ struct bcm2835_i2c_dev {
|
||||
@@ -74,8 +86,78 @@ struct bcm2835_i2c_dev {
|
||||
u32 msg_err;
|
||||
u8 *msg_buf;
|
||||
size_t msg_buf_remaining;
|
||||
@@ -135,7 +135,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
static inline void bcm2835_i2c_writel(struct bcm2835_i2c_dev *i2c_dev,
|
||||
u32 reg, u32 val)
|
||||
{
|
||||
@@ -189,6 +271,7 @@ static void bcm2835_i2c_start_transfer(s
|
||||
@@ -194,6 +276,7 @@ static void bcm2835_i2c_start_transfer(s
|
||||
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_A, msg->addr);
|
||||
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DLEN, msg->len);
|
||||
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, c);
|
||||
@@ -143,7 +143,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
}
|
||||
|
||||
static void bcm2835_i2c_finish_transfer(struct bcm2835_i2c_dev *i2c_dev)
|
||||
@@ -215,6 +298,7 @@ static irqreturn_t bcm2835_i2c_isr(int t
|
||||
@@ -220,6 +303,7 @@ static irqreturn_t bcm2835_i2c_isr(int t
|
||||
u32 val, err;
|
||||
|
||||
val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S);
|
||||
@@ -151,7 +151,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
|
||||
err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR);
|
||||
if (err) {
|
||||
@@ -281,6 +365,13 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
@@ -286,6 +370,13 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
unsigned long time_left;
|
||||
int i, ret;
|
||||
|
||||
@@ -165,7 +165,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
for (i = 0; i < (num - 1); i++)
|
||||
if (msgs[i].flags & I2C_M_RD) {
|
||||
dev_warn_once(i2c_dev->dev,
|
||||
@@ -303,6 +394,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
@@ -308,6 +399,10 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
|
||||
bcm2835_i2c_finish_transfer(i2c_dev);
|
||||
|
||||
@@ -176,7 +176,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
|
||||
if (!time_left) {
|
||||
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C,
|
||||
BCM2835_I2C_C_CLEAR);
|
||||
@@ -313,7 +408,9 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
@@ -318,7 +413,9 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
if (!i2c_dev->msg_err)
|
||||
return num;
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/i2c.h>
|
||||
@@ -71,9 +73,7 @@ struct bcm2835_debug {
|
||||
@@ -76,9 +78,7 @@ struct bcm2835_debug {
|
||||
struct bcm2835_i2c_dev {
|
||||
struct device *dev;
|
||||
void __iomem *regs;
|
||||
@@ -55,7 +55,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
struct i2c_adapter adapter;
|
||||
struct completion completion;
|
||||
struct i2c_msg *curr_msg;
|
||||
@@ -164,12 +164,17 @@ static inline u32 bcm2835_i2c_readl(stru
|
||||
@@ -169,12 +169,17 @@ static inline u32 bcm2835_i2c_readl(stru
|
||||
return readl(i2c_dev->regs + reg);
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
/*
|
||||
* Per the datasheet, the register is always interpreted as an even
|
||||
* number, by rounding down. In other words, the LSB is ignored. So,
|
||||
@@ -178,12 +183,23 @@ static int bcm2835_i2c_set_divider(struc
|
||||
@@ -183,12 +188,23 @@ static int bcm2835_i2c_set_divider(struc
|
||||
if (divider & 1)
|
||||
divider++;
|
||||
if ((divider < BCM2835_I2C_CDIV_MIN) ||
|
||||
@@ -105,7 +105,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
|
||||
/*
|
||||
* Number of core clocks to wait after falling edge before
|
||||
@@ -198,12 +214,62 @@ static int bcm2835_i2c_set_divider(struc
|
||||
@@ -203,12 +219,62 @@ static int bcm2835_i2c_set_divider(struc
|
||||
*/
|
||||
redl = max(divider / 4, 1u);
|
||||
|
||||
@@ -169,7 +169,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
static void bcm2835_fill_txfifo(struct bcm2835_i2c_dev *i2c_dev)
|
||||
{
|
||||
u32 val;
|
||||
@@ -363,7 +429,7 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
@@ -368,7 +434,7 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
{
|
||||
struct bcm2835_i2c_dev *i2c_dev = i2c_get_adapdata(adap);
|
||||
unsigned long time_left;
|
||||
@@ -178,7 +178,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
|
||||
if (debug)
|
||||
i2c_dev->debug_num_msgs = num;
|
||||
@@ -379,10 +445,6 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
@@ -384,10 +450,6 @@ static int bcm2835_i2c_xfer(struct i2c_a
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
i2c_dev->curr_msg = msgs;
|
||||
i2c_dev->num_msgs = num;
|
||||
reinit_completion(&i2c_dev->completion);
|
||||
@@ -443,6 +505,9 @@ static int bcm2835_i2c_probe(struct plat
|
||||
@@ -448,6 +510,9 @@ static int bcm2835_i2c_probe(struct plat
|
||||
struct resource *mem, *irq;
|
||||
int ret;
|
||||
struct i2c_adapter *adap;
|
||||
@@ -199,7 +199,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
|
||||
i2c_dev = devm_kzalloc(&pdev->dev, sizeof(*i2c_dev), GFP_KERNEL);
|
||||
if (!i2c_dev)
|
||||
@@ -456,21 +521,6 @@ static int bcm2835_i2c_probe(struct plat
|
||||
@@ -461,21 +526,6 @@ static int bcm2835_i2c_probe(struct plat
|
||||
if (IS_ERR(i2c_dev->regs))
|
||||
return PTR_ERR(i2c_dev->regs);
|
||||
|
||||
@@ -221,7 +221,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
|
||||
if (!irq) {
|
||||
dev_err(&pdev->dev, "No IRQ resource\n");
|
||||
@@ -485,6 +535,35 @@ static int bcm2835_i2c_probe(struct plat
|
||||
@@ -490,6 +540,35 @@ static int bcm2835_i2c_probe(struct plat
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
adap = &i2c_dev->adapter;
|
||||
i2c_set_adapdata(adap, i2c_dev);
|
||||
adap->owner = THIS_MODULE;
|
||||
@@ -507,6 +586,10 @@ static int bcm2835_i2c_probe(struct plat
|
||||
@@ -518,6 +597,10 @@ static int bcm2835_i2c_probe(struct plat
|
||||
static int bcm2835_i2c_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct bcm2835_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
|
||||
|
||||
@@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1445,6 +1445,103 @@ command_cleanup:
|
||||
@@ -1452,6 +1452,103 @@ command_cleanup:
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
* non-error returns are a promise to giveback() the urb later
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5261,6 +5358,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5271,6 +5368,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
|
||||
--- a/drivers/i2c/busses/i2c-bcm2835.c
|
||||
+++ b/drivers/i2c/busses/i2c-bcm2835.c
|
||||
@@ -521,20 +521,6 @@ static int bcm2835_i2c_probe(struct plat
|
||||
@@ -526,20 +526,6 @@ static int bcm2835_i2c_probe(struct plat
|
||||
if (IS_ERR(i2c_dev->regs))
|
||||
return PTR_ERR(i2c_dev->regs);
|
||||
|
||||
@@ -43,7 +43,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
mclk_name = of_clk_get_parent_name(pdev->dev.of_node, 0);
|
||||
|
||||
bus_clk = bcm2835_i2c_register_div(&pdev->dev, mclk_name, i2c_dev);
|
||||
@@ -564,6 +550,20 @@ static int bcm2835_i2c_probe(struct plat
|
||||
@@ -569,6 +555,20 @@ static int bcm2835_i2c_probe(struct plat
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
|
||||
--- a/drivers/i2c/busses/i2c-bcm2835.c
|
||||
+++ b/drivers/i2c/busses/i2c-bcm2835.c
|
||||
@@ -244,15 +244,18 @@ static const struct clk_ops clk_bcm2835_
|
||||
@@ -249,15 +249,18 @@ static const struct clk_ops clk_bcm2835_
|
||||
};
|
||||
|
||||
static struct clk *bcm2835_i2c_register_div(struct device *dev,
|
||||
@@ -43,7 +43,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
init.ops = &clk_bcm2835_i2c_ops;
|
||||
init.name = name;
|
||||
init.parent_names = (const char* []) { mclk_name };
|
||||
@@ -505,8 +508,8 @@ static int bcm2835_i2c_probe(struct plat
|
||||
@@ -510,8 +513,8 @@ static int bcm2835_i2c_probe(struct plat
|
||||
struct resource *mem, *irq;
|
||||
int ret;
|
||||
struct i2c_adapter *adap;
|
||||
@@ -53,7 +53,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|
||||
u32 bus_clk_rate;
|
||||
|
||||
i2c_dev = devm_kzalloc(&pdev->dev, sizeof(*i2c_dev), GFP_KERNEL);
|
||||
@@ -521,9 +524,14 @@ static int bcm2835_i2c_probe(struct plat
|
||||
@@ -526,9 +529,14 @@ static int bcm2835_i2c_probe(struct plat
|
||||
if (IS_ERR(i2c_dev->regs))
|
||||
return PTR_ERR(i2c_dev->regs);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/i2c/busses/i2c-bcm2835.c
|
||||
+++ b/drivers/i2c/busses/i2c-bcm2835.c
|
||||
@@ -194,6 +194,7 @@ static int clk_bcm2835_i2c_set_rate(stru
|
||||
@@ -199,6 +199,7 @@ static int clk_bcm2835_i2c_set_rate(stru
|
||||
{
|
||||
struct clk_bcm2835_i2c *div = to_clk_bcm2835_i2c(hw);
|
||||
u32 redl, fedl;
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
u32 divider = clk_bcm2835_i2c_calc_divider(rate, parent_rate);
|
||||
|
||||
if (divider == -EINVAL)
|
||||
@@ -217,6 +218,17 @@ static int clk_bcm2835_i2c_set_rate(stru
|
||||
@@ -222,6 +223,17 @@ static int clk_bcm2835_i2c_set_rate(stru
|
||||
bcm2835_i2c_writel(div->i2c_dev, BCM2835_I2C_DEL,
|
||||
(fedl << BCM2835_I2C_FEDL_SHIFT) |
|
||||
(redl << BCM2835_I2C_REDL_SHIFT));
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#endif
|
||||
--- a/arch/arm/mm/Kconfig
|
||||
+++ b/arch/arm/mm/Kconfig
|
||||
@@ -922,6 +922,17 @@ config DMA_CACHE_RWFO
|
||||
@@ -933,6 +933,17 @@ config DMA_CACHE_RWFO
|
||||
in hardware, other workarounds are needed (e.g. cache
|
||||
maintenance broadcasting in software via FIQ).
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
*/
|
||||
--- a/arch/arm/mm/Kconfig
|
||||
+++ b/arch/arm/mm/Kconfig
|
||||
@@ -905,7 +905,7 @@ config VDSO
|
||||
@@ -916,7 +916,7 @@ config VDSO
|
||||
|
||||
config DMA_CACHE_RWFO
|
||||
bool "Enable read/write for ownership DMA cache maintenance"
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#endif
|
||||
--- a/arch/arm/mm/Kconfig
|
||||
+++ b/arch/arm/mm/Kconfig
|
||||
@@ -916,6 +916,17 @@ config DMA_CACHE_RWFO
|
||||
@@ -927,6 +927,17 @@ config DMA_CACHE_RWFO
|
||||
in hardware, other workarounds are needed (e.g. cache
|
||||
maintenance broadcasting in software via FIQ).
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
*/
|
||||
--- a/arch/arm/mm/Kconfig
|
||||
+++ b/arch/arm/mm/Kconfig
|
||||
@@ -899,7 +899,7 @@ config VDSO
|
||||
@@ -910,7 +910,7 @@ config VDSO
|
||||
|
||||
config DMA_CACHE_RWFO
|
||||
bool "Enable read/write for ownership DMA cache maintenance"
|
||||
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold <johan@kernel.org>
|
||||
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -2060,7 +2060,8 @@ static const struct usb_device_id option
|
||||
@@ -2072,7 +2072,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
|
||||
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/net/netfilter/core.c
|
||||
+++ b/net/netfilter/core.c
|
||||
@@ -395,63 +395,10 @@ EXPORT_SYMBOL(nf_register_net_hooks);
|
||||
@@ -396,63 +396,10 @@ EXPORT_SYMBOL(nf_register_net_hooks);
|
||||
void nf_unregister_net_hooks(struct net *net, const struct nf_hook_ops *reg,
|
||||
unsigned int hookcount)
|
||||
{
|
||||
|
||||
@@ -32,7 +32,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh);
|
||||
--- a/net/netfilter/core.c
|
||||
+++ b/net/netfilter/core.c
|
||||
@@ -341,7 +341,6 @@ void nf_unregister_net_hook(struct net *
|
||||
@@ -342,7 +342,6 @@ void nf_unregister_net_hook(struct net *
|
||||
{
|
||||
struct nf_hook_entries __rcu **pp;
|
||||
struct nf_hook_entries *p;
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
pp = nf_hook_entry_head(net, reg);
|
||||
if (!pp)
|
||||
@@ -364,10 +363,7 @@ void nf_unregister_net_hook(struct net *
|
||||
@@ -365,10 +364,7 @@ void nf_unregister_net_hook(struct net *
|
||||
|
||||
synchronize_net();
|
||||
|
||||
@@ -65,7 +65,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
int __init netfilter_log_init(void);
|
||||
--- a/net/netfilter/nf_queue.c
|
||||
+++ b/net/netfilter/nf_queue.c
|
||||
@@ -96,18 +96,15 @@ void nf_queue_entry_get_refs(struct nf_q
|
||||
@@ -109,18 +109,15 @@ bool nf_queue_entry_get_refs(struct nf_q
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nf_queue_entry_get_refs);
|
||||
|
||||
@@ -88,7 +88,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/net/netfilter/nfnetlink_queue.c
|
||||
+++ b/net/netfilter/nfnetlink_queue.c
|
||||
@@ -942,23 +942,18 @@ static struct notifier_block nfqnl_dev_n
|
||||
@@ -948,23 +948,18 @@ static struct notifier_block nfqnl_dev_n
|
||||
.notifier_call = nfqnl_rcv_dev_event,
|
||||
};
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
static unsigned int accept_all(void *priv,
|
||||
struct sk_buff *skb,
|
||||
const struct nf_hook_state *state)
|
||||
@@ -291,9 +316,8 @@ int nf_register_net_hook(struct net *net
|
||||
@@ -292,9 +317,8 @@ int nf_register_net_hook(struct net *net
|
||||
#ifdef HAVE_JUMP_LABEL
|
||||
static_key_slow_inc(&nf_hooks_needed[reg->pf][reg->hooknum]);
|
||||
#endif
|
||||
@@ -118,7 +118,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(nf_register_net_hook);
|
||||
@@ -361,10 +385,8 @@ void nf_unregister_net_hook(struct net *
|
||||
@@ -362,10 +386,8 @@ void nf_unregister_net_hook(struct net *
|
||||
if (!p)
|
||||
return;
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
#ifdef CONFIG_NETFILTER_INGRESS
|
||||
if (reg->hooknum == NF_NETDEV_INGRESS) {
|
||||
@@ -534,14 +549,21 @@ void (*nf_nat_decode_session_hook)(struc
|
||||
@@ -535,14 +550,21 @@ void (*nf_nat_decode_session_hook)(struc
|
||||
EXPORT_SYMBOL(nf_nat_decode_session_hook);
|
||||
#endif
|
||||
|
||||
@@ -159,7 +159,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
net->nf.proc_netfilter = proc_net_mkdir(net, "netfilter",
|
||||
--- a/net/netfilter/nf_queue.c
|
||||
+++ b/net/netfilter/nf_queue.c
|
||||
@@ -206,6 +206,23 @@ repeat:
|
||||
@@ -223,6 +223,23 @@ repeat:
|
||||
return NF_ACCEPT;
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
/* Caller must hold rcu read-side lock */
|
||||
void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict)
|
||||
{
|
||||
@@ -221,12 +238,12 @@ void nf_reinject(struct nf_queue_entry *
|
||||
@@ -238,12 +255,12 @@ void nf_reinject(struct nf_queue_entry *
|
||||
net = entry->state.net;
|
||||
pf = entry->state.pf;
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
return net->nf.hooks_decnet + reg->hooknum;
|
||||
default:
|
||||
WARN_ON_ONCE(1);
|
||||
@@ -549,21 +559,21 @@ void (*nf_nat_decode_session_hook)(struc
|
||||
@@ -550,21 +560,21 @@ void (*nf_nat_decode_session_hook)(struc
|
||||
EXPORT_SYMBOL(nf_nat_decode_session_hook);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
default:
|
||||
WARN_ON_ONCE(1);
|
||||
return NULL;
|
||||
@@ -573,7 +575,9 @@ static int __net_init netfilter_net_init
|
||||
@@ -574,7 +576,9 @@ static int __net_init netfilter_net_init
|
||||
__netfilter_net_init(net->nf.hooks_ipv6, ARRAY_SIZE(net->nf.hooks_ipv6));
|
||||
__netfilter_net_init(net->nf.hooks_arp, ARRAY_SIZE(net->nf.hooks_arp));
|
||||
__netfilter_net_init(net->nf.hooks_bridge, ARRAY_SIZE(net->nf.hooks_bridge));
|
||||
|
||||
@@ -137,7 +137,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
case NFPROTO_IPV4:
|
||||
if (WARN_ON_ONCE(ARRAY_SIZE(net->nf.hooks_ipv4) <= reg->hooknum))
|
||||
return NULL;
|
||||
@@ -573,8 +577,12 @@ static int __net_init netfilter_net_init
|
||||
@@ -574,8 +578,12 @@ static int __net_init netfilter_net_init
|
||||
{
|
||||
__netfilter_net_init(net->nf.hooks_ipv4, ARRAY_SIZE(net->nf.hooks_ipv4));
|
||||
__netfilter_net_init(net->nf.hooks_ipv6, ARRAY_SIZE(net->nf.hooks_ipv6));
|
||||
@@ -152,7 +152,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
#endif
|
||||
--- a/net/netfilter/nf_queue.c
|
||||
+++ b/net/netfilter/nf_queue.c
|
||||
@@ -209,8 +209,10 @@ repeat:
|
||||
@@ -226,8 +226,10 @@ repeat:
|
||||
static struct nf_hook_entries *nf_hook_entries_head(const struct net *net, u8 pf, u8 hooknum)
|
||||
{
|
||||
switch (pf) {
|
||||
|
||||
@@ -87,7 +87,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
if (!pp)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -397,7 +399,7 @@ void nf_unregister_net_hook(struct net *
|
||||
@@ -398,7 +400,7 @@ void nf_unregister_net_hook(struct net *
|
||||
struct nf_hook_entries __rcu **pp;
|
||||
struct nf_hook_entries *p;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/net/netfilter/core.c
|
||||
+++ b/net/netfilter/core.c
|
||||
@@ -356,7 +356,7 @@ int nf_register_net_hook(struct net *net
|
||||
@@ -357,7 +357,7 @@ int nf_register_net_hook(struct net *net
|
||||
EXPORT_SYMBOL(nf_register_net_hook);
|
||||
|
||||
/*
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
*
|
||||
* @oldp: current address of hook blob
|
||||
* @unreg: hook to unregister
|
||||
@@ -364,8 +364,8 @@ EXPORT_SYMBOL(nf_register_net_hook);
|
||||
@@ -365,8 +365,8 @@ EXPORT_SYMBOL(nf_register_net_hook);
|
||||
* This cannot fail, hook unregistration must always succeed.
|
||||
* Therefore replace the to-be-removed hook with a dummy hook.
|
||||
*/
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
{
|
||||
struct nf_hook_ops **orig_ops;
|
||||
bool found = false;
|
||||
@@ -411,7 +411,7 @@ void nf_unregister_net_hook(struct net *
|
||||
@@ -412,7 +412,7 @@ void nf_unregister_net_hook(struct net *
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/net/netfilter/core.c
|
||||
+++ b/net/netfilter/core.c
|
||||
@@ -365,7 +365,7 @@ EXPORT_SYMBOL(nf_register_net_hook);
|
||||
@@ -366,7 +366,7 @@ EXPORT_SYMBOL(nf_register_net_hook);
|
||||
* Therefore replace the to-be-removed hook with a dummy hook.
|
||||
*/
|
||||
static void nf_remove_net_hook(struct nf_hook_entries *old,
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
{
|
||||
struct nf_hook_ops **orig_ops;
|
||||
bool found = false;
|
||||
@@ -383,14 +383,14 @@ static void nf_remove_net_hook(struct nf
|
||||
@@ -384,14 +384,14 @@ static void nf_remove_net_hook(struct nf
|
||||
|
||||
if (found) {
|
||||
#ifdef CONFIG_NETFILTER_INGRESS
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,7 +411,7 @@ void nf_unregister_net_hook(struct net *
|
||||
@@ -412,7 +412,7 @@ void nf_unregister_net_hook(struct net *
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -39,9 +39,9 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
if (!pp)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -343,17 +344,16 @@ int nf_register_net_hook(struct net *net
|
||||
@@ -344,17 +345,16 @@ int nf_register_net_hook(struct net *net
|
||||
return PTR_ERR(new_hooks);
|
||||
|
||||
hooks_validate(new_hooks);
|
||||
#ifdef CONFIG_NETFILTER_INGRESS
|
||||
- if (reg->pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS)
|
||||
+ if (pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS)
|
||||
@@ -59,7 +59,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
/*
|
||||
* nf_remove_net_hook - remove a hook from blob
|
||||
@@ -394,12 +394,13 @@ static void nf_remove_net_hook(struct nf
|
||||
@@ -395,12 +395,13 @@ static void nf_remove_net_hook(struct nf
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
if (!pp)
|
||||
return;
|
||||
|
||||
@@ -411,7 +412,7 @@ void nf_unregister_net_hook(struct net *
|
||||
@@ -412,7 +413,7 @@ void nf_unregister_net_hook(struct net *
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
p = __nf_hook_entries_try_shrink(pp);
|
||||
mutex_unlock(&nf_hook_mutex);
|
||||
@@ -421,8 +422,42 @@ void nf_unregister_net_hook(struct net *
|
||||
@@ -422,8 +423,42 @@ void nf_unregister_net_hook(struct net *
|
||||
nf_queue_nf_hook_drop(net);
|
||||
nf_hook_entries_free(p);
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
#include <linux/netfilter_bridge.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/rcupdate.h>
|
||||
@@ -108,6 +110,35 @@ void nf_queue_nf_hook_drop(struct net *n
|
||||
@@ -121,6 +123,35 @@ void nf_queue_nf_hook_drop(struct net *n
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nf_queue_nf_hook_drop);
|
||||
|
||||
@@ -212,10 +212,10 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
|
||||
const struct nf_hook_entries *entries,
|
||||
unsigned int index, unsigned int queuenum)
|
||||
@@ -148,7 +179,16 @@ static int __nf_queue(struct sk_buff *sk
|
||||
};
|
||||
@@ -165,7 +196,16 @@ static int __nf_queue(struct sk_buff *sk
|
||||
return -ENOTCONN;
|
||||
}
|
||||
|
||||
nf_queue_entry_get_refs(entry);
|
||||
- afinfo->saveroute(skb, entry);
|
||||
+
|
||||
+ switch (entry->state.pf) {
|
||||
|
||||
@@ -171,7 +171,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/net/netfilter/nf_queue.c
|
||||
+++ b/net/netfilter/nf_queue.c
|
||||
@@ -271,7 +271,6 @@ void nf_reinject(struct nf_queue_entry *
|
||||
@@ -288,7 +288,6 @@ void nf_reinject(struct nf_queue_entry *
|
||||
const struct nf_hook_entry *hook_entry;
|
||||
const struct nf_hook_entries *hooks;
|
||||
struct sk_buff *skb = entry->skb;
|
||||
@@ -179,7 +179,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
const struct net *net;
|
||||
unsigned int i;
|
||||
int err;
|
||||
@@ -298,8 +297,7 @@ void nf_reinject(struct nf_queue_entry *
|
||||
@@ -315,8 +314,7 @@ void nf_reinject(struct nf_queue_entry *
|
||||
verdict = nf_hook_entry_hookfn(hook_entry, skb, &entry->state);
|
||||
|
||||
if (verdict == NF_ACCEPT) {
|
||||
|
||||
@@ -48,7 +48,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
#include <net/protocol.h>
|
||||
#include <net/netfilter/nf_queue.h>
|
||||
#include <net/dst.h>
|
||||
@@ -145,9 +147,9 @@ static int __nf_queue(struct sk_buff *sk
|
||||
@@ -158,9 +160,9 @@ static int __nf_queue(struct sk_buff *sk
|
||||
{
|
||||
int status = -ENOENT;
|
||||
struct nf_queue_entry *entry = NULL;
|
||||
@@ -59,7 +59,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
/* QUEUE == DROP if no one is waiting, to be safe. */
|
||||
qh = rcu_dereference(net->nf.queue_handler);
|
||||
@@ -156,11 +158,19 @@ static int __nf_queue(struct sk_buff *sk
|
||||
@@ -169,11 +171,19 @@ static int __nf_queue(struct sk_buff *sk
|
||||
goto err;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
if (!entry) {
|
||||
status = -ENOMEM;
|
||||
goto err;
|
||||
@@ -175,7 +185,7 @@ static int __nf_queue(struct sk_buff *sk
|
||||
@@ -188,7 +198,7 @@ static int __nf_queue(struct sk_buff *sk
|
||||
.skb = skb,
|
||||
.state = *state,
|
||||
.hook_index = index,
|
||||
@@ -91,4 +91,4 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
+ .size = sizeof(*entry) + route_key_size,
|
||||
};
|
||||
|
||||
nf_queue_entry_get_refs(entry);
|
||||
if (!nf_queue_entry_get_refs(entry)) {
|
||||
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
static struct pernet_operations nfnl_log_net_ops = {
|
||||
--- a/net/netfilter/nfnetlink_queue.c
|
||||
+++ b/net/netfilter/nfnetlink_queue.c
|
||||
@@ -1511,10 +1511,15 @@ static int __net_init nfnl_queue_net_ini
|
||||
@@ -1517,10 +1517,15 @@ static int __net_init nfnl_queue_net_ini
|
||||
|
||||
static void __net_exit nfnl_queue_net_exit(struct net *net)
|
||||
{
|
||||
|
||||
@@ -1379,7 +1379,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
*/
|
||||
--- a/drivers/net/xen-netfront.c
|
||||
+++ b/drivers/net/xen-netfront.c
|
||||
@@ -1132,7 +1132,7 @@ err:
|
||||
@@ -1138,7 +1138,7 @@ err:
|
||||
if (work_done < budget) {
|
||||
int more_to_do = 0;
|
||||
|
||||
|
||||
@@ -1656,6 +1656,7 @@ CONFIG_GENERIC_NET_UTILS=y
|
||||
# CONFIG_HAMACHI is not set
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_HAPPYMEAL is not set
|
||||
# CONFIG_HARDEN_BRANCH_HISTORY is not set
|
||||
# CONFIG_HARDENED_USERCOPY is not set
|
||||
# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
|
||||
@@ -1737,6 +1737,7 @@ CONFIG_GPIOLIB_FASTPATH_LIMIT=512
|
||||
# CONFIG_HAMACHI is not set
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_HAPPYMEAL is not set
|
||||
# CONFIG_HARDEN_BRANCH_HISTORY is not set
|
||||
CONFIG_HARDENED_USERCOPY=y
|
||||
# CONFIG_HARDENED_USERCOPY_FALLBACK is not set
|
||||
# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
|
||||
|
||||
@@ -1465,6 +1465,7 @@ CONFIG_GENERIC_NET_UTILS=y
|
||||
# CONFIG_HAMACHI is not set
|
||||
# CONFIG_HAMRADIO is not set
|
||||
# CONFIG_HAPPYMEAL is not set
|
||||
# CONFIG_HARDEN_BRANCH_HISTORY is not set
|
||||
# CONFIG_HARDENED_USERCOPY is not set
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_HAVE_AOUT is not set
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
# but it is being used too early to link to meaningful stack_chk logic.
|
||||
--- a/arch/arm/kernel/vmlinux.lds.S
|
||||
+++ b/arch/arm/kernel/vmlinux.lds.S
|
||||
@@ -18,7 +18,7 @@
|
||||
@@ -31,7 +31,7 @@
|
||||
#define PROC_INFO \
|
||||
. = ALIGN(4); \
|
||||
VMLINUX_SYMBOL(__proc_info_begin) = .; \
|
||||
@@ -76,7 +76,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
VMLINUX_SYMBOL(__proc_info_end) = .;
|
||||
|
||||
#define HYPERVISOR_TEXT \
|
||||
@@ -29,11 +29,11 @@
|
||||
@@ -42,11 +42,11 @@
|
||||
#define IDMAP_TEXT \
|
||||
ALIGN_FUNCTION(); \
|
||||
VMLINUX_SYMBOL(__idmap_text_start) = .; \
|
||||
@@ -90,7 +90,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
@@ -106,7 +106,7 @@ SECTIONS
|
||||
@@ -119,7 +119,7 @@ SECTIONS
|
||||
_stext = .; /* Text and read-only data */
|
||||
IDMAP_TEXT
|
||||
__exception_text_start = .;
|
||||
@@ -99,7 +99,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__exception_text_end = .;
|
||||
IRQENTRY_TEXT
|
||||
SOFTIRQENTRY_TEXT
|
||||
@@ -135,7 +135,7 @@ SECTIONS
|
||||
@@ -148,7 +148,7 @@ SECTIONS
|
||||
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
|
||||
__start___ex_table = .;
|
||||
#ifdef CONFIG_MMU
|
||||
@@ -108,7 +108,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
#endif
|
||||
__stop___ex_table = .;
|
||||
}
|
||||
@@ -147,12 +147,12 @@ SECTIONS
|
||||
@@ -160,12 +160,12 @@ SECTIONS
|
||||
. = ALIGN(8);
|
||||
.ARM.unwind_idx : {
|
||||
__start_unwind_idx = .;
|
||||
@@ -123,24 +123,33 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__stop_unwind_tab = .;
|
||||
}
|
||||
#endif
|
||||
@@ -172,14 +172,14 @@ SECTIONS
|
||||
*/
|
||||
__vectors_start = .;
|
||||
.vectors 0xffff0000 : AT(__vectors_start) {
|
||||
- *(.vectors)
|
||||
+ KEEP(*(.vectors))
|
||||
@@ -186,13 +186,13 @@ SECTIONS
|
||||
__vectors_lma = .;
|
||||
OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) {
|
||||
.vectors {
|
||||
- *(.vectors)
|
||||
+ KEEP(*(.vectors))
|
||||
}
|
||||
.vectors.bhb.loop8 {
|
||||
- *(.vectors.bhb.loop8)
|
||||
+ KEEP(*(.vectors.bhb.loop8))
|
||||
}
|
||||
.vectors.bhb.bpiall {
|
||||
- *(.vectors.bhb.bpiall)
|
||||
+ KEEP(*(.vectors.bhb.bpiall))
|
||||
}
|
||||
}
|
||||
. = __vectors_start + SIZEOF(.vectors);
|
||||
__vectors_end = .;
|
||||
ARM_LMA(__vectors, .vectors);
|
||||
@@ -204,7 +204,7 @@ SECTIONS
|
||||
|
||||
__stubs_start = .;
|
||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) {
|
||||
__stubs_lma = .;
|
||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) {
|
||||
- *(.stubs)
|
||||
+ KEEP(*(.stubs))
|
||||
}
|
||||
. = __stubs_start + SIZEOF(.stubs);
|
||||
__stubs_end = .;
|
||||
@@ -195,24 +195,24 @@ SECTIONS
|
||||
ARM_LMA(__stubs, .stubs);
|
||||
. = __stubs_lma + SIZEOF(.stubs);
|
||||
@@ -220,24 +220,24 @@ SECTIONS
|
||||
}
|
||||
.init.arch.info : {
|
||||
__arch_info_begin = .;
|
||||
|
||||
@@ -318,7 +318,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
#include <asm/sections.h>
|
||||
#include <linux/io.h>
|
||||
@@ -447,6 +448,8 @@ static void __init_memblock memblock_ins
|
||||
@@ -453,6 +454,8 @@ static void __init_memblock memblock_ins
|
||||
memblock_set_region_node(rgn, nid);
|
||||
type->cnt++;
|
||||
type->total_size += size;
|
||||
@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -486,6 +489,8 @@ int __init_memblock memblock_add_range(s
|
||||
@@ -492,6 +495,8 @@ int __init_memblock memblock_add_range(s
|
||||
type->regions[0].flags = flags;
|
||||
memblock_set_region_node(&type->regions[0], nid);
|
||||
type->total_size = size;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -389,6 +389,7 @@ static void option_instat_callback(struc
|
||||
@@ -391,6 +391,7 @@ static void option_instat_callback(struc
|
||||
* Mobidata, etc sell under their own brand names.
|
||||
*/
|
||||
#define LONGCHEER_VENDOR_ID 0x1c9e
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/* 4G Systems products */
|
||||
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
|
||||
@@ -586,6 +587,16 @@ static void option_instat_callback(struc
|
||||
@@ -588,6 +589,16 @@ static void option_instat_callback(struc
|
||||
/* Device needs ZLP */
|
||||
#define ZLP BIT(17)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
@@ -620,6 +631,8 @@ static const struct usb_device_id option
|
||||
@@ -622,6 +633,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
|
||||
.driver_info = RSVD(4) },
|
||||
|
||||
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -2007,6 +2007,13 @@ config TRIM_UNUSED_KSYMS
|
||||
@@ -2010,6 +2010,13 @@ config TRIM_UNUSED_KSYMS
|
||||
|
||||
If unsure, or if you need to build out-of-tree modules, say N.
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
|
||||
--- a/arch/arm/kernel/vmlinux.lds.h
|
||||
+++ b/arch/arm/kernel/vmlinux.lds.h
|
||||
@@ -22,13 +22,13 @@
|
||||
@@ -22,7 +22,7 @@
|
||||
#define ARM_MMU_DISCARD(x)
|
||||
#else
|
||||
#define ARM_MMU_KEEP(x)
|
||||
@@ -106,15 +106,17 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
+#define ARM_MMU_DISCARD(x) KEEP(x)
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -41,7 +41,7 @@
|
||||
#define PROC_INFO \
|
||||
. = ALIGN(4); \
|
||||
__proc_info_begin = .; \
|
||||
- *(.proc.info.init) \
|
||||
+ KEEP(*(.proc.info.init)) \
|
||||
+ KEEP(*(.proc.info.init)) \
|
||||
__proc_info_end = .;
|
||||
|
||||
#define HYPERVISOR_TEXT \
|
||||
@@ -39,11 +39,11 @@
|
||||
@@ -52,11 +52,11 @@
|
||||
#define IDMAP_TEXT \
|
||||
ALIGN_FUNCTION(); \
|
||||
__idmap_text_start = .; \
|
||||
@@ -128,7 +130,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__hyp_idmap_text_end = .;
|
||||
|
||||
#define ARM_DISCARD \
|
||||
@@ -86,12 +86,12 @@
|
||||
@@ -99,12 +99,12 @@
|
||||
. = ALIGN(8); \
|
||||
.ARM.unwind_idx : { \
|
||||
__start_unwind_idx = .; \
|
||||
@@ -143,23 +145,32 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__stop_unwind_tab = .; \
|
||||
}
|
||||
|
||||
@@ -102,14 +102,14 @@
|
||||
#define ARM_VECTORS \
|
||||
__vectors_start = .; \
|
||||
.vectors 0xffff0000 : AT(__vectors_start) { \
|
||||
- *(.vectors) \
|
||||
+ KEEP(*(.vectors)) \
|
||||
@@ -116,13 +116,13 @@
|
||||
__vectors_lma = .; \
|
||||
OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \
|
||||
.vectors { \
|
||||
- *(.vectors) \
|
||||
+ KEEP(*(.vectors)) \
|
||||
} \
|
||||
.vectors.bhb.loop8 { \
|
||||
- *(.vectors.bhb.loop8) \
|
||||
+ KEEP(*(.vectors.bhb.loop8)) \
|
||||
} \
|
||||
.vectors.bhb.bpiall { \
|
||||
- *(.vectors.bhb.bpiall) \
|
||||
+ KEEP(*(.vectors.bhb.bpiall)) \
|
||||
} \
|
||||
} \
|
||||
. = __vectors_start + SIZEOF(.vectors); \
|
||||
__vectors_end = .; \
|
||||
ARM_LMA(__vectors, .vectors); \
|
||||
@@ -134,7 +134,7 @@
|
||||
\
|
||||
__stubs_start = .; \
|
||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) { \
|
||||
__stubs_lma = .; \
|
||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) { \
|
||||
- *(.stubs) \
|
||||
+ KEEP(*(.stubs)) \
|
||||
} \
|
||||
. = __stubs_start + SIZEOF(.stubs); \
|
||||
__stubs_end = .; \
|
||||
ARM_LMA(__stubs, .stubs); \
|
||||
. = __stubs_lma + SIZEOF(.stubs); \
|
||||
--- a/arch/mips/Kconfig
|
||||
+++ b/arch/mips/Kconfig
|
||||
@@ -43,6 +43,7 @@ config MIPS
|
||||
|
||||
@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+#endif
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1049,6 +1049,10 @@ config RELAY
|
||||
@@ -1052,6 +1052,10 @@ config RELAY
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
@@ -318,7 +318,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
#include <asm/sections.h>
|
||||
#include <linux/io.h>
|
||||
@@ -510,6 +511,8 @@ static void __init_memblock memblock_ins
|
||||
@@ -516,6 +517,8 @@ static void __init_memblock memblock_ins
|
||||
memblock_set_region_node(rgn, nid);
|
||||
type->cnt++;
|
||||
type->total_size += size;
|
||||
@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -549,6 +552,8 @@ int __init_memblock memblock_add_range(s
|
||||
@@ -555,6 +558,8 @@ int __init_memblock memblock_add_range(s
|
||||
type->regions[0].flags = flags;
|
||||
memblock_set_region_node(&type->regions[0], nid);
|
||||
type->total_size = size;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -386,6 +386,7 @@ static void option_instat_callback(struc
|
||||
@@ -388,6 +388,7 @@ static void option_instat_callback(struc
|
||||
* Mobidata, etc sell under their own brand names.
|
||||
*/
|
||||
#define LONGCHEER_VENDOR_ID 0x1c9e
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/* 4G Systems products */
|
||||
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
|
||||
@@ -583,6 +584,16 @@ static void option_instat_callback(struc
|
||||
@@ -585,6 +586,16 @@ static void option_instat_callback(struc
|
||||
/* Device needs ZLP */
|
||||
#define ZLP BIT(17)
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
@@ -617,6 +628,8 @@ static const struct usb_device_id option
|
||||
@@ -619,6 +630,8 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
|
||||
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
|
||||
.driver_info = RSVD(4) },
|
||||
|
||||
@@ -171,7 +171,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static void add_retpoline(struct buffer *b)
|
||||
{
|
||||
+#ifndef CONFIG_MODULE_STRIPPED
|
||||
buf_printf(b, "\n#ifdef RETPOLINE\n");
|
||||
buf_printf(b, "\n#ifdef CONFIG_RETPOLINE\n");
|
||||
buf_printf(b, "MODULE_INFO(retpoline, \"Y\");\n");
|
||||
buf_printf(b, "#endif\n");
|
||||
+#endif
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
# but it is being used too early to link to meaningful stack_chk logic.
|
||||
--- a/arch/arm/kernel/vmlinux.lds.S
|
||||
+++ b/arch/arm/kernel/vmlinux.lds.S
|
||||
@@ -17,7 +17,7 @@
|
||||
@@ -30,7 +30,7 @@
|
||||
#define PROC_INFO \
|
||||
. = ALIGN(4); \
|
||||
VMLINUX_SYMBOL(__proc_info_begin) = .; \
|
||||
@@ -76,7 +76,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
VMLINUX_SYMBOL(__proc_info_end) = .;
|
||||
|
||||
#define HYPERVISOR_TEXT \
|
||||
@@ -28,11 +28,11 @@
|
||||
@@ -41,11 +41,11 @@
|
||||
#define IDMAP_TEXT \
|
||||
ALIGN_FUNCTION(); \
|
||||
VMLINUX_SYMBOL(__idmap_text_start) = .; \
|
||||
@@ -90,7 +90,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
@@ -105,7 +105,7 @@ SECTIONS
|
||||
@@ -118,7 +118,7 @@ SECTIONS
|
||||
_stext = .; /* Text and read-only data */
|
||||
IDMAP_TEXT
|
||||
__exception_text_start = .;
|
||||
@@ -99,7 +99,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__exception_text_end = .;
|
||||
IRQENTRY_TEXT
|
||||
SOFTIRQENTRY_TEXT
|
||||
@@ -134,7 +134,7 @@ SECTIONS
|
||||
@@ -147,7 +147,7 @@ SECTIONS
|
||||
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
|
||||
__start___ex_table = .;
|
||||
#ifdef CONFIG_MMU
|
||||
@@ -108,7 +108,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
#endif
|
||||
__stop___ex_table = .;
|
||||
}
|
||||
@@ -146,12 +146,12 @@ SECTIONS
|
||||
@@ -159,12 +159,12 @@ SECTIONS
|
||||
. = ALIGN(8);
|
||||
.ARM.unwind_idx : {
|
||||
__start_unwind_idx = .;
|
||||
@@ -123,24 +123,33 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__stop_unwind_tab = .;
|
||||
}
|
||||
#endif
|
||||
@@ -171,14 +171,14 @@ SECTIONS
|
||||
*/
|
||||
__vectors_start = .;
|
||||
.vectors 0xffff0000 : AT(__vectors_start) {
|
||||
- *(.vectors)
|
||||
+ KEEP(*(.vectors))
|
||||
@@ -185,13 +185,13 @@ SECTIONS
|
||||
__vectors_lma = .;
|
||||
OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) {
|
||||
.vectors {
|
||||
- *(.vectors)
|
||||
+ KEEP(*(.vectors))
|
||||
}
|
||||
.vectors.bhb.loop8 {
|
||||
- *(.vectors.bhb.loop8)
|
||||
+ KEEP(*(.vectors.bhb.loop8))
|
||||
}
|
||||
.vectors.bhb.bpiall {
|
||||
- *(.vectors.bhb.bpiall)
|
||||
+ KEEP(*(.vectors.bhb.bpiall))
|
||||
}
|
||||
}
|
||||
. = __vectors_start + SIZEOF(.vectors);
|
||||
__vectors_end = .;
|
||||
ARM_LMA(__vectors, .vectors);
|
||||
@@ -203,7 +203,7 @@ SECTIONS
|
||||
|
||||
__stubs_start = .;
|
||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) {
|
||||
__stubs_lma = .;
|
||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) {
|
||||
- *(.stubs)
|
||||
+ KEEP(*(.stubs))
|
||||
}
|
||||
. = __stubs_start + SIZEOF(.stubs);
|
||||
__stubs_end = .;
|
||||
@@ -194,24 +194,24 @@ SECTIONS
|
||||
ARM_LMA(__stubs, .stubs);
|
||||
. = __stubs_lma + SIZEOF(.stubs);
|
||||
@@ -219,24 +219,24 @@ SECTIONS
|
||||
}
|
||||
.init.arch.info : {
|
||||
__arch_info_begin = .;
|
||||
|
||||
@@ -318,7 +318,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
#include <asm/sections.h>
|
||||
#include <linux/io.h>
|
||||
@@ -459,6 +460,8 @@ static void __init_memblock memblock_ins
|
||||
@@ -465,6 +466,8 @@ static void __init_memblock memblock_ins
|
||||
memblock_set_region_node(rgn, nid);
|
||||
type->cnt++;
|
||||
type->total_size += size;
|
||||
@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -498,6 +501,8 @@ int __init_memblock memblock_add_range(s
|
||||
@@ -504,6 +507,8 @@ int __init_memblock memblock_add_range(s
|
||||
type->regions[0].flags = flags;
|
||||
memblock_set_region_node(&type->regions[0], nid);
|
||||
type->total_size = size;
|
||||
|
||||
@@ -1596,7 +1596,7 @@
|
||||
+void nf_unregister_queue_imq_handler(void);
|
||||
+#endif
|
||||
|
||||
void nf_queue_entry_get_refs(struct nf_queue_entry *entry);
|
||||
bool nf_queue_entry_get_refs(struct nf_queue_entry *entry);
|
||||
void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
|
||||
--- a/include/net/pkt_sched.h
|
||||
+++ b/include/net/pkt_sched.h
|
||||
@@ -1817,7 +1817,7 @@
|
||||
static int
|
||||
--- a/net/netfilter/core.c
|
||||
+++ b/net/netfilter/core.c
|
||||
@@ -490,6 +490,11 @@ int nf_hook_slow(struct sk_buff *skb, st
|
||||
@@ -491,6 +491,11 @@ int nf_hook_slow(struct sk_buff *skb, st
|
||||
if (ret == 0)
|
||||
ret = -EPERM;
|
||||
return ret;
|
||||
@@ -1892,7 +1892,7 @@
|
||||
/* return EBUSY when somebody else is registered, return EEXIST if the
|
||||
* same handler is registered, return 0 in case of success. */
|
||||
void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh)
|
||||
@@ -141,16 +158,29 @@ static void nf_ip6_saveroute(const struc
|
||||
@@ -154,16 +171,29 @@ static void nf_ip6_saveroute(const struc
|
||||
|
||||
static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
|
||||
const struct nf_hook_entries *entries,
|
||||
@@ -1924,7 +1924,7 @@
|
||||
if (!qh) {
|
||||
status = -ESRCH;
|
||||
goto err;
|
||||
@@ -218,8 +248,16 @@ int nf_queue(struct sk_buff *skb, struct
|
||||
@@ -235,8 +265,16 @@ int nf_queue(struct sk_buff *skb, struct
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -1942,7 +1942,7 @@
|
||||
if (ret == -ESRCH &&
|
||||
(verdict & NF_VERDICT_FLAG_QUEUE_BYPASS))
|
||||
return 1;
|
||||
@@ -323,6 +361,7 @@ next_hook:
|
||||
@@ -340,6 +378,7 @@ next_hook:
|
||||
local_bh_enable();
|
||||
break;
|
||||
case NF_QUEUE:
|
||||
|
||||
@@ -1856,7 +1856,7 @@
|
||||
|
||||
static const struct usb_device_id products[] = {
|
||||
/* BLACKLIST !!
|
||||
@@ -849,6 +851,30 @@ static const struct usb_device_id produc
|
||||
@@ -861,6 +863,30 @@ static const struct usb_device_id produc
|
||||
.driver_info = 0,
|
||||
},
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1149,6 +1149,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
|
||||
@@ -1152,6 +1152,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
|
||||
the unaligned access emulation.
|
||||
see arch/parisc/kernel/unaligned.c for reference
|
||||
|
||||
|
||||
@@ -1291,7 +1291,7 @@
|
||||
+void nf_unregister_queue_imq_handler(void);
|
||||
+#endif
|
||||
|
||||
void nf_queue_entry_get_refs(struct nf_queue_entry *entry);
|
||||
bool nf_queue_entry_get_refs(struct nf_queue_entry *entry);
|
||||
void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
|
||||
--- a/include/net/pkt_sched.h
|
||||
+++ b/include/net/pkt_sched.h
|
||||
@@ -1513,7 +1513,7 @@
|
||||
obj-$(CONFIG_NETFILTER_XT_TARGET_NETMAP) += xt_NETMAP.o
|
||||
--- a/net/netfilter/core.c
|
||||
+++ b/net/netfilter/core.c
|
||||
@@ -518,6 +518,11 @@ int nf_hook_slow(struct sk_buff *skb, st
|
||||
@@ -519,6 +519,11 @@ int nf_hook_slow(struct sk_buff *skb, st
|
||||
if (ret == 0)
|
||||
ret = -EPERM;
|
||||
return ret;
|
||||
@@ -1551,7 +1551,7 @@
|
||||
/* return EBUSY when somebody else is registered, return EEXIST if the
|
||||
* same handler is registered, return 0 in case of success. */
|
||||
void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh)
|
||||
@@ -141,16 +158,28 @@ static void nf_ip6_saveroute(const struc
|
||||
@@ -154,16 +171,28 @@ static void nf_ip6_saveroute(const struc
|
||||
|
||||
static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
|
||||
const struct nf_hook_entries *entries,
|
||||
@@ -1582,7 +1582,7 @@
|
||||
if (!qh) {
|
||||
status = -ESRCH;
|
||||
goto err;
|
||||
@@ -218,8 +247,16 @@ int nf_queue(struct sk_buff *skb, struct
|
||||
@@ -234,8 +263,16 @@ int nf_queue(struct sk_buff *skb, struct
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -1600,7 +1600,7 @@
|
||||
if (ret == -ESRCH &&
|
||||
(verdict & NF_VERDICT_FLAG_QUEUE_BYPASS))
|
||||
return 1;
|
||||
@@ -323,6 +360,7 @@ next_hook:
|
||||
@@ -339,6 +376,7 @@ next_hook:
|
||||
local_bh_enable();
|
||||
break;
|
||||
case NF_QUEUE:
|
||||
|
||||
@@ -1856,7 +1856,7 @@
|
||||
|
||||
static const struct usb_device_id products[] = {
|
||||
/* BLACKLIST !!
|
||||
@@ -849,6 +851,30 @@ static const struct usb_device_id produc
|
||||
@@ -861,6 +863,30 @@ static const struct usb_device_id produc
|
||||
.driver_info = 0,
|
||||
},
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
||||
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1541,6 +1541,15 @@ config EMBEDDED
|
||||
@@ -1544,6 +1544,15 @@ config EMBEDDED
|
||||
an embedded system so certain expert options are available
|
||||
for configuration.
|
||||
|
||||
|
||||
@@ -1549,7 +1549,7 @@
|
||||
+void nf_unregister_queue_imq_handler(void);
|
||||
+#endif
|
||||
|
||||
void nf_queue_entry_get_refs(struct nf_queue_entry *entry);
|
||||
bool nf_queue_entry_get_refs(struct nf_queue_entry *entry);
|
||||
void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
|
||||
--- a/include/net/pkt_sched.h
|
||||
+++ b/include/net/pkt_sched.h
|
||||
@@ -1866,7 +1866,7 @@
|
||||
/* return EBUSY when somebody else is registered, return EEXIST if the
|
||||
* same handler is registered, return 0 in case of success. */
|
||||
void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh)
|
||||
@@ -108,16 +125,28 @@ void nf_queue_nf_hook_drop(struct net *n
|
||||
@@ -121,16 +138,28 @@ void nf_queue_nf_hook_drop(struct net *n
|
||||
}
|
||||
|
||||
static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
|
||||
@@ -1897,7 +1897,7 @@
|
||||
if (!qh) {
|
||||
status = -ESRCH;
|
||||
goto err;
|
||||
@@ -164,8 +193,14 @@ int nf_queue(struct sk_buff *skb, struct
|
||||
@@ -181,8 +210,14 @@ int nf_queue(struct sk_buff *skb, struct
|
||||
int ret;
|
||||
|
||||
RCU_INIT_POINTER(state->hook_entries, entry);
|
||||
@@ -1913,7 +1913,7 @@
|
||||
if (ret == -ESRCH &&
|
||||
(verdict & NF_VERDICT_FLAG_QUEUE_BYPASS)) {
|
||||
*entryp = rcu_dereference(entry->next);
|
||||
@@ -218,6 +253,7 @@ okfn:
|
||||
@@ -235,6 +270,7 @@ okfn:
|
||||
local_bh_enable();
|
||||
break;
|
||||
case NF_QUEUE:
|
||||
|
||||
@@ -214,7 +214,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||
* address space as memory. Needed when the kernel wants to execute
|
||||
--- a/arch/arm/mm/mmu.c
|
||||
+++ b/arch/arm/mm/mmu.c
|
||||
@@ -315,6 +315,13 @@ static struct mem_type mem_types[] __ro_
|
||||
@@ -317,6 +317,13 @@ static struct mem_type mem_types[] __ro_
|
||||
.prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
|
||||
.domain = DOMAIN_KERNEL,
|
||||
},
|
||||
@@ -228,7 +228,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||
[MT_ROM] = {
|
||||
.prot_sect = PMD_TYPE_SECT,
|
||||
.domain = DOMAIN_KERNEL,
|
||||
@@ -651,6 +658,7 @@ static void __init build_mem_type_table(
|
||||
@@ -653,6 +660,7 @@ static void __init build_mem_type_table(
|
||||
}
|
||||
kern_pgprot |= PTE_EXT_AF;
|
||||
vecs_pgprot |= PTE_EXT_AF;
|
||||
@@ -236,7 +236,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||
|
||||
/*
|
||||
* Set PXN for user mappings
|
||||
@@ -679,6 +687,7 @@ static void __init build_mem_type_table(
|
||||
@@ -681,6 +689,7 @@ static void __init build_mem_type_table(
|
||||
mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
|
||||
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
|
||||
mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
|
||||
|
||||
@@ -1482,7 +1482,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
@@ -61,16 +59,16 @@ void __par_io_config_pin(struct qe_pio_r
|
||||
@@ -63,16 +61,16 @@ void __par_io_config_pin(struct qe_pio_r
|
||||
pin_mask1bit = (u32) (1 << (QE_PIO_PINS - (pin + 1)));
|
||||
|
||||
/* Set open drain, if required */
|
||||
@@ -1504,7 +1504,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||
|
||||
/* get all bits mask for 2 bit per port */
|
||||
pin_mask2bits = (u32) (0x3 << (QE_PIO_PINS -
|
||||
@@ -82,34 +80,30 @@ void __par_io_config_pin(struct qe_pio_r
|
||||
@@ -84,34 +82,30 @@ void __par_io_config_pin(struct qe_pio_r
|
||||
|
||||
/* clear and set 2 bits mask */
|
||||
if (pin > (QE_PIO_PINS / 2) - 1) {
|
||||
@@ -1549,7 +1549,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(__par_io_config_pin);
|
||||
@@ -137,12 +131,12 @@ int par_io_data_set(u8 port, u8 pin, u8
|
||||
@@ -139,12 +133,12 @@ int par_io_data_set(u8 port, u8 pin, u8
|
||||
/* calculate pin location */
|
||||
pin_mask = (u32) (1 << (QE_PIO_PINS - 1 - pin));
|
||||
|
||||
|
||||
@@ -528,7 +528,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
||||
reg &= ~DWC3_DCTL_INITU2ENA;
|
||||
--- a/drivers/usb/dwc3/gadget.c
|
||||
+++ b/drivers/usb/dwc3/gadget.c
|
||||
@@ -3257,6 +3257,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
@@ -3259,6 +3259,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
{
|
||||
int ret;
|
||||
int irq;
|
||||
@@ -536,7 +536,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
||||
|
||||
irq = dwc3_gadget_get_irq(dwc);
|
||||
if (irq < 0) {
|
||||
@@ -3335,6 +3336,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
@@ -3337,6 +3338,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||
|
||||
dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed);
|
||||
|
||||
@@ -1340,7 +1340,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
||||
while (ep_ring->dequeue != td->last_trb)
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1615,13 +1615,38 @@ static int xhci_urb_dequeue(struct usb_h
|
||||
@@ -1625,13 +1625,38 @@ static int xhci_urb_dequeue(struct usb_h
|
||||
ret = -ENOMEM;
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@nxp.com>
|
||||
|
||||
--- a/drivers/firmware/psci.c
|
||||
+++ b/drivers/firmware/psci.c
|
||||
@@ -437,8 +437,18 @@ CPUIDLE_METHOD_OF_DECLARE(psci, "psci",
|
||||
@@ -452,8 +452,18 @@ CPUIDLE_METHOD_OF_DECLARE(psci, "psci",
|
||||
|
||||
static int psci_system_suspend(unsigned long unused)
|
||||
{
|
||||
@@ -46,7 +46,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@nxp.com>
|
||||
}
|
||||
|
||||
static int psci_system_suspend_enter(suspend_state_t state)
|
||||
@@ -562,6 +572,8 @@ static void __init psci_0_2_set_function
|
||||
@@ -577,6 +587,8 @@ static void __init psci_0_2_set_function
|
||||
arm_pm_restart = psci_sys_reset;
|
||||
|
||||
pm_power_off = psci_sys_poweroff;
|
||||
|
||||
Reference in New Issue
Block a user