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:
Tianling Shen 2022-03-19 19:13:28 +08:00
parent cd1e95514e
commit 30bcdfd2b9
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
56 changed files with 211 additions and 179 deletions

View File

@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif endif
LINUX_VERSION-4.9 = .303 LINUX_VERSION-4.9 = .307
LINUX_VERSION-4.14 = .268 LINUX_VERSION-4.14 = .272
LINUX_VERSION-4.19 = .231 LINUX_VERSION-4.19 = .235
LINUX_KERNEL_HASH-4.9.303 = 45e9050fc13df0fe2fe291512d261a07a7649b82a00c134eda0abc3a19121ae5 LINUX_KERNEL_HASH-4.9.307 = 47470f83aa64e0098830a53176c959740742973663fead7ca7cc7b84e1f9d0f7
LINUX_KERNEL_HASH-4.14.268 = cf62422aaa7f5a888ed3e5baeb89b90ba697cb712e653e52fd7dd8220f11b6f5 LINUX_KERNEL_HASH-4.14.272 = 9b6178099cf33c534c971f3f065c0debe92788f0f504d54badb2f8c2ee089d69
LINUX_KERNEL_HASH-4.19.231 = 673123b3b3b05e2d8586c82a342ff2556e0b1f2caaadd643fefb9d91d58d8131 LINUX_KERNEL_HASH-4.19.235 = 530c5ac848111bbf7d1ad407a4ce8173ef8f9a4554477a32c695c5a4eaf02598
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

View File

@ -312,7 +312,7 @@
#endif /* _LINUX_TYPES_H */ #endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c --- a/net/ipv4/af_inet.c
+++ b/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))) if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out_unlock; goto out_unlock;
@ -576,7 +576,7 @@
goto next_ht; goto next_ht;
--- a/net/ipv6/ip6_offload.c --- a/net/ipv6/ip6_offload.c
+++ b/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; continue;
iph2 = (struct ipv6hdr *)(p->data + off); iph2 = (struct ipv6hdr *)(p->data + off);

View File

@ -303,7 +303,7 @@
#endif /* _LINUX_TYPES_H */ #endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c --- a/net/ipv4/af_inet.c
+++ b/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))) if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out_unlock; goto out_unlock;
@ -567,7 +567,7 @@
goto next_ht; goto next_ht;
--- a/net/ipv6/ip6_offload.c --- a/net/ipv6/ip6_offload.c
+++ b/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; continue;
iph2 = (struct ipv6hdr *)(p->data + off); iph2 = (struct ipv6hdr *)(p->data + off);

View File

@ -303,7 +303,7 @@
#endif /* _LINUX_TYPES_H */ #endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c --- a/net/ipv4/af_inet.c
+++ b/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))) if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out_unlock; goto out_unlock;
@ -556,7 +556,7 @@
goto next_ht; goto next_ht;
--- a/net/ipv6/ip6_offload.c --- a/net/ipv6/ip6_offload.c
+++ b/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; continue;
iph2 = (struct ipv6hdr *)(p->data + off); iph2 = (struct ipv6hdr *)(p->data + off);

View File

@ -303,7 +303,7 @@
#endif /* _LINUX_TYPES_H */ #endif /* _LINUX_TYPES_H */
--- a/net/ipv4/af_inet.c --- a/net/ipv4/af_inet.c
+++ b/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))) if (unlikely(ip_fast_csum((u8 *)iph, 5)))
goto out_unlock; goto out_unlock;
@ -556,7 +556,7 @@
goto next_ht; goto next_ht;
--- a/net/ipv6/ip6_offload.c --- a/net/ipv6/ip6_offload.c
+++ b/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; continue;
iph2 = (struct ipv6hdr *)(p->data + off); iph2 = (struct ipv6hdr *)(p->data + off);

View File

