Refreshed all patches.
Compile-tested on: lantiq
Runtime-tested on: none
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
LINUX_RELEASE?=1
-LINUX_VERSION-4.9 = .206
+LINUX_VERSION-4.9 = .207
LINUX_VERSION-4.14 = .160
-LINUX_KERNEL_HASH-4.9.206 = 1df27899a9bc4dd874f3830ab9e7b638f0026dffd67a2e230444e5d2805ccad6
+LINUX_KERNEL_HASH-4.9.207 = ca86637e7b5bec65eeb7da695824e0e8aca5ba52eb742885f0b7241977400124
LINUX_KERNEL_HASH-4.14.160 = c60326bad1bcdede514ca8a0bb96843fa7578ef00829cced6218b888b2efa92c
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
config ATH25
bool "Atheros AR231x/AR531x SoC support"
-@@ -1006,6 +1006,7 @@ config MIPS_PARAVIRT
+@@ -1007,6 +1007,7 @@ config MIPS_PARAVIRT
endchoice
source "arch/mips/alchemy/Kconfig"
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -1151,6 +1151,9 @@ config MIPS_MSC
+@@ -1152,6 +1152,9 @@ config MIPS_MSC
config MIPS_NILE4
bool
#define memset(p,v,n) \
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
-@@ -526,6 +526,9 @@ do { \
+@@ -544,6 +544,9 @@ do { \
extern unsigned long __must_check
arm_copy_from_user(void *to, const void __user *from, unsigned long n);
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
-@@ -2517,7 +2517,12 @@ static int pl011_setup_port(struct devic
+@@ -2515,7 +2515,12 @@ static int pl011_setup_port(struct devic
if (IS_ERR(base))
return PTR_ERR(base);
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
-@@ -1651,6 +1651,23 @@ static void pl011_put_poll_char(struct u
+@@ -1649,6 +1649,23 @@ static void pl011_put_poll_char(struct u
#endif /* CONFIG_CONSOLE_POLL */
static int pl011_hwinit(struct uart_port *port)
{
struct uart_amba_port *uap =
-@@ -1667,7 +1684,7 @@ static int pl011_hwinit(struct uart_port
+@@ -1665,7 +1682,7 @@ static int pl011_hwinit(struct uart_port
if (retval)
return retval;
/* Clear pending error and receive interrupts */
pl011_write(UART011_OEIS | UART011_BEIS | UART011_PEIS |
-@@ -2321,7 +2338,7 @@ static int __init pl011_console_setup(st
+@@ -2319,7 +2336,7 @@ static int __init pl011_console_setup(st
plat->init();
}
if (uap->vendor->fixed_options) {
baud = uap->fixed_baud;
-@@ -2448,6 +2465,7 @@ static struct uart_driver amba_reg = {
+@@ -2446,6 +2463,7 @@ static struct uart_driver amba_reg = {
.cons = AMBA_CONSOLE,
};
static int pl011_probe_dt_alias(int index, struct device *dev)
{
struct device_node *np;
-@@ -2479,6 +2497,7 @@ static int pl011_probe_dt_alias(int inde
+@@ -2477,6 +2495,7 @@ static int pl011_probe_dt_alias(int inde
return ret;
}
return (struct tcp_sock *)sk;
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -789,10 +789,10 @@ static void tcp_tasklet_func(unsigned lo
+@@ -790,10 +790,10 @@ static void tcp_tasklet_func(unsigned lo
}
}
/**
* tcp_release_cb - tcp release_sock() callback
* @sk: socket
-@@ -813,7 +813,7 @@ void tcp_release_cb(struct sock *sk)
+@@ -814,7 +814,7 @@ void tcp_release_cb(struct sock *sk)
nflags = flags & ~TCP_DEFERRED_ALL;
} while (cmpxchg(&tp->tsq_flags, flags, nflags) != flags);
tcp_tsq_handler(sk);
/* Here begins the tricky part :
-@@ -827,15 +827,15 @@ void tcp_release_cb(struct sock *sk)
+@@ -828,15 +828,15 @@ void tcp_release_cb(struct sock *sk)
*/
sock_release_ownership(sk);
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -865,6 +865,7 @@ void tcp_wfree(struct sk_buff *skb)
+@@ -866,6 +866,7 @@ void tcp_wfree(struct sk_buff *skb)
{
struct sock *sk = skb->sk;
struct tcp_sock *tp = tcp_sk(sk);
int wmem;
/* Keep one reference on sk_wmem_alloc.
-@@ -882,11 +883,17 @@ void tcp_wfree(struct sk_buff *skb)
+@@ -883,11 +884,17 @@ void tcp_wfree(struct sk_buff *skb)
if (wmem >= SKB_TRUESIZE(1) && this_cpu_ksoftirqd() == current)
goto out;
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -772,19 +772,19 @@ static void tcp_tasklet_func(unsigned lo
+@@ -773,19 +773,19 @@ static void tcp_tasklet_func(unsigned lo
list_for_each_safe(q, n, &list) {
tp = list_entry(q, struct tcp_sock, tsq_node);
list_del(&tp->tsq_node);
sk_free(sk);
}
}
-@@ -889,7 +889,7 @@ void tcp_wfree(struct sk_buff *skb)
+@@ -890,7 +890,7 @@ void tcp_wfree(struct sk_buff *skb)
if (!(oval & TSQF_THROTTLED) || (oval & TSQF_QUEUED))
goto out;
nval = cmpxchg(&tp->tsq_flags, oval, nval);
if (nval != oval)
continue;
-@@ -2236,6 +2236,8 @@ static bool tcp_write_xmit(struct sock *
+@@ -2237,6 +2237,8 @@ static bool tcp_write_xmit(struct sock *
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
break;
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -885,6 +885,7 @@ void tcp_wfree(struct sk_buff *skb)
+@@ -886,6 +886,7 @@ void tcp_wfree(struct sk_buff *skb)
for (oval = READ_ONCE(tp->tsq_flags);; oval = nval) {
struct tsq_tasklet *tsq;
if (!(oval & TSQF_THROTTLED) || (oval & TSQF_QUEUED))
goto out;
-@@ -897,8 +898,10 @@ void tcp_wfree(struct sk_buff *skb)
+@@ -898,8 +899,10 @@ void tcp_wfree(struct sk_buff *skb)
/* queue this socket to tasklet queue */
local_irq_save(flags);
tsq = this_cpu_ptr(&tsq_tasklet);
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -2141,6 +2141,15 @@ static bool tcp_small_queue_check(struct
+@@ -2142,6 +2142,15 @@ static bool tcp_small_queue_check(struct
limit <<= factor;
if (atomic_read(&sk->sk_wmem_alloc) > limit) {
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -1973,26 +1973,26 @@ static bool tcp_can_coalesce_send_queue_
+@@ -1974,26 +1974,26 @@ static bool tcp_can_coalesce_send_queue_
*/
static int tcp_mtu_probe(struct sock *sk)
{
goto out;
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -772,14 +772,15 @@ static void tcp_tasklet_func(unsigned lo
+@@ -773,14 +773,15 @@ static void tcp_tasklet_func(unsigned lo
list_for_each_safe(q, n, &list) {
tp = list_entry(q, struct tcp_sock, tsq_node);
list_del(&tp->tsq_node);
tcp_tsq_handler(sk);
}
bh_unlock_sock(sk);
-@@ -802,16 +803,15 @@ static void tcp_tasklet_func(unsigned lo
+@@ -803,16 +804,15 @@ static void tcp_tasklet_func(unsigned lo
*/
void tcp_release_cb(struct sock *sk)
{
if (flags & TCPF_TSQ_DEFERRED)
tcp_tsq_handler(sk);
-@@ -883,7 +883,7 @@ void tcp_wfree(struct sk_buff *skb)
+@@ -884,7 +884,7 @@ void tcp_wfree(struct sk_buff *skb)
if (wmem >= SKB_TRUESIZE(1) && this_cpu_ksoftirqd() == current)
goto out;
struct tsq_tasklet *tsq;
bool empty;
-@@ -891,7 +891,7 @@ void tcp_wfree(struct sk_buff *skb)
+@@ -892,7 +892,7 @@ void tcp_wfree(struct sk_buff *skb)
goto out;
nval = (oval & ~TSQF_THROTTLED) | TSQF_QUEUED | TCPF_TSQ_DEFERRED;
if (nval != oval)
continue;
-@@ -2150,7 +2150,7 @@ static bool tcp_small_queue_check(struct
+@@ -2151,7 +2151,7 @@ static bool tcp_small_queue_check(struct
skb->prev == sk->sk_write_queue.next)
return false;
/* It is possible TX completion already happened
* before we set TSQ_THROTTLED, so we must
* test again the condition.
-@@ -2248,8 +2248,8 @@ static bool tcp_write_xmit(struct sock *
+@@ -2249,8 +2249,8 @@ static bool tcp_write_xmit(struct sock *
unlikely(tso_fragment(sk, skb, limit, mss_now, gfp)))
break;
if (tcp_small_queue_check(sk, skb, 0))
break;
-@@ -3560,8 +3560,6 @@ void __tcp_send_ack(struct sock *sk, u32
+@@ -3561,8 +3561,6 @@ void __tcp_send_ack(struct sock *sk, u32
/* We do not want pure acks influencing TCP Small Queues or fq/pacing
* too much.
* SKB_TRUESIZE(max(1 .. 66, MAX_TCP_HEADER)) is unfortunately ~784
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -774,6 +774,7 @@ static void tcp_tasklet_func(unsigned lo
+@@ -775,6 +775,7 @@ static void tcp_tasklet_func(unsigned lo
list_del(&tp->tsq_node);
sk = (struct sock *)tp;
* Before updating sk_refcnt, we must commit prior changes to memory
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -1606,7 +1606,7 @@ u32 tcp_tso_autosize(const struct sock *
+@@ -1607,7 +1607,7 @@ u32 tcp_tso_autosize(const struct sock *
{
u32 bytes, segs;
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
/* Goal is to send at least one packet per ms,
-@@ -2137,7 +2137,7 @@ static bool tcp_small_queue_check(struct
+@@ -2138,7 +2138,7 @@ static bool tcp_small_queue_check(struct
{
unsigned int limit;
int (*_suspend) (struct mtd_info *mtd);
void (*_resume) (struct mtd_info *mtd);
void (*_reboot) (struct mtd_info *mtd);
-@@ -397,6 +398,18 @@ static inline int mtd_oobavail(struct mt
+@@ -397,6 +398,18 @@ static inline u32 mtd_oobavail(struct mt
return ops->mode == MTD_OPS_AUTO_OOB ? mtd->oobavail : mtd->oobsize;
}
--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
-@@ -2803,7 +2803,7 @@ static int ath10k_pci_napi_poll(struct n
+@@ -2804,7 +2804,7 @@ static int ath10k_pci_napi_poll(struct n
done = ath10k_htt_txrx_compl_task(ar, budget);
if (done < budget) {
config MODULES_TREE_LOOKUP
--- a/kernel/module.c
+++ b/kernel/module.c
-@@ -2968,9 +2968,11 @@ static struct module *setup_load_info(st
+@@ -2970,9 +2970,11 @@ static struct module *setup_load_info(st
static int check_modinfo(struct module *mod, struct load_info *info, int flags)
{
if (flags & MODULE_INIT_IGNORE_VERMAGIC)
modmagic = NULL;
-@@ -2991,6 +2993,7 @@ static int check_modinfo(struct module *
+@@ -2993,6 +2995,7 @@ static int check_modinfo(struct module *
mod->name);
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
}
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
-@@ -1967,7 +1967,9 @@ static void read_symbols(char *modname)
+@@ -1979,7 +1979,9 @@ static void read_symbols(char *modname)
symname = remove_dot(info.strtab + sym->st_name);
handle_modversions(mod, &info, sym, symname);
}
if (!is_vmlinux(modname) ||
(is_vmlinux(modname) && vmlinux_section_warnings))
-@@ -2111,7 +2113,9 @@ static void add_header(struct buffer *b,
+@@ -2123,7 +2125,9 @@ static void add_header(struct buffer *b,
buf_printf(b, "#include <linux/vermagic.h>\n");
buf_printf(b, "#include <linux/compiler.h>\n");
buf_printf(b, "\n");
buf_printf(b, "\n");
buf_printf(b, "__visible struct module __this_module\n");
buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
-@@ -2128,24 +2132,30 @@ static void add_header(struct buffer *b,
+@@ -2140,24 +2144,30 @@ static void add_header(struct buffer *b,
static void add_intree_flag(struct buffer *b, int is_intree)
{
}
/* In kernel, this size is defined in linux/module.h;
-@@ -2249,11 +2259,13 @@ static void add_depends(struct buffer *b
+@@ -2261,11 +2271,13 @@ static void add_depends(struct buffer *b
static void add_srcversion(struct buffer *b, struct module *mod)
{
}
static void write_if_changed(struct buffer *b, const char *fname)
-@@ -2488,7 +2500,9 @@ int main(int argc, char **argv)
+@@ -2500,7 +2512,9 @@ int main(int argc, char **argv)
add_staging_flag(&buf, mod->name);
err |= add_versions(&buf, mod);
add_depends(&buf, mod, modules);
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -1157,6 +1157,10 @@ config SYNC_R4K
+@@ -1158,6 +1158,10 @@ config SYNC_R4K
config MIPS_MACHINE
def_bool n
const struct header_ops *header_ops;
unsigned int flags;
-@@ -1783,6 +1790,10 @@ struct net_device {
+@@ -1788,6 +1795,10 @@ struct net_device {
struct mpls_dev __rcu *mpls_ptr;
#endif
---
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -1066,9 +1066,6 @@ config FW_ARC
+@@ -1067,9 +1067,6 @@ config FW_ARC
config ARCH_MAY_HAVE_PC_FDC
bool
config CEVT_BCM1480
bool
-@@ -2965,6 +2962,18 @@ choice
+@@ -2966,6 +2963,18 @@ choice
bool "Extend builtin kernel arguments with bootloader arguments"
endchoice
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -2889,6 +2889,20 @@ config MIPS_O32_FP64_SUPPORT
+@@ -2890,6 +2890,20 @@ config MIPS_O32_FP64_SUPPORT
If unsure, say N.
select HAVE_PCSPKR_PLATFORM
select IRQ_MIPS_CPU
select I8253
-@@ -1127,6 +1129,9 @@ config DMA_NONCOHERENT
+@@ -1128,6 +1130,9 @@ config DMA_NONCOHERENT
bool
select NEED_DMA_MAP_STATE
config NEED_DMA_MAP_STATE
bool
-@@ -1651,6 +1656,7 @@ config CPU_R10000
+@@ -1652,6 +1657,7 @@ config CPU_R10000
select CPU_SUPPORTS_64BIT_KERNEL
select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_HUGEPAGES
help
MIPS Technologies R10000-series processors.
-@@ -1896,9 +1902,11 @@ config SYS_HAS_CPU_MIPS32_R3_5
+@@ -1897,9 +1903,11 @@ config SYS_HAS_CPU_MIPS32_R3_5
bool
config SYS_HAS_CPU_MIPS32_R5
bool
config SYS_HAS_CPU_MIPS64_R1
-@@ -1908,6 +1916,7 @@ config SYS_HAS_CPU_MIPS64_R2
+@@ -1909,6 +1917,7 @@ config SYS_HAS_CPU_MIPS64_R2
bool
config SYS_HAS_CPU_MIPS64_R6
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -1752,6 +1752,8 @@ struct net_device {
+@@ -1757,6 +1757,8 @@ struct net_device {
struct netdev_hw_addr_list mc;
struct netdev_hw_addr_list dev_addrs;
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
}
-@@ -6667,6 +6714,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6668,6 +6715,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
-@@ -321,9 +321,6 @@ EXPORT_SYMBOL_GPL(usb_unanchor_urb);
+@@ -322,9 +322,6 @@ EXPORT_SYMBOL_GPL(usb_unanchor_urb);
*/
int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
{
int xfertype, max;
struct usb_device *dev;
struct usb_host_endpoint *ep;
-@@ -441,11 +438,6 @@ int usb_submit_urb(struct urb *urb, gfp_
+@@ -442,11 +439,6 @@ int usb_submit_urb(struct urb *urb, gfp_
* cause problems in HCDs if they get it wrong.
*/
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
-@@ -456,7 +456,7 @@ extern void uart_handle_cts_change(struc
+@@ -457,7 +457,7 @@ extern void uart_handle_cts_change(struc
extern void uart_insert_char(struct uart_port *port, unsigned int status,
unsigned int overrun, unsigned int ch, unsigned int flag);
unsigned int read_status_mask; /* driver specific */
unsigned int ignore_status_mask; /* driver specific */
-@@ -233,6 +234,7 @@ struct uart_port {
+@@ -234,6 +235,7 @@ struct uart_port {
int hw_stopped; /* sw-assisted CTS flow state */
unsigned int mctrl; /* current modem ctrl settings */
unsigned int timeout; /* character-based timeout */
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -2322,6 +2322,12 @@ config MIPS_VPE_LOADER
+@@ -2323,6 +2323,12 @@ config MIPS_VPE_LOADER
Includes a loader for loading an elf relocatable object
onto another VPE and running it.
* @type: Interface hardware type
* @hard_header_len: Maximum hardware header length.
* @min_header_len: Minimum hardware header length
-@@ -1738,6 +1740,8 @@ struct net_device {
- unsigned char dma;
-
+@@ -1743,6 +1745,8 @@ struct net_device {
+ * and to use WRITE_ONCE() to annotate the writes.
+ */
unsigned int mtu;
+ unsigned int min_mtu;
+ unsigned int max_mtu;
* These are the defined Ethernet Protocol ID's.
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6659,9 +6659,18 @@ int dev_set_mtu(struct net_device *dev,
+@@ -6660,9 +6660,18 @@ int dev_set_mtu(struct net_device *dev,
if (new_mtu == dev->mtu)
return 0;
/* Get I2C clock */
i2c_imx->clk = devm_clk_get(&pdev->dev, NULL);
if (IS_ERR(i2c_imx->clk)) {
-@@ -1099,7 +1292,7 @@ static int i2c_imx_probe(struct platform
+@@ -1100,7 +1293,7 @@ static int i2c_imx_probe(struct platform
}
/* Request IRQ */
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -1859,14 +1859,17 @@ static int finish_td(struct xhci_hcd *xh
+@@ -1855,14 +1855,17 @@ static int finish_td(struct xhci_hcd *xh
union xhci_trb *event_trb, struct xhci_transfer_event *event,
struct xhci_virt_ep *ep, int *status, bool skip)
{
u32 trb_comp_code;
slot_id = TRB_TO_SLOT_ID(le32_to_cpu(event->flags));
-@@ -1892,13 +1895,29 @@ static int finish_td(struct xhci_hcd *xh
+@@ -1888,13 +1891,29 @@ static int finish_td(struct xhci_hcd *xh
if (trb_comp_code == COMP_STALL ||
xhci_requires_manual_halt_cleanup(xhci, ep_ctx,
trb_comp_code)) {
while (ep_ring->dequeue != td->last_trb)
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1619,14 +1619,38 @@ int xhci_urb_dequeue(struct usb_hcd *hcd
+@@ -1616,14 +1616,38 @@ int xhci_urb_dequeue(struct usb_hcd *hcd
ret = -ENOMEM;
goto done;
}
spin_unlock_irqrestore(&xhci->lock, flags);
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1626,7 +1626,7 @@ struct xhci_hcd {
+@@ -1627,7 +1627,7 @@ struct xhci_hcd {
#define XHCI_STATE_REMOVING (1 << 2)
/* Statistics */
int error_bitmask;
#define XHCI_LINK_TRB_QUIRK (1 << 0)
#define XHCI_RESET_EP_QUIRK (1 << 1)
#define XHCI_NEC_HOST (1 << 2)
-@@ -1662,6 +1662,9 @@ struct xhci_hcd {
+@@ -1663,6 +1663,9 @@ struct xhci_hcd {
#define XHCI_SSIC_PORT_UNUSED (1 << 22)
#define XHCI_NO_64BIT_SUPPORT (1 << 23)
#define XHCI_MISSING_CAS (1 << 24)