# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
--- a/lib/Makefile
+++ b/lib/Makefile
-@@ -110,6 +110,7 @@ obj-$(CONFIG_XZ_DEC) += xz/
+@@ -108,6 +108,7 @@ obj-$(CONFIG_XZ_DEC) += xz/
obj-$(CONFIG_RAID6_PQ) += raid6/
obj-$(CONFIG_LZMA_COMPRESS) += lzma/
obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/
-#define FORCE_WORD_WRITE 0
+#define FORCE_WORD_WRITE 1
- #define MAX_WORD_RETRIES 3
+ #define MAX_RETRIES 3
@@ -51,7 +51,9 @@
/* Atmel chips don't use the same PRI format as AMD chips */
static void fixup_convert_atmel_pri(struct mtd_info *mtd)
-@@ -1791,6 +1795,7 @@ static int cfi_amdstd_write_words(struct
+@@ -1790,6 +1794,7 @@ static int cfi_amdstd_write_words(struct
/*
* FIXME: interleaved mode not tested, and probably not supported!
*/
static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
unsigned long adr, const u_char *buf,
int len)
-@@ -1919,7 +1924,6 @@ static int __xipram do_write_buffer(stru
+@@ -1918,7 +1923,6 @@ static int __xipram do_write_buffer(stru
return ret;
}
static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
size_t *retlen, const u_char *buf)
{
-@@ -1994,6 +1998,7 @@ static int cfi_amdstd_write_buffers(stru
+@@ -1993,6 +1997,7 @@ static int cfi_amdstd_write_buffers(stru
return 0;
}
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
-@@ -720,6 +720,11 @@ config SPI_RB4XX_CPLD
- SPI driver for the Xilinx CPLD chip present on the
- MikroTik RB4xx boards.
+@@ -707,6 +707,11 @@ config SPI_TLE62X0
+ sysfs interface, with each line presented as a kind of GPIO
+ exposing both switch control and diagnostic feedback.
+config SPI_VSC7385
+ tristate "Vitesse VSC7385 ethernet switch driver"
#
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
-@@ -91,6 +91,7 @@ obj-$(CONFIG_SPI_TEGRA20_SLINK) += spi-
+@@ -89,6 +89,7 @@ obj-$(CONFIG_SPI_TEGRA20_SLINK) += spi-
obj-$(CONFIG_SPI_TLE62X0) += spi-tle62x0.o
obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi-topcliff-pch.o
obj-$(CONFIG_SPI_TXX9) += spi-txx9.o
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -1118,6 +1118,9 @@ config MIPS_MSC
+@@ -1121,6 +1121,9 @@ config MIPS_MSC
config MIPS_NILE4
bool
+#define AR71XX_ETH1_PLL_SHIFT 19
+
#define AR724X_PLL_REG_CPU_CONFIG 0x00
- #define AR724X_PLL_REG_PCIE_CONFIG 0x18
+ #define AR724X_PLL_REG_PCIE_CONFIG 0x10
@@ -186,6 +205,8 @@
#define AR724X_DDR_DIV_SHIFT 22
*/
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
-@@ -433,7 +433,7 @@ int ipv6_recv_error(struct sock *sk, str
+@@ -434,7 +434,7 @@ int ipv6_recv_error(struct sock *sk, str
ipv6_iface_scope_id(&sin->sin6_addr,
IP6CB(skb)->iif);
} else {
&sin->sin6_addr);
sin->sin6_scope_id = 0;
}
-@@ -773,12 +773,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -772,12 +772,12 @@ int ip6_datagram_send_ctl(struct net *ne
}
if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
for (p = *head; p; p = p->next) {
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
-@@ -461,7 +461,7 @@ static struct neighbour *ipv4_neigh_look
+@@ -458,7 +458,7 @@ static struct neighbour *ipv4_neigh_look
else if (skb)
pkey = &ip_hdr(skb)->daddr;
#define IP6_MF 0x0001
#define IP6_OFFSET 0xFFF8
-@@ -418,8 +418,8 @@ static inline void __ipv6_addr_set_half(
+@@ -411,8 +411,8 @@ static inline void __ipv6_addr_set_half(
}
#endif
#endif
}
static inline void ipv6_addr_set(struct in6_addr *addr,
-@@ -478,6 +478,8 @@ static inline bool ipv6_prefix_equal(con
+@@ -471,6 +471,8 @@ static inline bool ipv6_prefix_equal(con
const __be32 *a1 = addr1->s6_addr32;
const __be32 *a2 = addr2->s6_addr32;
unsigned int pdw, pbi;
/* check complete u32 in prefix */
pdw = prefixlen >> 5;
-@@ -486,7 +488,9 @@ static inline bool ipv6_prefix_equal(con
+@@ -479,7 +481,9 @@ static inline bool ipv6_prefix_equal(con
/* check incomplete u32 in prefix */
pbi = prefixlen & 0x1f;
return false;
return true;
-@@ -630,13 +634,13 @@ static inline void ipv6_addr_set_v4mappe
+@@ -608,13 +612,13 @@ static inline void ipv6_addr_set_v4mappe
*/
static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
{
if (xb)
return i * 32 + 31 - __fls(ntohl(xb));
}
-@@ -805,17 +809,18 @@ static inline int ip6_default_np_autolab
+@@ -783,17 +787,18 @@ static inline int ip6_default_np_autolab
static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
__be32 flowlabel)
{
static struct fib6_node *node_alloc(void)
--- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c
-@@ -456,7 +456,7 @@ static void tcp_sack(const struct sk_buf
+@@ -458,7 +458,7 @@ static void tcp_sack(const struct sk_buf
/* Fast path for timestamp-only option */
if (length == TCPOLEN_TSTAMP_ALIGNED
cmd.n_dummy = 0;
cmd.n_rx = len;
cmd.rx_buf = rbuf;
-@@ -776,9 +779,9 @@ static void ath79_spinand_cmdfunc(struct
+@@ -775,9 +778,9 @@ static void ath79_spinand_cmdfunc(struct
state->buf);
break;
case NAND_CMD_READOOB:
break;
case NAND_CMD_RNDOUT:
state->buf_ptr = column;
-@@ -1005,6 +1008,21 @@ static struct ath79_spinand_priv ath79_s
+@@ -1004,6 +1007,21 @@ static struct ath79_spinand_priv ath79_s
0x07, /* ecc error code */
SZ_512, /* ecc size */
16, /* ecc bytes */
{"GD5F2GQ4U 2G 3.3V 8-bit",
{ .id = {0xc8, 0xb2} },
SZ_2K, SZ_256, SZ_128K, 0, 2, 128, NAND_ECC_INFO(4, SZ_512) },
-@@ -128,6 +131,7 @@ struct nand_flash_dev nand_flash_ids[] =
+@@ -129,6 +132,7 @@ struct nand_flash_dev nand_flash_ids[] =
EXTENDED_ID_NAND("NAND 128MiB 3,3V 8-bit", 0xF1, 128, LP_OPTIONS),
EXTENDED_ID_NAND("NAND 128MiB 3,3V 8-bit", 0xD1, 128, LP_OPTIONS),
EXTENDED_ID_NAND("NAND 128MiB 1,8V 16-bit", 0xB1, 128, LP_OPTIONS16),
EXTENDED_ID_NAND("NAND 128MiB 3,3V 16-bit", 0xC1, 128, LP_OPTIONS16),
EXTENDED_ID_NAND("NAND 128MiB 1,8V 16-bit", 0xAD, 128, LP_OPTIONS16),
-@@ -207,6 +211,7 @@ struct nand_manufacturers nand_manuf_ids
+@@ -208,6 +212,7 @@ struct nand_manufacturers nand_manuf_ids
{NAND_MFR_GIGADEVICE, "Giga Device"},
{NAND_MFR_WINBOND, "Winbond"},
{NAND_MFR_HEYANGTEK, "HeYang Tek"},
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -1135,6 +1135,7 @@ static void __spi_pump_messages(struct s
+@@ -1141,6 +1141,7 @@ static void __spi_pump_messages(struct s
}
}
trace_spi_message_start(master->cur_msg);
if (master->prepare_message) {
-@@ -1144,6 +1145,7 @@ static void __spi_pump_messages(struct s
+@@ -1150,6 +1151,7 @@ static void __spi_pump_messages(struct s
"failed to prepare message: %d\n", ret);
master->cur_msg->status = ret;
spi_finalize_current_message(master);
return;
}
master->cur_msg_prepared = true;
-@@ -1153,6 +1155,7 @@ static void __spi_pump_messages(struct s
+@@ -1159,6 +1161,7 @@ static void __spi_pump_messages(struct s
if (ret) {
master->cur_msg->status = ret;
spi_finalize_current_message(master);
return;
}
-@@ -1160,8 +1163,10 @@ static void __spi_pump_messages(struct s
+@@ -1166,8 +1169,10 @@ static void __spi_pump_messages(struct s
if (ret) {
dev_err(&master->dev,
"failed to transfer one message from queue\n");
}
/**
-@@ -2329,6 +2334,46 @@ int spi_async_locked(struct spi_device *
+@@ -2335,6 +2340,46 @@ int spi_async_locked(struct spi_device *
EXPORT_SYMBOL_GPL(spi_async_locked);
dmam_alloc_coherent()
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
-@@ -2595,6 +2595,22 @@ fail_out:
+@@ -2598,6 +2598,22 @@ fail_out:
}
EXPORT_SYMBOL_GPL(clk_register);
/* Free memory allocated for a clock. */
static void __clk_release(struct kref *ref)
{
-@@ -2696,11 +2712,26 @@ void clk_unregister(struct clk *clk)
+@@ -2699,11 +2715,26 @@ void clk_unregister(struct clk *clk)
}
EXPORT_SYMBOL_GPL(clk_unregister);
/**
* devm_clk_register - resource managed clk_register()
* @dev: device that is registering this clock
-@@ -2731,6 +2762,36 @@ struct clk *devm_clk_register(struct dev
+@@ -2734,6 +2765,36 @@ struct clk *devm_clk_register(struct dev
}
EXPORT_SYMBOL_GPL(devm_clk_register);
static int devm_clk_match(struct device *dev, void *res, void *data)
{
struct clk *c = res;
-@@ -2739,6 +2800,15 @@ static int devm_clk_match(struct device
+@@ -2742,6 +2803,15 @@ static int devm_clk_match(struct device
return c == data;
}
/**
* devm_clk_unregister - resource managed clk_unregister()
* @clk: clock to unregister
-@@ -2753,6 +2823,22 @@ void devm_clk_unregister(struct device *
+@@ -2756,6 +2826,22 @@ void devm_clk_unregister(struct device *
}
EXPORT_SYMBOL_GPL(devm_clk_unregister);
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
-@@ -3001,6 +3001,7 @@ struct of_clk_provider {
+@@ -3004,6 +3004,7 @@ struct of_clk_provider {
struct device_node *node;
struct clk *(*get)(struct of_phandle_args *clkspec, void *data);
void *data;
};
-@@ -3017,6 +3018,12 @@ struct clk *of_clk_src_simple_get(struct
+@@ -3020,6 +3021,12 @@ struct clk *of_clk_src_simple_get(struct
}
EXPORT_SYMBOL_GPL(of_clk_src_simple_get);
struct clk *of_clk_src_onecell_get(struct of_phandle_args *clkspec, void *data)
{
struct clk_onecell_data *clk_data = data;
-@@ -3031,6 +3038,21 @@ struct clk *of_clk_src_onecell_get(struc
+@@ -3034,6 +3041,21 @@ struct clk *of_clk_src_onecell_get(struc
}
EXPORT_SYMBOL_GPL(of_clk_src_onecell_get);
/**
* of_clk_add_provider() - Register a clock provider for a node
* @np: Device node pointer associated with clock provider
-@@ -3067,6 +3089,41 @@ int of_clk_add_provider(struct device_no
+@@ -3070,6 +3092,41 @@ int of_clk_add_provider(struct device_no
EXPORT_SYMBOL_GPL(of_clk_add_provider);
/**
* of_clk_del_provider() - Remove a previously registered clock provider
* @np: Device node pointer associated with clock provider
*/
-@@ -3087,11 +3144,32 @@ void of_clk_del_provider(struct device_n
+@@ -3090,11 +3147,32 @@ void of_clk_del_provider(struct device_n
}
EXPORT_SYMBOL_GPL(of_clk_del_provider);
if (!clkspec)
return ERR_PTR(-EINVAL);
-@@ -3100,10 +3178,9 @@ struct clk *__of_clk_get_from_provider(s
+@@ -3103,10 +3181,9 @@ struct clk *__of_clk_get_from_provider(s
mutex_lock(&of_clk_mutex);
list_for_each_entry(provider, &of_clk_providers, link) {
if (provider->node == clkspec->np)
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -2753,10 +2753,10 @@ choice
+@@ -2756,10 +2756,10 @@ choice
the documented boot protocol using a device tree.
config MIPS_RAW_APPENDED_DTB
(e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
This is meant as a backward compatibility convenience for those
-@@ -2768,24 +2768,6 @@ choice
+@@ -2771,24 +2771,6 @@ choice
look like a DTB header after a reboot if no actual DTB is appended
to vmlinux.bin. Do not leave this option active in a production kernel
if you don't intend to always append a DTB.
--- a/arch/mips/ath79/setup.c
+++ b/arch/mips/ath79/setup.c
-@@ -207,6 +207,8 @@ void __init plat_mem_setup(void)
+@@ -208,6 +208,8 @@ void __init plat_mem_setup(void)
fdt_start = fw_getenvl("fdt_start");
if (fdt_start)
__dt_setup_arch((void *)KSEG0ADDR(fdt_start));
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -5372,7 +5372,7 @@ static void __init_refok alloc_node_mem_
+@@ -5370,7 +5370,7 @@ static void __init_refok alloc_node_mem_
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)
.get_acl = jffs2_get_acl,
.set_acl = jffs2_set_acl,
.setattr = jffs2_setattr,
-@@ -754,8 +754,27 @@ static int jffs2_mknod (struct inode *di
+@@ -750,8 +750,27 @@ static int jffs2_mknod (struct inode *di
return ret;
}
{
int ret;
struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
-@@ -763,6 +782,9 @@ static int jffs2_rename (struct inode *o
+@@ -759,6 +778,9 @@ static int jffs2_rename (struct inode *o
uint8_t type;
uint32_t now;
/* The VFS will check for us and prevent trying to rename a
* file over a directory and vice versa, but if it's a directory,
* the VFS can't check whether the victim is empty. The filesystem
-@@ -826,9 +848,14 @@ static int jffs2_rename (struct inode *o
+@@ -822,9 +844,14 @@ static int jffs2_rename (struct inode *o
if (d_is_dir(old_dentry) && !victim_f)
inc_nlink(new_dir_i);
--- a/fs/jffs2/dir.c
+++ b/fs/jffs2/dir.c
-@@ -779,18 +779,31 @@ static int jffs2_rename (struct inode *o
+@@ -775,18 +775,31 @@ static int jffs2_rename (struct inode *o
int ret;
struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
struct jffs2_inode_info *victim_f = NULL;
victim_f = JFFS2_INODE_INFO(d_inode(new_dentry));
if (d_is_dir(new_dentry)) {
struct jffs2_full_dirent *fd;
-@@ -825,7 +838,7 @@ static int jffs2_rename (struct inode *o
+@@ -821,7 +834,7 @@ static int jffs2_rename (struct inode *o
if (ret)
return ret;
/* There was a victim. Kill it off nicely */
if (d_is_dir(new_dentry))
clear_nlink(d_inode(new_dentry));
-@@ -845,12 +858,18 @@ static int jffs2_rename (struct inode *o
+@@ -841,12 +854,18 @@ static int jffs2_rename (struct inode *o
/* If it was a directory we moved, and there was no victim,
increase i_nlink on its new parent */
else
/* Unlink the original */
ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
-@@ -882,7 +901,7 @@ static int jffs2_rename (struct inode *o
+@@ -878,7 +897,7 @@ static int jffs2_rename (struct inode *o
return ret;
}
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -1619,6 +1619,7 @@ config CPU_CAVIUM_OCTEON
+@@ -1622,6 +1622,7 @@ config CPU_CAVIUM_OCTEON
select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
select MIPS_L1_CACHE_SHIFT_7
help
The Cavium Octeon processor is a highly integrated chip containing
many ethernet hardware widgets for networking tasks. The processor
-@@ -1914,6 +1915,9 @@ config MIPS_MALTA_PM
+@@ -1917,6 +1918,9 @@ config MIPS_MALTA_PM
bool
default y
} else if (argc != 1)
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1345,6 +1345,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1358,6 +1358,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
the unaligned access emulation.
see arch/parisc/kernel/unaligned.c for reference
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -2033,6 +2033,13 @@ config MODULE_COMPRESS_XZ
+@@ -2046,6 +2046,13 @@ config MODULE_COMPRESS_XZ
endchoice
set_license(mod, get_modinfo(info, "license"));
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
-@@ -1964,7 +1964,9 @@ static void read_symbols(char *modname)
+@@ -1966,7 +1966,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))
-@@ -2108,7 +2110,9 @@ static void add_header(struct buffer *b,
+@@ -2110,7 +2112,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");
-@@ -2125,8 +2129,10 @@ static void add_header(struct buffer *b,
+@@ -2127,8 +2131,10 @@ static void add_header(struct buffer *b,
static void add_intree_flag(struct buffer *b, int is_intree)
{
}
/* Cannot check for assembler */
-@@ -2139,10 +2145,12 @@ static void add_retpoline(struct buffer
+@@ -2141,10 +2147,12 @@ static void add_retpoline(struct buffer
static void add_staging_flag(struct buffer *b, const char *name)
{
}
/* In kernel, this size is defined in linux/module.h;
-@@ -2246,11 +2254,13 @@ static void add_depends(struct buffer *b
+@@ -2248,11 +2256,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)
-@@ -2485,7 +2495,9 @@ int main(int argc, char **argv)
+@@ -2487,7 +2497,9 @@ int main(int argc, char **argv)
add_staging_flag(&buf, mod->name);
err |= add_versions(&buf, mod);
add_depends(&buf, mod, modules);
}
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
-@@ -372,7 +372,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
+@@ -380,7 +380,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
# Linker scripts preprocessor (.lds.S -> .lds)
# ---------------------------------------------------------------------------
quiet_cmd_cpp_lds_S = LDS $@
-Index: linux-4.4.178/include/uapi/linux/if_ether.h
-===================================================================
---- linux-4.4.178.orig/include/uapi/linux/if_ether.h
-+++ linux-4.4.178/include/uapi/linux/if_ether.h
+--- a/include/uapi/linux/if_ether.h
++++ b/include/uapi/linux/if_ether.h
@@ -22,6 +22,7 @@
#define _UAPI_LINUX_IF_ETHER_H
#define __UAPI_DEF_ETHHDR 1
#endif
-Index: linux-4.4.178/include/uapi/linux/libc-compat.h
-===================================================================
---- linux-4.4.178.orig/include/uapi/linux/libc-compat.h
-+++ linux-4.4.178/include/uapi/linux/libc-compat.h
+--- a/include/uapi/linux/libc-compat.h
++++ b/include/uapi/linux/libc-compat.h
@@ -160,6 +160,8 @@
#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
/* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
---
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -1033,9 +1033,6 @@ config FW_ARC
+@@ -1036,9 +1036,6 @@ config FW_ARC
config ARCH_MAY_HAVE_PC_FDC
bool
config CEVT_BCM1480
bool
-@@ -2793,6 +2790,18 @@ choice
+@@ -2796,6 +2793,18 @@ choice
bool "Bootloader kernel arguments if available"
endchoice
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -1124,6 +1124,10 @@ config SYNC_R4K
+@@ -1127,6 +1127,10 @@ config SYNC_R4K
config MIPS_MACHINE
def_bool n
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -2725,6 +2725,20 @@ config MIPS_O32_FP64_SUPPORT
+@@ -2728,6 +2728,20 @@ config MIPS_O32_FP64_SUPPORT
If unsure, say N.
--- a/arch/arc/kernel/head.S
+++ b/arch/arc/kernel/head.S
-@@ -49,6 +49,16 @@
- 1:
+@@ -59,6 +59,16 @@
+ #endif
.endm
+; Here "patch-dtb" will embed external .dtb
1 file changed, 1 insertion(+)
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -1830,6 +1830,7 @@ static int __xipram do_write_buffer(stru
+@@ -1831,6 +1831,7 @@ static int __xipram do_write_buffer(stru
/* Write Buffer Load */
map_write(map, CMD(0x25), cmd_adr);
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1166,6 +1166,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1172,6 +1172,7 @@ int spi_nor_scan(struct spi_nor *nor, co
if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
JEDEC_MFR(info) == SNOR_MFR_INTEL ||
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
-@@ -1203,6 +1203,49 @@ static struct mtd_info * __init open_mtd
+@@ -1217,6 +1217,49 @@ static struct mtd_info * __init open_mtd
return mtd;
}
static int __init ubi_init(void)
{
int err, i, k;
-@@ -1286,6 +1329,12 @@ static int __init ubi_init(void)
+@@ -1300,6 +1343,12 @@ static int __init ubi_init(void)
}
}
--- a/drivers/mtd/ubi/attach.c
+++ b/drivers/mtd/ubi/attach.c
-@@ -803,6 +803,13 @@ out_unlock:
- return err;
+@@ -851,6 +851,13 @@ static bool vol_ignored(int vol_id)
+ #endif
}
+static bool ec_hdr_has_eof(struct ubi_ec_hdr *ech)
/**
* scan_peb - scan and process UBI headers of a PEB.
* @ubi: UBI device description object
-@@ -833,9 +840,21 @@ static int scan_peb(struct ubi_device *u
+@@ -880,9 +887,21 @@ static int scan_peb(struct ubi_device *u
return 0;
}
break;
--- a/drivers/mtd/ubi/ubi.h
+++ b/drivers/mtd/ubi/ubi.h
-@@ -741,6 +741,7 @@ struct ubi_attach_info {
+@@ -747,6 +747,7 @@ struct ubi_attach_info {
int mean_ec;
uint64_t ec_sum;
int ec_count;
+}
--- a/fs/jffs2/super.c
+++ b/fs/jffs2/super.c
-@@ -373,14 +373,41 @@ static int __init init_jffs2_fs(void)
+@@ -374,14 +374,41 @@ static int __init init_jffs2_fs(void)
BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
if (!xt_percpu_counter_alloc(alloc_state, &e->counters))
return -ENOMEM;
-@@ -957,6 +985,7 @@ copy_entries_to_user(unsigned int total_
+@@ -958,6 +986,7 @@ copy_entries_to_user(unsigned int total_
const struct xt_table_info *private = table->private;
int ret = 0;
const void *loc_cpu_entry;
counters = alloc_counters(table);
if (IS_ERR(counters))
-@@ -983,6 +1012,14 @@ copy_entries_to_user(unsigned int total_
+@@ -984,6 +1013,14 @@ copy_entries_to_user(unsigned int total_
ret = -EFAULT;
goto free_counters;
}
/* "Be conservative in what you do,
be liberal in what you accept from others."
If it's non-zero, we mark only out of window RST segments as INVALID. */
-@@ -515,6 +518,9 @@ static bool tcp_in_window(const struct n
+@@ -519,6 +522,9 @@ static bool tcp_in_window(const struct n
s32 receiver_offset;
bool res, in_recv_win;
/*
* Get the required data from the packet.
*/
-@@ -1481,6 +1487,13 @@ static struct ctl_table tcp_sysctl_table
+@@ -1485,6 +1491,13 @@ static struct ctl_table tcp_sysctl_table
.mode = 0644,
.proc_handler = proc_dointvec,
},
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1777,6 +1777,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1784,6 +1784,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
struct sockaddr_pkt *spkt;
/*
* When we registered the protocol we saved the socket in the data
-@@ -1784,6 +1785,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1791,6 +1792,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
/*
* Yank back the headers [hope the device set this
-@@ -1796,7 +1798,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1803,7 +1805,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1999,12 +2001,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2006,12 +2008,12 @@ static int packet_rcv(struct sk_buff *sk
int skb_len = skb->len;
unsigned int snaplen, res;
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -2124,12 +2126,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2131,12 +2133,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3126,6 +3128,7 @@ static int packet_create(struct net *net
+@@ -3143,6 +3145,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3755,6 +3758,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3801,6 +3804,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -3807,6 +3820,13 @@ static int packet_getsockopt(struct sock
+@@ -3853,6 +3866,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
skb = NULL;
--- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c
-@@ -141,7 +141,7 @@ EXPORT_SYMBOL_GPL(br_deliver);
+@@ -140,7 +140,7 @@ EXPORT_SYMBOL_GPL(br_deliver);
/* called with rcu_read_lock */
void br_forward(const struct net_bridge_port *to, struct sk_buff *skb, struct sk_buff *skb0)
{
if (skb0)
deliver_clone(to, skb, __br_forward);
else
-@@ -197,7 +197,7 @@ static void br_flood(struct net_bridge *
+@@ -196,7 +196,7 @@ static void br_flood(struct net_bridge *
struct sk_buff *skb0,
void (*__packet_hook)(const struct net_bridge_port *p,
struct sk_buff *skb),
{
struct net_bridge_port *p;
struct net_bridge_port *prev;
-@@ -205,6 +205,8 @@ static void br_flood(struct net_bridge *
+@@ -204,6 +204,8 @@ static void br_flood(struct net_bridge *
prev = NULL;
list_for_each_entry_rcu(p, &br->port_list, list) {
/* Do not flood unicast traffic to ports that turn it off */
if (unicast && !(p->flags & BR_FLOOD))
continue;
-@@ -239,14 +241,14 @@ out:
+@@ -238,14 +240,14 @@ out:
/* called with rcu_read_lock */
void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast)
{
if (err)
break;
}
-@@ -1439,7 +1465,8 @@ br_multicast_leave_group(struct net_brid
+@@ -1432,7 +1458,8 @@ br_multicast_leave_group(struct net_brid
struct net_bridge_port *port,
struct br_ip *group,
struct bridge_mcast_other_query *other_query,
{
struct net_bridge_mdb_htable *mdb;
struct net_bridge_mdb_entry *mp;
-@@ -1463,7 +1490,7 @@ br_multicast_leave_group(struct net_brid
+@@ -1456,7 +1483,7 @@ br_multicast_leave_group(struct net_brid
for (pp = &mp->ports;
(p = mlock_dereference(*pp, br)) != NULL;
pp = &p->next) {
continue;
rcu_assign_pointer(*pp, p->next);
-@@ -1526,7 +1553,7 @@ br_multicast_leave_group(struct net_brid
+@@ -1519,7 +1546,7 @@ br_multicast_leave_group(struct net_brid
for (p = mlock_dereference(mp->ports, br);
p != NULL;
p = mlock_dereference(p->next, br)) {
continue;
if (!hlist_unhashed(&p->mglist) &&
-@@ -1544,8 +1571,8 @@ out:
+@@ -1537,8 +1564,8 @@ out:
static void br_ip4_multicast_leave_group(struct net_bridge *br,
struct net_bridge_port *port,
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
-@@ -1560,14 +1587,14 @@ static void br_ip4_multicast_leave_group
+@@ -1553,14 +1580,14 @@ static void br_ip4_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
-@@ -1582,7 +1609,7 @@ static void br_ip6_multicast_leave_group
+@@ -1575,7 +1602,7 @@ static void br_ip6_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
}
#endif
-@@ -1591,6 +1618,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1584,6 +1611,7 @@ static int br_multicast_ipv4_rcv(struct
struct sk_buff *skb,
u16 vid)
{
struct sk_buff *skb_trimmed = NULL;
struct igmphdr *ih;
int err;
-@@ -1607,12 +1635,13 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1600,12 +1628,13 @@ static int br_multicast_ipv4_rcv(struct
BR_INPUT_SKB_CB(skb)->igmp = 1;
ih = igmp_hdr(skb);
break;
case IGMPV3_HOST_MEMBERSHIP_REPORT:
err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid);
-@@ -1621,7 +1650,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1614,7 +1643,7 @@ static int br_multicast_ipv4_rcv(struct
err = br_ip4_multicast_query(br, port, skb_trimmed, vid);
break;
case IGMP_HOST_LEAVE_MESSAGE:
break;
}
-@@ -1637,6 +1666,7 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1630,6 +1659,7 @@ static int br_multicast_ipv6_rcv(struct
struct sk_buff *skb,
u16 vid)
{
struct sk_buff *skb_trimmed = NULL;
struct mld_msg *mld;
int err;
-@@ -1656,8 +1686,9 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1649,8 +1679,9 @@ static int br_multicast_ipv6_rcv(struct
switch (mld->mld_type) {
case ICMPV6_MGM_REPORT:
break;
case ICMPV6_MLD2_REPORT:
err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid);
-@@ -1666,7 +1697,8 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1659,7 +1690,8 @@ static int br_multicast_ipv6_rcv(struct
err = br_ip6_multicast_query(br, port, skb_trimmed, vid);
break;
case ICMPV6_MGM_REDUCTION:
rcu_assign_pointer(*pp, p);
--- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c
-@@ -192,6 +192,34 @@ out:
+@@ -191,6 +191,34 @@ out:
return p;
}
/* called under bridge lock */
static void br_flood(struct net_bridge *br, struct sk_buff *skb,
struct sk_buff *skb0,
-@@ -264,6 +292,7 @@ static void br_multicast_flood(struct ne
+@@ -263,6 +291,7 @@ static void br_multicast_flood(struct ne
struct net_bridge_port *prev = NULL;
struct net_bridge_port_group *p;
struct hlist_node *rp;
rp = rcu_dereference(hlist_first_rcu(&br->router_list));
p = mdst ? rcu_dereference(mdst->ports) : NULL;
-@@ -274,10 +303,19 @@ static void br_multicast_flood(struct ne
+@@ -273,10 +302,19 @@ static void br_multicast_flood(struct ne
rport = rp ? hlist_entry(rp, struct net_bridge_port, rlist) :
NULL;
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
-@@ -1231,24 +1231,7 @@ void netlink_detachskb(struct sock *sk,
+@@ -1241,24 +1241,7 @@ void netlink_detachskb(struct sock *sk,
static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
{
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2177,7 +2177,7 @@ static inline int pskb_network_may_pull(
+@@ -2182,7 +2182,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
if (!qdisc)
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
-@@ -1951,7 +1951,7 @@ static int __init pktsched_init(void)
+@@ -1950,7 +1950,7 @@ static int __init pktsched_init(void)
return err;
}
static void rt_fibinfo_free(struct rtable __rcu **rtp)
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
-@@ -2370,6 +2370,7 @@ static const char *const rtn_type_names[
+@@ -2380,6 +2380,7 @@ static const char *const rtn_type_names[
[RTN_THROW] = "THROW",
[RTN_NAT] = "NAT",
[RTN_XRESOLVE] = "XRESOLVE",
static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
-@@ -182,6 +182,7 @@ static int ipmr_rule_action(struct fib_r
+@@ -183,6 +183,7 @@ static int ipmr_rule_action(struct fib_r
case FR_ACT_UNREACHABLE:
return -ENETUNREACH;
case FR_ACT_PROHIBIT:
table = fib6_get_table(net, rule->table);
--- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c
-@@ -167,6 +167,8 @@ static int ip6mr_rule_action(struct fib_
+@@ -169,6 +169,8 @@ static int ip6mr_rule_action(struct fib_
return -ENETUNREACH;
case FR_ACT_PROHIBIT:
return -EACCES;
#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -642,7 +642,8 @@ struct sk_buff {
+@@ -647,7 +647,8 @@ struct sk_buff {
__u8 inner_protocol_type:1;
__u8 remcsum_offload:1;
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -385,6 +385,50 @@ int phy_ethtool_gset(struct phy_device *
+@@ -391,6 +391,50 @@ int phy_ethtool_gset(struct phy_device *
}
EXPORT_SYMBOL(phy_ethtool_gset);
/**
* mdiobus_alloc_size - allocate a mii_bus structure
* @size: extra amount of memory to allocate for private storage.
-@@ -346,9 +348,21 @@ void mdiobus_free(struct mii_bus *bus)
+@@ -345,9 +347,21 @@ void mdiobus_free(struct mii_bus *bus)
}
EXPORT_SYMBOL(mdiobus_free);
int err;
phydev = get_phy_device(bus, addr, false);
-@@ -361,6 +375,12 @@ struct phy_device *mdiobus_scan(struct m
+@@ -360,6 +374,12 @@ struct phy_device *mdiobus_scan(struct m
*/
of_mdiobus_link_phydev(bus, phydev);
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2208,6 +2208,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2213,6 +2213,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
-@@ -2314,16 +2318,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2319,16 +2323,6 @@ static inline struct sk_buff *dev_alloc_
}
#include <net/protocol.h>
#include <net/dst.h>
-@@ -520,6 +521,22 @@ skb_fail:
+@@ -524,6 +525,22 @@ skb_fail:
}
EXPORT_SYMBOL(__napi_alloc_skb);
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile
-@@ -4781,6 +4794,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -4812,6 +4825,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (tag < 0)
return NULL;
}
qc = __ata_qc_from_tag(ap, tag);
qc->tag = tag;
-@@ -5678,6 +5694,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5708,6 +5724,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1;
#endif
ata_sff_port_init(ap);
return ap;
-@@ -5699,6 +5718,12 @@ static void ata_host_release(struct devi
+@@ -5729,6 +5748,12 @@ static void ata_host_release(struct devi
kfree(ap->pmp_link);
kfree(ap->slave_link);
kfree(ap);
host->ports[i] = NULL;
}
-@@ -6145,7 +6170,23 @@ int ata_host_register(struct ata_host *h
+@@ -6175,7 +6200,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1;
}
/*
* Define if arch has non-standard setup. This is a _PCI_ standard
-@@ -877,6 +880,12 @@ struct ata_port {
+@@ -878,6 +881,12 @@ struct ata_port {
#ifdef CONFIG_ATA_ACPI
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
#endif
obj-$(CONFIG_PROC_FS) += net-procfs.o
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -1474,9 +1474,11 @@ void sk_destruct(struct sock *sk)
+@@ -1475,9 +1475,11 @@ void sk_destruct(struct sock *sk)
static void __sk_free(struct sock *sk)
{
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
-@@ -415,6 +415,7 @@ config INET_LRO
+@@ -416,6 +416,7 @@ config INET_LRO
config INET_DIAG
tristate "INET: socket monitoring interface"
+MODULE_LICENSE("GPL");
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -2096,6 +2096,7 @@ int wake_up_state(struct task_struct *p,
+@@ -2097,6 +2097,7 @@ int wake_up_state(struct task_struct *p,
{
return try_to_wake_up(p, state, 0);
}
#ifdef CONFIG_UEVENT_HELPER
/* path to the userspace helper executed on an event */
extern char uevent_helper[];
-@@ -222,4 +224,7 @@ int add_uevent_var(struct kobj_uevent_en
+@@ -239,4 +241,7 @@ int add_uevent_var(struct kobj_uevent_en
int kobject_action_type(const char *buf, size_t count,
enum kobject_action *type);
setup_per_cpu_areas();
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1655,6 +1655,15 @@ config EMBEDDED
+@@ -1668,6 +1668,15 @@ config EMBEDDED
an embedded system so certain expert options are available
for configuration.
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
-@@ -696,7 +696,6 @@ static void __init arch_mem_init(char **
+@@ -768,7 +768,6 @@ static void __init arch_mem_init(char **
crashk_res.end - crashk_res.start + 1,
BOOTMEM_DEFAULT);
#endif
sparse_init();
plat_swiotlb_setup();
paging_init();
-@@ -809,6 +808,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -881,6 +880,7 @@ void __init setup_arch(char **cmdline_p)
prefill_possible_map();
cpu_cache_init();
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -2665,6 +2665,18 @@ static struct usb_device_id uvc_ids[] =
+@@ -2673,6 +2673,18 @@ static struct usb_device_id uvc_ids[] =
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = UVC_QUIRK_FORCE_Y8 },
#include <media/v4l2-common.h>
-@@ -1092,9 +1097,149 @@ static void uvc_video_decode_data(struct
+@@ -1112,9 +1117,149 @@ static void uvc_video_decode_data(struct
}
}
/* Mark the buffer as done if the EOF marker is set. */
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n");
-@@ -1507,6 +1652,8 @@ static int uvc_init_video_isoc(struct uv
+@@ -1527,6 +1672,8 @@ static int uvc_init_video_isoc(struct uv
if (npackets == 0)
return -ENOMEM;
#include <linux/usb/hcd.h>
#include <linux/usb/ch11.h>
-@@ -3002,6 +3003,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
+@@ -3006,6 +3007,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
retval = -ENOMEM;
/*
* Returns zero if the TRB isn't in this segment, otherwise it returns the DMA
-@@ -3113,17 +3114,22 @@ static u32 xhci_td_remainder(struct xhci
+@@ -3116,17 +3117,22 @@ static u32 xhci_td_remainder(struct xhci
{
u32 maxp, total_packet_count;
/* Queueing functions don't count the current TRB into transferred */
return (total_packet_count - ((transferred + trb_buff_len) / maxp));
}
-@@ -3511,7 +3517,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3514,7 +3520,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field |= 0x1;
/* xHCI 1.0/1.1 6.4.1.2.1: Transfer Type field */
writel(temp, &xhci->ir_set->irq_control);
/* Set the HCD state before we enable the irqs */
-@@ -1691,6 +1696,9 @@ int xhci_drop_endpoint(struct usb_hcd *h
+@@ -1730,6 +1735,9 @@ int xhci_drop_endpoint(struct usb_hcd *h
xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep);
xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n",
(unsigned int) ep->desc.bEndpointAddress,
udev->slot_id,
-@@ -1786,6 +1794,15 @@ int xhci_add_endpoint(struct usb_hcd *hc
+@@ -1825,6 +1833,15 @@ int xhci_add_endpoint(struct usb_hcd *hc
return -ENOMEM;
}
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1634,6 +1634,7 @@ struct xhci_hcd {
+@@ -1639,6 +1639,7 @@ struct xhci_hcd {
/* For controllers with a broken beyond repair streams implementation */
#define XHCI_BROKEN_STREAMS (1 << 19)
#define XHCI_PME_STUCK_QUIRK (1 << 20)
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc
+@@ -896,7 +896,8 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */
if (!phydev->link) {
phydev->state = PHY_NOLINK;
phydev->adjust_link(phydev->attached_dev);
break;
}
-@@ -982,7 +983,8 @@ void phy_state_machine(struct work_struc
+@@ -988,7 +989,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev);
} else {
phydev->state = PHY_NOLINK;
}
phydev->adjust_link(phydev->attached_dev);
-@@ -994,7 +996,8 @@ void phy_state_machine(struct work_struc
+@@ -1000,7 +1002,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;
}
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -377,6 +377,7 @@ struct phy_device {
+@@ -373,6 +373,7 @@ struct phy_device {
bool is_pseudo_fixed_link;
bool has_fixups;
bool suspended;
-#define FORCE_WORD_WRITE 0
+#define FORCE_WORD_WRITE 1
- #define MAX_WORD_RETRIES 3
+ #define MAX_RETRIES 3
@@ -51,7 +51,9 @@
/* Atmel chips don't use the same PRI format as AMD chips */
static void fixup_convert_atmel_pri(struct mtd_info *mtd)
-@@ -1789,6 +1793,7 @@ static int cfi_amdstd_write_words(struct
+@@ -1790,6 +1794,7 @@ static int cfi_amdstd_write_words(struct
/*
* FIXME: interleaved mode not tested, and probably not supported!
*/
static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
unsigned long adr, const u_char *buf,
int len)
-@@ -1917,7 +1922,6 @@ static int __xipram do_write_buffer(stru
+@@ -1918,7 +1923,6 @@ static int __xipram do_write_buffer(stru
return ret;
}
static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
size_t *retlen, const u_char *buf)
{
-@@ -1992,6 +1996,7 @@ static int cfi_amdstd_write_buffers(stru
+@@ -1993,6 +1997,7 @@ static int cfi_amdstd_write_buffers(stru
return 0;
}
{
struct nand_chip *chip = mtd->priv;
-@@ -829,7 +829,7 @@ static void panic_nand_get_device(struct
+@@ -834,7 +834,7 @@ static void panic_nand_get_device(struct
*
* Get the device and lock it for exclusive access
*/
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
-@@ -1727,6 +1727,9 @@ static int nand_do_read_ops(struct mtd_i
+@@ -1732,6 +1732,9 @@ static int nand_do_read_ops(struct mtd_i
__func__, buf);
read_retry:
chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, page);
/*
-@@ -1745,6 +1748,7 @@ read_retry:
+@@ -1750,6 +1753,7 @@ read_retry:
else
ret = chip->ecc.read_page(mtd, chip, bufpoi,
oob_required, page);
if (ret < 0) {
if (use_bufpoi)
/* Invalidate page cache */
-@@ -2935,8 +2939,11 @@ int nand_erase_nand(struct mtd_info *mtd
+@@ -2943,8 +2947,11 @@ int nand_erase_nand(struct mtd_info *mtd
if (page <= chip->pagebuf && chip->pagebuf <
(page + pages_per_block))
chip->pagebuf = -1;
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
-@@ -786,3 +786,5 @@ config MMC_MTK
+@@ -780,3 +780,5 @@ config MMC_MTK
If you have a machine with a integrated SD/MMC card reader, say Y or M here.
This is needed if support for any SD/SDIO/MMC devices is required.
If unsure, say N.
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1014,6 +1014,66 @@ write_err:
+@@ -1020,6 +1020,66 @@ write_err:
return ret;
}
static int macronix_quad_enable(struct spi_nor *nor)
{
int ret, val;
-@@ -1201,10 +1261,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1207,10 +1267,12 @@ int spi_nor_scan(struct spi_nor *nor, co
}
/* sst nor chips use AAI word program */
if (info->flags & USE_FSR)
nor->flags |= SNOR_F_USE_FSR;
-@@ -1232,11 +1294,20 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1238,11 +1300,20 @@ int spi_nor_scan(struct spi_nor *nor, co
mtd->writebufsize = nor->page_size;
if (np) {
return IRQ_HANDLED;
--- a/drivers/net/ethernet/mediatek/gsw_mt7620.h
+++ b/drivers/net/ethernet/mediatek/gsw_mt7620.h
-@@ -119,5 +119,6 @@ u32 mt7530_mdio_r32(struct mt7620_gsw *g
+@@ -113,5 +113,6 @@ u32 mt7530_mdio_r32(struct mt7620_gsw *g
u32 _mt7620_mii_write(struct mt7620_gsw *gsw, u32 phy_addr,
u32 phy_register, u32 write_data);
u32 _mt7620_mii_read(struct mt7620_gsw *gsw, int phy_addr, int phy_reg);
#define GSW_REG_PORT_PMCR(x) (0x3000 + (x * 0x100))
#define GSW_REG_PORT_STATUS(x) (0x3008 + (x * 0x100))
#define GSW_REG_SMACCR0 0x3fE4
-@@ -82,6 +84,7 @@
+@@ -76,6 +78,7 @@
#define PHY_PRE_EN BIT(30)
#define PMY_MDC_CONF(_x) ((_x & 0x3f) << 24)
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
-@@ -3571,6 +3571,7 @@ static void nand_decode_ext_id(struct mt
+@@ -3579,6 +3579,7 @@ static void nand_decode_ext_id(struct mt
/*
* Field definitions are in the following datasheets:
* Old style (4,5 byte ID): Samsung K9GAG08U0M (p.32)
* New Samsung (6 byte ID): Samsung K9GAG08U0F (p.44)
* Hynix MLC (6 byte ID): Hynix H27UBG8T2B (p.22)
*
-@@ -3668,6 +3669,19 @@ static void nand_decode_ext_id(struct mt
+@@ -3676,6 +3677,19 @@ static void nand_decode_ext_id(struct mt
*busw = (extid & 0x01) ? NAND_BUSWIDTH_16 : 0;
/*
-diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
-index fe9ceb7..2151975 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -27,6 +27,9 @@
#define MAX_CMD_SIZE 6
struct m25p {
struct spi_device *spi;
-@@ -168,6 +171,17 @@ static int m25p80_erase(struct spi_nor *nor, loff_t offset)
+@@ -190,6 +193,17 @@ static int m25p80_erase(struct spi_nor *
return 0;
}
/*
* board specific setup should have ensured the SPI clock used here
* matches what the READ command supports, at least until this driver
-@@ -197,6 +211,7 @@ static int m25p_probe(struct spi_device *spi)
+@@ -219,6 +233,7 @@ static int m25p_probe(struct spi_device
nor->erase = m25p80_erase;
nor->write_reg = m25p80_write_reg;
nor->read_reg = m25p80_read_reg;
nor->dev = &spi->dev;
nor->flash_node = spi->dev.of_node;
---
-2.9.3
-