@ -37,7 +37,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
--- a/drivers/i2c/busses/i2c-bcm2835.c --- a/drivers/i2c/busses/i2c-bcm2835.c
+++ b/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_MIN 0x0002
#define BCM2835_I2C_CDIV_MAX 0xFFFE #define BCM2835_I2C_CDIV_MAX 0xFFFE
@ -56,7 +56,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
struct bcm2835_i2c_dev { struct bcm2835_i2c_dev {
struct device *dev; struct device *dev;
void __iomem *regs; void __iomem *regs;
@@ -69,8 +81,78 @@ struct bcm2835_i2c_dev { @@ -74,8 +86,78 @@ struct bcm2835_i2c_dev {
u32 msg_err; u32 msg_err;
u8 *msg_buf; u8 *msg_buf;
size_t msg_buf_remaining; 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, static inline void bcm2835_i2c_writel(struct bcm2835_i2c_dev *i2c_dev,
u32 reg, u32 val) 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_A, msg->addr);
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DLEN, msg->len); bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_DLEN, msg->len);
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, c); 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) 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; u32 val, err;
val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S); 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); err = val & (BCM2835_I2C_S_CLKT | BCM2835_I2C_S_ERR);
if (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; unsigned long time_left;
int i, ret; int i, ret;
@ -165,7 +165,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
for (i = 0; i < (num - 1); i++) for (i = 0; i < (num - 1); i++)
if (msgs[i].flags & I2C_M_RD) { if (msgs[i].flags & I2C_M_RD) {
dev_warn_once(i2c_dev->dev, 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); bcm2835_i2c_finish_transfer(i2c_dev);
@ -176,7 +176,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
if (!time_left) { if (!time_left) {
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C,
BCM2835_I2C_C_CLEAR); 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) if (!i2c_dev->msg_err)
return num; return num;

View File

@ -45,7 +45,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
#include <linux/completion.h> #include <linux/completion.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/i2c.h> #include <linux/i2c.h>
@@ -71,9 +73,7 @@ struct bcm2835_debug { @@ -76,9 +78,7 @@ struct bcm2835_debug {
struct bcm2835_i2c_dev { struct bcm2835_i2c_dev {
struct device *dev; struct device *dev;
void __iomem *regs; void __iomem *regs;
@ -55,7 +55,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
struct i2c_adapter adapter; struct i2c_adapter adapter;
struct completion completion; struct completion completion;
struct i2c_msg *curr_msg; 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); 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 * Per the datasheet, the register is always interpreted as an even
* number, by rounding down. In other words, the LSB is ignored. So, * 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) if (divider & 1)
divider++; divider++;
if ((divider < BCM2835_I2C_CDIV_MIN) || 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 * 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); 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) static void bcm2835_fill_txfifo(struct bcm2835_i2c_dev *i2c_dev)
{ {
u32 val; 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); struct bcm2835_i2c_dev *i2c_dev = i2c_get_adapdata(adap);
unsigned long time_left; unsigned long time_left;
@ -178,7 +178,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
if (debug) if (debug)
i2c_dev->debug_num_msgs = num; 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; return -EOPNOTSUPP;
} }
@ -189,7 +189,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
i2c_dev->curr_msg = msgs; i2c_dev->curr_msg = msgs;
i2c_dev->num_msgs = num; i2c_dev->num_msgs = num;
reinit_completion(&i2c_dev->completion); 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; struct resource *mem, *irq;
int ret; int ret;
struct i2c_adapter *adap; 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); i2c_dev = devm_kzalloc(&pdev->dev, sizeof(*i2c_dev), GFP_KERNEL);
if (!i2c_dev) 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)) if (IS_ERR(i2c_dev->regs))
return PTR_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); irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
if (!irq) { if (!irq) {
dev_err(&pdev->dev, "No IRQ resource\n"); 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; return -ENODEV;
} }
@ -257,7 +257,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
adap = &i2c_dev->adapter; adap = &i2c_dev->adapter;
i2c_set_adapdata(adap, i2c_dev); i2c_set_adapdata(adap, i2c_dev);
adap->owner = THIS_MODULE; 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) static int bcm2835_i2c_remove(struct platform_device *pdev)
{ {
struct bcm2835_i2c_dev *i2c_dev = platform_get_drvdata(pdev); struct bcm2835_i2c_dev *i2c_dev = platform_get_drvdata(pdev);

View File

@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/usb/host/xhci.c --- a/drivers/usb/host/xhci.c
+++ b/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 * non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it * 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, .endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth, .check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth, .reset_bandwidth = xhci_reset_bandwidth,

View File

@ -22,7 +22,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
--- a/drivers/i2c/busses/i2c-bcm2835.c --- a/drivers/i2c/busses/i2c-bcm2835.c
+++ b/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)) if (IS_ERR(i2c_dev->regs))
return PTR_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); mclk_name = of_clk_get_parent_name(pdev->dev.of_node, 0);
bus_clk = bcm2835_i2c_register_div(&pdev->dev, mclk_name, i2c_dev); 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; return ret;
} }

View File

@ -23,7 +23,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
--- a/drivers/i2c/busses/i2c-bcm2835.c --- a/drivers/i2c/busses/i2c-bcm2835.c
+++ b/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, 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.ops = &clk_bcm2835_i2c_ops;
init.name = name; init.name = name;
init.parent_names = (const char* []) { mclk_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; struct resource *mem, *irq;
int ret; int ret;
struct i2c_adapter *adap; struct i2c_adapter *adap;
@ -53,7 +53,7 @@ Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
u32 bus_clk_rate; u32 bus_clk_rate;
i2c_dev = devm_kzalloc(&pdev->dev, sizeof(*i2c_dev), GFP_KERNEL); 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)) if (IS_ERR(i2c_dev->regs))
return PTR_ERR(i2c_dev->regs); return PTR_ERR(i2c_dev->regs);

View File

@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/i2c/busses/i2c-bcm2835.c --- a/drivers/i2c/busses/i2c-bcm2835.c
+++ b/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); struct clk_bcm2835_i2c *div = to_clk_bcm2835_i2c(hw);
u32 redl, fedl; 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); u32 divider = clk_bcm2835_i2c_calc_divider(rate, parent_rate);
if (divider == -EINVAL) 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, bcm2835_i2c_writel(div->i2c_dev, BCM2835_I2C_DEL,
(fedl << BCM2835_I2C_FEDL_SHIFT) | (fedl << BCM2835_I2C_FEDL_SHIFT) |
(redl << BCM2835_I2C_REDL_SHIFT)); (redl << BCM2835_I2C_REDL_SHIFT));

View File

@ -20,7 +20,7 @@
#endif #endif
--- a/arch/arm/mm/Kconfig --- a/arch/arm/mm/Kconfig
+++ b/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 in hardware, other workarounds are needed (e.g. cache
maintenance broadcasting in software via FIQ). maintenance broadcasting in software via FIQ).

View File

@ -29,7 +29,7 @@
*/ */
--- a/arch/arm/mm/Kconfig --- a/arch/arm/mm/Kconfig
+++ b/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 config DMA_CACHE_RWFO
bool "Enable read/write for ownership DMA cache maintenance" bool "Enable read/write for ownership DMA cache maintenance"

