+#endif
--- a/include/linux/decompress/mm.h
+++ b/include/linux/decompress/mm.h
-@@ -53,8 +53,6 @@ static void free(void *where)
+@@ -63,8 +63,6 @@ static void free(void *where)
#define set_error_fn(x)
#else /* STATIC */
/* Code active when compiled standalone for use when loading ramdisk: */
-@@ -77,7 +75,6 @@ static void free(void *where)
+@@ -87,7 +85,6 @@ static void free(void *where)
static void(*error)(char *m);
#define set_error_fn(x) error = x;
---- a/fs/jffs2/Kconfig
-+++ b/fs/jffs2/Kconfig
-@@ -139,6 +139,15 @@
+--- a/fs/jffs2/Kconfig
++++ b/fs/jffs2/Kconfig
+@@ -139,6 +139,15 @@ config JFFS2_LZO
This feature was added in July, 2007. Say 'N' if you need
compatibility with older bootloaders or kernels.
config JFFS2_RTIME
bool "JFFS2 RTIME compression support" if JFFS2_COMPRESSION_OPTIONS
depends on JFFS2_FS
---- a/fs/jffs2/Makefile
-+++ b/fs/jffs2/Makefile
-@@ -18,4 +18,7 @@
+--- a/fs/jffs2/Makefile
++++ b/fs/jffs2/Makefile
+@@ -18,4 +18,7 @@ jffs2-$(CONFIG_JFFS2_RUBIN) += compr_rub
jffs2-$(CONFIG_JFFS2_RTIME) += compr_rtime.o
jffs2-$(CONFIG_JFFS2_ZLIB) += compr_zlib.o
jffs2-$(CONFIG_JFFS2_LZO) += compr_lzo.o
jffs2-$(CONFIG_JFFS2_SUMMARY) += summary.o
+
+CFLAGS_compr_lzma.o += -Iinclude/linux -Ilib/lzma
---- a/fs/jffs2/compr.c
-+++ b/fs/jffs2/compr.c
-@@ -319,6 +319,9 @@
+--- a/fs/jffs2/compr.c
++++ b/fs/jffs2/compr.c
+@@ -319,6 +319,9 @@ int __init jffs2_compressors_init(void)
#ifdef CONFIG_JFFS2_LZO
jffs2_lzo_init();
#endif
/* Setting default compression mode */
#ifdef CONFIG_JFFS2_CMODE_NONE
jffs2_compression_mode = JFFS2_COMPR_MODE_NONE;
-@@ -342,6 +345,9 @@
+@@ -342,6 +345,9 @@ int __init jffs2_compressors_init(void)
int jffs2_compressors_exit(void)
{
/* Unregistering compressors */
#ifdef CONFIG_JFFS2_LZO
jffs2_lzo_exit();
#endif
---- a/fs/jffs2/compr.h
-+++ b/fs/jffs2/compr.h
+--- a/fs/jffs2/compr.h
++++ b/fs/jffs2/compr.h
@@ -28,9 +28,9 @@
#define JFFS2_DYNRUBIN_PRIORITY 20
#define JFFS2_LZARI_PRIORITY 30
#define JFFS2_RUBINMIPS_DISABLED /* RUBINs will be used only */
#define JFFS2_DYNRUBIN_DISABLED /* for decompression */
-@@ -98,5 +98,9 @@
+@@ -98,5 +98,9 @@ void jffs2_zlib_exit(void);
int jffs2_lzo_init(void);
void jffs2_lzo_exit(void);
#endif
+#endif
#endif /* __JFFS2_COMPR_H__ */
---- a/fs/jffs2/compr_lzma.c
-+++ b/fs/jffs2/compr_lzma.c
+--- /dev/null
++++ b/fs/jffs2/compr_lzma.c
@@ -0,0 +1,128 @@
+/*
+ * JFFS2 -- Journalling Flash File System, Version 2.
+ jffs2_unregister_compressor(&jffs2_lzma_comp);
+ lzma_free_workspace();
+}
---- a/fs/jffs2/super.c
-+++ b/fs/jffs2/super.c
-@@ -254,14 +254,41 @@
+--- a/fs/jffs2/super.c
++++ b/fs/jffs2/super.c
+@@ -254,14 +254,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);
jffs2_inode_cachep = kmem_cache_create("jffs2_i",
sizeof(struct jffs2_inode_info),
---- a/include/linux/jffs2.h
-+++ b/include/linux/jffs2.h
+--- a/include/linux/jffs2.h
++++ b/include/linux/jffs2.h
@@ -45,6 +45,7 @@
#define JFFS2_COMPR_DYNRUBIN 0x05
#define JFFS2_COMPR_ZLIB 0x06
/* Compatibility flags. */
#define JFFS2_COMPAT_MASK 0xc000 /* What do to if an unknown nodetype is found */
#define JFFS2_NODE_ACCURATE 0x2000
---- a/include/linux/lzma.h
-+++ b/include/linux/lzma.h
+--- /dev/null
++++ b/include/linux/lzma.h
@@ -0,0 +1,62 @@
+#ifndef __LZMA_H__
+#define __LZMA_H__
+static ISzAlloc lzma_alloc = {p_lzma_malloc, p_lzma_free};
+
+#endif
---- a/include/linux/lzma/LzFind.h
-+++ b/include/linux/lzma/LzFind.h
+--- /dev/null
++++ b/include/linux/lzma/LzFind.h
@@ -0,0 +1,115 @@
+/* LzFind.h -- Match finder for LZ algorithms
+2009-04-22 : Igor Pavlov : Public domain */
+#endif
+
+#endif
---- a/include/linux/lzma/LzHash.h
-+++ b/include/linux/lzma/LzHash.h
+--- /dev/null
++++ b/include/linux/lzma/LzHash.h
@@ -0,0 +1,54 @@
+/* LzHash.h -- HASH functions for LZ algorithms
+2009-02-07 : Igor Pavlov : Public domain */
+ hash4Value = (temp ^ ((UInt32)cur[2] << 8) ^ (p->crc[cur[3]] << 5)) & (kHash4Size - 1); }
+
+#endif
---- a/include/linux/lzma/LzmaDec.h
-+++ b/include/linux/lzma/LzmaDec.h
+--- /dev/null
++++ b/include/linux/lzma/LzmaDec.h
@@ -0,0 +1,231 @@
+/* LzmaDec.h -- LZMA Decoder
+2009-02-07 : Igor Pavlov : Public domain */
+#endif
+
+#endif
---- a/include/linux/lzma/LzmaEnc.h
-+++ b/include/linux/lzma/LzmaEnc.h
+--- /dev/null
++++ b/include/linux/lzma/LzmaEnc.h
@@ -0,0 +1,80 @@
+/* LzmaEnc.h -- LZMA Encoder
+2009-02-07 : Igor Pavlov : Public domain */
+#endif
+
+#endif
---- a/include/linux/lzma/Types.h
-+++ b/include/linux/lzma/Types.h
+--- /dev/null
++++ b/include/linux/lzma/Types.h
@@ -0,0 +1,226 @@
+/* Types.h -- Basic types
+2009-11-23 : Igor Pavlov : Public domain */
+EXTERN_C_END
+
+#endif
---- a/lib/Kconfig
-+++ b/lib/Kconfig
-@@ -103,6 +103,12 @@
+--- a/lib/Kconfig
++++ b/lib/Kconfig
+@@ -103,6 +103,12 @@ config LZO_COMPRESS
config LZO_DECOMPRESS
tristate
#
# These all provide a common interface (hence the apparent duplication with
# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
---- a/lib/Makefile
-+++ b/lib/Makefile
+--- a/lib/Makefile
++++ b/lib/Makefile
@@ -2,6 +2,16 @@
# Makefile for some libs needed in the kernel.
#
ifdef CONFIG_FUNCTION_TRACER
ORIG_CFLAGS := $(KBUILD_CFLAGS)
KBUILD_CFLAGS = $(subst -pg,,$(ORIG_CFLAGS))
-@@ -65,6 +75,8 @@
+@@ -66,6 +76,8 @@ obj-$(CONFIG_ZLIB_DEFLATE) += zlib_defla
obj-$(CONFIG_REED_SOLOMON) += reed_solomon/
obj-$(CONFIG_LZO_COMPRESS) += lzo/
obj-$(CONFIG_LZO_DECOMPRESS) += lzo/
lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o
lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o
---- a/lib/lzma/LzFind.c
-+++ b/lib/lzma/LzFind.c
+--- /dev/null
++++ b/lib/lzma/LzFind.c
@@ -0,0 +1,761 @@
+/* LzFind.c -- Match finder for LZ algorithms
+2009-04-22 : Igor Pavlov : Public domain */
+ vTable->Skip = (Mf_Skip_Func)Bt4_MatchFinder_Skip;
+ }
+}
---- a/lib/lzma/LzmaDec.c
-+++ b/lib/lzma/LzmaDec.c
+--- /dev/null
++++ b/lib/lzma/LzmaDec.c
@@ -0,0 +1,999 @@
+/* LzmaDec.c -- LZMA Decoder
+2009-09-20 : Igor Pavlov : Public domain */
+ LzmaDec_FreeProbs(&p, alloc);
+ return res;
+}
---- a/lib/lzma/LzmaEnc.c
-+++ b/lib/lzma/LzmaEnc.c
+--- /dev/null
++++ b/lib/lzma/LzmaEnc.c
@@ -0,0 +1,2271 @@
+/* LzmaEnc.c -- LZMA Encoder
+2009-11-24 : Igor Pavlov : Public domain */
+ LzmaEnc_Destroy(p, alloc, allocBig);
+ return res;
+}
---- a/lib/lzma/Makefile
-+++ b/lib/lzma/Makefile
+--- /dev/null
++++ b/lib/lzma/Makefile
@@ -0,0 +1,7 @@
+lzma_compress-objs := LzFind.o LzmaEnc.o
+lzma_decompress-objs := LzmaDec.o
--- a/arch/mips/include/asm/system.h
+++ b/arch/mips/include/asm/system.h
-@@ -194,7 +194,7 @@ extern __u64 __xchg_u64_unsupported_on_3
+@@ -198,7 +198,7 @@ extern __u64 __xchg_u64_unsupported_on_3
#define __xchg_u64 __xchg_u64_unsupported_on_32bit_kernels
#endif
+}
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
-@@ -94,6 +94,7 @@
+@@ -94,6 +94,7 @@ obj-$(CONFIG_GPIO_TXX9) += gpio_txx9.o
obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-$(CONFIG_SPINLOCK_TEST) += spinlock_test.o
---- a/arch/mips/kernel/machine_kexec.c 2010-03-15 15:52:04.000000000 +0000
-+++ b/arch/mips/kernel/machine_kexec.c 2010-03-29 12:10:37.000000000 +0100
-@@ -52,7 +52,7 @@
+--- a/arch/mips/kernel/machine_kexec.c
++++ b/arch/mips/kernel/machine_kexec.c
+@@ -52,7 +52,7 @@ machine_kexec(struct kimage *image)
reboot_code_buffer =
(unsigned long)page_address(image->control_code_page);
--- a/include/linux/module.h
+++ b/include/linux/module.h
-@@ -194,16 +194,24 @@ void *__symbol_get_gpl(const char *symbo
+@@ -195,16 +195,24 @@ void *__symbol_get_gpl(const char *symbo
#define __CRC_SYMBOL(sym, sec)
#endif
--- a/drivers/pci/Kconfig
+++ b/drivers/pci/Kconfig
-@@ -51,6 +51,12 @@ config PCI_STUB
+@@ -40,6 +40,12 @@ config PCI_STUB
When in doubt, say N.
default y
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -96,6 +96,7 @@ static void __devinit quirk_resource_ali
+@@ -91,6 +91,7 @@ static void __devinit quirk_resource_ali
}
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, quirk_resource_alignment);
/* The Mellanox Tavor device gives false positive parity errors
* Mark this device with a broken_parity_status, to allow
* PCI scanning code to "skip" this now blacklisted device.
-@@ -1905,7 +1906,9 @@ static void __devinit fixup_rev1_53c810(
+@@ -1901,7 +1902,9 @@ static void __devinit fixup_rev1_53c810(
}
}
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, fixup_rev1_53c810);
/* Enable 1k I/O space granularity on the Intel P64H2 */
static void __devinit quirk_p64h2_1k_io(struct pci_dev *dev)
{
-@@ -2536,6 +2539,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x150d, quirk_i82576_sriov);
+@@ -2551,6 +2554,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1518, quirk_i82576_sriov);
#endif /* CONFIG_PCI_IOV */
+#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */
- static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f,
- struct pci_fixup *end)
+ /*
+ * This is a quirk for the Ricoh MMC controller found as a part of
+#endif
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
-@@ -185,3 +185,114 @@ EXPORT_SYMBOL(__mtdcr);
+@@ -186,3 +186,114 @@ EXPORT_SYMBOL(__mtdcr);
EXPORT_SYMBOL(__mfdcr);
#endif
EXPORT_SYMBOL(empty_zero_page);
#include <linux/buffer_head.h>
#include <linux/mutex.h>
#include <linux/mount.h>
-@@ -232,10 +233,11 @@ static void block2mtd_free_device(struct
+@@ -233,10 +234,11 @@ static void block2mtd_free_device(struct
/* FIXME: ensure that mtd->size % erase_size == 0 */
char *name;
if (!devname)
-@@ -273,17 +275,17 @@ static struct block2mtd_dev *add_device(
+@@ -274,17 +276,17 @@ static struct block2mtd_dev *add_device(
mutex_init(&dev->write_mutex);
dev->mtd.erasesize = erase_size;
dev->mtd.writesize = 1;
dev->mtd.type = MTD_RAM;
-@@ -296,14 +298,17 @@ static struct block2mtd_dev *add_device(
+@@ -297,14 +299,17 @@ static struct block2mtd_dev *add_device(
dev->mtd.priv = dev;
dev->mtd.owner = THIS_MODULE;
return dev;
devinit_err:
-@@ -376,9 +381,9 @@ static char block2mtd_paramline[80 + 12]
+@@ -377,9 +382,9 @@ static char block2mtd_paramline[80 + 12]
static int block2mtd_setup2(const char *val)
{
char *name;
size_t erase_size = PAGE_SIZE;
int i, ret;
-@@ -389,7 +394,7 @@ static int block2mtd_setup2(const char *
+@@ -390,7 +395,7 @@ static int block2mtd_setup2(const char *
strcpy(str, val);
kill_final_newline(str);
token[i] = strsep(&str, ",");
if (str)
-@@ -408,8 +413,10 @@ static int block2mtd_setup2(const char *
+@@ -409,8 +414,10 @@ static int block2mtd_setup2(const char *
parse_err("illegal erase size");
}
}
return 0;
}
-@@ -443,7 +450,7 @@ static int block2mtd_setup(const char *v
+@@ -444,7 +451,7 @@ static int block2mtd_setup(const char *v
module_param_call(block2mtd, block2mtd_setup, NULL, NULL, 0200);
{
--- a/fs/partitions/check.c
+++ b/fs/partitions/check.c
-@@ -625,6 +625,7 @@ try_scan:
+@@ -639,6 +639,7 @@ try_scan:
kfree(state);
return 0;
}
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
-@@ -29,6 +29,8 @@ struct block2mtd_dev {
+@@ -30,6 +30,8 @@ struct block2mtd_dev {
struct block_device *blkdev;
struct mtd_info mtd;
struct mutex write_mutex;
};
-@@ -81,6 +83,12 @@ static int block2mtd_erase(struct mtd_in
+@@ -82,6 +84,12 @@ static int block2mtd_erase(struct mtd_in
size_t len = instr->len;
int err;
instr->state = MTD_ERASING;
mutex_lock(&dev->write_mutex);
err = _block2mtd_erase(dev, from, len);
-@@ -93,6 +101,10 @@ static int block2mtd_erase(struct mtd_in
+@@ -94,6 +102,10 @@ static int block2mtd_erase(struct mtd_in
instr->state = MTD_ERASE_DONE;
mtd_erase_callback(instr);
return err;
}
-@@ -104,10 +116,14 @@ static int block2mtd_read(struct mtd_inf
+@@ -105,10 +117,14 @@ static int block2mtd_read(struct mtd_inf
struct page *page;
int index = from >> PAGE_SHIFT;
int offset = from & (PAGE_SIZE-1);
if (from + len > mtd->size)
len = mtd->size - from;
-@@ -122,10 +138,14 @@ static int block2mtd_read(struct mtd_inf
+@@ -123,10 +139,14 @@ static int block2mtd_read(struct mtd_inf
len = len - cpylen;
page = page_read(dev->blkdev->bd_inode->i_mapping, index);
memcpy(buf, page_address(page) + offset, cpylen);
page_cache_release(page);
-@@ -136,7 +156,10 @@ static int block2mtd_read(struct mtd_inf
+@@ -137,7 +157,10 @@ static int block2mtd_read(struct mtd_inf
offset = 0;
index++;
}
}
-@@ -188,12 +211,22 @@ static int block2mtd_write(struct mtd_in
+@@ -189,12 +212,22 @@ static int block2mtd_write(struct mtd_in
size_t *retlen, const u_char *buf)
{
struct block2mtd_dev *dev = mtd->priv;
if (to + len > mtd->size)
len = mtd->size - to;
-@@ -202,6 +235,9 @@ static int block2mtd_write(struct mtd_in
+@@ -203,6 +236,9 @@ static int block2mtd_write(struct mtd_in
mutex_unlock(&dev->write_mutex);
if (err > 0)
err = 0;
return err;
}
-@@ -210,52 +246,29 @@ static int block2mtd_write(struct mtd_in
+@@ -211,52 +247,29 @@ static int block2mtd_write(struct mtd_in
static void block2mtd_sync(struct mtd_info *mtd)
{
struct block2mtd_dev *dev = mtd->priv;
if (devt) {
bdev = open_by_devnum(devt, FMODE_WRITE | FMODE_READ);
}
-@@ -263,17 +276,98 @@ static struct block2mtd_dev *add_device(
+@@ -264,17 +277,98 @@ static struct block2mtd_dev *add_device(
#endif
if (IS_ERR(bdev)) {
if (!mtdname)
mtdname = devname;
-@@ -297,6 +391,7 @@ static struct block2mtd_dev *add_device(
+@@ -298,6 +392,7 @@ static struct block2mtd_dev *add_device(
dev->mtd.read = block2mtd_read;
dev->mtd.priv = dev;
dev->mtd.owner = THIS_MODULE;
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
-@@ -268,6 +268,7 @@ static int _open_bdev(struct block2mtd_d
+@@ -269,6 +269,7 @@ static int _open_bdev(struct block2mtd_d
/* We might not have rootfs mounted at this point. Try
to resolve the device name by other means. */
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -645,6 +645,10 @@ static const struct spi_device_id m25p_i
+@@ -646,6 +646,10 @@ static const struct spi_device_id m25p_i
{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) },
{ "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -645,6 +645,10 @@ static const struct spi_device_id m25p_i
+@@ -646,6 +646,10 @@ static const struct spi_device_id m25p_i
{ "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) },
{ "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -649,6 +649,11 @@ static const struct spi_device_id m25p_i
+@@ -650,6 +650,11 @@ static const struct spi_device_id m25p_i
{ "en25p32", INFO(0x1c2016, 0, 64 * 1024, 64, 0) },
{ "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) },
/* PMC -- pm25x "blocks" are 32K, sectors are 4K */
{ "pm25lv512", INFO(0, 0, 32 * 1024, 2, SECT_4K) },
{ "pm25lv010", INFO(0, 0, 32 * 1024, 4, SECT_4K) },
-@@ -833,11 +838,12 @@ static int __devinit m25p_probe(struct s
+@@ -834,11 +839,12 @@ static int __devinit m25p_probe(struct s
dev_set_drvdata(&spi->dev, flash);
/*
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -706,6 +706,7 @@ static const struct spi_device_id m25p_i
+@@ -707,6 +707,7 @@ static const struct spi_device_id m25p_i
{ "w25x80", INFO(0xef3014, 0, 64 * 1024, 16, SECT_4K) },
{ "w25x16", INFO(0xef3015, 0, 64 * 1024, 32, SECT_4K) },
{ "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) },
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -858,6 +858,27 @@ config NETFILTER_XT_MATCH_STATE
+@@ -883,6 +883,27 @@ config NETFILTER_XT_MATCH_STATE
To compile it as a module, choose M here. If unsure, say N.
depends on NETFILTER_ADVANCED
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
-@@ -89,6 +89,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT)
+@@ -90,6 +90,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT)
obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o
obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
-@@ -201,6 +201,14 @@ destroy_conntrack(struct nf_conntrack *n
+@@ -202,6 +202,14 @@ destroy_conntrack(struct nf_conntrack *n
* too. */
nf_ct_remove_expectations(ct);
BUG_ON(hlist_nulls_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode));
--- a/net/netfilter/nf_conntrack_standalone.c
+++ b/net/netfilter/nf_conntrack_standalone.c
-@@ -171,6 +171,12 @@ static int ct_seq_show(struct seq_file *
+@@ -178,6 +178,12 @@ static int ct_seq_show(struct seq_file *
goto release;
#endif
#define IPT_INV_VIA_IN 0x01 /* Invert the sense of IN IFACE. */
--- a/net/ipv4/netfilter/ip_tables.c
+++ b/net/ipv4/netfilter/ip_tables.c
-@@ -88,6 +88,9 @@ ip_packet_match(const struct iphdr *ip,
+@@ -95,6 +95,9 @@ ip_packet_match(const struct iphdr *ip,
#define FWINV(bool, invflg) ((bool) ^ !!(ipinfo->invflags & (invflg)))
if (FWINV((ip->saddr&ipinfo->smsk.s_addr) != ipinfo->src.s_addr,
IPT_INV_SRCIP) ||
FWINV((ip->daddr&ipinfo->dmsk.s_addr) != ipinfo->dst.s_addr,
-@@ -138,13 +141,35 @@ ip_packet_match(const struct iphdr *ip,
+@@ -145,13 +148,35 @@ ip_packet_match(const struct iphdr *ip,
return false;
}
duprintf("Unknown flag bits set: %08X\n",
ip->flags & ~IPT_F_MASK);
return false;
-@@ -154,6 +179,8 @@ ip_checkentry(const struct ipt_ip *ip)
+@@ -161,6 +186,8 @@ ip_checkentry(const struct ipt_ip *ip)
ip->invflags & ~IPT_INV_MASK);
return false;
}
return true;
}
-@@ -196,7 +223,6 @@ static inline bool unconditional(const s
+@@ -203,7 +230,6 @@ static inline bool unconditional(const s
static const struct ipt_ip uncond;
return memcmp(ip, &uncond, sizeof(uncond)) == 0;
-#undef FWINV
}
- #if defined(CONFIG_NETFILTER_XT_TARGET_TRACE) || \
-@@ -321,8 +347,28 @@ ipt_do_table(struct sk_buff *skb,
+ /* for const-correctness */
+@@ -336,8 +362,28 @@ ipt_do_table(struct sk_buff *skb,
struct xt_match_param mtpar;
struct xt_target_param tgpar;
indev = in ? in->name : nulldevname;
outdev = out ? out->name : nulldevname;
/* We handle fragments by dealing with the first fragment as
-@@ -339,13 +385,6 @@ ipt_do_table(struct sk_buff *skb,
+@@ -354,13 +400,6 @@ ipt_do_table(struct sk_buff *skb,
mtpar.family = tgpar.family = NFPROTO_IPV4;
mtpar.hooknum = tgpar.hooknum = hook;
/* For return from builtin chain */
back = get_entry(table_base, private->underflow[hook]);
-@@ -992,6 +1031,7 @@ copy_entries_to_user(unsigned int total_
+@@ -991,6 +1030,7 @@ copy_entries_to_user(unsigned int total_
unsigned int i;
const struct ipt_entry_match *m;
const struct ipt_entry_target *t;
e = (struct ipt_entry *)(loc_cpu_entry + off);
if (copy_to_user(userptr + off
-@@ -1002,6 +1042,14 @@ copy_entries_to_user(unsigned int total_
+@@ -1001,6 +1041,14 @@ copy_entries_to_user(unsigned int total_
goto free_counters;
}
+
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
-@@ -109,6 +109,129 @@ config EQUALIZER
+@@ -121,6 +121,129 @@ config EQUALIZER
To compile this driver as a module, choose M here: the module
will be called eql. If unsure, say N.
select CRC32
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
-@@ -165,6 +165,7 @@ obj-$(CONFIG_SLHC) += slhc.o
+@@ -169,6 +169,7 @@ obj-$(CONFIG_SLHC) += slhc.o
obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o
obj-$(CONFIG_DUMMY) += dummy.o
+obj-$(CONFIG_IMQ) += imq.o
obj-$(CONFIG_IFB) += ifb.o
obj-$(CONFIG_MACVLAN) += macvlan.o
- obj-$(CONFIG_DE600) += de600.o
+ obj-$(CONFIG_MACVTAP) += macvtap.o
--- /dev/null
+++ b/include/linux/imq.h
@@ -0,0 +1,13 @@
+
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -1168,6 +1168,7 @@ extern int dev_alloc_name(struct net_de
+@@ -1203,6 +1203,7 @@ extern int dev_alloc_name(struct net_de
extern int dev_open(struct net_device *dev);
extern int dev_close(struct net_device *dev);
extern void dev_disable_lro(struct net_device *dev);
/* Don't change this without changing skb_csum_unnecessary! */
#define CHECKSUM_NONE 0
-@@ -327,6 +330,9 @@
+@@ -321,6 +324,9 @@ struct sk_buff {
* first. This is owned by whoever has the skb queued ATM.
*/
char cb[48] __aligned(8);
unsigned long _skb_dst;
#ifdef CONFIG_XFRM
-@@ -363,6 +369,9 @@
+@@ -357,6 +363,9 @@ struct sk_buff {
struct nf_conntrack *nfct;
struct sk_buff *nfct_reasm;
#endif
#ifdef CONFIG_BRIDGE_NETFILTER
struct nf_bridge_info *nf_bridge;
#endif
-@@ -384,6 +393,10 @@
+@@ -378,6 +387,10 @@ struct sk_buff {
/* 0/14 bit hole */
#ifdef CONFIG_NET_DMA
dma_cookie_t dma_cookie;
#endif
-@@ -432,6 +445,12 @@
+@@ -426,6 +439,12 @@ static inline struct rtable *skb_rtable(
return (struct rtable *)skb_dst(skb);
}
extern void kfree_skb(struct sk_buff *skb);
extern void consume_skb(struct sk_buff *skb);
extern void __kfree_skb(struct sk_buff *skb);
-@@ -1976,6 +1995,10 @@
+@@ -1970,6 +1989,10 @@ static inline void __nf_copy(struct sk_b
dst->nfct_reasm = src->nfct_reasm;
nf_conntrack_get_reasm(src->nfct_reasm);
#endif
#endif /* _NF_QUEUE_H */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -97,6 +97,9 @@
+@@ -98,6 +98,9 @@
#include <net/net_namespace.h>
#include <net/sock.h>
#include <linux/rtnetlink.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/stat.h>
-@@ -1810,7 +1813,11 @@ int dev_hard_start_xmit(struct sk_buff *
+@@ -1860,7 +1863,11 @@ int dev_hard_start_xmit(struct sk_buff *
int rc = NETDEV_TX_OK;
if (likely(!skb->next)) {
dev_queue_xmit_nit(skb, dev);
if (netif_needs_gso(dev, skb)) {
-@@ -1912,8 +1919,7 @@ static inline u16 dev_cap_txqueue(struct
+@@ -1970,8 +1977,7 @@ static inline u16 dev_cap_txqueue(struct
return queue_index;
}
{
u16 queue_index;
struct sock *sk = skb->sk;
-@@ -1939,6 +1945,7 @@ static struct netdev_queue *dev_pick_tx(
+@@ -1997,6 +2003,7 @@ static struct netdev_queue *dev_pick_tx(
skb_set_queue_mapping(skb, queue_index);
return netdev_get_tx_queue(dev, queue_index);
}
/**
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -396,6 +396,18 @@ config NETFILTER_XT_TARGET_LED
+@@ -421,6 +421,18 @@ config NETFILTER_XT_TARGET_LED
For more information on the LEDs available on your system, see
Documentation/leds-class.txt
default m if NETFILTER_ADVANCED=n
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
-@@ -46,6 +46,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CONNMAR
- obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o
+@@ -47,6 +47,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSEC
+ obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o
obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o
+obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o
obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
-@@ -20,6 +20,26 @@ static const struct nf_queue_handler *qu
+@@ -21,6 +21,26 @@ static const struct nf_queue_handler *qu
static DEFINE_MUTEX(queue_handler_mutex);
/* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */
int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
-@@ -80,7 +100,7 @@ void nf_unregister_queue_handlers(const
+@@ -81,7 +101,7 @@ void nf_unregister_queue_handlers(const
}
EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
{
/* Release those devices we held, or Alexey will kill me. */
if (entry->indev)
-@@ -100,6 +120,7 @@ static void nf_queue_entry_release_refs(
+@@ -101,6 +121,7 @@ static void nf_queue_entry_release_refs(
/* Drop reference to owner of hook which queued us. */
module_put(entry->elem->owner);
}
/*
* Any packet that leaves via this function must come back
-@@ -121,12 +142,26 @@ static int __nf_queue(struct sk_buff *sk
+@@ -122,12 +143,26 @@ static int __nf_queue(struct sk_buff *sk
#endif
const struct nf_afinfo *afinfo;
const struct nf_queue_handler *qh;
goto err_unlock;
afinfo = nf_get_afinfo(pf);
-@@ -145,6 +180,10 @@ static int __nf_queue(struct sk_buff *sk
+@@ -146,6 +181,10 @@ static int __nf_queue(struct sk_buff *sk
.indev = indev,
.outdev = outdev,
.okfn = okfn,
};
/* If it's going away, ignore hook. */
-@@ -170,8 +209,19 @@ static int __nf_queue(struct sk_buff *sk
+@@ -171,8 +210,19 @@ static int __nf_queue(struct sk_buff *sk
}
#endif
afinfo->saveroute(skb, entry);
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -160,7 +160,6 @@ config NF_CONNTRACK_FTP
+@@ -173,7 +173,6 @@ config NF_CONNTRACK_FTP
config NF_CONNTRACK_H323
tristate "H.323 protocol support"
depends on NETFILTER_ADVANCED
help
H.323 is a VoIP signalling protocol from ITU-T. As one of the most
-@@ -505,7 +504,6 @@ config NETFILTER_XT_TARGET_SECMARK
+@@ -530,7 +529,6 @@ config NETFILTER_XT_TARGET_SECMARK
config NETFILTER_XT_TARGET_TCPMSS
tristate '"TCPMSS" target support'
obj-$(CONFIG_NF_NAT_SNMP_BASIC) += nf_nat_snmp_basic.o
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -267,6 +267,16 @@ config NF_CONNTRACK_TFTP
+@@ -280,6 +280,16 @@ config NF_CONNTRACK_TFTP
To compile it as a module, choose M here. If unsure, say N.
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
-@@ -124,8 +124,8 @@ int kmem_ptr_validate(struct kmem_cache
+@@ -130,8 +130,8 @@ int kmem_ptr_validate(struct kmem_cache
* to do various tricks to work around compiler limitations in order to
* ensure proper constant folding.
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -1377,11 +1377,18 @@ static inline int skb_network_offset(con
+@@ -1372,11 +1372,18 @@ static inline int skb_network_offset(con
*
* Various parts of the networking layer expect at least 32 bytes of
* headroom, you should not reduce this.
extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);
static inline void __skb_trim(struct sk_buff *skb, unsigned int len)
-@@ -1471,9 +1478,9 @@ static inline void __skb_queue_purge(str
+@@ -1466,9 +1473,9 @@ static inline void __skb_queue_purge(str
static inline struct sk_buff *__dev_alloc_skb(unsigned int length,
gfp_t gfp_mask)
{
return skb;
}
-@@ -1556,7 +1563,7 @@ static inline int __skb_cow(struct sk_bu
+@@ -1551,7 +1558,7 @@ static inline int __skb_cow(struct sk_bu
delta = headroom - skb_headroom(skb);
if (delta || cloned)
--- a/fs/Kconfig
+++ b/fs/Kconfig
-@@ -180,6 +180,7 @@ source "fs/ubifs/Kconfig"
+@@ -181,6 +181,7 @@ source "fs/logfs/Kconfig"
source "fs/cramfs/Kconfig"
source "fs/squashfs/Kconfig"
source "fs/freevxfs/Kconfig"
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
-@@ -29,7 +29,8 @@ u64 uevent_seqnum;
+@@ -30,7 +30,8 @@ u64 uevent_seqnum;
char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH;
static DEFINE_SPINLOCK(sequence_lock);
#if defined(CONFIG_NET)
#endif
/* the strings here must match the enum in include/linux/kobject.h */
-@@ -42,6 +43,18 @@ static const char *kobject_actions[] = {
+@@ -43,6 +44,18 @@ static const char *kobject_actions[] = {
[KOBJ_OFFLINE] = "offline",
};
/**
* kobject_action_type - translate action string to numeric type
*
-@@ -201,9 +214,7 @@ int kobject_uevent_env(struct kobject *k
+@@ -202,9 +215,7 @@ int kobject_uevent_env(struct kobject *k
kobj->state_remove_uevent_sent = 1;
/* we will send an event, so request a new sequence number */
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
-@@ -1165,7 +1165,7 @@ static unsigned long vma_dump_size(struc
+@@ -1136,7 +1136,7 @@ static unsigned long vma_dump_size(struc
if (FILTER(ELF_HEADERS) &&
vma->vm_pgoff == 0 && (vma->vm_flags & VM_READ)) {
u32 __user *header = (u32 __user *) vma->vm_start;
--- a/include/linux/if_packet.h
+++ b/include/linux/if_packet.h
-@@ -29,6 +29,8 @@
+@@ -29,6 +29,8 @@ struct sockaddr_ll {
/* These ones are invisible by user level */
#define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */
#define PACKET_FASTROUTE 6 /* Fastrouted frame */
/* Packet socket options */
-@@ -47,6 +49,8 @@
+@@ -47,6 +49,8 @@ struct sockaddr_ll {
#define PACKET_TX_RING 13
#define PACKET_LOSS 14
#define PACKET_VNET_HDR 15
unsigned int tp_packets;
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -201,6 +201,7 @@
+@@ -202,6 +202,7 @@ struct packet_sock {
unsigned int tp_reserve;
unsigned int tp_loss:1;
struct packet_type prot_hook ____cacheline_aligned_in_smp;
};
struct packet_skb_cb {
-@@ -335,6 +336,7 @@
+@@ -336,6 +337,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
-@@ -342,6 +344,7 @@
+@@ -343,6 +345,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
/*
* Yank back the headers [hope the device set this
-@@ -354,7 +357,7 @@
+@@ -355,7 +358,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)))
-@@ -530,12 +533,12 @@
+@@ -531,12 +534,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;
-@@ -650,12 +653,12 @@
+@@ -651,12 +654,12 @@ static int tpacket_rcv(struct sk_buff *s
struct timeval tv;
struct timespec ts;
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -1463,6 +1466,7 @@
+@@ -1464,6 +1467,7 @@ static int packet_create(struct net *net
spin_lock_init(&po->bind_lock);
mutex_init(&po->pg_vec_lock);
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -1963,6 +1967,16 @@
+@@ -1968,6 +1972,16 @@ packet_setsockopt(struct socket *sock, i
po->has_vnet_hdr = !!val;
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -2020,6 +2034,13 @@
+@@ -2025,6 +2039,13 @@ static int packet_getsockopt(struct sock
data = &val;
break;
struct tcrypt_result {
struct completion completion;
int err;
-@@ -2359,8 +2361,11 @@ static int alg_find_test(const char *alg
+@@ -2443,8 +2445,11 @@ static int alg_find_test(const char *alg
return -1;
}
int i;
int j;
int rc;
-@@ -2415,5 +2420,8 @@ notest:
+@@ -2499,5 +2504,8 @@ notest:
return 0;
non_fips_alg:
return -EINVAL;
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
-@@ -337,4 +337,8 @@ config LEDS_TRIGGER_DEFAULT_ON
- comment "iptables trigger is under Netfilter config (LED target)"
- depends on LEDS_TRIGGERS
+@@ -354,4 +354,8 @@ endif # LEDS_TRIGGERS
+
+ endif # LEDS_CLASS
+config LEDS_TRIGGER_MORSE
+ tristate "LED Morse Trigger"
endif # NEW_LEDS
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
-@@ -44,3 +44,4 @@ obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) +=
+@@ -46,3 +46,4 @@ obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) +=
obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o
obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
-@@ -341,4 +341,11 @@ config LEDS_TRIGGER_MORSE
+@@ -358,4 +358,11 @@ config LEDS_TRIGGER_MORSE
tristate "LED Morse Trigger"
depends on LEDS_TRIGGERS
endif # NEW_LEDS
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
-@@ -45,3 +45,4 @@ obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) +=
+@@ -47,3 +47,4 @@ obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) +=
obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
-@@ -319,4 +319,20 @@ config INPUT_PCAP
+@@ -340,4 +340,20 @@ config INPUT_PCAP
To compile this driver as a module, choose M here: the
module will be called pcap_keys.
endif
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
-@@ -30,4 +30,5 @@ obj-$(CONFIG_INPUT_WINBOND_CIR) += winb
+@@ -32,4 +32,5 @@ obj-$(CONFIG_INPUT_WINBOND_CIR) += winb
obj-$(CONFIG_INPUT_WISTRON_BTNS) += wistron_btns.o
obj-$(CONFIG_INPUT_WM831X_ON) += wm831x-on.o
obj-$(CONFIG_INPUT_YEALINK) += yealink.o
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
-@@ -1016,6 +1016,14 @@ config CS5535_GPIO
+@@ -1024,6 +1024,14 @@ config CS5535_GPIO
If compiled as a module, it will be called cs5535_gpio.
--- a/fs/Makefile
+++ b/fs/Makefile
-@@ -127,3 +127,5 @@
+@@ -127,3 +127,5 @@ obj-$(CONFIG_BTRFS_FS) += btrfs/
obj-$(CONFIG_GFS2_FS) += gfs2/
obj-$(CONFIG_EXOFS_FS) += exofs/
obj-$(CONFIG_CEPH_FS) += ceph/
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -299,6 +299,50 @@ int phy_ethtool_gset(struct phy_device *
+@@ -298,6 +298,50 @@ int phy_ethtool_gset(struct phy_device *
}
EXPORT_SYMBOL(phy_ethtool_gset);
/**
* phy_mii_ioctl - generic PHY MII ioctl interface
* @phydev: the phy_device struct
-@@ -352,7 +396,7 @@ int phy_mii_ioctl(struct phy_device *phy
+@@ -351,7 +395,7 @@ int phy_mii_ioctl(struct phy_device *phy
}
phy_write(phydev, mii_data->reg_num, val);
if (mii_data->reg_num == MII_BMCR &&
val & BMCR_RESET &&
phydev->drv->config_init) {
-@@ -466,7 +510,7 @@ static void phy_force_reduction(struct p
+@@ -465,7 +509,7 @@ static void phy_force_reduction(struct p
int idx;
idx = phy_find_setting(phydev->speed, phydev->duplex);
idx = phy_find_valid(idx, phydev->supported);
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -491,6 +491,7 @@ void phy_start_machine(struct phy_device
+@@ -492,6 +492,7 @@ void phy_start_machine(struct phy_device
void phy_stop_machine(struct phy_device *phydev);
int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -844,6 +844,7 @@ struct net_device {
+@@ -863,6 +863,7 @@ struct net_device {
void *ax25_ptr; /* AX.25 specific data */
struct wireless_dev *ieee80211_ptr; /* IEEE 802.11 specific data,
assign before registering */
error:
if (cb.msg)
-@@ -728,7 +728,7 @@ swconfig_get_attr(struct sk_buff *skb, s
+@@ -732,7 +732,7 @@ swconfig_get_attr(struct sk_buff *skb, s
goto nla_put_failure;
swconfig_put_dev(dev);
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
-@@ -608,6 +608,15 @@ config RTC_DRV_NUC900
+@@ -618,6 +618,15 @@ config RTC_DRV_NUC900
If you say yes here you get support for the RTC subsystem of the
NUC910/NUC920 used in embedded systems.
config RTC_DRV_OMAP
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
-@@ -72,6 +72,7 @@ obj-$(CONFIG_RTC_DRV_RP5C01) += rtc-rp5c
+@@ -74,6 +74,7 @@ obj-$(CONFIG_RTC_DRV_RP5C01) += rtc-rp5c
obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o
obj-$(CONFIG_RTC_DRV_RS5C348) += rtc-rs5c348.o
obj-$(CONFIG_RTC_DRV_RS5C372) += rtc-rs5c372.o
#define FB_ACCEL_NEOMAGIC_NM2093 92 /* NeoMagic NM2093 */
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
-@@ -76,6 +76,8 @@ header-y += genetlink.h
+@@ -77,6 +77,8 @@ header-y += genetlink.h
header-y += gen_stats.h
header-y += gfs2_ondisk.h
header-y += gigaset_dev.h
static int debug;
/* initially all NULL */
static struct usb_serial *serial_table[SERIAL_TTY_MINORS];
-@@ -914,7 +915,7 @@ int usb_serial_probe(struct usb_interfac
+@@ -901,7 +902,7 @@ int usb_serial_probe(struct usb_interfac
dev_err(&interface->dev, "No free urbs available\n");
goto probe_error;
}
port->bulk_in_size = buffer_size;
port->bulk_in_endpointAddress = endpoint->bEndpointAddress;
port->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL);
-@@ -1356,3 +1357,5 @@ MODULE_LICENSE("GPL");
+@@ -1343,3 +1344,5 @@ MODULE_LICENSE("GPL");
module_param(debug, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug enabled or not");
--- a/init/main.c
+++ b/init/main.c
-@@ -807,7 +807,7 @@ static noinline int init_post(void)
- numa_default_policy();
+@@ -887,7 +887,7 @@ static int __init kernel_init(void * unu
+ /* Open the /dev/console on the rootfs, this should never fail */
if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- printk(KERN_WARNING "Warning: unable to open an initial console.\n");
+ printk(KERN_WARNING "Please be patient, while OpenWrt loads ...\n");
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
-@@ -130,6 +130,9 @@ check-lxdialog := $(srctree)/$(src)/lxd
+@@ -140,6 +140,9 @@ check-lxdialog := $(srctree)/$(src)/lxd
# we really need to do so. (Do not call gcc as part of make mrproper)
HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags)
HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
--- a/drivers/net/wireless/hostap/hostap_ap.c
+++ b/drivers/net/wireless/hostap/hostap_ap.c
-@@ -2335,13 +2335,13 @@ int prism2_ap_get_sta_qual(local_info_t
+@@ -2336,13 +2336,13 @@ int prism2_ap_get_sta_qual(local_info_t
addr[count].sa_family = ARPHRD_ETHER;
memcpy(addr[count].sa_data, sta->addr, ETH_ALEN);
if (sta->last_rx_silence == 0)
qual[count].updated = sta->last_rx_updated;
sta->last_rx_updated = IW_QUAL_DBM;
-@@ -2407,13 +2407,13 @@ int prism2_ap_translate_scan(struct net_
+@@ -2408,13 +2408,13 @@ int prism2_ap_translate_scan(struct net_
memset(&iwe, 0, sizeof(iwe));
iwe.cmd = IWEVQUAL;
if (sta->last_rx_silence == 0)
--- a/drivers/net/wireless/hostap/hostap_info.c
+++ b/drivers/net/wireless/hostap/hostap_info.c
-@@ -432,6 +432,11 @@ static void handle_info_queue_linkstatus
+@@ -433,6 +433,11 @@ static void handle_info_queue_linkstatus
}
/* Get BSSID if we have a valid AP address */
netif_carrier_on(local->ddev);
--- a/drivers/net/wireless/hostap/hostap_ioctl.c
+++ b/drivers/net/wireless/hostap/hostap_ioctl.c
-@@ -1476,23 +1476,20 @@ static int prism2_txpower_hfa386x_to_dBm
+@@ -1477,23 +1477,20 @@ static int prism2_txpower_hfa386x_to_dBm
val = 255;
tmp = val;
return (unsigned char) tmp;
}
-@@ -4056,3 +4053,35 @@ int hostap_ioctl(struct net_device *dev,
+@@ -4057,3 +4054,35 @@ int hostap_ioctl(struct net_device *dev,
return ret;
}
+MODULE_LICENSE("GPL v2");
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
-@@ -116,6 +116,15 @@ config SPI_GPIO
+@@ -133,6 +133,15 @@ config SPI_GPIO
GPIO operations, you should be able to leverage that for better
speed with a custom version of this driver; see the source code.
depends on ARCH_MXC
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
-@@ -19,6 +19,7 @@ obj-$(CONFIG_SPI_BUTTERFLY) += spi_butt
- obj-$(CONFIG_SPI_DESIGNWARE) += dw_spi.o
+@@ -22,6 +22,7 @@ obj-$(CONFIG_SPI_DESIGNWARE) += dw_spi.
obj-$(CONFIG_SPI_DW_PCI) += dw_spi_pci.o
+ obj-$(CONFIG_SPI_DW_MMIO) += dw_spi_mmio.o
obj-$(CONFIG_SPI_GPIO) += spi_gpio.o
+obj-$(CONFIG_SPI_GPIO_OLD) += spi_gpio_old.o
obj-$(CONFIG_SPI_IMX) += spi_imx.o
+module_exit(gpiommc_modexit);
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
-@@ -373,6 +373,31 @@ config MMC_TMIO
+@@ -370,6 +370,31 @@ config MMC_TMIO
This provides support for the SD/MMC cell found in TC6393XB,
T7L66XB and also HTC ASIC3
depends on PCI
--- a/drivers/mmc/host/Makefile
+++ b/drivers/mmc/host/Makefile
-@@ -34,6 +34,7 @@ obj-$(CONFIG_MMC_SDRICOH_CS) += sdricoh_
+@@ -33,6 +33,7 @@ obj-$(CONFIG_MMC_SDRICOH_CS) += sdricoh_
obj-$(CONFIG_MMC_TMIO) += tmio_mmc.o
obj-$(CONFIG_MMC_CB710) += cb710-mmc.o
obj-$(CONFIG_MMC_VIA_SDMMC) += via-sdmmc.o
+be done automatically.
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -2443,6 +2443,11 @@ T: git git://git.kernel.org/pub/scm/linu
+@@ -2540,6 +2540,11 @@ T: git git://git.kernel.org/pub/scm/linu
S: Maintained
F: drivers/media/video/gspca/
--- a/drivers/i2c/busses/i2c-gpio.c
+++ b/drivers/i2c/busses/i2c-gpio.c
-@@ -210,7 +210,7 @@ static int __init i2c_gpio_init(void)
+@@ -211,7 +211,7 @@ static int __init i2c_gpio_init(void)
return ret;
}
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -138,7 +138,7 @@
+@@ -138,7 +138,7 @@ static inline bool dev_xmit_complete(int
*/
#if defined(CONFIG_WLAN) || defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE)
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
-@@ -823,6 +823,8 @@ config CRYPTO_ANSI_CPRNG
- ANSI X9.31 A.2.4. Not this option must be enabled if CRYPTO_FIPS
- is selected
+@@ -833,6 +833,8 @@ config CRYPTO_ANSI_CPRNG
+ ANSI X9.31 A.2.4. Note that this option must be enabled if
+ CRYPTO_FIPS is selected
+source "crypto/ocf/Kconfig"
+
endif # if CRYPTO
--- a/crypto/Makefile
+++ b/crypto/Makefile
-@@ -86,6 +86,11 @@ obj-$(CONFIG_CRYPTO_TEST) += tcrypt.o
+@@ -87,6 +87,11 @@ obj-$(CONFIG_CRYPTO_TEST) += tcrypt.o
obj-$(CONFIG_CRYPTO_GHASH) += ghash-generic.o
#
--- a/lib/Kconfig
+++ b/lib/Kconfig
-@@ -152,16 +152,16 @@ config REED_SOLOMON_DEC16
+@@ -158,16 +158,16 @@ config REED_SOLOMON_DEC16
# Textsearch support is select'ed if needed
#
config TEXTSEARCH
- tristate
+ tristate "Textsearch FSM"
- config HAS_IOMEM
+ config BTREE
boolean
--- a/net/wireless/Kconfig
+++ b/net/wireless/Kconfig
-@@ -141,13 +141,13 @@ config LIB80211
+@@ -142,13 +142,13 @@ config LIB80211
you want this built into your kernel.
config LIB80211_CRYPT_WEP
{
--- a/kernel/exit.c
+++ b/kernel/exit.c
-@@ -508,6 +508,7 @@ struct files_struct *get_files_struct(st
+@@ -514,6 +514,7 @@ struct files_struct *get_files_struct(st
return files;
}
void put_files_struct(struct files_struct *files)
{
-@@ -527,6 +528,7 @@ void put_files_struct(struct files_struc
- free_fdtable(fdt);
+@@ -535,6 +536,7 @@ void put_files_struct(struct files_struc
+ rcu_read_unlock();
}
}
+EXPORT_SYMBOL_GPL(put_files_struct);
{
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -169,6 +169,7 @@ void __put_task_struct(struct task_struc
+@@ -177,6 +177,7 @@ void __put_task_struct(struct task_struc
if (!profile_handoff_task(tsk))
free_task(tsk);
}
* macro override instead of weak attribute alias, to workaround
--- a/kernel/sched.c
+++ b/kernel/sched.c
-@@ -6149,6 +6149,7 @@ int can_nice(const struct task_struct *p
- return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur ||
+@@ -4357,6 +4357,7 @@ int can_nice(const struct task_struct *p
+ return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
capable(CAP_SYS_NICE));
}
+EXPORT_SYMBOL_GPL(can_nice);
--- a/mm/memory.c
+++ b/mm/memory.c
-@@ -1115,6 +1115,7 @@ unsigned long zap_page_range(struct vm_a
+@@ -1203,6 +1203,7 @@ unsigned long zap_page_range(struct vm_a
tlb_finish_mmu(tlb, address, end);
return end;
}
/**
* zap_vma_ptes - remove ptes mapping the vma
-@@ -2501,6 +2502,7 @@ int vmtruncate_range(struct inode *inode
+@@ -2596,6 +2597,7 @@ int vmtruncate_range(struct inode *inode
return 0;
}
void *caller)
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
-@@ -725,6 +725,7 @@ extern void show_free_areas(void);
+@@ -728,6 +728,7 @@ extern void show_free_areas(void);
int shmem_lock(struct file *file, int lock, struct user_struct *user);
struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags);
#ifndef CONFIG_MMU
--- a/kernel/signal.c
+++ b/kernel/signal.c
-@@ -1104,6 +1104,7 @@ struct sighand_struct *lock_task_sighand
+@@ -1121,6 +1121,7 @@ struct sighand_struct *lock_task_sighand
return sighand;
}
--- a/init/main.c
+++ b/init/main.c
-@@ -831,10 +831,7 @@ static noinline int init_post(void)
+@@ -842,10 +842,7 @@ static noinline int init_post(void)
printk(KERN_WARNING "Failed to execute %s. Attempting "
"defaults...\n", execute_command);
}
- run_init_process("/bin/sh");
+ run_init_process("/etc/preinit");
- panic("No init found. Try passing init= option to kernel.");
- }
+ panic("No init found. Try passing init= option to kernel. "
+ "See Linux Documentation/init.txt for guidance.");