aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-04-10 15:18:10 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-04-10 15:18:10 +0200
commitd330c5b27ba6318556007d16833bd7d3748723dc (patch)
tree348e524486b51845bbc0d961ec7270b50d489955
parent80110d83f22bdbff0a6973bec911f34eb433c428 (diff)
downloadpatches-d330c5b27ba6318556007d16833bd7d3748723dc.tar.gz
patches refreshed
-rw-r--r--0001-drbd-rename-usermode_helper-to-drbd_usermode_helper.patch (renamed from 0002-drbd-rename-usermode_helper-to-drbd_usermode_helper.patch)27
-rw-r--r--0001-kmod-make-usermodehelper-path-a-const-string.patch68
-rw-r--r--0002-Introduce-CONFIG_READONLY_USERMODEHELPER.patch (renamed from 0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch)4
-rw-r--r--0003-Make-static-usermode-helper-binaries-constant.patch208
-rw-r--r--0003-add-CONFIG_READONLY_USERMODEHELPER-support-for-lots-.patch (renamed from 0005-add-CONFIG_READONLY_USERMODEHELPER-support-for-lots-.patch)20
-rw-r--r--c06.patch6
-rw-r--r--c08.patch10
-rw-r--r--c99.patch4
-rw-r--r--csdio2.patch4
-rw-r--r--d01.patch10
-rw-r--r--d05.patch10
-rw-r--r--d07.patch2
-rw-r--r--d10.patch16
-rw-r--r--d11.patch6
-rw-r--r--driver-core-remove-struct-bus_type.dev_attrs.patch2
-rw-r--r--eventpoll.h-add-missing-epoll-event-masks.patch40
-rw-r--r--eventpoll.h-fix-epoll-event-masks.patch45
-rw-r--r--introduce-static_usermodehelper-to-mediate-call_usermodehelper.patch106
-rw-r--r--p18.patch6
-rw-r--r--p23.patch6
-rw-r--r--series11
-rw-r--r--staging-exfat-add-filesystem-to-the-build.patch13
22 files changed, 159 insertions, 465 deletions
diff --git a/0002-drbd-rename-usermode_helper-to-drbd_usermode_helper.patch b/0001-drbd-rename-usermode_helper-to-drbd_usermode_helper.patch
index 03f83778462bec..bbfbc2cb30ba5e 100644
--- a/0002-drbd-rename-usermode_helper-to-drbd_usermode_helper.patch
+++ b/0001-drbd-rename-usermode_helper-to-drbd_usermode_helper.patch
@@ -1,7 +1,7 @@
-From cf5271829b780b598c3338934450de14f791b6cc Mon Sep 17 00:00:00 2001
+From e901adf909be0a529d4f05cd6492f1347046cf59 Mon Sep 17 00:00:00 2001
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: Sun, 11 Dec 2016 10:39:09 +0100
-Subject: [PATCH 2/5] drbd: rename "usermode_helper" to "drbd_usermode_helper"
+Subject: [PATCH 1/3] drbd: rename "usermode_helper" to "drbd_usermode_helper"
Nothing like having a very generic global variable in a tiny driver
subsystem to make a mess of the global namespace...
@@ -15,13 +15,11 @@ error.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
- drivers/block/drbd/drbd_int.h | 2 +-
- drivers/block/drbd/drbd_main.c | 4 ++--
- drivers/block/drbd/drbd_nl.c | 20 ++++++++++----------
+ drivers/block/drbd/drbd_int.h | 2 +-
+ drivers/block/drbd/drbd_main.c | 4 ++--
+ drivers/block/drbd/drbd_nl.c | 20 ++++++++++----------
3 files changed, 13 insertions(+), 13 deletions(-)
-diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
-index 4cb8f21ff4ef..a139a34f1f1e 100644
--- a/drivers/block/drbd/drbd_int.h
+++ b/drivers/block/drbd/drbd_int.h
@@ -75,7 +75,7 @@ extern int fault_rate;
@@ -33,11 +31,9 @@ index 4cb8f21ff4ef..a139a34f1f1e 100644
/* This is used to stop/restart our threads.
-diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
-index 83482721bc01..8f51eccc8de7 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
-@@ -108,9 +108,9 @@ int proc_details; /* Detail level in proc drbd*/
+@@ -109,9 +109,9 @@ int proc_details; /* Detail level
/* Module parameter for setting the user mode helper program
* to run. Default is /sbin/drbdadm */
@@ -49,11 +45,9 @@ index 83482721bc01..8f51eccc8de7 100644
/* in 2.6.x, our device mapping and config info contains our virtual gendisks
* as member "struct gendisk *vdisk;"
-diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
-index f35db29cac76..9edc6fb95f19 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
-@@ -344,7 +344,7 @@ int drbd_khelper(struct drbd_device *device, char *cmd)
+@@ -344,7 +344,7 @@ int drbd_khelper(struct drbd_device *dev
(char[60]) { }, /* address */
NULL };
char mb[14];
@@ -62,7 +56,7 @@ index f35db29cac76..9edc6fb95f19 100644
struct drbd_connection *connection = first_peer_device(device)->connection;
struct sib_info sib;
int ret;
-@@ -359,19 +359,19 @@ int drbd_khelper(struct drbd_device *device, char *cmd)
+@@ -359,19 +359,19 @@ int drbd_khelper(struct drbd_device *dev
* write out any unsynced meta data changes now */
drbd_md_sync(device);
@@ -86,7 +80,7 @@ index f35db29cac76..9edc6fb95f19 100644
(ret >> 8) & 0xff, ret);
sib.sib_reason = SIB_HELPER_POST;
sib.helper_exit_code = ret;
-@@ -396,24 +396,24 @@ enum drbd_peer_state conn_khelper(struct drbd_connection *connection, char *cmd)
+@@ -396,24 +396,24 @@ enum drbd_peer_state conn_khelper(struct
(char[60]) { }, /* address */
NULL };
char *resource_name = connection->resource->name;
@@ -116,6 +110,3 @@ index f35db29cac76..9edc6fb95f19 100644
(ret >> 8) & 0xff, ret);
/* TODO: conn_bcast_event() ?? */
notify_helper(NOTIFY_RESPONSE, NULL, connection, cmd, ret);
---
-2.11.0
-
diff --git a/0001-kmod-make-usermodehelper-path-a-const-string.patch b/0001-kmod-make-usermodehelper-path-a-const-string.patch
deleted file mode 100644
index a9ce3a81000c75..00000000000000
--- a/0001-kmod-make-usermodehelper-path-a-const-string.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 6f5842372bb2438cdf3b37fa2727688033121b9e Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Date: Sun, 11 Dec 2016 09:44:42 +0100
-Subject: [PATCH 1/5] kmod: make usermodehelper path a const string
-
-This is in preparation for making it so that usermode helper programs
-can't be changed, if desired, by userspace. We will tackle the mess of
-cleaning up the write-ability of argv and env later, that's going to
-take more work, for much less gain...
-
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- include/linux/kmod.h | 7 ++++---
- kernel/kmod.c | 4 ++--
- 2 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/include/linux/kmod.h b/include/linux/kmod.h
-index fcfd2bf14d3f..c4e441e00db5 100644
---- a/include/linux/kmod.h
-+++ b/include/linux/kmod.h
-@@ -56,7 +56,7 @@ struct file;
- struct subprocess_info {
- struct work_struct work;
- struct completion *complete;
-- char *path;
-+ const char *path;
- char **argv;
- char **envp;
- int wait;
-@@ -67,10 +67,11 @@ struct subprocess_info {
- };
-
- extern int
--call_usermodehelper(char *path, char **argv, char **envp, int wait);
-+call_usermodehelper(const char *path, char **argv, char **envp, int wait);
-
- extern struct subprocess_info *
--call_usermodehelper_setup(char *path, char **argv, char **envp, gfp_t gfp_mask,
-+call_usermodehelper_setup(const char *path, char **argv, char **envp,
-+ gfp_t gfp_mask,
- int (*init)(struct subprocess_info *info, struct cred *new),
- void (*cleanup)(struct subprocess_info *), void *data);
-
-diff --git a/kernel/kmod.c b/kernel/kmod.c
-index d45c96073afb..426a614e97fe 100644
---- a/kernel/kmod.c
-+++ b/kernel/kmod.c
-@@ -516,7 +516,7 @@ static void helper_unlock(void)
- * Function must be runnable in either a process context or the
- * context in which call_usermodehelper_exec is called.
- */
--struct subprocess_info *call_usermodehelper_setup(char *path, char **argv,
-+struct subprocess_info *call_usermodehelper_setup(const char *path, char **argv,
- char **envp, gfp_t gfp_mask,
- int (*init)(struct subprocess_info *info, struct cred *new),
- void (*cleanup)(struct subprocess_info *info),
-@@ -613,7 +613,7 @@ EXPORT_SYMBOL(call_usermodehelper_exec);
- * This function is the equivalent to use call_usermodehelper_setup() and
- * call_usermodehelper_exec().
- */
--int call_usermodehelper(char *path, char **argv, char **envp, int wait)
-+int call_usermodehelper(const char *path, char **argv, char **envp, int wait)
- {
- struct subprocess_info *info;
- gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL;
---
-2.11.0
-
diff --git a/0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch b/0002-Introduce-CONFIG_READONLY_USERMODEHELPER.patch
index 809537785123f9..8a1036d9b95d12 100644
--- a/0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch
+++ b/0002-Introduce-CONFIG_READONLY_USERMODEHELPER.patch
@@ -1,7 +1,7 @@
-From 2f54800f230f77a5cbc784ff503497c201b0a5cd Mon Sep 17 00:00:00 2001
+From 7c57d60d77d05ad26fe7ea6effb9c02fcf5208cc Mon Sep 17 00:00:00 2001
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: Thu, 15 Dec 2016 13:07:19 -0800
-Subject: [PATCH 4/5] Introduce CONFIG_READONLY_USERMODEHELPER
+Subject: [PATCH 2/3] Introduce CONFIG_READONLY_USERMODEHELPER
If you can write to kernel memory, an "easy" way to get the kernel to
run any application is to change the pointer of one of the usermode
diff --git a/0003-Make-static-usermode-helper-binaries-constant.patch b/0003-Make-static-usermode-helper-binaries-constant.patch
deleted file mode 100644
index eff8b1527e4aea..00000000000000
--- a/0003-Make-static-usermode-helper-binaries-constant.patch
+++ /dev/null
@@ -1,208 +0,0 @@
-From a340240001065a3b7072ac689d8449a7b4f70654 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Date: Sun, 11 Dec 2016 18:00:43 +0100
-Subject: Make static usermode helper binaries constant
-
-There are a number of usermode helper binaries that are "hard coded" in
-the kernel today, so mark them as "const" to make it harder for someone
-to change where the variables point to.
-
-Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Cc: Thomas Sailer <t.sailer@alumni.ethz.ch>
-Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
-Cc: Johan Hovold <johan@kernel.org>
-Cc: Alex Elder <elder@kernel.org>
-Cc: "J. Bruce Fields" <bfields@fieldses.org>
-Cc: Jeff Layton <jlayton@poochiereds.net>
-Cc: David Howells <dhowells@redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/macintosh/windfarm_core.c | 4 ++--
- drivers/net/hamradio/baycom_epp.c | 10 +++++++---
- drivers/pnp/pnpbios/core.c | 5 +++--
- drivers/staging/greybus/svc_watchdog.c | 4 ++--
- drivers/staging/rtl8192e/rtl8192e/rtl_dm.c | 8 ++++----
- fs/nfsd/nfs4layouts.c | 6 ++++--
- security/keys/request_key.c | 7 ++++---
- 7 files changed, 26 insertions(+), 18 deletions(-)
-
---- a/drivers/macintosh/windfarm_core.c
-+++ b/drivers/macintosh/windfarm_core.c
-@@ -74,8 +74,8 @@ static inline void wf_notify(int event,
-
- static int wf_critical_overtemp(void)
- {
-- static char * critical_overtemp_path = "/sbin/critical_overtemp";
-- char *argv[] = { critical_overtemp_path, NULL };
-+ static char const critical_overtemp_path[] = "/sbin/critical_overtemp";
-+ char *argv[] = { (char *)critical_overtemp_path, NULL };
- static char *envp[] = { "HOME=/",
- "TERM=linux",
- "PATH=/sbin:/usr/sbin:/bin:/usr/bin",
---- a/drivers/net/hamradio/baycom_epp.c
-+++ b/drivers/net/hamradio/baycom_epp.c
-@@ -299,7 +299,7 @@ static inline void baycom_int_freq(struc
- * eppconfig_path should be setable via /proc/sys.
- */
-
--static char eppconfig_path[256] = "/usr/sbin/eppfpga";
-+static char const eppconfig_path[] = "/usr/sbin/eppfpga";
-
- static char *envp[] = { "HOME=/", "TERM=linux", "PATH=/usr/bin:/bin", NULL };
-
-@@ -308,8 +308,12 @@ static int eppconfig(struct baycom_state
- {
- char modearg[256];
- char portarg[16];
-- char *argv[] = { eppconfig_path, "-s", "-p", portarg, "-m", modearg,
-- NULL };
-+ char *argv[] = {
-+ (char *)eppconfig_path,
-+ "-s",
-+ "-p", portarg,
-+ "-m", modearg,
-+ NULL };
-
- /* set up arguments */
- sprintf(modearg, "%sclk,%smodem,fclk=%d,bps=%d,divider=%d%s,extstat",
---- a/drivers/pnp/pnpbios/core.c
-+++ b/drivers/pnp/pnpbios/core.c
-@@ -98,6 +98,7 @@ static struct completion unload_sem;
- */
- static int pnp_dock_event(int dock, struct pnp_docking_station_info *info)
- {
-+ static char const sbin_pnpbios[] = "/sbin/pnpbios";
- char *argv[3], **envp, *buf, *scratch;
- int i = 0, value;
-
-@@ -112,7 +113,7 @@ static int pnp_dock_event(int dock, stru
- * integrated into the driver core and use the usual infrastructure
- * like sysfs and uevents
- */
-- argv[0] = "/sbin/pnpbios";
-+ argv[0] = (char *)sbin_pnpbios;
- argv[1] = "dock";
- argv[2] = NULL;
-
-@@ -139,7 +140,7 @@ static int pnp_dock_event(int dock, stru
- info->location_id, info->serial, info->capabilities);
- envp[i] = NULL;
-
-- value = call_usermodehelper(argv [0], argv, envp, UMH_WAIT_EXEC);
-+ value = call_usermodehelper(sbin_pnpbios, argv, envp, UMH_WAIT_EXEC);
- kfree(buf);
- kfree(envp);
- return 0;
---- a/drivers/staging/greybus/svc_watchdog.c
-+++ b/drivers/staging/greybus/svc_watchdog.c
-@@ -44,14 +44,14 @@ static int svc_watchdog_pm_notifier(stru
-
- static void greybus_reset(struct work_struct *work)
- {
-- static char start_path[256] = "/system/bin/start";
-+ static char const start_path[] = "/system/bin/start";
- static char *envp[] = {
- "HOME=/",
- "PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin",
- NULL,
- };
- static char *argv[] = {
-- start_path,
-+ (char *)start_path,
- "unipro_reset",
- NULL,
- };
---- a/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c
-+++ b/drivers/staging/rtl8192e/rtl8192e/rtl_dm.c
-@@ -268,8 +268,8 @@ void rtl92e_dm_watchdog(struct net_devic
- static void _rtl92e_dm_check_ac_dc_power(struct net_device *dev)
- {
- struct r8192_priv *priv = rtllib_priv(dev);
-- static char *ac_dc_script = "/etc/acpi/wireless-rtl-ac-dc-power.sh";
-- char *argv[] = {ac_dc_script, DRV_NAME, NULL};
-+ static char const ac_dc_script[] = "/etc/acpi/wireless-rtl-ac-dc-power.sh";
-+ char *argv[] = {(char *)ac_dc_script, DRV_NAME, NULL};
- static char *envp[] = {"HOME=/",
- "TERM=linux",
- "PATH=/usr/bin:/bin",
-@@ -1823,7 +1823,7 @@ static void _rtl92e_dm_check_rf_ctrl_gpi
- enum rt_rf_power_state eRfPowerStateToSet;
- bool bActuallySet = false;
- char *argv[3];
-- static char *RadioPowerPath = "/etc/acpi/events/RadioPower.sh";
-+ static char const RadioPowerPath[] = "/etc/acpi/events/RadioPower.sh";
- static char *envp[] = {"HOME=/", "TERM=linux", "PATH=/usr/bin:/bin",
- NULL};
-
-@@ -1862,7 +1862,7 @@ static void _rtl92e_dm_check_rf_ctrl_gpi
- else
- argv[1] = "RFON";
-
-- argv[0] = RadioPowerPath;
-+ argv[0] = (char *)RadioPowerPath;
- argv[2] = NULL;
- call_usermodehelper(RadioPowerPath, argv, envp, UMH_WAIT_PROC);
- }
---- a/fs/nfsd/nfs4layouts.c
-+++ b/fs/nfsd/nfs4layouts.c
-@@ -614,6 +614,7 @@ nfsd4_cb_layout_fail(struct nfs4_layout_
- {
- struct nfs4_client *clp = ls->ls_stid.sc_client;
- char addr_str[INET6_ADDRSTRLEN];
-+ static char const nfsd_recall_failed[] = "/sbin/nfsd-recall-failed";
- static char *envp[] = {
- "HOME=/",
- "TERM=linux",
-@@ -629,12 +630,13 @@ nfsd4_cb_layout_fail(struct nfs4_layout_
- "nfsd: client %s failed to respond to layout recall. "
- " Fencing..\n", addr_str);
-
-- argv[0] = "/sbin/nfsd-recall-failed";
-+ argv[0] = (char *)nfsd_recall_failed;
- argv[1] = addr_str;
- argv[2] = ls->ls_file->f_path.mnt->mnt_sb->s_id;
- argv[3] = NULL;
-
-- error = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);
-+ error = call_usermodehelper(nfsd_recall_failed, argv, envp,
-+ UMH_WAIT_PROC);
- if (error) {
- printk(KERN_ERR "nfsd: fence failed for client %s: %d!\n",
- addr_str, error);
---- a/security/keys/request_key.c
-+++ b/security/keys/request_key.c
-@@ -72,7 +72,7 @@ static void umh_keys_cleanup(struct subp
- /*
- * Call a usermode helper with a specific session keyring.
- */
--static int call_usermodehelper_keys(char *path, char **argv, char **envp,
-+static int call_usermodehelper_keys(const char *path, char **argv, char **envp,
- struct key *session_keyring, int wait)
- {
- struct subprocess_info *info;
-@@ -95,6 +95,7 @@ static int call_sbin_request_key(struct
- const char *op,
- void *aux)
- {
-+ static char const request_key[] = "/sbin/request-key";
- const struct cred *cred = current_cred();
- key_serial_t prkey, sskey;
- struct key *key = cons->key, *authkey = cons->authkey, *keyring,
-@@ -161,7 +162,7 @@ static int call_sbin_request_key(struct
-
- /* set up the argument list */
- i = 0;
-- argv[i++] = "/sbin/request-key";
-+ argv[i++] = (char *)request_key;
- argv[i++] = (char *) op;
- argv[i++] = key_str;
- argv[i++] = uid_str;
-@@ -172,7 +173,7 @@ static int call_sbin_request_key(struct
- argv[i] = NULL;
-
- /* do it */
-- ret = call_usermodehelper_keys(argv[0], argv, envp, keyring,
-+ ret = call_usermodehelper_keys(request_key, argv, envp, keyring,
- UMH_WAIT_PROC);
- kdebug("usermode -> 0x%x", ret);
- if (ret >= 0) {
diff --git a/0005-add-CONFIG_READONLY_USERMODEHELPER-support-for-lots-.patch b/0003-add-CONFIG_READONLY_USERMODEHELPER-support-for-lots-.patch
index 100e0e9eda027d..a03d8803c89240 100644
--- a/0005-add-CONFIG_READONLY_USERMODEHELPER-support-for-lots-.patch
+++ b/0003-add-CONFIG_READONLY_USERMODEHELPER-support-for-lots-.patch
@@ -1,7 +1,7 @@
-From 88f682301f10a9278e23aed64e911dde5ba30ed9 Mon Sep 17 00:00:00 2001
+From dd1c428188101dd5428aa7bb9ed1a1329a052763 Mon Sep 17 00:00:00 2001
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: Thu, 15 Dec 2016 13:09:59 -0800
-Subject: [PATCH 5/5] add CONFIG_READONLY_USERMODEHELPER support for lots of
+Subject: [PATCH 3/3] add CONFIG_READONLY_USERMODEHELPER support for lots of
places.
Dynamic usermode helper should be stopped, so support it...
@@ -22,7 +22,7 @@ Dynamic usermode helper should be stopped, so support it...
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
-@@ -2330,15 +2330,16 @@ static ssize_t set_bank(struct device *s
+@@ -2292,15 +2292,16 @@ static ssize_t set_bank(struct device *s
}
static ssize_t
@@ -42,7 +42,7 @@ Dynamic usermode helper should be stopped, so support it...
{
char *p;
-@@ -2351,6 +2352,10 @@ static ssize_t set_trigger(struct device
+@@ -2313,6 +2314,10 @@ static ssize_t set_trigger(struct device
return strlen(mce_helper) + !!p;
}
@@ -53,7 +53,7 @@ Dynamic usermode helper should be stopped, so support it...
static ssize_t set_ignore_ce(struct device *s,
struct device_attribute *attr,
-@@ -2408,7 +2413,6 @@ static ssize_t store_int_with_restart(st
+@@ -2370,7 +2375,6 @@ static ssize_t store_int_with_restart(st
return ret;
}
@@ -74,7 +74,7 @@ Dynamic usermode helper should be stopped, so support it...
/* This is used to stop/restart our threads.
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
-@@ -108,9 +108,11 @@ int proc_details; /* Detail level
+@@ -109,9 +109,11 @@ int proc_details; /* Detail level
/* Module parameter for setting the user mode helper program
* to run. Default is /sbin/drbdadm */
@@ -287,7 +287,7 @@ Dynamic usermode helper should be stopped, so support it...
static int run_cmd(const char *cmd)
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
-@@ -662,6 +662,7 @@ static struct ctl_table kern_table[] = {
+@@ -663,6 +663,7 @@ static struct ctl_table kern_table[] = {
},
#endif
#ifdef CONFIG_UEVENT_HELPER
@@ -295,7 +295,7 @@ Dynamic usermode helper should be stopped, so support it...
{
.procname = "hotplug",
.data = &uevent_helper,
-@@ -670,6 +671,7 @@ static struct ctl_table kern_table[] = {
+@@ -671,6 +672,7 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dostring,
},
#endif
@@ -303,7 +303,7 @@ Dynamic usermode helper should be stopped, so support it...
#ifdef CONFIG_CHR_DEV_SG
{
.procname = "sg-big-buff",
-@@ -1079,6 +1081,7 @@ static struct ctl_table kern_table[] = {
+@@ -1080,6 +1082,7 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec,
},
#endif
@@ -311,7 +311,7 @@ Dynamic usermode helper should be stopped, so support it...
{
.procname = "poweroff_cmd",
.data = &poweroff_cmd,
-@@ -1086,6 +1089,7 @@ static struct ctl_table kern_table[] = {
+@@ -1087,6 +1090,7 @@ static struct ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = proc_dostring,
},
diff --git a/c06.patch b/c06.patch
index ed57a0e858cdb4..d639cf4f9734ed 100644
--- a/c06.patch
+++ b/c06.patch
@@ -4,7 +4,7 @@
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
-@@ -1372,6 +1372,13 @@ static int zram_remove(struct zram *zram
+@@ -1276,6 +1276,13 @@ static int zram_remove(struct zram *zram
}
/* zram-control sysfs attributes */
@@ -18,7 +18,7 @@
static ssize_t hot_add_show(struct class *class,
struct class_attribute *attr,
char *buf)
-@@ -1386,6 +1393,7 @@ static ssize_t hot_add_show(struct class
+@@ -1290,6 +1297,7 @@ static ssize_t hot_add_show(struct class
return ret;
return scnprintf(buf, PAGE_SIZE, "%d\n", ret);
}
@@ -26,7 +26,7 @@
static ssize_t hot_remove_store(struct class *class,
struct class_attribute *attr,
-@@ -1416,23 +1424,19 @@ static ssize_t hot_remove_store(struct c
+@@ -1320,23 +1328,19 @@ static ssize_t hot_remove_store(struct c
mutex_unlock(&zram_index_mutex);
return ret ? ret : count;
}
diff --git a/c08.patch b/c08.patch
index abad94ba615bc2..0f5b92fa40e06a 100644
--- a/c08.patch
+++ b/c08.patch
@@ -4,7 +4,7 @@
--- a/drivers/block/osdblk.c
+++ b/drivers/block/osdblk.c
-@@ -468,9 +468,8 @@ static void class_osdblk_release(struct
+@@ -462,9 +462,8 @@ static void class_osdblk_release(struct
kfree(cls);
}
@@ -16,7 +16,7 @@
{
int n = 0;
struct list_head *tmp;
-@@ -493,10 +492,10 @@ static ssize_t class_osdblk_list(struct
+@@ -487,10 +486,10 @@ static ssize_t class_osdblk_list(struct
mutex_unlock(&ctl_mutex);
return n;
}
@@ -30,7 +30,7 @@
{
struct osdblk_device *osdev;
ssize_t rc;
-@@ -587,11 +586,10 @@ err_out_mod:
+@@ -581,11 +580,10 @@ err_out_mod:
module_put(THIS_MODULE);
return rc;
}
@@ -45,7 +45,7 @@
{
struct osdblk_device *osdev = NULL;
int target_id, rc;
-@@ -635,13 +633,15 @@ static ssize_t class_osdblk_remove(struc
+@@ -629,13 +627,15 @@ static ssize_t class_osdblk_remove(struc
return count;
}
@@ -66,7 +66,7 @@
static int osdblk_sysfs_init(void)
{
-@@ -658,7 +658,7 @@ static int osdblk_sysfs_init(void)
+@@ -652,7 +652,7 @@ static int osdblk_sysfs_init(void)
class_osdblk->name = DRV_NAME;
class_osdblk->owner = THIS_MODULE;
class_osdblk->class_release = class_osdblk_release;
diff --git a/c99.patch b/c99.patch
index e1847596abfb8f..a1edd266b90b21 100644
--- a/c99.patch
+++ b/c99.patch
@@ -73,7 +73,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
}
--- a/include/linux/device.h
+++ b/include/linux/device.h
-@@ -359,7 +359,6 @@ int subsys_virtual_register(struct bus_t
+@@ -363,7 +363,6 @@ int subsys_virtual_register(struct bus_t
* struct class - device classes
* @name: Name of the class.
* @owner: The module owner.
@@ -81,7 +81,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* @class_groups: Default attributes of this class.
* @dev_groups: Default attributes of the devices that belong to the class.
* @dev_kobj: The kobject that represents this class and links it into the hierarchy.
-@@ -388,7 +387,6 @@ struct class {
+@@ -392,7 +391,6 @@ struct class {
const char *name;
struct module *owner;
diff --git a/csdio2.patch b/csdio2.patch
index e68d39f353a59d..2c6a7a363a8232 100644
--- a/csdio2.patch
+++ b/csdio2.patch
@@ -240,7 +240,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
+connected to different SDIO hosts.
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
-@@ -590,5 +590,28 @@ config TILE_SROM
+@@ -594,5 +594,28 @@ config TILE_SROM
source "drivers/char/xillybus/Kconfig"
@@ -1394,7 +1394,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
+#endif
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
-@@ -96,6 +96,7 @@ header-y += coff.h
+@@ -97,6 +97,7 @@ header-y += coff.h
header-y += connector.h
header-y += const.h
header-y += cramfs_fs.h
diff --git a/d01.patch b/d01.patch
index 534d9fc3b1e9a8..61d439d69cf7fe 100644
--- a/d01.patch
+++ b/d01.patch
@@ -4,7 +4,7 @@
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
-@@ -2143,7 +2143,7 @@ struct hid_dynid {
+@@ -2140,7 +2140,7 @@ struct hid_dynid {
* Adds a new dynamic hid device ID to this driver,
* and causes the driver to probe for all devices again.
*/
@@ -13,7 +13,7 @@
size_t count)
{
struct hid_driver *hdrv = to_hid_driver(drv);
-@@ -2175,7 +2175,13 @@ static ssize_t store_new_id(struct devic
+@@ -2172,7 +2172,13 @@ static ssize_t store_new_id(struct devic
return ret ? : count;
}
@@ -28,7 +28,7 @@
static void hid_free_dynids(struct hid_driver *hdrv)
{
-@@ -2339,6 +2345,7 @@ static int hid_uevent(struct device *dev
+@@ -2336,6 +2342,7 @@ static int hid_uevent(struct device *dev
static struct bus_type hid_bus_type = {
.name = "hid",
.dev_groups = hid_dev_groups,
@@ -36,7 +36,7 @@
.match = hid_bus_match,
.probe = hid_device_probe,
.remove = hid_device_remove,
-@@ -2778,8 +2785,6 @@ EXPORT_SYMBOL_GPL(hid_destroy_device);
+@@ -2775,8 +2782,6 @@ EXPORT_SYMBOL_GPL(hid_destroy_device);
int __hid_register_driver(struct hid_driver *hdrv, struct module *owner,
const char *mod_name)
{
@@ -45,7 +45,7 @@
hdrv->driver.name = hdrv->name;
hdrv->driver.bus = &hid_bus_type;
hdrv->driver.owner = owner;
-@@ -2788,21 +2793,12 @@ int __hid_register_driver(struct hid_dri
+@@ -2785,21 +2790,12 @@ int __hid_register_driver(struct hid_dri
INIT_LIST_HEAD(&hdrv->dyn_list);
spin_lock_init(&hdrv->dyn_lock);
diff --git a/d05.patch b/d05.patch
index 133d90e1167d00..4be80f6a799b6e 100644
--- a/d05.patch
+++ b/d05.patch
@@ -22,7 +22,7 @@
{
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
-@@ -6991,49 +6991,39 @@ static struct pci_driver megasas_pci_dri
+@@ -7323,49 +7323,39 @@ static struct pci_driver megasas_pci_dri
/*
* Sysfs driver attributes
*/
@@ -83,7 +83,7 @@
{
int retval = count;
-@@ -7043,9 +7033,7 @@ megasas_sysfs_set_dbg_lvl(struct device_
+@@ -7375,9 +7365,7 @@ megasas_sysfs_set_dbg_lvl(struct device_
}
return retval;
}
@@ -92,11 +92,11 @@
- megasas_sysfs_set_dbg_lvl);
+static DRIVER_ATTR_RW(dbg_lvl);
- static void
- megasas_aen_polling(struct work_struct *work)
+ static inline void megasas_remove_scsi_device(struct scsi_device *sdev)
+ {
--- a/drivers/scsi/osst.c
+++ b/drivers/scsi/osst.c
-@@ -5664,12 +5664,12 @@ static struct osst_support_data support_
+@@ -5668,12 +5668,12 @@ static struct osst_support_data support_
* sysfs support for osst driver parameter information
*/
diff --git a/d07.patch b/d07.patch
index 26e38169ecf6b7..df85fc6a4c8aa8 100644
--- a/d07.patch
+++ b/d07.patch
@@ -4,7 +4,7 @@
--- a/drivers/net/ethernet/ibm/ehea/ehea_main.c
+++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c
-@@ -3554,14 +3554,12 @@ static int check_module_parm(void)
+@@ -3553,14 +3553,12 @@ static int check_module_parm(void)
return ret;
}
diff --git a/d10.patch b/d10.patch
index a2a28c7ece7101..08b9f0221ce6fc 100644
--- a/d10.patch
+++ b/d10.patch
@@ -4,7 +4,7 @@
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
-@@ -1439,25 +1439,20 @@ static int tpacpi_rfk_procfs_write(const
+@@ -1438,25 +1438,20 @@ static int tpacpi_rfk_procfs_write(const
*/
/* interface_version --------------------------------------------------- */
@@ -35,7 +35,7 @@
{
unsigned long t;
-@@ -1468,34 +1463,28 @@ static ssize_t tpacpi_driver_debug_store
+@@ -1467,34 +1462,28 @@ static ssize_t tpacpi_driver_debug_store
return count;
}
@@ -76,7 +76,7 @@
{
unsigned long t;
-@@ -1509,22 +1498,16 @@ static ssize_t tpacpi_driver_wlsw_emulst
+@@ -1508,22 +1497,16 @@ static ssize_t tpacpi_driver_wlsw_emulst
return count;
}
@@ -103,7 +103,7 @@
{
unsigned long t;
-@@ -1535,22 +1518,16 @@ static ssize_t tpacpi_driver_bluetooth_e
+@@ -1534,22 +1517,16 @@ static ssize_t tpacpi_driver_bluetooth_e
return count;
}
@@ -130,7 +130,7 @@
{
unsigned long t;
-@@ -1561,22 +1538,16 @@ static ssize_t tpacpi_driver_wwan_emulst
+@@ -1560,22 +1537,16 @@ static ssize_t tpacpi_driver_wwan_emulst
return count;
}
@@ -157,7 +157,7 @@
{
unsigned long t;
-@@ -1587,10 +1558,7 @@ static ssize_t tpacpi_driver_uwb_emulsta
+@@ -1586,10 +1557,7 @@ static ssize_t tpacpi_driver_uwb_emulsta
return count;
}
@@ -169,7 +169,7 @@
#endif
/* --------------------------------------------------------------------- */
-@@ -8571,14 +8539,13 @@ static ssize_t fan_fan2_input_show(struc
+@@ -8537,14 +8505,13 @@ static ssize_t fan_fan2_input_show(struc
static DEVICE_ATTR(fan2_input, S_IRUGO, fan_fan2_input_show, NULL);
/* sysfs fan fan_watchdog (hwmon driver) ------------------------------- */
@@ -187,7 +187,7 @@
{
unsigned long t;
-@@ -8595,9 +8562,7 @@ static ssize_t fan_fan_watchdog_store(st
+@@ -8561,9 +8528,7 @@ static ssize_t fan_fan_watchdog_store(st
return count;
}
diff --git a/d11.patch b/d11.patch
index 3f591a2b7d463f..61a7158b508010 100644
--- a/d11.patch
+++ b/d11.patch
@@ -8,7 +8,7 @@
--- a/drivers/s390/char/sclp.c
+++ b/drivers/s390/char/sclp.c
-@@ -1128,26 +1128,26 @@ static const struct dev_pm_ops sclp_pm_o
+@@ -1096,26 +1096,26 @@ static const struct dev_pm_ops sclp_pm_o
.restore = sclp_restore,
};
@@ -125,7 +125,7 @@
&driver_attr_connection.attr,
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
-@@ -5736,8 +5736,8 @@ static struct ccwgroup_driver qeth_core_
+@@ -5738,8 +5738,8 @@ static struct ccwgroup_driver qeth_core_
.restore = qeth_core_restore,
};
@@ -136,7 +136,7 @@
{
int err;
-@@ -5746,7 +5746,7 @@ static ssize_t qeth_core_driver_group_st
+@@ -5748,7 +5748,7 @@ static ssize_t qeth_core_driver_group_st
return err ? err : count;
}
diff --git a/driver-core-remove-struct-bus_type.dev_attrs.patch b/driver-core-remove-struct-bus_type.dev_attrs.patch
index 99f2f87e3aa32f..5dd806bda95e6d 100644
--- a/driver-core-remove-struct-bus_type.dev_attrs.patch
+++ b/driver-core-remove-struct-bus_type.dev_attrs.patch
@@ -93,7 +93,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* @bus_groups: Default attributes of the bus.
* @dev_groups: Default attributes of the devices on the bus.
* @drv_groups: Default attributes of the device drivers on the bus.
-@@ -110,7 +109,6 @@ struct bus_type {
+@@ -112,7 +111,6 @@ struct bus_type {
const char *name;
const char *dev_name;
struct device *dev_root;
diff --git a/eventpoll.h-add-missing-epoll-event-masks.patch b/eventpoll.h-add-missing-epoll-event-masks.patch
new file mode 100644
index 00000000000000..5119b69dd60f1b
--- /dev/null
+++ b/eventpoll.h-add-missing-epoll-event-masks.patch
@@ -0,0 +1,40 @@
+From foo@baz Thu Feb 23 18:35:58 CET 2017
+Date: Thu, 23 Feb 2017 18:35:58 +0100
+To: Greg KH <gregkh@linuxfoundation.org>
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Subject: [PATCH 2/2] eventpoll.h: add missing epoll event masks
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+For some reason these values are not in the uapi header file, so any
+libc has to define it themselves. To prevent them from needing to do
+this, just have the kernel provide the correct values.
+
+Reported-by: Elliott Hughes <enh@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/uapi/linux/eventpoll.h | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+--- a/include/uapi/linux/eventpoll.h
++++ b/include/uapi/linux/eventpoll.h
+@@ -26,6 +26,19 @@
+ #define EPOLL_CTL_DEL 2
+ #define EPOLL_CTL_MOD 3
+
++/* Epoll event masks */
++#define EPOLLIN 0x00000001
++#define EPOLLPRI 0x00000002
++#define EPOLLOUT 0x00000004
++#define EPOLLERR 0x00000008
++#define EPOLLHUP 0x00000010
++#define EPOLLRDNORM 0x00000040
++#define EPOLLRDBAND 0x00000080
++#define EPOLLWRNORM 0x00000100
++#define EPOLLWRBAND 0x00000200
++#define EPOLLMSG 0x00000400
++#define EPOLLRDHUP 0x00002000
++
+ /* Set exclusive wakeup mode for the target file descriptor */
+ #define EPOLLEXCLUSIVE (1U << 28)
+
diff --git a/eventpoll.h-fix-epoll-event-masks.patch b/eventpoll.h-fix-epoll-event-masks.patch
new file mode 100644
index 00000000000000..7858a5b149392a
--- /dev/null
+++ b/eventpoll.h-fix-epoll-event-masks.patch
@@ -0,0 +1,45 @@
+From foo@baz Thu Feb 23 18:35:58 CET 2017
+Date: Thu, 23 Feb 2017 18:35:58 +0100
+To: Greg KH <gregkh@linuxfoundation.org>
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Subject: [PATCH 1/2] eventpoll.h: fix epoll event masks
+
+When userspace tries to use these defines, it complains that it needs to
+be an unsigned 1 that is shifted, so libc implementations have to create
+their own version. Fix this by defining it properly so that libcs can
+just use the kernel uapi header.
+
+Reported-by: Elliott Hughes <enh@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/uapi/linux/eventpoll.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/include/uapi/linux/eventpoll.h
++++ b/include/uapi/linux/eventpoll.h
+@@ -27,7 +27,7 @@
+ #define EPOLL_CTL_MOD 3
+
+ /* Set exclusive wakeup mode for the target file descriptor */
+-#define EPOLLEXCLUSIVE (1 << 28)
++#define EPOLLEXCLUSIVE (1U << 28)
+
+ /*
+ * Request the handling of system wakeup events so as to prevent system suspends
+@@ -39,13 +39,13 @@
+ *
+ * Requires CAP_BLOCK_SUSPEND
+ */
+-#define EPOLLWAKEUP (1 << 29)
++#define EPOLLWAKEUP (1U << 29)
+
+ /* Set the One Shot behaviour for the target file descriptor */
+-#define EPOLLONESHOT (1 << 30)
++#define EPOLLONESHOT (1U << 30)
+
+ /* Set the Edge Triggered behaviour for the target file descriptor */
+-#define EPOLLET (1 << 31)
++#define EPOLLET (1U << 31)
+
+ /*
+ * On x86-64 make the 64bit structure have the same alignment as the
diff --git a/introduce-static_usermodehelper-to-mediate-call_usermodehelper.patch b/introduce-static_usermodehelper-to-mediate-call_usermodehelper.patch
deleted file mode 100644
index 77d5e93bd9ac65..00000000000000
--- a/introduce-static_usermodehelper-to-mediate-call_usermodehelper.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From foo@baz Mon Jan 16 16:22:39 CET 2017
-Date: Mon, 16 Jan 2017 16:22:39 +0100
-To: Greg KH <gregkh@linuxfoundation.org>
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Subject: Introduce STATIC_USERMODEHELPER to mediate call_usermodehelper()
-
-Some usermode helper applications are defined at kernel build time, while
-others can be changed at runtime. To provide a sane way to filter these, add a
-new kernel option "STATIC_USERMODEHELPER". This option routes all
-call_usermodehelper() calls through this binary, no matter what the caller
-wishes to have called.
-
-The new binary (by default set to /sbin/usermode-helper, but can be changed
-through the STATIC_USERMODEHELPER_PATH option) can properly filter the
-requested programs to be run by the kernel by looking at the first argument
-that is passed to it. All other options should then be passed onto the proper
-program if so desired.
-
-To disable all call_usermodehelper() calls by the kernel, set
-STATIC_USERMODEHELPER_PATH to an empty string.
-
-Thanks to Neil Brown for the idea of this feature.
-
-Cc: NeilBrown <neilb@suse.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- kernel/kmod.c | 14 ++++++++++++++
- security/Kconfig | 35 +++++++++++++++++++++++++++++++++++
- 2 files changed, 49 insertions(+)
-
---- a/kernel/kmod.c
-+++ b/kernel/kmod.c
-@@ -528,7 +528,12 @@ struct subprocess_info *call_usermodehel
- goto out;
-
- INIT_WORK(&sub_info->work, call_usermodehelper_exec_work);
-+
-+#ifdef CONFIG_STATIC_USERMODEHELPER
-+ sub_info->path = CONFIG_STATIC_USERMODEHELPER_PATH;
-+#else
- sub_info->path = path;
-+#endif
- sub_info->argv = argv;
- sub_info->envp = envp;
-
-@@ -566,6 +571,15 @@ int call_usermodehelper_exec(struct subp
- retval = -EBUSY;
- goto out;
- }
-+
-+ /*
-+ * If there is no binary for us to call, then just return and get out of
-+ * here. This allows us to set STATIC_USERMODEHELPER_PATH to "" and
-+ * disable all call_usermodehelper() calls.
-+ */
-+ if (strlen(sub_info->path) == 0)
-+ goto out;
-+
- /*
- * Set the completion pointer only if there is a waiter.
- * This makes it possible to use umh_complete to free
---- a/security/Kconfig
-+++ b/security/Kconfig
-@@ -158,6 +158,41 @@ config HARDENED_USERCOPY_PAGESPAN
- been removed. This config is intended to be used only while
- trying to find such users.
-
-+config STATIC_USERMODEHELPER
-+ bool "Force all usermode helper calls through a single binary"
-+ help
-+ By default, the kernel can call many different userspace
-+ binary programs through the "usermode helper" kernel
-+ interface. Some of these binaries are statically defined
-+ either in the kernel code itself, or as a kernel configuration
-+ option. However, some of these are dynamically created at
-+ runtime, or can be modified after the kernel has started up.
-+ To provide an additional layer of security, route all of these
-+ calls through a single executable that can not have its name
-+ changed.
-+
-+ Note, it is up to this single binary to then call the relevant
-+ "real" usermode helper binary, based on the first argument
-+ passed to it. If desired, this program can filter and pick
-+ and choose what real programs are called.
-+
-+ If you wish for all usermode helper programs are to be
-+ disabled, choose this option and then set
-+ STATIC_USERMODEHELPER_PATH to an empty string.
-+
-+config STATIC_USERMODEHELPER_PATH
-+ string "Path to the static usermode helper binary"
-+ depends on STATIC_USERMODEHELPER
-+ default "/sbin/usermode-helper"
-+ help
-+ The binary called by the kernel when any usermode helper
-+ program is wish to be run. The "real" application's name will
-+ be in the first argument passed to this program on the command
-+ line.
-+
-+ If you wish for all usermode helper programs to be disabled,
-+ specify an empty string here (i.e. "").
-+
- source security/selinux/Kconfig
- source security/smack/Kconfig
- source security/tomoyo/Kconfig
diff --git a/p18.patch b/p18.patch
index 3b438af2eb6208..131a0ad359c701 100644
--- a/p18.patch
+++ b/p18.patch
@@ -7,7 +7,7 @@
--- a/arch/arm/mach-rpc/ecard.c
+++ b/arch/arm/mach-rpc/ecard.c
-@@ -760,19 +760,21 @@ static struct expansion_card *__init eca
+@@ -761,19 +761,21 @@ static struct expansion_card *__init eca
return ec;
}
@@ -32,7 +32,7 @@
{
struct expansion_card *ec = ECARD_DEV(dev);
char *str = buf;
-@@ -786,35 +788,39 @@ static ssize_t ecard_show_resources(stru
+@@ -787,35 +789,39 @@ static ssize_t ecard_show_resources(stru
return str - buf;
}
@@ -84,7 +84,7 @@
int ecard_request_resources(struct expansion_card *ec)
{
-@@ -1119,7 +1125,7 @@ static int ecard_match(struct device *_d
+@@ -1120,7 +1126,7 @@ static int ecard_match(struct device *_d
struct bus_type ecard_bus_type = {
.name = "ecard",
diff --git a/p23.patch b/p23.patch
index 6a652165b8467e..ca65e73be073f7 100644
--- a/p23.patch
+++ b/p23.patch
@@ -4,7 +4,7 @@
--- a/drivers/rpmsg/rpmsg_core.c
+++ b/drivers/rpmsg/rpmsg_core.c
-@@ -310,7 +310,8 @@ field##_show(struct device *dev, \
+@@ -330,7 +330,8 @@ field##_show(struct device *dev, \
struct rpmsg_device *rpdev = to_rpmsg_device(dev); \
\
return sprintf(buf, format_string, rpdev->path); \
@@ -14,7 +14,7 @@
/* for more info, see Documentation/ABI/testing/sysfs-bus-rpmsg */
rpmsg_show_attr(name, id.name, "%s\n");
-@@ -325,15 +326,17 @@ static ssize_t modalias_show(struct devi
+@@ -345,15 +346,17 @@ static ssize_t modalias_show(struct devi
return sprintf(buf, RPMSG_DEVICE_MODALIAS_FMT "\n", rpdev->id.name);
}
@@ -39,7 +39,7 @@
/* rpmsg devices and drivers are matched using the service name */
static inline int rpmsg_id_match(const struct rpmsg_device *rpdev,
-@@ -435,7 +438,7 @@ static int rpmsg_dev_remove(struct devic
+@@ -455,7 +458,7 @@ static int rpmsg_dev_remove(struct devic
static struct bus_type rpmsg_bus = {
.name = "rpmsg",
.match = rpmsg_dev_match,
diff --git a/series b/series
index 51646f3c8615fd..10ecdfdeaf60fd 100644
--- a/series
+++ b/series
@@ -1,9 +1,8 @@
-0001-kmod-make-usermodehelper-path-a-const-string.patch
-0003-Make-static-usermode-helper-binaries-constant.patch
-introduce-static_usermodehelper-to-mediate-call_usermodehelper.patch
-0002-drbd-rename-usermode_helper-to-drbd_usermode_helper.patch
-0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch
-0005-add-CONFIG_READONLY_USERMODEHELPER-support-for-lots-.patch
+eventpoll.h-fix-epoll-event-masks.patch
+eventpoll.h-add-missing-epoll-event-masks.patch
+0001-drbd-rename-usermode_helper-to-drbd_usermode_helper.patch
+0002-Introduce-CONFIG_READONLY_USERMODEHELPER.patch
+0003-add-CONFIG_READONLY_USERMODEHELPER-support-for-lots-.patch
## broken patch!
#
diff --git a/staging-exfat-add-filesystem-to-the-build.patch b/staging-exfat-add-filesystem-to-the-build.patch
index 0c72a826dc8353..e1aa356a329e2e 100644
--- a/staging-exfat-add-filesystem-to-the-build.patch
+++ b/staging-exfat-add-filesystem-to-the-build.patch
@@ -11,26 +11,27 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/staging/Kconfig | 2 ++
- drivers/staging/Makefile | 1 +
+ drivers/staging/Makefile | 2 +-
drivers/staging/exfat/Kconfig | 4 ++++
drivers/staging/exfat/Makefile | 14 ++++----------
- 4 files changed, 11 insertions(+), 10 deletions(-)
+ 4 files changed, 11 insertions(+), 11 deletions(-)
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
-@@ -104,4 +104,6 @@ source "drivers/staging/greybus/Kconfig"
+@@ -104,4 +104,6 @@ source "drivers/staging/vc04_services/Kc
- source "drivers/staging/vc04_services/Kconfig"
+ source "drivers/staging/bcm2835-audio/Kconfig"
+source "drivers/staging/exfat/Kconfig"
+
endif # STAGING
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
-@@ -41,3 +41,4 @@ obj-$(CONFIG_ISDN_I4L) += i4l/
- obj-$(CONFIG_KS7010) += ks7010/
+@@ -41,4 +41,4 @@ obj-$(CONFIG_KS7010) += ks7010/
obj-$(CONFIG_GREYBUS) += greybus/
obj-$(CONFIG_BCM2835_VCHIQ) += vc04_services/
+ obj-$(CONFIG_SND_BCM2835) += bcm2835-audio/
+-
+obj-$(CONFIG_EXFAT_FS) += exfat/
--- /dev/null
+++ b/drivers/staging/exfat/Kconfig