View File

@ -20,7 +20,7 @@
#endif #endif
--- a/arch/arm/mm/Kconfig --- a/arch/arm/mm/Kconfig
+++ b/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 in hardware, other workarounds are needed (e.g. cache
maintenance broadcasting in software via FIQ). maintenance broadcasting in software via FIQ).

View File

@ -29,7 +29,7 @@
*/ */
--- a/arch/arm/mm/Kconfig --- a/arch/arm/mm/Kconfig
+++ b/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 config DMA_CACHE_RWFO
bool "Enable read/write for ownership DMA cache maintenance" bool "Enable read/write for ownership DMA cache maintenance"

View File

@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold <johan@kernel.org>
--- a/drivers/usb/serial/option.c --- a/drivers/usb/serial/option.c
+++ b/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, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) }, { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) }, { USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },

View File

@ -22,7 +22,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/netfilter/core.c --- a/net/netfilter/core.c
+++ b/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, void nf_unregister_net_hooks(struct net *net, const struct nf_hook_ops *reg,
unsigned int hookcount) unsigned int hookcount)
{ {

View File

@ -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); void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh);
--- a/net/netfilter/core.c --- a/net/netfilter/core.c
+++ b/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 __rcu **pp;
struct nf_hook_entries *p; 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); pp = nf_hook_entry_head(net, reg);
if (!pp) 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(); synchronize_net();
@ -65,7 +65,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
int __init netfilter_log_init(void); int __init netfilter_log_init(void);
--- a/net/netfilter/nf_queue.c --- a/net/netfilter/nf_queue.c
+++ b/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); 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 --- a/net/netfilter/nfnetlink_queue.c
+++ b/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, .notifier_call = nfqnl_rcv_dev_event,
}; };

View File

@ -107,7 +107,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
static unsigned int accept_all(void *priv, static unsigned int accept_all(void *priv,
struct sk_buff *skb, struct sk_buff *skb,
const struct nf_hook_state *state) 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 #ifdef HAVE_JUMP_LABEL
static_key_slow_inc(&nf_hooks_needed[reg->pf][reg->hooknum]); static_key_slow_inc(&nf_hooks_needed[reg->pf][reg->hooknum]);
#endif #endif
@ -118,7 +118,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
return 0; return 0;
} }
EXPORT_SYMBOL(nf_register_net_hook); 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) if (!p)
return; return;

View File

@ -129,7 +129,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
#ifdef CONFIG_NETFILTER_INGRESS #ifdef CONFIG_NETFILTER_INGRESS
if (reg->hooknum == NF_NETDEV_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); EXPORT_SYMBOL(nf_nat_decode_session_hook);
#endif #endif
@ -159,7 +159,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net->nf.proc_netfilter = proc_net_mkdir(net, "netfilter", net->nf.proc_netfilter = proc_net_mkdir(net, "netfilter",
--- a/net/netfilter/nf_queue.c --- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c +++ b/net/netfilter/nf_queue.c
@@ -206,6 +206,23 @@ repeat: @@ -223,6 +223,23 @@ repeat:
return NF_ACCEPT; return NF_ACCEPT;
} }
@ -183,7 +183,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
/* Caller must hold rcu read-side lock */ /* Caller must hold rcu read-side lock */
void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict) 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; net = entry->state.net;
pf = entry->state.pf; pf = entry->state.pf;

View File

@ -64,7 +64,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
return net->nf.hooks_decnet + reg->hooknum; return net->nf.hooks_decnet + reg->hooknum;
default: default:
WARN_ON_ONCE(1); 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); EXPORT_SYMBOL(nf_nat_decode_session_hook);
#endif #endif

View File

@ -55,7 +55,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
default: default:
WARN_ON_ONCE(1); WARN_ON_ONCE(1);
return NULL; 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_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_arp, ARRAY_SIZE(net->nf.hooks_arp));
__netfilter_net_init(net->nf.hooks_bridge, ARRAY_SIZE(net->nf.hooks_bridge)); __netfilter_net_init(net->nf.hooks_bridge, ARRAY_SIZE(net->nf.hooks_bridge));

View File

@ -137,7 +137,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
case NFPROTO_IPV4: case NFPROTO_IPV4:
if (WARN_ON_ONCE(ARRAY_SIZE(net->nf.hooks_ipv4) <= reg->hooknum)) if (WARN_ON_ONCE(ARRAY_SIZE(net->nf.hooks_ipv4) <= reg->hooknum))
return NULL; 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_ipv4, ARRAY_SIZE(net->nf.hooks_ipv4));
__netfilter_net_init(net->nf.hooks_ipv6, ARRAY_SIZE(net->nf.hooks_ipv6)); __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 #endif
--- a/net/netfilter/nf_queue.c --- a/net/netfilter/nf_queue.c
+++ b/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) static struct nf_hook_entries *nf_hook_entries_head(const struct net *net, u8 pf, u8 hooknum)
{ {
switch (pf) { switch (pf) {

View File

@ -87,7 +87,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
if (!pp) if (!pp)
return -EINVAL; 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 __rcu **pp;
struct nf_hook_entries *p; struct nf_hook_entries *p;

View File

@ -13,7 +13,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/netfilter/core.c --- a/net/netfilter/core.c
+++ b/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); 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 * @oldp: current address of hook blob
* @unreg: hook to unregister * @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. * This cannot fail, hook unregistration must always succeed.
* Therefore replace the to-be-removed hook with a dummy hook. * 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; struct nf_hook_ops **orig_ops;
bool found = false; 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; return;
} }

View File

@ -13,7 +13,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/netfilter/core.c --- a/net/netfilter/core.c
+++ b/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. * Therefore replace the to-be-removed hook with a dummy hook.
*/ */
static void nf_remove_net_hook(struct nf_hook_entries *old, 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; struct nf_hook_ops **orig_ops;
bool found = false; 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) { if (found) {
#ifdef CONFIG_NETFILTER_INGRESS #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; return;
} }

View File

@ -39,9 +39,9 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
if (!pp) if (!pp)
return -EINVAL; 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 #ifdef CONFIG_NETFILTER_INGRESS
- if (reg->pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS) - if (reg->pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS)
+ if (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 * 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) if (!pp)
return; return;
@@ -411,7 +412,7 @@ void nf_unregister_net_hook(struct net * @@ -412,7 +413,7 @@ void nf_unregister_net_hook(struct net *
return; return;
} }
@ -84,7 +84,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
p = __nf_hook_entries_try_shrink(pp); p = __nf_hook_entries_try_shrink(pp);
mutex_unlock(&nf_hook_mutex); 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_queue_nf_hook_drop(net);
nf_hook_entries_free(p); nf_hook_entries_free(p);
} }

View File

