--- /dev/null
+From 0db3fa2741ad8371c21b3a6785416a4afc0cc1d4 Mon Sep 17 00:00:00 2001
+From: Hans Verkuil <hans.verkuil@cisco.com>
+Date: Fri, 4 Oct 2013 11:01:43 -0300
+Subject: [media] cxd2820r_core: fix sparse warnings
+
+From: Hans Verkuil <hans.verkuil@cisco.com>
+
+commit 0db3fa2741ad8371c21b3a6785416a4afc0cc1d4 upstream.
+
+drivers/media/dvb-frontends/cxd2820r_core.c:34:32: error: cannot size expression
+drivers/media/dvb-frontends/cxd2820r_core.c:68:32: error: cannot size expression
+
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Acked-by: Antti Palosaari <crope@iki.fi>
+Reviewed-by: Antti Palosaari <crope@iki.fi>
+Reviewed-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Cc: Frederik Himpe <fhimpe@telenet.be>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/dvb-frontends/cxd2820r_core.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/dvb-frontends/cxd2820r_core.c
++++ b/drivers/media/dvb-frontends/cxd2820r_core.c
+@@ -34,7 +34,7 @@ static int cxd2820r_wr_regs_i2c(struct c
+ {
+ .addr = i2c,
+ .flags = 0,
+- .len = sizeof(buf),
++ .len = len + 1,
+ .buf = buf,
+ }
+ };
+@@ -75,7 +75,7 @@ static int cxd2820r_rd_regs_i2c(struct c
+ }, {
+ .addr = i2c,
+ .flags = I2C_M_RD,
+- .len = sizeof(buf),
++ .len = len,
+ .buf = buf,
+ }
+ };
--- /dev/null
+From 950ee9566a5b6cc45d15f5fe044bab4f1e8b62cb Mon Sep 17 00:00:00 2001
+From: "J. Bruce Fields" <bfields@redhat.com>
+Date: Tue, 10 Sep 2013 11:41:12 -0400
+Subject: exportfs: fix 32-bit nfsd handling of 64-bit inode numbers
+
+From: "J. Bruce Fields" <bfields@redhat.com>
+
+commit 950ee9566a5b6cc45d15f5fe044bab4f1e8b62cb upstream.
+
+Symptoms were spurious -ENOENTs on stat of an NFS filesystem from a
+32-bit NFS server exporting a very large XFS filesystem, when the
+server's cache is cold (so the inodes in question are not in cache).
+
+Reviewed-by: Christoph Hellwig <hch@lst.de>
+Reported-by: Trevor Cordes <trevor@tecnopolis.ca>
+Signed-off-by: J. Bruce Fields <bfields@redhat.com>
+Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/exportfs/expfs.c | 18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+--- a/fs/exportfs/expfs.c
++++ b/fs/exportfs/expfs.c
+@@ -215,7 +215,7 @@ struct getdents_callback {
+ struct dir_context ctx;
+ char *name; /* name that was found. It already points to a
+ buffer NAME_MAX+1 is size */
+- unsigned long ino; /* the inum we are looking for */
++ u64 ino; /* the inum we are looking for */
+ int found; /* inode matched? */
+ int sequence; /* sequence counter */
+ };
+@@ -255,10 +255,14 @@ static int get_name(const struct path *p
+ struct inode *dir = path->dentry->d_inode;
+ int error;
+ struct file *file;
++ struct kstat stat;
++ struct path child_path = {
++ .mnt = path->mnt,
++ .dentry = child,
++ };
+ struct getdents_callback buffer = {
+ .ctx.actor = filldir_one,
+ .name = name,
+- .ino = child->d_inode->i_ino
+ };
+
+ error = -ENOTDIR;
+@@ -268,6 +272,16 @@ static int get_name(const struct path *p
+ if (!dir->i_fop)
+ goto out;
+ /*
++ * inode->i_ino is unsigned long, kstat->ino is u64, so the
++ * former would be insufficient on 32-bit hosts when the
++ * filesystem supports 64-bit inode numbers. So we need to
++ * actually call ->getattr, not just read i_ino:
++ */
++ error = vfs_getattr_nosec(&child_path, &stat);
++ if (error)
++ return error;
++ buffer.ino = stat.ino;
++ /*
+ * Open the directory ...
+ */
+ file = dentry_open(path, O_RDONLY, cred);
--- /dev/null
+From 4a2c94c9b6c03af61b04993340bd9559e2277de4 Mon Sep 17 00:00:00 2001
+From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
+Date: Wed, 20 Nov 2013 09:49:41 -0500
+Subject: HID: kye: Add report fixup for Genius Manticore Keyboard
+
+From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
+
+commit 4a2c94c9b6c03af61b04993340bd9559e2277de4 upstream.
+
+Genius Manticore Keyboard presents the same problem in its report
+descriptors than Genius Gila Gaming Mouse and Genius Imperator Keyboard.
+Use the same fixup.
+
+Reported-and-tested-by: Adam Kulagowski <fidor@fidor.org>
+Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-core.c | 1 +
+ drivers/hid/hid-ids.h | 1 +
+ drivers/hid/hid-kye.c | 5 +++++
+ 3 files changed, 7 insertions(+)
+
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -1725,6 +1725,7 @@ static const struct hid_device_id hid_ha
+ { HID_USB_DEVICE(USB_VENDOR_ID_KENSINGTON, USB_DEVICE_ID_KS_SLIMBLADE) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_KEYTOUCH, USB_DEVICE_ID_KEYTOUCH_IEC) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) },
++ { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_GENIUS_MANTICORE) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_GENIUS_GX_IMPERATOR) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_ERGO_525V) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_I405X) },
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -489,6 +489,7 @@
+ #define USB_VENDOR_ID_KYE 0x0458
+ #define USB_DEVICE_ID_KYE_ERGO_525V 0x0087
+ #define USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE 0x0138
++#define USB_DEVICE_ID_GENIUS_MANTICORE 0x0153
+ #define USB_DEVICE_ID_GENIUS_GX_IMPERATOR 0x4018
+ #define USB_DEVICE_ID_KYE_GPEN_560 0x5003
+ #define USB_DEVICE_ID_KYE_EASYPEN_I405X 0x5010
+--- a/drivers/hid/hid-kye.c
++++ b/drivers/hid/hid-kye.c
+@@ -341,6 +341,9 @@ static __u8 *kye_report_fixup(struct hid
+ case USB_DEVICE_ID_GENIUS_GX_IMPERATOR:
+ rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 83,
+ "Genius Gx Imperator Keyboard");
++ case USB_DEVICE_ID_GENIUS_MANTICORE:
++ rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 104,
++ "Genius Manticore Keyboard");
+ break;
+ }
+ return rdesc;
+@@ -439,6 +442,8 @@ static const struct hid_device_id kye_de
+ USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_KYE,
+ USB_DEVICE_ID_GENIUS_GX_IMPERATOR) },
++ { HID_USB_DEVICE(USB_VENDOR_ID_KYE,
++ USB_DEVICE_ID_GENIUS_MANTICORE) },
+ { }
+ };
+ MODULE_DEVICE_TABLE(hid, kye_devices);
--- /dev/null
+From 0a5f99cfff2297f6c350b7f54878cbbf1b1253d5 Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sat, 30 Nov 2013 19:12:27 +0000
+Subject: HID: kye: Fix missing break in kye_report_fixup()
+
+From: Ben Hutchings <ben@decadent.org.uk>
+
+commit 0a5f99cfff2297f6c350b7f54878cbbf1b1253d5 upstream.
+
+The change to support Genius Manticore Keyboard also changed behaviour
+for Genius Gx Imperator Keyboard, as there is no break between the
+cases. This is presumably a mistake.
+
+Reported by Coverity as CID 1134029.
+
+Fixes: 4a2c94c9b6c0 ('HID: kye: Add report fixup for Genius Manticore Keyboard')
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-kye.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/hid/hid-kye.c
++++ b/drivers/hid/hid-kye.c
+@@ -341,6 +341,7 @@ static __u8 *kye_report_fixup(struct hid
+ case USB_DEVICE_ID_GENIUS_GX_IMPERATOR:
+ rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 83,
+ "Genius Gx Imperator Keyboard");
++ break;
+ case USB_DEVICE_ID_GENIUS_MANTICORE:
+ rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 104,
+ "Genius Manticore Keyboard");
--- /dev/null
+From 3873d064b8538686bbbd4b858dc8a07db1f7f43a Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Mon, 2 Dec 2013 19:59:31 +0100
+Subject: nfs: fix do_div() warning by instead using sector_div()
+
+From: Helge Deller <deller@gmx.de>
+
+commit 3873d064b8538686bbbd4b858dc8a07db1f7f43a upstream.
+
+When compiling a 32bit kernel with CONFIG_LBDAF=n the compiler complains like
+shown below. Fix this warning by instead using sector_div() which is provided
+by the kernel.h header file.
+
+fs/nfs/blocklayout/extents.c: In function ‘normalize’:
+include/asm-generic/div64.h:43:28: warning: comparison of distinct pointer types lacks a cast [enabled by default]
+fs/nfs/blocklayout/extents.c:47:13: note: in expansion of macro ‘do_div’
+nfs/blocklayout/extents.c:47:2: warning: right shift count >= width of type [enabled by default]
+fs/nfs/blocklayout/extents.c:47:2: warning: passing argument 1 of ‘__div64_32’ from incompatible pointer type [enabled by default]
+include/asm-generic/div64.h:35:17: note: expected ‘uint64_t *’ but argument is of type ‘sector_t *’
+ extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
+
+Signed-off-by: Helge Deller <deller@gmx.de>
+Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/nfs/blocklayout/extents.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/nfs/blocklayout/extents.c
++++ b/fs/nfs/blocklayout/extents.c
+@@ -44,7 +44,7 @@
+ static inline sector_t normalize(sector_t s, int base)
+ {
+ sector_t tmp = s; /* Since do_div modifies its argument */
+- return s - do_div(tmp, base);
++ return s - sector_div(tmp, base);
+ }
+
+ static inline sector_t normalize_up(sector_t s, int base)
--- /dev/null
+From f9f9ffc237dd924f048204e8799da74f9ecf40cf Mon Sep 17 00:00:00 2001
+From: Ben Segall <bsegall@google.com>
+Date: Wed, 16 Oct 2013 11:16:32 -0700
+Subject: sched: Avoid throttle_cfs_rq() racing with period_timer stopping
+
+From: Ben Segall <bsegall@google.com>
+
+commit f9f9ffc237dd924f048204e8799da74f9ecf40cf upstream.
+
+throttle_cfs_rq() doesn't check to make sure that period_timer is running,
+and while update_curr/assign_cfs_runtime does, a concurrently running
+period_timer on another cpu could cancel itself between this cpu's
+update_curr and throttle_cfs_rq(). If there are no other cfs_rqs running
+in the tg to restart the timer, this causes the cfs_rq to be stranded
+forever.
+
+Fix this by calling __start_cfs_bandwidth() in throttle if the timer is
+inactive.
+
+(Also add some sched_debug lines for cfs_bandwidth.)
+
+Tested: make a run/sleep task in a cgroup, loop switching the cgroup
+between 1ms/100ms quota and unlimited, checking for timer_active=0 and
+throttled=1 as a failure. With the throttle_cfs_rq() change commented out
+this fails, with the full patch it passes.
+
+Signed-off-by: Ben Segall <bsegall@google.com>
+Signed-off-by: Peter Zijlstra <peterz@infradead.org>
+Cc: pjt@google.com
+Link: http://lkml.kernel.org/r/20131016181632.22647.84174.stgit@sword-of-the-dawn.mtv.corp.google.com
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Cc: Chris J Arges <chris.j.arges@canonical.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/sched/debug.c | 8 ++++++++
+ kernel/sched/fair.c | 2 ++
+ 2 files changed, 10 insertions(+)
+
+--- a/kernel/sched/debug.c
++++ b/kernel/sched/debug.c
+@@ -225,6 +225,14 @@ void print_cfs_rq(struct seq_file *m, in
+ atomic_read(&cfs_rq->tg->runnable_avg));
+ #endif
+ #endif
++#ifdef CONFIG_CFS_BANDWIDTH
++ SEQ_printf(m, " .%-30s: %d\n", "tg->cfs_bandwidth.timer_active",
++ cfs_rq->tg->cfs_bandwidth.timer_active);
++ SEQ_printf(m, " .%-30s: %d\n", "throttled",
++ cfs_rq->throttled);
++ SEQ_printf(m, " .%-30s: %d\n", "throttle_count",
++ cfs_rq->throttle_count);
++#endif
+
+ #ifdef CONFIG_FAIR_GROUP_SCHED
+ print_cfs_group_stats(m, cpu, cfs_rq->tg);
+--- a/kernel/sched/fair.c
++++ b/kernel/sched/fair.c
+@@ -2335,6 +2335,8 @@ static void throttle_cfs_rq(struct cfs_r
+ cfs_rq->throttled_clock = rq_clock(rq);
+ raw_spin_lock(&cfs_b->lock);
+ list_add_tail_rcu(&cfs_rq->throttled_list, &cfs_b->throttled_cfs_rq);
++ if (!cfs_b->timer_active)
++ __start_cfs_bandwidth(cfs_b);
+ raw_spin_unlock(&cfs_b->lock);
+ }
+
dm-thin-always-fallback-the-pool-mode-if-commit-fails.patch
dm-thin-re-establish-read-only-state-when-switching-to-fail-mode.patch
dm-thin-allow-pool-in-read-only-mode-to-transition-to-read-write-mode.patch
+vfs-split-out-vfs_getattr_nosec.patch
+exportfs-fix-32-bit-nfsd-handling-of-64-bit-inode-numbers.patch
+hid-kye-add-report-fixup-for-genius-manticore-keyboard.patch
+hid-kye-fix-missing-break-in-kye_report_fixup.patch
+nfs-fix-do_div-warning-by-instead-using-sector_div.patch
+cxd2820r_core-fix-sparse-warnings.patch
+sched-avoid-throttle_cfs_rq-racing-with-period_timer-stopping.patch
--- /dev/null
+From b7a6ec52dd4eced4a9bcda9ca85b3c8af84d3c90 Mon Sep 17 00:00:00 2001
+From: "J. Bruce Fields" <bfields@redhat.com>
+Date: Wed, 2 Oct 2013 17:01:18 -0400
+Subject: vfs: split out vfs_getattr_nosec
+
+From: "J. Bruce Fields" <bfields@redhat.com>
+
+commit b7a6ec52dd4eced4a9bcda9ca85b3c8af84d3c90 upstream.
+
+The filehandle lookup code wants this version of getattr.
+
+Reviewed-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: J. Bruce Fields <bfields@redhat.com>
+Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/stat.c | 31 +++++++++++++++++++++++++------
+ include/linux/fs.h | 1 +
+ 2 files changed, 26 insertions(+), 6 deletions(-)
+
+--- a/fs/stat.c
++++ b/fs/stat.c
+@@ -37,14 +37,21 @@ void generic_fillattr(struct inode *inod
+
+ EXPORT_SYMBOL(generic_fillattr);
+
+-int vfs_getattr(struct path *path, struct kstat *stat)
++/**
++ * vfs_getattr_nosec - getattr without security checks
++ * @path: file to get attributes from
++ * @stat: structure to return attributes in
++ *
++ * Get attributes without calling security_inode_getattr.
++ *
++ * Currently the only caller other than vfs_getattr is internal to the
++ * filehandle lookup code, which uses only the inode number and returns
++ * no attributes to any user. Any other code probably wants
++ * vfs_getattr.
++ */
++int vfs_getattr_nosec(struct path *path, struct kstat *stat)
+ {
+ struct inode *inode = path->dentry->d_inode;
+- int retval;
+-
+- retval = security_inode_getattr(path->mnt, path->dentry);
+- if (retval)
+- return retval;
+
+ if (inode->i_op->getattr)
+ return inode->i_op->getattr(path->mnt, path->dentry, stat);
+@@ -53,6 +60,18 @@ int vfs_getattr(struct path *path, struc
+ return 0;
+ }
+
++EXPORT_SYMBOL(vfs_getattr_nosec);
++
++int vfs_getattr(struct path *path, struct kstat *stat)
++{
++ int retval;
++
++ retval = security_inode_getattr(path->mnt, path->dentry);
++ if (retval)
++ return retval;
++ return vfs_getattr_nosec(path, stat);
++}
++
+ EXPORT_SYMBOL(vfs_getattr);
+
+ int vfs_fstat(unsigned int fd, struct kstat *stat)
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -2504,6 +2504,7 @@ extern int page_symlink(struct inode *in
+ extern const struct inode_operations page_symlink_inode_operations;
+ extern int generic_readlink(struct dentry *, char __user *, int);
+ extern void generic_fillattr(struct inode *, struct kstat *);
++int vfs_getattr_nosec(struct path *path, struct kstat *stat);
+ extern int vfs_getattr(struct path *, struct kstat *);
+ void __inode_add_bytes(struct inode *inode, loff_t bytes);
+ void inode_add_bytes(struct inode *inode, loff_t bytes);