kernel: some updates for kernel 2.6.39

* add md5sum for kernel
* add some missing config symbols
* add some ssb patches to make compat-wireless compile

Thank you Peter Wagner for the patch

SVN-Revision: 27009
This commit is contained in:
Hauke Mehrtens 2011-05-25 19:32:00 +00:00
parent 8137e35a5d
commit c69f2d8788
27 changed files with 215 additions and 79 deletions

View file

@ -26,6 +26,9 @@ endif
ifeq ($(LINUX_VERSION),2.6.38.6) ifeq ($(LINUX_VERSION),2.6.38.6)
LINUX_KERNEL_MD5SUM:=e896a3bb3185b8a8af8e2f010f63c02e LINUX_KERNEL_MD5SUM:=e896a3bb3185b8a8af8e2f010f63c02e
endif endif
ifeq ($(LINUX_VERSION),2.6.39)
LINUX_KERNEL_MD5SUM:=1aab7a741abe08d42e8eccf20de61e05
endif
# disable the md5sum check for unknown kernel versions # disable the md5sum check for unknown kernel versions
LINUX_KERNEL_MD5SUM?=x LINUX_KERNEL_MD5SUM?=x

View file

@ -1120,6 +1120,8 @@ CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IR_SONY_DECODER is not set # CONFIG_IR_SONY_DECODER is not set
# CONFIG_IR_STREAMZAP is not set # CONFIG_IR_STREAMZAP is not set
# CONFIG_ISCSI_BOOT_SYSFS is not set # CONFIG_ISCSI_BOOT_SYSFS is not set
# CONFIG_SCSI_CXGB3_ISCSI is not set
# CONFIG_SCSI_CXGB4_ISCSI is not set
# CONFIG_ISCSI_TCP is not set # CONFIG_ISCSI_TCP is not set
CONFIG_ISDN=y CONFIG_ISDN=y
# CONFIG_ISDN_AUDIO is not set # CONFIG_ISDN_AUDIO is not set
@ -1458,6 +1460,7 @@ CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_PHYSMAP is not set # CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_PHYSMAP_COMPAT is not set # CONFIG_MTD_PHYSMAP_COMPAT is not set
# CONFIG_MTD_PLATRAM is not set # CONFIG_MTD_PLATRAM is not set
# CONFIG_MTD_LATCH_ADDR is not set
# CONFIG_MTD_PMC551 is not set # CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_RAM is not set # CONFIG_MTD_RAM is not set
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
@ -1938,6 +1941,7 @@ CONFIG_PROC_SYSCTL=y
# CONFIG_R8169 is not set # CONFIG_R8169 is not set
# CONFIG_R8187SE is not set # CONFIG_R8187SE is not set
# CONFIG_R8712U is not set # CONFIG_R8712U is not set
# CONFIG_RTS_PSTOR is not set
# CONFIG_RADIO_ADAPTERS is not set # CONFIG_RADIO_ADAPTERS is not set
# CONFIG_RADIO_AZTECH is not set # CONFIG_RADIO_AZTECH is not set
# CONFIG_RADIO_CADET is not set # CONFIG_RADIO_CADET is not set
@ -2104,6 +2108,7 @@ CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_SCSI_ARCMSR is not set # CONFIG_SCSI_ARCMSR is not set
# CONFIG_SCSI_BFA_FC is not set # CONFIG_SCSI_BFA_FC is not set
# CONFIG_SCSI_BNX2_ISCSI is not set # CONFIG_SCSI_BNX2_ISCSI is not set
# CONFIG_SCSI_BNX2X_FCOE is not set
# CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DC390T is not set
@ -2869,8 +2874,10 @@ CONFIG_USB_SERIAL_SAFE_PADDED=y
# CONFIG_USB_STORAGE is not set # CONFIG_USB_STORAGE is not set
CONFIG_USB_STORAGE_ALAUDA=y CONFIG_USB_STORAGE_ALAUDA=y
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
CONFIG_USB_STORAGE_DATAFAB=y CONFIG_USB_STORAGE_DATAFAB=y
# CONFIG_USB_STORAGE_DEBUG is not set # CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_REALTEK is not set
CONFIG_USB_STORAGE_FREECOM=y CONFIG_USB_STORAGE_FREECOM=y
# CONFIG_USB_STORAGE_ISD200 is not set # CONFIG_USB_STORAGE_ISD200 is not set
CONFIG_USB_STORAGE_JUMPSHOT=y CONFIG_USB_STORAGE_JUMPSHOT=y

View file

