diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-04-10 15:18:10 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-04-10 15:18:10 +0200 |
commit | d330c5b27ba6318556007d16833bd7d3748723dc (patch) | |
tree | 348e524486b51845bbc0d961ec7270b50d489955 | |
parent | 80110d83f22bdbff0a6973bec911f34eb433c428 (diff) | |
download | patches-d330c5b27ba6318556007d16833bd7d3748723dc.tar.gz |
patches refreshed
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, @@ -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 |