@ -176,7 +176,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
#include <linux/netfilter_bridge.h> #include <linux/netfilter_bridge.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/rcupdate.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); 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, static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
const struct nf_hook_entries *entries, const struct nf_hook_entries *entries,
unsigned int index, unsigned int queuenum) 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); - afinfo->saveroute(skb, entry);
+ +
+ switch (entry->state.pf) { + switch (entry->state.pf) {

View File

@ -171,7 +171,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/netfilter/nf_queue.c --- a/net/netfilter/nf_queue.c
+++ b/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_entry *hook_entry;
const struct nf_hook_entries *hooks; const struct nf_hook_entries *hooks;
struct sk_buff *skb = entry->skb; struct sk_buff *skb = entry->skb;
@ -179,7 +179,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
const struct net *net; const struct net *net;
unsigned int i; unsigned int i;
int err; 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); verdict = nf_hook_entry_hookfn(hook_entry, skb, &entry->state);
if (verdict == NF_ACCEPT) { if (verdict == NF_ACCEPT) {

View File

@ -48,7 +48,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
#include <net/protocol.h> #include <net/protocol.h>
#include <net/netfilter/nf_queue.h> #include <net/netfilter/nf_queue.h>
#include <net/dst.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; int status = -ENOENT;
struct nf_queue_entry *entry = NULL; 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. */ /* QUEUE == DROP if no one is waiting, to be safe. */
qh = rcu_dereference(net->nf.queue_handler); 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; goto err;
} }
@ -83,7 +83,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
if (!entry) { if (!entry) {
status = -ENOMEM; status = -ENOMEM;
goto err; 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, .skb = skb,
.state = *state, .state = *state,
.hook_index = index, .hook_index = index,
@ -91,4 +91,4 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+ .size = sizeof(*entry) + route_key_size, + .size = sizeof(*entry) + route_key_size,
}; };
nf_queue_entry_get_refs(entry); if (!nf_queue_entry_get_refs(entry)) {

View File

@ -62,7 +62,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
static struct pernet_operations nfnl_log_net_ops = { static struct pernet_operations nfnl_log_net_ops = {
--- a/net/netfilter/nfnetlink_queue.c --- a/net/netfilter/nfnetlink_queue.c
+++ b/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) static void __net_exit nfnl_queue_net_exit(struct net *net)
{ {

View File

@ -1379,7 +1379,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
*/ */
--- a/drivers/net/xen-netfront.c --- a/drivers/net/xen-netfront.c
+++ b/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) { if (work_done < budget) {
int more_to_do = 0; int more_to_do = 0;

View File

@ -1656,6 +1656,7 @@ CONFIG_GENERIC_NET_UTILS=y
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
# CONFIG_HAPPYMEAL is not set # CONFIG_HAPPYMEAL is not set
# CONFIG_HARDEN_BRANCH_HISTORY is not set
# CONFIG_HARDENED_USERCOPY is not set # CONFIG_HARDENED_USERCOPY is not set
# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set # CONFIG_HARDLOCKUP_DETECTOR is not set

View File

@ -1737,6 +1737,7 @@ CONFIG_GPIOLIB_FASTPATH_LIMIT=512
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
# CONFIG_HAPPYMEAL is not set # CONFIG_HAPPYMEAL is not set
# CONFIG_HARDEN_BRANCH_HISTORY is not set
CONFIG_HARDENED_USERCOPY=y CONFIG_HARDENED_USERCOPY=y
# CONFIG_HARDENED_USERCOPY_FALLBACK is not set # CONFIG_HARDENED_USERCOPY_FALLBACK is not set
# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set

View File

@ -1465,6 +1465,7 @@ CONFIG_GENERIC_NET_UTILS=y
# CONFIG_HAMACHI is not set # CONFIG_HAMACHI is not set
# CONFIG_HAMRADIO is not set # CONFIG_HAMRADIO is not set
# CONFIG_HAPPYMEAL is not set # CONFIG_HAPPYMEAL is not set
# CONFIG_HARDEN_BRANCH_HISTORY is not set
# CONFIG_HARDENED_USERCOPY is not set # CONFIG_HARDENED_USERCOPY is not set
# CONFIG_HARDLOCKUP_DETECTOR is not set # CONFIG_HARDLOCKUP_DETECTOR is not set
# CONFIG_HAVE_AOUT is not set # CONFIG_HAVE_AOUT is not set

View File

@ -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. # but it is being used too early to link to meaningful stack_chk logic.
--- a/arch/arm/kernel/vmlinux.lds.S --- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S
@@ -18,7 +18,7 @@ @@ -31,7 +31,7 @@
#define PROC_INFO \ #define PROC_INFO \
. = ALIGN(4); \ . = ALIGN(4); \
VMLINUX_SYMBOL(__proc_info_begin) = .; \ VMLINUX_SYMBOL(__proc_info_begin) = .; \
@ -76,7 +76,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
VMLINUX_SYMBOL(__proc_info_end) = .; VMLINUX_SYMBOL(__proc_info_end) = .;
#define HYPERVISOR_TEXT \ #define HYPERVISOR_TEXT \
@@ -29,11 +29,11 @@ @@ -42,11 +42,11 @@
#define IDMAP_TEXT \ #define IDMAP_TEXT \
ALIGN_FUNCTION(); \ ALIGN_FUNCTION(); \
VMLINUX_SYMBOL(__idmap_text_start) = .; \ VMLINUX_SYMBOL(__idmap_text_start) = .; \
@ -90,7 +90,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
VMLINUX_SYMBOL(__hyp_idmap_text_end) = .; VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
#ifdef CONFIG_HOTPLUG_CPU #ifdef CONFIG_HOTPLUG_CPU
@@ -106,7 +106,7 @@ SECTIONS @@ -119,7 +119,7 @@ SECTIONS
_stext = .; /* Text and read-only data */ _stext = .; /* Text and read-only data */
IDMAP_TEXT IDMAP_TEXT
__exception_text_start = .; __exception_text_start = .;
@ -99,7 +99,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
__exception_text_end = .; __exception_text_end = .;
IRQENTRY_TEXT IRQENTRY_TEXT
SOFTIRQENTRY_TEXT SOFTIRQENTRY_TEXT
@@ -135,7 +135,7 @@ SECTIONS @@ -148,7 +148,7 @@ SECTIONS
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
__start___ex_table = .; __start___ex_table = .;
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
@ -108,7 +108,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#endif #endif
__stop___ex_table = .; __stop___ex_table = .;
} }
@@ -147,12 +147,12 @@ SECTIONS @@ -160,12 +160,12 @@ SECTIONS
. = ALIGN(8); . = ALIGN(8);
.ARM.unwind_idx : { .ARM.unwind_idx : {
__start_unwind_idx = .; __start_unwind_idx = .;
@ -123,24 +123,33 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
__stop_unwind_tab = .; __stop_unwind_tab = .;
} }
#endif #endif
@@ -172,14 +172,14 @@ SECTIONS @@ -186,13 +186,13 @@ SECTIONS
*/ __vectors_lma = .;
__vectors_start = .; OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) {
.vectors 0xffff0000 : AT(__vectors_start) { .vectors {
- *(.vectors) - *(.vectors)
+ KEEP(*(.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); ARM_LMA(__vectors, .vectors);
__vectors_end = .; @@ -204,7 +204,7 @@ SECTIONS
__stubs_start = .; __stubs_lma = .;
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) { .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) {
- *(.stubs) - *(.stubs)
+ KEEP(*(.stubs)) + KEEP(*(.stubs))
} }
. = __stubs_start + SIZEOF(.stubs); ARM_LMA(__stubs, .stubs);
__stubs_end = .; . = __stubs_lma + SIZEOF(.stubs);
@@ -195,24 +195,24 @@ SECTIONS @@ -220,24 +220,24 @@ SECTIONS
} }
.init.arch.info : { .init.arch.info : {
__arch_info_begin = .; __arch_info_begin = .;

View File

@ -318,7 +318,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <asm/sections.h> #include <asm/sections.h>
#include <linux/io.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); memblock_set_region_node(rgn, nid);
type->cnt++; type->cnt++;
type->total_size += size; 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; type->regions[0].flags = flags;
memblock_set_region_node(&type->regions[0], nid); memblock_set_region_node(&type->regions[0], nid);
type->total_size = size; type->total_size = size;

View File

@ -10,7 +10,7 @@
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */ {QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
--- a/drivers/usb/serial/option.c --- a/drivers/usb/serial/option.c
+++ b/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. * Mobidata, etc sell under their own brand names.
*/ */
#define LONGCHEER_VENDOR_ID 0x1c9e #define LONGCHEER_VENDOR_ID 0x1c9e
@ -18,7 +18,7 @@
/* 4G Systems products */ /* 4G Systems products */
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * /* 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 */ /* Device needs ZLP */
#define ZLP BIT(17) #define ZLP BIT(17)
@ -35,7 +35,7 @@
static const struct usb_device_id option_ids[] = { static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, { 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, QUANTA_PRODUCT_GLE) },
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42), { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
.driver_info = RSVD(4) }, .driver_info = RSVD(4) },

View File

@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/init/Kconfig --- a/init/Kconfig
+++ b/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. If unsure, or if you need to build out-of-tree modules, say N.

View File

@ -98,7 +98,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/arch/arm/kernel/vmlinux.lds.h --- a/arch/arm/kernel/vmlinux.lds.h
+++ b/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) #define ARM_MMU_DISCARD(x)
#else #else
#define ARM_MMU_KEEP(x) #define ARM_MMU_KEEP(x)
@ -106,15 +106,17 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+#define ARM_MMU_DISCARD(x) KEEP(x) +#define ARM_MMU_DISCARD(x) KEEP(x)
#endif #endif
/*
@@ -41,7 +41,7 @@
#define PROC_INFO \ #define PROC_INFO \
. = ALIGN(4); \ . = ALIGN(4); \
__proc_info_begin = .; \ __proc_info_begin = .; \
- *(.proc.info.init) \ - *(.proc.info.init) \
+ KEEP(*(.proc.info.init)) \ + KEEP(*(.proc.info.init)) \
__proc_info_end = .; __proc_info_end = .;
#define HYPERVISOR_TEXT \ #define HYPERVISOR_TEXT \
@@ -39,11 +39,11 @@ @@ -52,11 +52,11 @@
#define IDMAP_TEXT \ #define IDMAP_TEXT \
ALIGN_FUNCTION(); \ ALIGN_FUNCTION(); \
__idmap_text_start = .; \ __idmap_text_start = .; \
@ -128,7 +130,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
__hyp_idmap_text_end = .; __hyp_idmap_text_end = .;
#define ARM_DISCARD \ #define ARM_DISCARD \
@@ -86,12 +86,12 @@ @@ -99,12 +99,12 @@
. = ALIGN(8); \ . = ALIGN(8); \
.ARM.unwind_idx : { \ .ARM.unwind_idx : { \
__start_unwind_idx = .; \ __start_unwind_idx = .; \
@ -143,23 +145,32 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
__stop_unwind_tab = .; \ __stop_unwind_tab = .; \
} }
@@ -102,14 +102,14 @@ @@ -116,13 +116,13 @@
#define ARM_VECTORS \ __vectors_lma = .; \
__vectors_start = .; \ OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \
.vectors 0xffff0000 : AT(__vectors_start) { \ .vectors { \
- *(.vectors) \ - *(.vectors) \
+ KEEP(*(.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); \ ARM_LMA(__vectors, .vectors); \
__vectors_end = .; \ @@ -134,7 +134,7 @@
\ \
__stubs_start = .; \ __stubs_lma = .; \
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) { \ .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) { \
- *(.stubs) \ - *(.stubs) \
+ KEEP(*(.stubs)) \ + KEEP(*(.stubs)) \
} \ } \
. = __stubs_start + SIZEOF(.stubs); \ ARM_LMA(__stubs, .stubs); \
__stubs_end = .; \ . = __stubs_lma + SIZEOF(.stubs); \
--- a/arch/mips/Kconfig --- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig +++ b/arch/mips/Kconfig
@@ -43,6 +43,7 @@ config MIPS @@ -43,6 +43,7 @@ config MIPS

View File

@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+#endif +#endif
--- a/init/Kconfig --- a/init/Kconfig
+++ b/init/Kconfig +++ b/init/Kconfig
@@ -1049,6 +1049,10 @@ config RELAY @@ -1052,6 +1052,10 @@ config RELAY
If unsure, say N. If unsure, say N.
@ -318,7 +318,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <asm/sections.h> #include <asm/sections.h>
#include <linux/io.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); memblock_set_region_node(rgn, nid);
type->cnt++; type->cnt++;
type->total_size += size; 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; type->regions[0].flags = flags;
memblock_set_region_node(&type->regions[0], nid); memblock_set_region_node(&type->regions[0], nid);
type->total_size = size; type->total_size = size;

View File

@ -10,7 +10,7 @@
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */ {QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
--- a/drivers/usb/serial/option.c --- a/drivers/usb/serial/option.c
+++ b/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. * Mobidata, etc sell under their own brand names.
*/ */
#define LONGCHEER_VENDOR_ID 0x1c9e #define LONGCHEER_VENDOR_ID 0x1c9e
@ -18,7 +18,7 @@
/* 4G Systems products */ /* 4G Systems products */
/* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick * /* 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 */ /* Device needs ZLP */
#define ZLP BIT(17) #define ZLP BIT(17)
@ -35,7 +35,7 @@
static const struct usb_device_id option_ids[] = { static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, { 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, QUANTA_PRODUCT_GLE) },
{ USB_DEVICE(QUANTA_VENDOR_ID, 0xea42), { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
.driver_info = RSVD(4) }, .driver_info = RSVD(4) },

View File

@ -171,7 +171,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static void add_retpoline(struct buffer *b) static void add_retpoline(struct buffer *b)
{ {
+#ifndef CONFIG_MODULE_STRIPPED +#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, "MODULE_INFO(retpoline, \"Y\");\n");
buf_printf(b, "#endif\n"); buf_printf(b, "#endif\n");
+#endif +#endif

View File

@ -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. # but it is being used too early to link to meaningful stack_chk logic.
--- a/arch/arm/kernel/vmlinux.lds.S --- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S
@@ -17,7 +17,7 @@ @@ -30,7 +30,7 @@
#define PROC_INFO \ #define PROC_INFO \
. = ALIGN(4); \ . = ALIGN(4); \
VMLINUX_SYMBOL(__proc_info_begin) = .; \ VMLINUX_SYMBOL(__proc_info_begin) = .; \
@ -76,7 +76,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
VMLINUX_SYMBOL(__proc_info_end) = .; VMLINUX_SYMBOL(__proc_info_end) = .;
#define HYPERVISOR_TEXT \ #define HYPERVISOR_TEXT \
@@ -28,11 +28,11 @@ @@ -41,11 +41,11 @@
#define IDMAP_TEXT \ #define IDMAP_TEXT \
ALIGN_FUNCTION(); \ ALIGN_FUNCTION(); \
VMLINUX_SYMBOL(__idmap_text_start) = .; \ VMLINUX_SYMBOL(__idmap_text_start) = .; \
@ -90,7 +90,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
VMLINUX_SYMBOL(__hyp_idmap_text_end) = .; VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
#ifdef CONFIG_HOTPLUG_CPU #ifdef CONFIG_HOTPLUG_CPU
@@ -105,7 +105,7 @@ SECTIONS @@ -118,7 +118,7 @@ SECTIONS
_stext = .; /* Text and read-only data */ _stext = .; /* Text and read-only data */
IDMAP_TEXT IDMAP_TEXT
__exception_text_start = .; __exception_text_start = .;
@ -99,7 +99,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
__exception_text_end = .; __exception_text_end = .;
IRQENTRY_TEXT IRQENTRY_TEXT
SOFTIRQENTRY_TEXT SOFTIRQENTRY_TEXT
@@ -134,7 +134,7 @@ SECTIONS @@ -147,7 +147,7 @@ SECTIONS
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
__start___ex_table = .; __start___ex_table = .;
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
@ -108,7 +108,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#endif #endif
__stop___ex_table = .; __stop___ex_table = .;
} }
@@ -146,12 +146,12 @@ SECTIONS @@ -159,12 +159,12 @@ SECTIONS
. = ALIGN(8); . = ALIGN(8);
.ARM.unwind_idx : { .ARM.unwind_idx : {
__start_unwind_idx = .; __start_unwind_idx = .;
@ -123,24 +123,33 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
__stop_unwind_tab = .; __stop_unwind_tab = .;
} }
#endif #endif
@@ -171,14 +171,14 @@ SECTIONS @@ -185,13 +185,13 @@ SECTIONS
*/ __vectors_lma = .;
__vectors_start = .; OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) {
.vectors 0xffff0000 : AT(__vectors_start) { .vectors {
- *(.vectors) - *(.vectors)
+ KEEP(*(.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); ARM_LMA(__vectors, .vectors);
__vectors_end = .; @@ -203,7 +203,7 @@ SECTIONS
__stubs_start = .; __stubs_lma = .;
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) { .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) {
- *(.stubs) - *(.stubs)
+ KEEP(*(.stubs)) + KEEP(*(.stubs))
} }
. = __stubs_start + SIZEOF(.stubs); ARM_LMA(__stubs, .stubs);
__stubs_end = .; . = __stubs_lma + SIZEOF(.stubs);
@@ -194,24 +194,24 @@ SECTIONS @@ -219,24 +219,24 @@ SECTIONS
} }
.init.arch.info : { .init.arch.info : {
__arch_info_begin = .; __arch_info_begin = .;

View File

@ -318,7 +318,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <asm/sections.h> #include <asm/sections.h>
#include <linux/io.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); memblock_set_region_node(rgn, nid);
type->cnt++; type->cnt++;
type->total_size += size; 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; type->regions[0].flags = flags;
memblock_set_region_node(&type->regions[0], nid); memblock_set_region_node(&type->regions[0], nid);
type->total_size = size; type->total_size = size;

View File

@ -1596,7 +1596,7 @@
+void nf_unregister_queue_imq_handler(void); +void nf_unregister_queue_imq_handler(void);
+#endif +#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); void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
--- a/include/net/pkt_sched.h --- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h +++ b/include/net/pkt_sched.h
@ -1817,7 +1817,7 @@
static int static int
--- a/net/netfilter/core.c --- a/net/netfilter/core.c
+++ b/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) if (ret == 0)
ret = -EPERM; ret = -EPERM;
return ret; return ret;
@ -1892,7 +1892,7 @@
/* return EBUSY when somebody else is registered, return EEXIST if the /* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */ * same handler is registered, return 0 in case of success. */
void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh) 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, static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
const struct nf_hook_entries *entries, const struct nf_hook_entries *entries,
@ -1924,7 +1924,7 @@
if (!qh) { if (!qh) {
status = -ESRCH; status = -ESRCH;
goto err; 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; int ret;
@ -1942,7 +1942,7 @@
if (ret == -ESRCH && if (ret == -ESRCH &&
(verdict & NF_VERDICT_FLAG_QUEUE_BYPASS)) (verdict & NF_VERDICT_FLAG_QUEUE_BYPASS))
return 1; return 1;
@@ -323,6 +361,7 @@ next_hook: @@ -340,6 +378,7 @@ next_hook:
local_bh_enable(); local_bh_enable();
break; break;
case NF_QUEUE: case NF_QUEUE:

View File

@ -1856,7 +1856,7 @@
static const struct usb_device_id products[] = { static const struct usb_device_id products[] = {
/* BLACKLIST !! /* 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, .driver_info = 0,
}, },

View File

@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/init/Kconfig --- a/init/Kconfig
+++ b/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. the unaligned access emulation.
see arch/parisc/kernel/unaligned.c for reference see arch/parisc/kernel/unaligned.c for reference

View File

@ -1291,7 +1291,7 @@
+void nf_unregister_queue_imq_handler(void); +void nf_unregister_queue_imq_handler(void);
+#endif +#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); void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
--- a/include/net/pkt_sched.h --- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h +++ b/include/net/pkt_sched.h
@ -1513,7 +1513,7 @@
obj-$(CONFIG_NETFILTER_XT_TARGET_NETMAP) += xt_NETMAP.o obj-$(CONFIG_NETFILTER_XT_TARGET_NETMAP) += xt_NETMAP.o
--- a/net/netfilter/core.c --- a/net/netfilter/core.c
+++ b/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) if (ret == 0)
ret = -EPERM; ret = -EPERM;
return ret; return ret;
@ -1551,7 +1551,7 @@
/* return EBUSY when somebody else is registered, return EEXIST if the /* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */ * same handler is registered, return 0 in case of success. */
void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh) 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, static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
const struct nf_hook_entries *entries, const struct nf_hook_entries *entries,
@ -1582,7 +1582,7 @@
if (!qh) { if (!qh) {
status = -ESRCH; status = -ESRCH;
goto err; 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; int ret;
@ -1600,7 +1600,7 @@
if (ret == -ESRCH && if (ret == -ESRCH &&
(verdict & NF_VERDICT_FLAG_QUEUE_BYPASS)) (verdict & NF_VERDICT_FLAG_QUEUE_BYPASS))
return 1; return 1;
@@ -323,6 +360,7 @@ next_hook: @@ -339,6 +376,7 @@ next_hook:
local_bh_enable(); local_bh_enable();
break; break;
case NF_QUEUE: case NF_QUEUE:

View File

@ -1856,7 +1856,7 @@
static const struct usb_device_id products[] = { static const struct usb_device_id products[] = {
/* BLACKLIST !! /* 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, .driver_info = 0,
}, },

View File

@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
--- a/init/Kconfig --- a/init/Kconfig
+++ b/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 an embedded system so certain expert options are available
for configuration. for configuration.

View File

@ -1549,7 +1549,7 @@
+void nf_unregister_queue_imq_handler(void); +void nf_unregister_queue_imq_handler(void);
+#endif +#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); void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
--- a/include/net/pkt_sched.h --- a/include/net/pkt_sched.h
+++ b/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 /* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */ * same handler is registered, return 0 in case of success. */
void nf_register_queue_handler(struct net *net, const struct nf_queue_handler *qh) 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, static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
@ -1897,7 +1897,7 @@
if (!qh) { if (!qh) {
status = -ESRCH; status = -ESRCH;
goto err; 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; int ret;
RCU_INIT_POINTER(state->hook_entries, entry); RCU_INIT_POINTER(state->hook_entries, entry);
@ -1913,7 +1913,7 @@
if (ret == -ESRCH && if (ret == -ESRCH &&
(verdict & NF_VERDICT_FLAG_QUEUE_BYPASS)) { (verdict & NF_VERDICT_FLAG_QUEUE_BYPASS)) {
*entryp = rcu_dereference(entry->next); *entryp = rcu_dereference(entry->next);
@@ -218,6 +253,7 @@ okfn: @@ -235,6 +270,7 @@ okfn:
local_bh_enable(); local_bh_enable();
break; break;
case NF_QUEUE: case NF_QUEUE:

View File

@ -214,7 +214,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
* address space as memory. Needed when the kernel wants to execute * address space as memory. Needed when the kernel wants to execute
--- a/arch/arm/mm/mmu.c --- a/arch/arm/mm/mmu.c
+++ b/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, .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
.domain = DOMAIN_KERNEL, .domain = DOMAIN_KERNEL,
}, },
@ -228,7 +228,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
[MT_ROM] = { [MT_ROM] = {
.prot_sect = PMD_TYPE_SECT, .prot_sect = PMD_TYPE_SECT,
.domain = DOMAIN_KERNEL, .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; kern_pgprot |= PTE_EXT_AF;
vecs_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 * 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_RWX].prot_pte |= kern_pgprot;
mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd; mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot; mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;

View File

@ -1482,7 +1482,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
#undef DEBUG #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))); pin_mask1bit = (u32) (1 << (QE_PIO_PINS - (pin + 1)));
/* Set open drain, if required */ /* 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 */ /* get all bits mask for 2 bit per port */
pin_mask2bits = (u32) (0x3 << (QE_PIO_PINS - 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 */ /* clear and set 2 bits mask */
if (pin > (QE_PIO_PINS / 2) - 1) { 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); 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 */ /* calculate pin location */
pin_mask = (u32) (1 << (QE_PIO_PINS - 1 - pin)); pin_mask = (u32) (1 << (QE_PIO_PINS - 1 - pin));

View File

@ -528,7 +528,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
reg &= ~DWC3_DCTL_INITU2ENA; reg &= ~DWC3_DCTL_INITU2ENA;
--- a/drivers/usb/dwc3/gadget.c --- a/drivers/usb/dwc3/gadget.c
+++ b/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 ret;
int irq; int irq;
@ -536,7 +536,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
irq = dwc3_gadget_get_irq(dwc); irq = dwc3_gadget_get_irq(dwc);
if (irq < 0) { 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); 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) while (ep_ring->dequeue != td->last_trb)
--- a/drivers/usb/host/xhci.c --- a/drivers/usb/host/xhci.c
+++ b/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; ret = -ENOMEM;
goto done; goto done;
} }

View File

@ -25,7 +25,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@nxp.com>
--- a/drivers/firmware/psci.c --- a/drivers/firmware/psci.c
+++ b/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) 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) 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; arm_pm_restart = psci_sys_reset;
pm_power_off = psci_sys_poweroff; pm_power_off = psci_sys_poweroff;