@ -0,0 +1,77 @@
--- a/drivers/ssb/driver_pcicore.c
+++ b/drivers/ssb/driver_pcicore.c
@@ -476,30 +476,6 @@ static void ssb_pcie_mdio_write(struct s
pcicore_write32(pc, mdio_control, 0);
}
-static void ssb_broadcast_value(struct ssb_device *dev,
- u32 address, u32 data)
-{
- /* This is used for both, PCI and ChipCommon core, so be careful. */
- BUILD_BUG_ON(SSB_PCICORE_BCAST_ADDR != SSB_CHIPCO_BCAST_ADDR);
- BUILD_BUG_ON(SSB_PCICORE_BCAST_DATA != SSB_CHIPCO_BCAST_DATA);
-
- ssb_write32(dev, SSB_PCICORE_BCAST_ADDR, address);
- ssb_read32(dev, SSB_PCICORE_BCAST_ADDR); /* flush */
- ssb_write32(dev, SSB_PCICORE_BCAST_DATA, data);
- ssb_read32(dev, SSB_PCICORE_BCAST_DATA); /* flush */
-}
-
-static void ssb_commit_settings(struct ssb_bus *bus)
-{
- struct ssb_device *dev;
-
- dev = bus->chipco.dev ? bus->chipco.dev : bus->pcicore.dev;
- if (WARN_ON(!dev))
- return;
- /* This forces an update of the cached registers. */
- ssb_broadcast_value(dev, 0xFD8, 0);
-}
-
int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc,
struct ssb_device *dev)
{
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -1330,6 +1330,31 @@ error:
}
EXPORT_SYMBOL(ssb_bus_powerup);
+static void ssb_broadcast_value(struct ssb_device *dev,
+ u32 address, u32 data)
+{
+ /* This is used for both, PCI and ChipCommon core, so be careful. */
+ BUILD_BUG_ON(SSB_PCICORE_BCAST_ADDR != SSB_CHIPCO_BCAST_ADDR);
+ BUILD_BUG_ON(SSB_PCICORE_BCAST_DATA != SSB_CHIPCO_BCAST_DATA);
+
+ ssb_write32(dev, SSB_PCICORE_BCAST_ADDR, address);
+ ssb_read32(dev, SSB_PCICORE_BCAST_ADDR); /* flush */
+ ssb_write32(dev, SSB_PCICORE_BCAST_DATA, data);
+ ssb_read32(dev, SSB_PCICORE_BCAST_DATA); /* flush */
+}
+
+void ssb_commit_settings(struct ssb_bus *bus)
+{
+ struct ssb_device *dev;
+
+ dev = bus->chipco.dev ? bus->chipco.dev : bus->pcicore.dev;
+ if (WARN_ON(!dev))
+ return;
+ /* This forces an update of the cached registers. */
+ ssb_broadcast_value(dev, 0xFD8, 0);
+}
+EXPORT_SYMBOL(ssb_commit_settings);
+
u32 ssb_admatch_base(u32 adm)
{
u32 base = 0;
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -518,6 +518,7 @@ extern int ssb_bus_may_powerdown(struct
* Otherwise static always-on powercontrol will be used. */
extern int ssb_bus_powerup(struct ssb_bus *bus, bool dynamic_pctl);
+extern void ssb_commit_settings(struct ssb_bus *bus);
/* Various helper functions */
extern u32 ssb_admatch_base(u32 adm);

View file

@ -0,0 +1,49 @@
From 1159024d4c0aafecaa0c6635c55153b4b39cc1c8 Mon Sep 17 00:00:00 2001
From: "John W. Linville" <linville@tuxdriver.com>
Date: Fri, 13 May 2011 09:23:47 -0400
Subject: [PATCH] ssb: fix pcicore build breakage
drivers/ssb/main.c:1336: error: 'SSB_PCICORE_BCAST_ADDR' undeclared (first use in this function)
drivers/ssb/main.c:1337: error: 'SSB_PCICORE_BCAST_DATA' undeclared (first use in this function)
drivers/ssb/main.c:1349: error: 'struct ssb_pcicore' has no member named 'dev'
Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/ssb/main.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -1333,21 +1333,27 @@ EXPORT_SYMBOL(ssb_bus_powerup);
static void ssb_broadcast_value(struct ssb_device *dev,
u32 address, u32 data)
{
+#ifdef CONFIG_SSB_DRIVER_PCICORE
/* This is used for both, PCI and ChipCommon core, so be careful. */
BUILD_BUG_ON(SSB_PCICORE_BCAST_ADDR != SSB_CHIPCO_BCAST_ADDR);
BUILD_BUG_ON(SSB_PCICORE_BCAST_DATA != SSB_CHIPCO_BCAST_DATA);
+#endif
- ssb_write32(dev, SSB_PCICORE_BCAST_ADDR, address);
- ssb_read32(dev, SSB_PCICORE_BCAST_ADDR); /* flush */
- ssb_write32(dev, SSB_PCICORE_BCAST_DATA, data);
- ssb_read32(dev, SSB_PCICORE_BCAST_DATA); /* flush */
+ ssb_write32(dev, SSB_CHIPCO_BCAST_ADDR, address);
+ ssb_read32(dev, SSB_CHIPCO_BCAST_ADDR); /* flush */
+ ssb_write32(dev, SSB_CHIPCO_BCAST_DATA, data);
+ ssb_read32(dev, SSB_CHIPCO_BCAST_DATA); /* flush */
}
void ssb_commit_settings(struct ssb_bus *bus)
{
struct ssb_device *dev;
+#ifdef CONFIG_SSB_DRIVER_PCICORE
dev = bus->chipco.dev ? bus->chipco.dev : bus->pcicore.dev;
+#else
+ dev = bus->chipco.dev;
+#endif
if (WARN_ON(!dev))
return;
/* This forces an update of the cached registers. */

View file

@ -1,6 +1,6 @@
--- a/include/linux/fs.h --- a/include/linux/fs.h
+++ b/include/linux/fs.h +++ b/include/linux/fs.h
@@ -1595,6 +1595,7 @@ struct inode_operations { @@ -1594,6 +1594,7 @@ struct inode_operations {
void (*truncate_range)(struct inode *, loff_t, loff_t); void (*truncate_range)(struct inode *, loff_t, loff_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
u64 len); u64 len);
@ -8,7 +8,7 @@
} ____cacheline_aligned; } ____cacheline_aligned;
struct seq_file; struct seq_file;
@@ -1989,6 +1990,7 @@ extern long do_sys_open(int dfd, const c @@ -1988,6 +1989,7 @@ extern long do_sys_open(int dfd, const c
extern struct file *filp_open(const char *, int, int); extern struct file *filp_open(const char *, int, int);
extern struct file *file_open_root(struct dentry *, struct vfsmount *, extern struct file *file_open_root(struct dentry *, struct vfsmount *,
const char *, int); const char *, int);
@ -184,7 +184,7 @@
struct pipe_inode_info *opipe, struct pipe_inode_info *opipe,
--- a/fs/namespace.c --- a/fs/namespace.c
+++ b/fs/namespace.c +++ b/fs/namespace.c
@@ -1510,6 +1510,23 @@ void drop_collected_mounts(struct vfsmou @@ -1494,6 +1494,23 @@ void drop_collected_mounts(struct vfsmou
release_mounts(&umount_list); release_mounts(&umount_list);
} }

View file

@ -1,6 +1,6 @@
--- a/scripts/Makefile.lib --- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib +++ b/scripts/Makefile.lib
@@ -254,7 +254,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) @@ -254,7 +254,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^)
quiet_cmd_lzma = LZMA $@ quiet_cmd_lzma = LZMA $@
cmd_lzma = (cat $(filter-out FORCE,$^) | \ cmd_lzma = (cat $(filter-out FORCE,$^) | \

View file

@ -18,7 +18,7 @@ Acked-by: Rob Landley <rob@landley.net>
config CEVT_BCM1480 config CEVT_BCM1480
bool bool
@@ -2252,6 +2249,18 @@ config USE_OF @@ -2247,6 +2244,18 @@ config USE_OF
help help
Include support for flattened device tree machine descriptions. Include support for flattened device tree machine descriptions.

View file

@ -1,6 +1,6 @@
--- a/arch/mips/include/asm/string.h --- a/arch/mips/include/asm/string.h
+++ b/arch/mips/include/asm/string.h +++ b/arch/mips/include/asm/string.h
@@ -133,11 +133,44 @@ strncmp(__const__ char *__cs, __const__ @@ -133,11 +133,44 @@ strncmp(__const__ char *__cs, __const__
#define __HAVE_ARCH_MEMSET #define __HAVE_ARCH_MEMSET
extern void *memset(void *__s, int __c, size_t __count); extern void *memset(void *__s, int __c, size_t __count);

View file

@ -193,7 +193,7 @@
/* /*
* This function, given a master MTD object and a partition table, creates * This function, given a master MTD object and a partition table, creates
* and registers slave MTD objects which are bound to the master according to * and registers slave MTD objects which are bound to the master according to
@@ -652,6 +801,9 @@ int add_mtd_partitions(struct mtd_info * @@ -652,6 +803,9 @@ int add_mtd_partitions(struct mtd_info *
struct mtd_part *slave; struct mtd_part *slave;
uint64_t cur_offset = 0; uint64_t cur_offset = 0;
int i; int i;
@ -203,7 +203,7 @@
printk(KERN_NOTICE "Creating %d MTD partitions on \"%s\":\n", nbparts, master->name); printk(KERN_NOTICE "Creating %d MTD partitions on \"%s\":\n", nbparts, master->name);
@@ -666,6 +818,21 @@ int add_mtd_partitions(struct mtd_info * @@ -666,6 +820,21 @@ int add_mtd_partitions(struct mtd_info *
add_mtd_device(&slave->mtd); add_mtd_device(&slave->mtd);
@ -225,7 +225,7 @@
cur_offset = slave->offset + slave->mtd.size; cur_offset = slave->offset + slave->mtd.size;
} }
@@ -673,6 +840,32 @@ int add_mtd_partitions(struct mtd_info * @@ -673,6 +842,32 @@ int add_mtd_partitions(struct mtd_info *
} }
EXPORT_SYMBOL(add_mtd_partitions); EXPORT_SYMBOL(add_mtd_partitions);
@ -260,7 +260,7 @@
--- a/drivers/mtd/mtdchar.c --- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c
@@ -841,6 +841,13 @@ static int mtd_ioctl(struct file *file, @@ -841,6 +841,13 @@ static int mtd_ioctl(struct file *file,
file->f_pos = 0; file->f_pos = 0;
break; break;
} }

View file

@ -1,6 +1,6 @@
--- a/drivers/mtd/chips/cfi_cmdset_0002.c --- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -463,9 +463,9 @@ struct mtd_info *cfi_cmdset_0002(struct @@ -463,9 +463,9 @@ struct mtd_info *cfi_cmdset_0002(struct
/* /*
* Valid primary extension versions are: 1.0, 1.1, 1.2, 1.3, 1.4 * Valid primary extension versions are: 1.0, 1.1, 1.2, 1.3, 1.4

View file

@ -601,7 +601,7 @@
dev->checkpointBlockList[i] = -1; dev->checkpointBlockList[i] = -1;
} }
@@ -191,18 +185,17 @@ int yaffs_GetCheckpointSum(yaffs_Device @@ -191,18 +185,17 @@ int yaffs_GetCheckpointSum(yaffs_Device
static int yaffs_CheckpointFlushBuffer(yaffs_Device *dev) static int yaffs_CheckpointFlushBuffer(yaffs_Device *dev)
{ {
@ -926,7 +926,7 @@
{ {
unsigned char cDelta; /* column parity delta */ unsigned char cDelta; /* column parity delta */
unsigned lDelta; /* line parity delta */ unsigned lDelta; /* line parity delta */
@@ -294,8 +292,7 @@ int yaffs_ECCCorrectOther(unsigned char @@ -294,8 +292,7 @@ int yaffs_ECCCorrectOther(unsigned char
return 0; /* no error */ return 0; /* no error */
if (lDelta == ~lDeltaPrime && if (lDelta == ~lDeltaPrime &&
@ -936,7 +936,7 @@
/* Single bit (recoverable) error in data */ /* Single bit (recoverable) error in data */
bit = 0; bit = 0;
@@ -307,7 +304,7 @@ int yaffs_ECCCorrectOther(unsigned char @@ -307,7 +304,7 @@ int yaffs_ECCCorrectOther(unsigned char
if (cDelta & 0x02) if (cDelta & 0x02)
bit |= 0x01; bit |= 0x01;
@ -945,7 +945,7 @@
return -1; return -1;
data[lDelta] ^= (1 << bit); data[lDelta] ^= (1 << bit);
@@ -316,7 +313,7 @@ int yaffs_ECCCorrectOther(unsigned char @@ -316,7 +313,7 @@ int yaffs_ECCCorrectOther(unsigned char
} }
if ((yaffs_CountBits32(lDelta) + yaffs_CountBits32(lDeltaPrime) + if ((yaffs_CountBits32(lDelta) + yaffs_CountBits32(lDeltaPrime) +
@ -954,7 +954,7 @@
/* Reccoverable error in ecc */ /* Reccoverable error in ecc */
*read_ecc = *test_ecc; *read_ecc = *test_ecc;
@@ -326,6 +323,4 @@ int yaffs_ECCCorrectOther(unsigned char @@ -326,6 +323,4 @@ int yaffs_ECCCorrectOther(unsigned char
/* Unrecoverable error */ /* Unrecoverable error */
return -1; return -1;
@ -1398,7 +1398,7 @@
{ {
unsigned char *alias; unsigned char *alias;
int ret; int ret;
@@ -329,7 +395,7 @@ static int yaffs_readlink(struct dentry @@ -329,7 +395,7 @@ static int yaffs_readlink(struct dentry
return ret; return ret;
} }
@ -1560,7 +1560,7 @@
static int yaffs_file_flush(struct file *file, fl_owner_t id) static int yaffs_file_flush(struct file *file, fl_owner_t id)
#else #else
static int yaffs_file_flush(struct file *file) static int yaffs_file_flush(struct file *file)
@@ -513,8 +579,8 @@ static int yaffs_file_flush(struct file @@ -513,8 +579,8 @@ static int yaffs_file_flush(struct file
yaffs_Device *dev = obj->myDev; yaffs_Device *dev = obj->myDev;
T(YAFFS_TRACE_OS, T(YAFFS_TRACE_OS,
@ -1571,7 +1571,7 @@
yaffs_GrossLock(dev); yaffs_GrossLock(dev);
@@ -535,15 +601,15 @@ static int yaffs_readpage_nolock(struct @@ -535,15 +601,15 @@ static int yaffs_readpage_nolock(struct
yaffs_Device *dev; yaffs_Device *dev;
@ -1591,7 +1591,7 @@
BUG_ON(!PageLocked(pg)); BUG_ON(!PageLocked(pg));
#else #else
if (!PageLocked(pg)) if (!PageLocked(pg))
@@ -555,9 +621,9 @@ static int yaffs_readpage_nolock(struct @@ -555,9 +621,9 @@ static int yaffs_readpage_nolock(struct
yaffs_GrossLock(dev); yaffs_GrossLock(dev);
@ -1604,7 +1604,7 @@
yaffs_GrossUnlock(dev); yaffs_GrossUnlock(dev);
@@ -575,7 +641,7 @@ static int yaffs_readpage_nolock(struct @@ -575,7 +641,7 @@ static int yaffs_readpage_nolock(struct
flush_dcache_page(pg); flush_dcache_page(pg);
kunmap(pg); kunmap(pg);
@ -3193,7 +3193,7 @@
if (n < step) { if (n < step) {
n++; n++;
continue; continue;
@@ -2119,7 +2356,7 @@ static int yaffs_proc_write(struct file @@ -2119,7 +2356,7 @@ static int yaffs_proc_write(struct file
char *end; char *end;
char *mask_name; char *mask_name;
const char *x; const char *x;
@ -3202,7 +3202,7 @@
int i; int i;
int done = 0; int done = 0;
int add, len = 0; int add, len = 0;
@@ -2129,9 +2366,8 @@ static int yaffs_proc_write(struct file @@ -2129,9 +2366,8 @@ static int yaffs_proc_write(struct file
while (!done && (pos < count)) { while (!done && (pos < count)) {
done = 1; done = 1;
@ -3213,7 +3213,7 @@
switch (buf[pos]) { switch (buf[pos]) {
case '+': case '+':
@@ -2148,20 +2384,21 @@ static int yaffs_proc_write(struct file @@ -2148,20 +2384,21 @@ static int yaffs_proc_write(struct file
mask_name = NULL; mask_name = NULL;
mask_bitfield = simple_strtoul(buf + pos, &end, 0); mask_bitfield = simple_strtoul(buf + pos, &end, 0);
@ -3240,7 +3240,7 @@
mask_name = mask_flags[i].mask_name; mask_name = mask_flags[i].mask_name;
mask_bitfield = mask_flags[i].mask_bitfield; mask_bitfield = mask_flags[i].mask_bitfield;
done = 0; done = 0;
@@ -2172,7 +2409,7 @@ static int yaffs_proc_write(struct file @@ -2172,7 +2409,7 @@ static int yaffs_proc_write(struct file
if (mask_name != NULL) { if (mask_name != NULL) {
done = 0; done = 0;
@ -3249,7 +3249,7 @@
case '-': case '-':
rg &= ~mask_bitfield; rg &= ~mask_bitfield;
break; break;
@@ -2191,13 +2428,13 @@ static int yaffs_proc_write(struct file @@ -2191,13 +2428,13 @@ static int yaffs_proc_write(struct file
yaffs_traceMask = rg | YAFFS_TRACE_ALWAYS; yaffs_traceMask = rg | YAFFS_TRACE_ALWAYS;
@ -5691,7 +5691,7 @@
{ {
/* Get the real object in case we were fed a hard link as an equivalent object */ /* Get the real object in case we were fed a hard link as an equivalent object */
equivalentObject = yaffs_GetEquivalentObject(equivalentObject); equivalentObject = yaffs_GetEquivalentObject(equivalentObject);
@@ -2363,33 +2396,31 @@ yaffs_Object *yaffs_Link(yaffs_Object * @@ -2363,33 +2396,31 @@ yaffs_Object *yaffs_Link(yaffs_Object *
} }
@ -7622,7 +7622,7 @@
int nToCopy; int nToCopy;
int n = nBytes; int n = nBytes;
int nDone = 0; int nDone = 0;
@@ -4600,27 +4665,26 @@ int yaffs_ReadDataFromFile(yaffs_Object @@ -4600,27 +4665,26 @@ int yaffs_ReadDataFromFile(yaffs_Object
dev = in->myDev; dev = in->myDev;
while (n > 0) { while (n > 0) {
@ -7657,7 +7657,7 @@
if (dev->nShortOpCaches > 0) { if (dev->nShortOpCaches > 0) {
/* If we can't find the data in the cache, then load it up. */ /* If we can't find the data in the cache, then load it up. */
@@ -4641,14 +4705,9 @@ int yaffs_ReadDataFromFile(yaffs_Object @@ -4641,14 +4705,9 @@ int yaffs_ReadDataFromFile(yaffs_Object
cache->locked = 1; cache->locked = 1;
@ -7673,7 +7673,7 @@
cache->locked = 0; cache->locked = 0;
} else { } else {
/* Read into the local buffer then copy..*/ /* Read into the local buffer then copy..*/
@@ -4657,41 +4716,19 @@ int yaffs_ReadDataFromFile(yaffs_Object @@ -4657,41 +4716,19 @@ int yaffs_ReadDataFromFile(yaffs_Object
yaffs_GetTempBuffer(dev, __LINE__); yaffs_GetTempBuffer(dev, __LINE__);
yaffs_ReadChunkDataFromObject(in, chunk, yaffs_ReadChunkDataFromObject(in, chunk,
localBuffer); localBuffer);
@ -7718,7 +7718,7 @@
} }
n -= nToCopy; n -= nToCopy;
@@ -4704,28 +4741,37 @@ int yaffs_ReadDataFromFile(yaffs_Object @@ -4704,28 +4741,37 @@ int yaffs_ReadDataFromFile(yaffs_Object
return nDone; return nDone;
} }
@ -7923,7 +7923,7 @@
int newFullChunks; int newFullChunks;
yaffs_Device *dev = in->myDev; yaffs_Device *dev = in->myDev;
@@ -4955,13 +4981,11 @@ int yaffs_ResizeFile(yaffs_Object * in, @@ -4955,13 +4981,11 @@ int yaffs_ResizeFile(yaffs_Object * in,
yaffs_CheckGarbageCollection(dev); yaffs_CheckGarbageCollection(dev);
@ -7941,7 +7941,7 @@
if (newSize < oldFileSize) { if (newSize < oldFileSize) {
@@ -4994,21 +5018,20 @@ int yaffs_ResizeFile(yaffs_Object * in, @@ -4994,21 +5018,20 @@ int yaffs_ResizeFile(yaffs_Object * in,
} }
@ -7968,7 +7968,7 @@
{ {
obj = yaffs_GetEquivalentObject(obj); obj = yaffs_GetEquivalentObject(obj);
@@ -5024,7 +5047,7 @@ loff_t yaffs_GetFileSize(yaffs_Object * @@ -5024,7 +5047,7 @@ loff_t yaffs_GetFileSize(yaffs_Object *
@ -9789,7 +9789,7 @@
{ {
int init_failed = 0; int init_failed = 0;
unsigned x; unsigned x;
@@ -7040,6 +7126,8 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7040,6 +7126,8 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->chunkOffset = 0; dev->chunkOffset = 0;
dev->nFreeChunks = 0; dev->nFreeChunks = 0;
@ -9798,7 +9798,7 @@
if (dev->startBlock == 0) { if (dev->startBlock == 0) {
dev->internalStartBlock = dev->startBlock + 1; dev->internalStartBlock = dev->startBlock + 1;
dev->internalEndBlock = dev->endBlock + 1; dev->internalEndBlock = dev->endBlock + 1;
@@ -7049,18 +7137,18 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7049,18 +7137,18 @@ int yaffs_GutsInitialise(yaffs_Device *
/* Check geometry parameters. */ /* Check geometry parameters. */
@ -9823,7 +9823,7 @@
return YAFFS_FAIL; return YAFFS_FAIL;
} }
@@ -7070,6 +7158,12 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7070,6 +7158,12 @@ int yaffs_GutsInitialise(yaffs_Device *
return YAFFS_FAIL; return YAFFS_FAIL;
} }
@ -9836,7 +9836,7 @@
/* Got the right mix of functions? */ /* Got the right mix of functions? */
if (!yaffs_CheckDevFunctions(dev)) { if (!yaffs_CheckDevFunctions(dev)) {
/* Function missing */ /* Function missing */
@@ -7097,31 +7191,18 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7097,31 +7191,18 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->isMounted = 1; dev->isMounted = 1;
@ -9875,7 +9875,7 @@
/* /*
* Calculate chunkGroupBits. * Calculate chunkGroupBits.
@@ -7133,16 +7214,15 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7133,16 +7214,15 @@ int yaffs_GutsInitialise(yaffs_Device *
bits = ShiftsGE(x); bits = ShiftsGE(x);
/* Set up tnode width if wide tnodes are enabled. */ /* Set up tnode width if wide tnodes are enabled. */
@ -9896,7 +9896,7 @@
dev->tnodeWidth = 16; dev->tnodeWidth = 16;
dev->tnodeMask = (1<<dev->tnodeWidth)-1; dev->tnodeMask = (1<<dev->tnodeWidth)-1;
@@ -7193,7 +7273,7 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7193,7 +7273,7 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->hasPendingPrioritisedGCs = 1; /* Assume the worst for now, will get fixed on first GC */ dev->hasPendingPrioritisedGCs = 1; /* Assume the worst for now, will get fixed on first GC */
/* Initialise temporary buffers and caches. */ /* Initialise temporary buffers and caches. */
@ -9905,7 +9905,7 @@
init_failed = 1; init_failed = 1;
dev->srCache = NULL; dev->srCache = NULL;
@@ -7203,25 +7283,26 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7203,25 +7283,26 @@ int yaffs_GutsInitialise(yaffs_Device *
if (!init_failed && if (!init_failed &&
dev->nShortOpCaches > 0) { dev->nShortOpCaches > 0) {
int i; int i;
@ -9940,7 +9940,7 @@
init_failed = 1; init_failed = 1;
dev->srLastUse = 0; dev->srLastUse = 0;
@@ -7229,29 +7310,30 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7229,29 +7310,30 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->cacheHits = 0; dev->cacheHits = 0;
@ -9979,7 +9979,7 @@
T(YAFFS_TRACE_ALWAYS, T(YAFFS_TRACE_ALWAYS,
(TSTR("yaffs: restored from checkpoint" TENDSTR))); (TSTR("yaffs: restored from checkpoint" TENDSTR)));
} else { } else {
@@ -7273,24 +7355,25 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7273,24 +7355,25 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->nBackgroundDeletions = 0; dev->nBackgroundDeletions = 0;
dev->oldestDirtySequence = 0; dev->oldestDirtySequence = 0;
@ -10011,7 +10011,7 @@
/* Clean up the mess */ /* Clean up the mess */
T(YAFFS_TRACE_TRACING, T(YAFFS_TRACE_TRACING,
(TSTR("yaffs: yaffs_GutsInitialise() aborted.\n" TENDSTR))); (TSTR("yaffs: yaffs_GutsInitialise() aborted.\n" TENDSTR)));
@@ -7318,7 +7401,7 @@ int yaffs_GutsInitialise(yaffs_Device * @@ -7318,7 +7401,7 @@ int yaffs_GutsInitialise(yaffs_Device *
} }
@ -10710,7 +10710,7 @@
{ {
if (etags) { if (etags) {
memset(etags, 0, sizeof(*etags)); memset(etags, 0, sizeof(*etags));
@@ -169,9 +169,9 @@ static int rettags(yaffs_ExtendedTags * @@ -169,9 +169,9 @@ static int rettags(yaffs_ExtendedTags *
* Returns YAFFS_OK or YAFFS_FAIL. * Returns YAFFS_OK or YAFFS_FAIL.
*/ */
int nandmtd1_ReadChunkWithTagsFromNAND(yaffs_Device *dev, int nandmtd1_ReadChunkWithTagsFromNAND(yaffs_Device *dev,
@ -11038,14 +11038,14 @@
+ yaffs_UnpackTags2(tags, &pt); + yaffs_UnpackTags2(tags, &pt);
+ } + }
+ } + }
+
- if(tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
- tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
+ if (localData) + if (localData)
+ yaffs_ReleaseTempBuffer(dev, data, __LINE__); + yaffs_ReleaseTempBuffer(dev, data, __LINE__);
- if(tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
+ if (tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR) + if (tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
+ tags->eccResult = YAFFS_ECC_RESULT_UNFIXED; tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
-
if (retval == 0) if (retval == 0)
return YAFFS_OK; return YAFFS_OK;
else else

View file

@ -316,7 +316,7 @@
chunk/page state. This byte is zeroed when the page is discarded. chunk/page state. This byte is zeroed when the page is discarded.
Choose this option if you have existing on-NAND data in this format Choose this option if you have existing on-NAND data in this format
that you need to continue to support. New data written also uses the that you need to continue to support. New data written also uses the
@@ -57,7 +78,7 @@ adjusted to use the older-style format. @@ -57,7 +78,7 @@ adjusted to use the older-style format.
MTD versions in yaffs_mtdif1.c. MTD versions in yaffs_mtdif1.c.
*/ */
/* Default: Not selected */ /* Default: Not selected */
@ -1614,7 +1614,7 @@
yaffs_ECCOther *read_ecc, yaffs_ECCOther *read_ecc,
const yaffs_ECCOther *test_ecc) const yaffs_ECCOther *test_ecc)
{ {
@@ -304,7 +301,7 @@ int yaffs_ECCCorrectOther(unsigned char @@ -304,7 +301,7 @@ int yaffs_ECCCorrectOther(unsigned char
if (cDelta & 0x02) if (cDelta & 0x02)
bit |= 0x01; bit |= 0x01;
@ -1623,7 +1623,7 @@
return -1; return -1;
data[lDelta] ^= (1 << bit); data[lDelta] ^= (1 << bit);
@@ -312,8 +309,8 @@ int yaffs_ECCCorrectOther(unsigned char @@ -312,8 +309,8 @@ int yaffs_ECCCorrectOther(unsigned char
return 1; /* corrected */ return 1; /* corrected */
} }

View file

@ -124,7 +124,7 @@
/* LzmaDecode /* LzmaDecode
--- a/lib/lzma/LzmaDec.c --- a/lib/lzma/LzmaDec.c
+++ b/lib/lzma/LzmaDec.c +++ b/lib/lzma/LzmaDec.c
@@ -682,7 +682,7 @@ static void LzmaDec_InitRc(CLzmaDec *p, @@ -682,7 +682,7 @@ static void LzmaDec_InitRc(CLzmaDec *p,
p->needFlush = 0; p->needFlush = 0;
} }
@ -194,7 +194,7 @@
{ {
CLzmaProps propNew; CLzmaProps propNew;
RINOK(LzmaProps_Decode(&propNew, props, propsSize)); RINOK(LzmaProps_Decode(&propNew, props, propsSize));
@@ -944,7 +944,7 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p, @@ -944,7 +944,7 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p,
return SZ_OK; return SZ_OK;
} }
@ -375,7 +375,7 @@
void MatchFinder_Construct(CMatchFinder *p); void MatchFinder_Construct(CMatchFinder *p);
/* Conditions: /* Conditions:
@@ -70,12 +65,6 @@ int MatchFinder_Create(CMatchFinder *p, @@ -70,12 +65,6 @@ int MatchFinder_Create(CMatchFinder *p,
UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter, UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter,
ISzAlloc *alloc); ISzAlloc *alloc);
void MatchFinder_Free(CMatchFinder *p, ISzAlloc *alloc); void MatchFinder_Free(CMatchFinder *p, ISzAlloc *alloc);

View file

@ -30,7 +30,7 @@
depends on NETFILTER_ADVANCED depends on NETFILTER_ADVANCED
--- a/net/netfilter/Makefile --- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile +++ b/net/netfilter/Makefile
@@ -102,6 +102,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT) @@ -102,6 +102,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT)
obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o
obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o

View file

@ -1,8 +1,8 @@
--- a/drivers/net/phy/Kconfig --- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig
@@ -102,6 +102,9 @@ config ADM6996_PHY @@ -104,6 +104,9 @@ config ADM6996_PHY
---help--- Currently supports the ADM6996FC and ADM6996M switches.
Currently supports the ADM6996F switch Support for FC is very limited.
+config MVSWITCH_PHY +config MVSWITCH_PHY
+ tristate "Driver for Marvell 88E6060 switches" + tristate "Driver for Marvell 88E6060 switches"

View file

@ -1,6 +1,6 @@
--- a/drivers/net/phy/Kconfig --- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig
@@ -105,6 +105,10 @@ config ADM6996_PHY @@ -107,6 +107,10 @@ config ADM6996_PHY
config MVSWITCH_PHY config MVSWITCH_PHY
tristate "Driver for Marvell 88E6060 switches" tristate "Driver for Marvell 88E6060 switches"

View file

@ -1,6 +1,6 @@
--- a/drivers/net/phy/Kconfig --- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig
@@ -109,6 +109,10 @@ config IP17XX_PHY @@ -111,6 +111,10 @@ config IP17XX_PHY
tristate "Driver for IC+ IP17xx switches" tristate "Driver for IC+ IP17xx switches"
select SWCONFIG select SWCONFIG

View file

@ -1,6 +1,6 @@
--- a/drivers/net/phy/Kconfig --- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig
@@ -113,6 +113,10 @@ config AR8216_PHY @@ -115,6 +115,10 @@ config AR8216_PHY
tristate "Driver for Atheros AR8216 switches" tristate "Driver for Atheros AR8216 switches"
select SWCONFIG select SWCONFIG

View file

@ -1,6 +1,6 @@
--- a/drivers/net/phy/Kconfig --- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig
@@ -155,4 +155,29 @@ config MDIO_OCTEON @@ -157,4 +157,29 @@ config MDIO_OCTEON
If in doubt, say Y. If in doubt, say Y.

View file

@ -1,6 +1,6 @@
--- a/drivers/net/wireless/hostap/hostap_ap.c --- a/drivers/net/wireless/hostap/hostap_ap.c
+++ b/drivers/net/wireless/hostap/hostap_ap.c +++ b/drivers/net/wireless/hostap/hostap_ap.c
@@ -2338,13 +2338,13 @@ int prism2_ap_get_sta_qual(local_info_t @@ -2338,13 +2338,13 @@ int prism2_ap_get_sta_qual(local_info_t
addr[count].sa_family = ARPHRD_ETHER; addr[count].sa_family = ARPHRD_ETHER;
memcpy(addr[count].sa_data, sta->addr, ETH_ALEN); memcpy(addr[count].sa_data, sta->addr, ETH_ALEN);
if (sta->last_rx_silence == 0) if (sta->last_rx_silence == 0)

View file

@ -1,7 +1,7 @@
--- a/drivers/usb/host/pci-quirks.c --- a/drivers/usb/host/pci-quirks.c
+++ b/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c
@@ -392,6 +392,8 @@ reset_needed: @@ -423,6 +423,8 @@ reset_needed:
} }
EXPORT_SYMBOL_GPL(uhci_check_and_reset_hc); EXPORT_SYMBOL_GPL(uhci_check_and_reset_hc);
@ -10,7 +10,7 @@
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask) static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
{ {
u16 cmd; u16 cmd;
@@ -736,3 +738,5 @@ static void __devinit quirk_usb_early_ha @@ -767,3 +769,5 @@ static void __devinit quirk_usb_early_ha
quirk_usb_handoff_xhci(pdev); quirk_usb_handoff_xhci(pdev);
} }
DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, quirk_usb_early_handoff); DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, quirk_usb_early_handoff);

View file

@ -11,7 +11,7 @@
endif # NEW_LEDS endif # NEW_LEDS
--- a/drivers/leds/Makefile --- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile +++ b/drivers/leds/Makefile
@@ -53,3 +53,4 @@ obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += @@ -53,3 +53,4 @@ obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) +=
obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o
obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o

View file

@ -14,7 +14,7 @@
endif # NEW_LEDS endif # NEW_LEDS
--- a/drivers/leds/Makefile --- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile +++ b/drivers/leds/Makefile
@@ -54,3 +54,4 @@ obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += @@ -54,3 +54,4 @@ obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) +=
obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o

View file

@ -1,6 +1,6 @@
--- a/drivers/char/gpio_dev.c --- a/drivers/char/gpio_dev.c
+++ b/drivers/char/gpio_dev.c +++ b/drivers/char/gpio_dev.c
@@ -114,7 +114,7 @@ gpio_close(struct inode * inode, struct @@ -114,7 +114,7 @@ gpio_close(struct inode * inode, struct
} }
struct file_operations gpio_fops = { struct file_operations gpio_fops = {

View file

@ -829,9 +829,9 @@
+be done automatically. +be done automatically.
--- a/MAINTAINERS --- a/MAINTAINERS
+++ b/MAINTAINERS +++ b/MAINTAINERS
@@ -2888,6 +2888,11 @@ T: git git://git.kernel.org/pub/scm/linu @@ -2896,6 +2896,11 @@ L: linuxppc-dev@lists.ozlabs.org
S: Maintained S: Odd Fixes
F: drivers/media/video/gspca/ F: drivers/tty/hvc/
+GPIOMMC DRIVER +GPIOMMC DRIVER
+P: Michael Buesch +P: Michael Buesch

View file

@ -24,7 +24,7 @@
* All of these routines try to estimate how many bits of randomness a * All of these routines try to estimate how many bits of randomness a
* particular randomness source. They do this by keeping track of the * particular randomness source. They do this by keeping track of the
* first and second order deltas of the event timings. * first and second order deltas of the event timings.
@@ -722,6 +732,61 @@ void add_disk_randomness(struct gendisk @@ -722,6 +732,61 @@ void add_disk_randomness(struct gendisk
} }
#endif #endif
@ -160,7 +160,7 @@
--- a/kernel/pid.c --- a/kernel/pid.c
+++ b/kernel/pid.c +++ b/kernel/pid.c
@@ -424,6 +424,7 @@ struct task_struct *find_task_by_vpid(pi @@ -427,6 +427,7 @@ struct task_struct *find_task_by_vpid(pi
{ {
return find_task_by_pid_ns(vnr, current->nsproxy->pid_ns); return find_task_by_pid_ns(vnr, current->nsproxy->pid_ns);
} }

View file

@ -1,6 +1,6 @@
--- a/mm/shmem.c --- a/mm/shmem.c
+++ b/mm/shmem.c +++ b/mm/shmem.c
@@ -2711,6 +2711,16 @@ out: @@ -2730,6 +2730,16 @@ out:
/* common code */ /* common code */
@ -17,7 +17,7 @@
/** /**
* shmem_file_setup - get an unlinked file living in tmpfs * shmem_file_setup - get an unlinked file living in tmpfs
* @name: name for dentry (to be seen in /proc/<pid>/maps * @name: name for dentry (to be seen in /proc/<pid>/maps
@@ -2788,10 +2798,7 @@ int shmem_zero_setup(struct vm_area_stru @@ -2807,10 +2817,7 @@ int shmem_zero_setup(struct vm_area_stru
if (IS_ERR(file)) if (IS_ERR(file))
return PTR_ERR(file); return PTR_ERR(file);
@ -32,7 +32,7 @@
} }
--- a/fs/file.c --- a/fs/file.c
+++ b/fs/file.c +++ b/fs/file.c
@@ -264,6 +264,7 @@ int expand_files(struct files_struct *fi @@ -268,6 +268,7 @@ int expand_files(struct files_struct *fi
/* All good, so we try */ /* All good, so we try */
return expand_fdtable(files, nr); return expand_fdtable(files, nr);
} }
@ -78,7 +78,7 @@
/** /**
* zap_vma_ptes - remove ptes mapping the vma * zap_vma_ptes - remove ptes mapping the vma
@@ -2756,6 +2757,7 @@ int vmtruncate_range(struct inode *inode @@ -2763,6 +2764,7 @@ int vmtruncate_range(struct inode *inode
return 0; return 0;
} }
@ -106,7 +106,7 @@
void *caller) void *caller)
--- a/include/linux/mm.h --- a/include/linux/mm.h
+++ b/include/linux/mm.h +++ b/include/linux/mm.h
@@ -871,6 +871,7 @@ extern void __show_free_areas(unsigned i @@ -872,6 +872,7 @@ extern void __show_free_areas(unsigned i
int shmem_lock(struct file *file, int lock, struct user_struct *user); 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); struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags);