Refreshed all patches.
Altered patches:
- 950-0748-net-bcmgenet-Workaround-for-Pi-4B-network-issue.patch
- 950-0754-Revert-net-bcmgenet-Workaround-for-Pi-4B-network-iss.patch
- 902-debloat_proc.patch
Remove upstreamed:
- 150-MIPS-bmips-mark-exception-vectors-as-char-arrays.patch
New symbols:
X86_INTEL_MPX
X86_INTEL_MEMORY_PROTECTION_KEYS
X86_INTEL_TSX_MODE_OFF
X86_INTEL_TSX_MODE_ON
X86_INTEL_TSX_MODE_AUTO
Compile-tested on: cns3xxx, x86_64
Runtime-tested on: cns3xxx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_VERSION-4.9 = .202
LINUX_VERSION-4.14 = .154
-LINUX_VERSION-4.19 = .82
+LINUX_VERSION-4.19 = .84
LINUX_KERNEL_HASH-4.9.202 = 8108ec1cd10fc40821c84e9f087dba10b1767aad66596f4a36925faef55e4ebf
LINUX_KERNEL_HASH-4.14.154 = 86de4a24379a78d67fc08b2e249ccf7b689eb6c37fbe329fc3dfbe8ab4300603
-LINUX_KERNEL_HASH-4.19.82 = 58d96d6c2c5ee8288fe9714891e4037a18f457b008e369e33fc744afc2cb595d
+LINUX_KERNEL_HASH-4.19.84 = 868b4a92619cb00ab142a20a67f000525b9605820d1b66faa4a183133eac0660
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -7972,8 +7972,6 @@ int alloc_contig_range(unsigned long sta
+@@ -7980,8 +7980,6 @@ int alloc_contig_range(unsigned long sta
/* Make sure the range is really isolated. */
if (test_pages_isolated(outer_start, end, false)) {
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
-@@ -2472,6 +2472,11 @@ static int lan78xx_reset(struct lan78xx_
+@@ -2475,6 +2475,11 @@ static int lan78xx_reset(struct lan78xx_
int ret = 0;
unsigned long timeout;
u8 sig;
ret = lan78xx_read_reg(dev, HW_CFG, &buf);
buf |= HW_CFG_LRST_;
-@@ -2525,6 +2530,9 @@ static int lan78xx_reset(struct lan78xx_
+@@ -2528,6 +2533,9 @@ static int lan78xx_reset(struct lan78xx_
ret = lan78xx_read_reg(dev, HW_CFG, &buf);
buf |= HW_CFG_MEF_;
ret = lan78xx_write_reg(dev, HW_CFG, buf);
ret = lan78xx_read_reg(dev, USB_CFG0, &buf);
-@@ -2580,6 +2588,9 @@ static int lan78xx_reset(struct lan78xx_
+@@ -2583,6 +2591,9 @@ static int lan78xx_reset(struct lan78xx_
buf |= MAC_CR_AUTO_DUPLEX_ | MAC_CR_AUTO_SPEED_;
}
}
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
-@@ -2654,6 +2654,22 @@ static int lan78xx_open(struct net_devic
+@@ -2657,6 +2657,22 @@ static int lan78xx_open(struct net_devic
netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf = kmalloc(sizeof(u32), GFP_KERNEL);
-@@ -3003,8 +3012,14 @@ static int lan78xx_bind(struct lan78xx_n
+@@ -3006,8 +3015,14 @@ static int lan78xx_bind(struct lan78xx_n
if (DEFAULT_RX_CSUM_ENABLE)
dev->net->features |= NETIF_F_RXCSUM;
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
-@@ -2186,6 +2186,22 @@ static int lan78xx_phy_init(struct lan78
+@@ -2189,6 +2189,22 @@ static int lan78xx_phy_init(struct lan78
mii_adv = (u32)mii_advertise_flowctrl(dev->fc_request_control);
phydev->advertising |= mii_adv_to_ethtool_adv_t(mii_adv);
if (phydev->mdio.dev.of_node) {
u32 reg;
int len;
-@@ -2663,22 +2679,6 @@ static int lan78xx_open(struct net_devic
+@@ -2666,22 +2682,6 @@ static int lan78xx_open(struct net_devic
netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf = kmalloc(sizeof(u32), GFP_KERNEL);
-@@ -3816,7 +3821,12 @@ static int lan78xx_probe(struct usb_inte
+@@ -3819,7 +3824,12 @@ static int lan78xx_probe(struct usb_inte
dev->pipe_intr = usb_rcvintpipe(dev->udev,
dev->ep_intr->desc.bEndpointAddress &
USB_ENDPOINT_NUMBER_MASK);
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
-@@ -2191,7 +2191,7 @@ static int lan78xx_phy_init(struct lan78
+@@ -2194,7 +2194,7 @@ static int lan78xx_phy_init(struct lan78
mii_adv = (u32)mii_advertise_flowctrl(dev->fc_request_control);
phydev->advertising |= mii_adv_to_ethtool_adv_t(mii_adv);
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
-@@ -3250,7 +3250,7 @@ static int rx_submit(struct lan78xx_net
+@@ -3253,7 +3253,7 @@ static int rx_submit(struct lan78xx_net
size_t size = dev->rx_urb_size;
int ret = 0;
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2147,7 +2147,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2149,7 +2149,7 @@ static void bcmgenet_init_tx_ring(struct
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -3571,9 +3571,12 @@ static int bcmgenet_probe(struct platfor
+@@ -3576,9 +3576,12 @@ static int bcmgenet_probe(struct platfor
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
/* Set default coalescing parameters */
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
-@@ -1190,6 +1193,9 @@
+@@ -1192,6 +1195,9 @@
#define USB_VENDOR_ID_XAT 0x2505
#define USB_DEVICE_ID_XAT_CSR 0x0220
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
/* MIPS chips strapped for BE will automagically configure the
-@@ -2610,6 +2614,7 @@ static void bcmgenet_irq_task(struct wor
+@@ -2612,6 +2616,7 @@ static void bcmgenet_irq_task(struct wor
unsigned int status;
struct bcmgenet_priv *priv = container_of(
work, struct bcmgenet_priv, bcmgenet_irq_work);
netif_dbg(priv, intr, priv->dev, "%s\n", __func__);
-@@ -2622,6 +2627,23 @@ static void bcmgenet_irq_task(struct wor
- if (status & UMAC_IRQ_LINK_EVENT) {
- priv->dev->phydev->link = !!(status & UMAC_IRQ_LINK_UP);
+@@ -2625,9 +2630,26 @@ static void bcmgenet_irq_task(struct wor
+ phy_init_hw(priv->dev->phydev);
+
+ /* Link UP/DOWN event */
+- if (status & UMAC_IRQ_LINK_EVENT)
++ if (status & UMAC_IRQ_LINK_EVENT) {
phy_mac_interrupt(priv->dev->phydev);
-+
+
+ if (priv->dev->phydev->link && first_link) {
+ first_link = 0;
+ /*
+ */
+ if (force_reneg) {
+ dev_info(&priv->pdev->dev,
-+ "Forcing renegotiation\n");
++ "Forcing renegotiation\n");
+ genphy_restart_aneg(priv->dev->phydev);
+ }
+ }
- }
++ }
}
+ /* bcmgenet_isr1: handle Rx and Tx priority queues */
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
/* MIPS chips strapped for BE will automagically configure the
-@@ -2614,7 +2610,6 @@ static void bcmgenet_irq_task(struct wor
+@@ -2616,7 +2612,6 @@ static void bcmgenet_irq_task(struct wor
unsigned int status;
struct bcmgenet_priv *priv = container_of(
work, struct bcmgenet_priv, bcmgenet_irq_work);
netif_dbg(priv, intr, priv->dev, "%s\n", __func__);
-@@ -2627,23 +2622,6 @@ static void bcmgenet_irq_task(struct wor
- if (status & UMAC_IRQ_LINK_EVENT) {
- priv->dev->phydev->link = !!(status & UMAC_IRQ_LINK_UP);
+@@ -2630,26 +2625,9 @@ static void bcmgenet_irq_task(struct wor
+ phy_init_hw(priv->dev->phydev);
+
+ /* Link UP/DOWN event */
+- if (status & UMAC_IRQ_LINK_EVENT) {
++ if (status & UMAC_IRQ_LINK_EVENT)
phy_mac_interrupt(priv->dev->phydev);
--
+
- if (priv->dev->phydev->link && first_link) {
- first_link = 0;
- /*
- */
- if (force_reneg) {
- dev_info(&priv->pdev->dev,
-- "Forcing renegotiation\n");
+- "Forcing renegotiation\n");
- genphy_restart_aneg(priv->dev->phydev);
- }
- }
- }
+- }
}
+ /* bcmgenet_isr1: handle Rx and Tx priority queues */
+++ /dev/null
-From badf0fc9f7dc72d06a47357123c7d97dc45792f5 Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jonas.gorski@gmail.com>
-Date: Tue, 15 Oct 2019 23:27:10 +0200
-Subject: [PATCH v2] MIPS: bmips: mark exception vectors as char arrays
-
-The vectors span more than one byte, so mark them as arrays.
-
-Fixes the following build error when building when using GCC 8.3:
-
-In file included from ./include/linux/string.h:19,
- from ./include/linux/bitmap.h:9,
- from ./include/linux/cpumask.h:12,
- from ./arch/mips/include/asm/processor.h:15,
- from ./arch/mips/include/asm/thread_info.h:16,
- from ./include/linux/thread_info.h:38,
- from ./include/asm-generic/preempt.h:5,
- from ./arch/mips/include/generated/asm/preempt.h:1,
- from ./include/linux/preempt.h:81,
- from ./include/linux/spinlock.h:51,
- from ./include/linux/mmzone.h:8,
- from ./include/linux/bootmem.h:8,
- from arch/mips/bcm63xx/prom.c:10:
-arch/mips/bcm63xx/prom.c: In function 'prom_init':
-./arch/mips/include/asm/string.h:162:11: error: '__builtin_memcpy' forming offset [2, 32] is out of the bounds [0, 1] of object 'bmips_smp_movevec' with type 'char' [-Werror=array-bounds]
- __ret = __builtin_memcpy((dst), (src), __len); \
- ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-arch/mips/bcm63xx/prom.c:97:3: note: in expansion of macro 'memcpy'
- memcpy((void *)0xa0000200, &bmips_smp_movevec, 0x20);
- ^~~~~~
-In file included from arch/mips/bcm63xx/prom.c:14:
-./arch/mips/include/asm/bmips.h:80:13: note: 'bmips_smp_movevec' declared here
- extern char bmips_smp_movevec;
-
-Fixes: 18a1eef92dcd ("MIPS: BMIPS: Introduce bmips.h")
-Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
----
-
-v1 -> v2:
- * Actually update the callers as well, to not break the build in a
- different way.
-
- arch/mips/bcm63xx/prom.c | 2 +-
- arch/mips/include/asm/bmips.h | 10 +++++-----
- arch/mips/kernel/smp-bmips.c | 8 ++++----
- 3 files changed, 10 insertions(+), 10 deletions(-)
-
---- a/arch/mips/bcm63xx/prom.c
-+++ b/arch/mips/bcm63xx/prom.c
-@@ -84,7 +84,7 @@ void __init prom_init(void)
- * Here we will start up CPU1 in the background and ask it to
- * reconfigure itself then go back to sleep.
- */
-- memcpy((void *)0xa0000200, &bmips_smp_movevec, 0x20);
-+ memcpy((void *)0xa0000200, bmips_smp_movevec, 0x20);
- __sync();
- set_c0_cause(C_SW0);
- cpumask_set_cpu(1, &bmips_booted_mask);
---- a/arch/mips/include/asm/bmips.h
-+++ b/arch/mips/include/asm/bmips.h
-@@ -75,11 +75,11 @@ static inline int register_bmips_smp_ops
- #endif
- }
-
--extern char bmips_reset_nmi_vec;
--extern char bmips_reset_nmi_vec_end;
--extern char bmips_smp_movevec;
--extern char bmips_smp_int_vec;
--extern char bmips_smp_int_vec_end;
-+extern char bmips_reset_nmi_vec[];
-+extern char bmips_reset_nmi_vec_end[];
-+extern char bmips_smp_movevec[];
-+extern char bmips_smp_int_vec[];
-+extern char bmips_smp_int_vec_end[];
-
- extern int bmips_smp_enabled;
- extern int bmips_cpu_offset;
---- a/arch/mips/kernel/smp-bmips.c
-+++ b/arch/mips/kernel/smp-bmips.c
-@@ -457,10 +457,10 @@ static void bmips_wr_vec(unsigned long d
-
- static inline void bmips_nmi_handler_setup(void)
- {
-- bmips_wr_vec(BMIPS_NMI_RESET_VEC, &bmips_reset_nmi_vec,
-- &bmips_reset_nmi_vec_end);
-- bmips_wr_vec(BMIPS_WARM_RESTART_VEC, &bmips_smp_int_vec,
-- &bmips_smp_int_vec_end);
-+ bmips_wr_vec(BMIPS_NMI_RESET_VEC, bmips_reset_nmi_vec,
-+ bmips_reset_nmi_vec_end);
-+ bmips_wr_vec(BMIPS_WARM_RESTART_VEC, bmips_smp_int_vec,
-+ bmips_smp_int_vec_end);
- }
-
- struct reset_vec_info {
--- a/net/netfilter/nf_flow_table_core.c
+++ b/net/netfilter/nf_flow_table_core.c
-@@ -531,5 +531,35 @@ void nf_flow_table_free(struct nf_flowta
+@@ -532,5 +532,35 @@ void nf_flow_table_free(struct nf_flowta
}
EXPORT_SYMBOL_GPL(nf_flow_table_free);
nf_ct_gc_expired(tmp);
--- a/net/netfilter/nf_flow_table_core.c
+++ b/net/netfilter/nf_flow_table_core.c
-@@ -183,6 +183,24 @@ static const struct rhashtable_params nf
+@@ -183,10 +183,29 @@ static const struct rhashtable_params nf
.automatic_shrinking = true,
};
int flow_offload_add(struct nf_flowtable *flow_table, struct flow_offload *flow)
{
int err;
-@@ -203,6 +221,7 @@ int flow_offload_add(struct nf_flowtable
- return err;
- }
+ nf_ct_offload_timeout(flow);
flow->timeout = (u32)jiffies + NF_FLOW_TIMEOUT;
- return 0;
- }
-@@ -316,6 +335,8 @@ static int nf_flow_offload_gc_step(struc
+
+ err = rhashtable_insert_fast(&flow_table->rhashtable,
+@@ -317,6 +336,8 @@ static int nf_flow_offload_gc_step(struc
rhashtable_walk_start(&hti);
while ((tuplehash = rhashtable_walk_next(&hti))) {
if (IS_ERR(tuplehash)) {
err = PTR_ERR(tuplehash);
if (err != -EAGAIN)
-@@ -328,9 +349,13 @@ static int nf_flow_offload_gc_step(struc
+@@ -329,9 +350,13 @@ static int nf_flow_offload_gc_step(struc
flow = container_of(tuplehash, struct flow_offload, tuplehash[0]);
--- a/net/netfilter/nf_flow_table_core.c
+++ b/net/netfilter/nf_flow_table_core.c
-@@ -242,6 +242,9 @@ static void flow_offload_del(struct nf_f
+@@ -243,6 +243,9 @@ static void flow_offload_del(struct nf_f
e = container_of(flow, struct flow_offload_entry, flow);
clear_bit(IPS_OFFLOAD_BIT, &e->ct->status);
drivers/leds/trigger/ledtrig-netdev.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
-diff --git a/drivers/leds/trigger/ledtrig-netdev.c b/drivers/leds/trigger/ledtrig-netdev.c
-index 136f86a1627d..d5e774d83021 100644
--- a/drivers/leds/trigger/ledtrig-netdev.c
+++ b/drivers/leds/trigger/ledtrig-netdev.c
-@@ -302,10 +302,12 @@ static int netdev_trig_notify(struct notifier_block *nb,
+@@ -302,10 +302,12 @@ static int netdev_trig_notify(struct not
container_of(nb, struct led_netdev_data, notifier);
if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE
(evt == NETDEV_REGISTER && !strcmp(dev->name, trigger_data->device_name))))
return NOTIFY_DONE;
-@@ -315,6 +317,7 @@ static int netdev_trig_notify(struct notifier_block *nb,
+@@ -315,6 +317,7 @@ static int netdev_trig_notify(struct not
clear_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
switch (evt) {
case NETDEV_REGISTER:
if (trigger_data->net_dev)
dev_put(trigger_data->net_dev);
---
-2.20.1
-
--- a/Makefile
+++ b/Makefile
-@@ -1226,7 +1226,6 @@ all: modules
+@@ -1232,7 +1232,6 @@ all: modules
PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1255,7 +1254,6 @@ _modinst_:
+@@ -1261,7 +1260,6 @@ _modinst_:
rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \
fi
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2529,6 +2529,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2545,6 +2545,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2660,16 +2664,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2676,16 +2680,6 @@ static inline struct sk_buff *dev_alloc_
}
#endif
#ifdef CONFIG_PROC_FS
- proc_create_seq("buddyinfo", 0444, NULL, &fragmentation_op);
-- proc_create_seq("pagetypeinfo", 0444, NULL, &pagetypeinfo_op);
+- proc_create_seq("pagetypeinfo", 0400, NULL, &pagetypeinfo_op);
+ if (!IS_ENABLED(CONFIG_PROC_STRIPPED)) {
+ proc_create_seq("buddyinfo", 0444, NULL, &fragmentation_op);
-+ proc_create_seq("pagetypeinfo", 0444, NULL, &pagetypeinfo_op);
++ proc_create_seq("pagetypeinfo", 0400, NULL, &pagetypeinfo_op);
+ proc_create_seq("zoneinfo", 0444, NULL, &zoneinfo_op);
+ }
proc_create_seq("vmstat", 0444, NULL, &vmstat_op);
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6395,7 +6395,7 @@ static void __ref alloc_node_mem_map(str
+@@ -6403,7 +6403,7 @@ static void __ref alloc_node_mem_map(str
mem_map = NODE_DATA(0)->node_mem_map;
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
{
unsigned long rb,rs,prs,r;
-@@ -239,7 +239,7 @@ static inline void fixup_tlbie_lpid(unsi
+@@ -300,7 +300,7 @@ static inline void fixup_tlbie_lpid(unsi
/*
* We use 128 set in radix mode and 256 set in hpt mode.
*/
{
int set;
-@@ -918,7 +918,7 @@ void radix__tlb_flush(struct mmu_gather
+@@ -982,7 +982,7 @@ void radix__tlb_flush(struct mmu_gather
tlb->need_flush_all = 0;
}
obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o
--- a/net/netfilter/nf_flow_table_core.c
+++ b/net/netfilter/nf_flow_table_core.c
-@@ -227,10 +227,16 @@ int flow_offload_add(struct nf_flowtable
+@@ -228,10 +228,16 @@ int flow_offload_add(struct nf_flowtable
}
EXPORT_SYMBOL_GPL(flow_offload_add);
rhashtable_remove_fast(&flow_table->rhashtable,
&flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].node,
-@@ -245,6 +251,9 @@ static void flow_offload_del(struct nf_f
+@@ -246,6 +252,9 @@ static void flow_offload_del(struct nf_f
if (!(flow->flags & FLOW_OFFLOAD_TEARDOWN))
flow_offload_fixup_ct_state(e->ct);
flow_offload_free(flow);
}
-@@ -358,6 +367,9 @@ static int nf_flow_offload_gc_step(struc
+@@ -359,6 +368,9 @@ static int nf_flow_offload_gc_step(struc
if (!teardown)
nf_ct_offload_timeout(flow);
if (nf_flow_has_expired(flow) || teardown)
flow_offload_del(flow_table, flow);
}
-@@ -493,10 +505,43 @@ int nf_flow_dnat_port(const struct flow_
+@@ -494,10 +506,43 @@ int nf_flow_dnat_port(const struct flow_
}
EXPORT_SYMBOL_GPL(nf_flow_dnat_port);
INIT_DEFERRABLE_WORK(&flowtable->gc_work, nf_flow_offload_work_gc);
err = rhashtable_init(&flowtable->rhashtable,
-@@ -534,6 +579,8 @@ static void nf_flow_table_iterate_cleanu
+@@ -535,6 +580,8 @@ static void nf_flow_table_iterate_cleanu
{
nf_flow_table_iterate(flowtable, nf_flow_table_do_cleanup, dev);
flush_delayed_work(&flowtable->gc_work);
}
void nf_flow_table_cleanup(struct net *net, struct net_device *dev)
-@@ -547,6 +594,26 @@ void nf_flow_table_cleanup(struct net *n
+@@ -548,6 +595,26 @@ void nf_flow_table_cleanup(struct net *n
}
EXPORT_SYMBOL_GPL(nf_flow_table_cleanup);
void nf_flow_table_free(struct nf_flowtable *flow_table)
{
mutex_lock(&flowtable_lock);
-@@ -556,9 +623,58 @@ void nf_flow_table_free(struct nf_flowta
+@@ -557,9 +624,58 @@ void nf_flow_table_free(struct nf_flowta
nf_flow_table_iterate(flow_table, nf_flow_table_do_cleanup, NULL);
WARN_ON(!nf_flow_offload_gc_step(flow_table));
rhashtable_destroy(&flow_table->rhashtable);
struct flow_offload_tuple_rhash tuplehash[FLOW_OFFLOAD_DIR_MAX];
--- a/net/netfilter/nf_flow_table_core.c
+++ b/net/netfilter/nf_flow_table_core.c
-@@ -367,7 +367,7 @@ static int nf_flow_offload_gc_step(struc
+@@ -368,7 +368,7 @@ static int nf_flow_offload_gc_step(struc
if (!teardown)
nf_ct_offload_timeout(flow);
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2493,7 +2493,7 @@ static inline int pskb_network_may_pull(
+@@ -2509,7 +2509,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
-@@ -900,6 +914,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -904,6 +918,7 @@ static const int fib6_prop[RTN_MAX + 1]
[RTN_BLACKHOLE] = -EINVAL,
[RTN_UNREACHABLE] = -EHOSTUNREACH,
[RTN_PROHIBIT] = -EACCES,
[RTN_THROW] = -EAGAIN,
[RTN_NAT] = -EINVAL,
[RTN_XRESOLVE] = -EINVAL,
-@@ -937,6 +952,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -941,6 +956,10 @@ static void ip6_rt_init_dst_reject(struc
rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit;
break;
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -3774,6 +3793,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -3781,6 +3800,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
/*
* Allocate a dst for local (unicast / anycast) address.
*/
-@@ -4221,7 +4251,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -4228,7 +4258,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -5069,6 +5100,8 @@ static int ip6_route_dev_notify(struct n
+@@ -5076,6 +5107,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -5080,6 +5113,7 @@ static int ip6_route_dev_notify(struct n
+@@ -5087,6 +5120,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
-@@ -5274,6 +5308,15 @@ static int __net_init ip6_route_net_init
+@@ -5281,6 +5315,15 @@ static int __net_init ip6_route_net_init
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
#endif
net->ipv6.sysctl.flush_delay = 0;
-@@ -5292,6 +5335,8 @@ out:
+@@ -5299,6 +5342,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -5312,6 +5357,7 @@ static void __net_exit ip6_route_net_exi
+@@ -5319,6 +5364,7 @@ static void __net_exit ip6_route_net_exi
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
}
-@@ -5388,6 +5434,9 @@ void __init ip6_route_init_special_entri
+@@ -5395,6 +5441,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
drivers/spi/spi-mtk-snfi.c | 12 +++++++++
3 files changed, 79 insertions(+)
-diff --git a/arch/arm/boot/dts/mt7629-rfb.dts b/arch/arm/boot/dts/mt7629-rfb.dts
-index 8043238fe..ef140623e 100755
--- a/arch/arm/boot/dts/mt7629-rfb.dts
+++ b/arch/arm/boot/dts/mt7629-rfb.dts
@@ -258,6 +258,51 @@
&spi {
pinctrl-names = "default";
pinctrl-0 = <&spi_pins>;
-diff --git a/arch/arm/boot/dts/mt7629.dtsi b/arch/arm/boot/dts/mt7629.dtsi
-index 53f47796b..c7bd5fc9b 100755
--- a/arch/arm/boot/dts/mt7629.dtsi
+++ b/arch/arm/boot/dts/mt7629.dtsi
@@ -259,6 +259,28 @@
spi: spi@1100a000 {
compatible = "mediatek,mt7629-spi",
"mediatek,mt7622-spi";
-diff --git a/drivers/spi/spi-mtk-snfi.c b/drivers/spi/spi-mtk-snfi.c
-index cd600d9fb..113f541e6 100644
--- a/drivers/spi/spi-mtk-snfi.c
+++ b/drivers/spi/spi-mtk-snfi.c
-@@ -1029,8 +1029,20 @@ static const struct mtk_snfi_caps snfi_mt7622 = {
+@@ -1029,8 +1029,20 @@ static const struct mtk_snfi_caps snfi_m
.bad_mark_swap = 0,
};
{ /* sentinel */ }
};
---
-2.21.0
-
-diff --git a/arch/arm/boot/dts/mt7629-lynx-rfb.dts b/arch/arm/boot/dts/mt7629-lynx-rfb.dts
-index f3fadd3..895d6c4 100755
--- a/arch/arm/boot/dts/mt7629-lynx-rfb.dts
+++ b/arch/arm/boot/dts/mt7629-lynx-rfb.dts
-@@ -278,6 +278,52 @@
+@@ -281,6 +281,52 @@
};
};
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_GENERIC=y
# CONFIG_X86_GX_SUSPMOD is not set
+# CONFIG_X86_INTEL_MPX is not set
+# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set
# CONFIG_X86_INTEL_PSTATE is not set
+CONFIG_X86_INTEL_TSX_MODE_OFF=y
+# CONFIG_X86_INTEL_TSX_MODE_ON is not set
+# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
CONFIG_X86_INTEL_UMIP=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6