aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-12-14 10:11:49 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-12-14 10:11:49 -0800
commit6680ebc7a39c4a9661004adb6c8f4abc98fa6322 (patch)
tree29fd4895eed432713f7d8c7d55f610fa8cb2e5d9
parent0fbed24161fea03303a09a83f8c3c94f2446980f (diff)
downloadpatches-6680ebc7a39c4a9661004adb6c8f4abc98fa6322.tar.gz
4.10-rc1 early changes
-rw-r--r--0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch107
-rw-r--r--c06.patch6
-rw-r--r--csdio2.patch2
-rw-r--r--d02.patch38
-rw-r--r--d07.patch2
-rw-r--r--d11.patch10
-rw-r--r--d15.patch2
-rw-r--r--driver-core-add-class_attr_wo.patch27
-rw-r--r--driver-core-class-add-class_groups-support.patch76
-rw-r--r--driver-core-devcoredump-convert-to-use-class_groups.patch42
-rw-r--r--driver-core-firmware_class-convert-to-use-class_groups.patch42
-rw-r--r--p23.patch6
-rw-r--r--p30.patch2
-rw-r--r--pci_groups.patch8
-rw-r--r--series5
-rw-r--r--staging-exfat-add-filesystem-to-the-build.patch6
-rw-r--r--usb-core-add-missing-license-information.patch178
17 files changed, 60 insertions, 499 deletions
diff --git a/0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch b/0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch
index 883487076ab0fd..54cf7641bf6804 100644
--- a/0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch
+++ b/0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch
@@ -18,25 +18,22 @@ coredumps, it's still a work in progress.
Not-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
- arch/x86/kernel/cpu/mcheck/mce.c | 12 +++++++---
- drivers/block/drbd/drbd_int.h | 6 ++++-
- drivers/block/drbd/drbd_main.c | 5 ++++
- drivers/staging/lustre/include/linux/libcfs/libcfs.h | 2 +
- drivers/staging/lustre/lnet/libcfs/linux/linux-debug.c | 11 ++++++++-
- drivers/staging/lustre/lnet/libcfs/module.c | 2 +
- drivers/video/fbdev/uvesafb.c | 19 ++++++++++++-----
- fs/nfs/cache_lib.c | 12 ++++++++--
- include/linux/reboot.h | 2 +
- kernel/ksysfs.c | 6 ++++-
- kernel/reboot.c | 3 ++
- kernel/sysctl.c | 4 +++
- lib/kobject_uevent.c | 3 ++
- security/Kconfig | 17 +++++++++++++++
- 14 files changed, 89 insertions(+), 15 deletions(-)
+ arch/x86/kernel/cpu/mcheck/mce.c | 12 ++++++++----
+ drivers/block/drbd/drbd_int.h | 6 +++++-
+ drivers/block/drbd/drbd_main.c | 5 +++++
+ drivers/video/fbdev/uvesafb.c | 19 ++++++++++++++-----
+ fs/nfs/cache_lib.c | 12 ++++++++++--
+ include/linux/reboot.h | 2 ++
+ kernel/ksysfs.c | 6 +++++-
+ kernel/reboot.c | 3 +++
+ kernel/sysctl.c | 4 ++++
+ lib/kobject_uevent.c | 3 +++
+ security/Kconfig | 17 +++++++++++++++++
+ 11 files changed, 76 insertions(+), 13 deletions(-)
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
-@@ -2283,15 +2283,16 @@ static ssize_t set_bank(struct device *s
+@@ -2337,15 +2337,16 @@ static ssize_t set_bank(struct device *s
}
static ssize_t
@@ -56,7 +53,7 @@ Not-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
{
char *p;
-@@ -2304,6 +2305,10 @@ static ssize_t set_trigger(struct device
+@@ -2358,6 +2359,10 @@ static ssize_t set_trigger(struct device
return strlen(mce_helper) + !!p;
}
@@ -67,7 +64,7 @@ Not-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
static ssize_t set_ignore_ce(struct device *s,
struct device_attribute *attr,
-@@ -2361,7 +2366,6 @@ static ssize_t store_int_with_restart(st
+@@ -2415,7 +2420,6 @@ static ssize_t store_int_with_restart(st
return ret;
}
@@ -107,72 +104,6 @@ Not-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/* in 2.6.x, our device mapping and config info contains our virtual gendisks
* as member "struct gendisk *vdisk;"
---- a/drivers/staging/lustre/include/linux/libcfs/libcfs.h
-+++ b/drivers/staging/lustre/include/linux/libcfs/libcfs.h
-@@ -125,8 +125,10 @@ extern struct miscdevice libcfs_dev;
- /**
- * The path of debug log dump upcall script.
- */
-+#ifndef CONFIG_READONLY_USERMODEHELPER
- extern char lnet_upcall[1024];
- extern char lnet_debug_log_upcall[1024];
-+#endif
-
- extern struct cfs_wi_sched *cfs_sched_rehash;
-
---- a/drivers/staging/lustre/lnet/libcfs/linux/linux-debug.c
-+++ b/drivers/staging/lustre/lnet/libcfs/linux/linux-debug.c
-@@ -57,7 +57,14 @@
-
- #include <linux/kallsyms.h>
-
-+#ifdef CONFIG_READONLY_USERMODEHELPER
-+static const
- char lnet_upcall[1024] = "/usr/lib/lustre/lnet_upcall";
-+#endif
-+
-+#ifdef CONFIG_READONLY_USERMODEHELPER
-+static const
-+#endif
- char lnet_debug_log_upcall[1024] = "/usr/lib/lustre/lnet_debug_log_upcall";
-
- /**
-@@ -74,7 +81,7 @@ void libcfs_run_debug_log_upcall(char *f
- "PATH=/sbin:/bin:/usr/sbin:/usr/bin",
- NULL};
-
-- argv[0] = lnet_debug_log_upcall;
-+ argv[0] = (char *)lnet_debug_log_upcall;
-
- LASSERTF(file, "called on a null filename\n");
- argv[1] = file; /* only need to pass the path of the file */
-@@ -100,7 +107,7 @@ void libcfs_run_upcall(char **argv)
- "PATH=/sbin:/bin:/usr/sbin:/usr/bin",
- NULL};
-
-- argv[0] = lnet_upcall;
-+ argv[0] = (char *)lnet_upcall;
- argc = 1;
- while (argv[argc])
- argc++;
---- a/drivers/staging/lustre/lnet/libcfs/module.c
-+++ b/drivers/staging/lustre/lnet/libcfs/module.c
-@@ -366,6 +366,7 @@ static struct ctl_table lnet_table[] = {
- .proc_handler = &proc_cpt_table,
- },
-
-+#ifndef CONFIG_READONLY_USERMODEHELPER
- {
- .procname = "upcall",
- .data = lnet_upcall,
-@@ -380,6 +381,7 @@ static struct ctl_table lnet_table[] = {
- .mode = 0644,
- .proc_handler = &proc_dostring,
- },
-+#endif
- {
- .procname = "catastrophe",
- .data = &libcfs_catastrophe,
--- a/drivers/video/fbdev/uvesafb.c
+++ b/drivers/video/fbdev/uvesafb.c
@@ -30,7 +30,11 @@ static struct cb_id uvesafb_cn_id = {
@@ -324,7 +255,7 @@ Not-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
-@@ -669,6 +669,7 @@ static struct ctl_table kern_table[] = {
+@@ -662,6 +662,7 @@ static struct ctl_table kern_table[] = {
},
#endif
#ifdef CONFIG_UEVENT_HELPER
@@ -332,7 +263,7 @@ Not-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
{
.procname = "hotplug",
.data = &uevent_helper,
-@@ -677,6 +678,7 @@ static struct ctl_table kern_table[] = {
+@@ -670,6 +671,7 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dostring,
},
#endif
@@ -340,7 +271,7 @@ Not-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
#ifdef CONFIG_CHR_DEV_SG
{
.procname = "sg-big-buff",
-@@ -1093,6 +1095,7 @@ static struct ctl_table kern_table[] = {
+@@ -1079,6 +1081,7 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec,
},
#endif
@@ -348,7 +279,7 @@ Not-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
{
.procname = "poweroff_cmd",
.data = &poweroff_cmd,
-@@ -1100,6 +1103,7 @@ static struct ctl_table kern_table[] = {
+@@ -1086,6 +1089,7 @@ static struct ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = proc_dostring,
},
diff --git a/c06.patch b/c06.patch
index a6efc40c0b82ad..ffbb2e2cf61568 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
-@@ -1368,6 +1368,13 @@ static int zram_remove(struct zram *zram
+@@ -1369,6 +1369,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)
-@@ -1382,6 +1389,7 @@ static ssize_t hot_add_show(struct class
+@@ -1383,6 +1390,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,
-@@ -1412,23 +1420,19 @@ static ssize_t hot_remove_store(struct c
+@@ -1413,23 +1421,19 @@ static ssize_t hot_remove_store(struct c
mutex_unlock(&zram_index_mutex);
return ret ? ret : count;
}
diff --git a/csdio2.patch b/csdio2.patch
index 1a66ab8d8a9edd..8ce227bbed74e9 100644
--- a/csdio2.patch
+++ b/csdio2.patch
@@ -1394,7 +1394,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
+#endif
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
-@@ -93,6 +93,7 @@ header-y += coff.h
+@@ -94,6 +94,7 @@ header-y += coff.h
header-y += connector.h
header-y += const.h
header-y += cramfs_fs.h
diff --git a/d02.patch b/d02.patch
index c08738f3ea2631..b39ec91134cf54 100644
--- a/d02.patch
+++ b/d02.patch
@@ -4,7 +4,7 @@
--- a/drivers/infiniband/hw/nes/nes.c
+++ b/drivers/infiniband/hw/nes/nes.c
-@@ -817,7 +817,7 @@ static struct pci_driver nes_pci_driver
+@@ -816,7 +816,7 @@ static struct pci_driver nes_pci_driver
.remove = nes_remove,
};
@@ -13,7 +13,7 @@
{
unsigned int devfn = 0xffffffff;
unsigned char bus_number = 0xff;
-@@ -836,7 +836,7 @@ static ssize_t nes_show_adapter(struct d
+@@ -835,7 +835,7 @@ static ssize_t nes_show_adapter(struct d
return snprintf(buf, PAGE_SIZE, "%x:%x\n", bus_number, devfn);
}
@@ -22,7 +22,7 @@
const char *buf, size_t count)
{
char *p = (char *)buf;
-@@ -845,7 +845,7 @@ static ssize_t nes_store_adapter(struct
+@@ -844,7 +844,7 @@ static ssize_t nes_store_adapter(struct
return strnlen(buf, count);
}
@@ -31,7 +31,7 @@
{
u32 eeprom_cmd = 0xdead;
u32 i = 0;
-@@ -861,7 +861,7 @@ static ssize_t nes_show_ee_cmd(struct de
+@@ -860,7 +860,7 @@ static ssize_t nes_show_ee_cmd(struct de
return snprintf(buf, PAGE_SIZE, "0x%x\n", eeprom_cmd);
}
@@ -40,7 +40,7 @@
const char *buf, size_t count)
{
char *p = (char *)buf;
-@@ -882,7 +882,7 @@ static ssize_t nes_store_ee_cmd(struct d
+@@ -881,7 +881,7 @@ static ssize_t nes_store_ee_cmd(struct d
return strnlen(buf, count);
}
@@ -49,7 +49,7 @@
{
u32 eeprom_data = 0xdead;
u32 i = 0;
-@@ -899,7 +899,7 @@ static ssize_t nes_show_ee_data(struct d
+@@ -898,7 +898,7 @@ static ssize_t nes_show_ee_data(struct d
return snprintf(buf, PAGE_SIZE, "0x%x\n", eeprom_data);
}
@@ -58,7 +58,7 @@
const char *buf, size_t count)
{
char *p = (char *)buf;
-@@ -920,7 +920,7 @@ static ssize_t nes_store_ee_data(struct
+@@ -919,7 +919,7 @@ static ssize_t nes_store_ee_data(struct
return strnlen(buf, count);
}
@@ -67,7 +67,7 @@
{
u32 flash_cmd = 0xdead;
u32 i = 0;
-@@ -937,7 +937,7 @@ static ssize_t nes_show_flash_cmd(struct
+@@ -936,7 +936,7 @@ static ssize_t nes_show_flash_cmd(struct
return snprintf(buf, PAGE_SIZE, "0x%x\n", flash_cmd);
}
@@ -76,7 +76,7 @@
const char *buf, size_t count)
{
char *p = (char *)buf;
-@@ -958,7 +958,7 @@ static ssize_t nes_store_flash_cmd(struc
+@@ -957,7 +957,7 @@ static ssize_t nes_store_flash_cmd(struc
return strnlen(buf, count);
}
@@ -85,7 +85,7 @@
{
u32 flash_data = 0xdead;
u32 i = 0;
-@@ -975,7 +975,7 @@ static ssize_t nes_show_flash_data(struc
+@@ -974,7 +974,7 @@ static ssize_t nes_show_flash_data(struc
return snprintf(buf, PAGE_SIZE, "0x%x\n", flash_data);
}
@@ -94,7 +94,7 @@
const char *buf, size_t count)
{
char *p = (char *)buf;
-@@ -996,12 +996,12 @@ static ssize_t nes_store_flash_data(stru
+@@ -995,12 +995,12 @@ static ssize_t nes_store_flash_data(stru
return strnlen(buf, count);
}
@@ -109,7 +109,7 @@
const char *buf, size_t count)
{
char *p = (char *)buf;
-@@ -1012,7 +1012,7 @@ static ssize_t nes_store_nonidx_addr(str
+@@ -1011,7 +1011,7 @@ static ssize_t nes_store_nonidx_addr(str
return strnlen(buf, count);
}
@@ -118,7 +118,7 @@
{
u32 nonidx_data = 0xdead;
u32 i = 0;
-@@ -1029,7 +1029,7 @@ static ssize_t nes_show_nonidx_data(stru
+@@ -1028,7 +1028,7 @@ static ssize_t nes_show_nonidx_data(stru
return snprintf(buf, PAGE_SIZE, "0x%x\n", nonidx_data);
}
@@ -127,7 +127,7 @@
const char *buf, size_t count)
{
char *p = (char *)buf;
-@@ -1050,12 +1050,12 @@ static ssize_t nes_store_nonidx_data(str
+@@ -1049,12 +1049,12 @@ static ssize_t nes_store_nonidx_data(str
return strnlen(buf, count);
}
@@ -142,7 +142,7 @@
const char *buf, size_t count)
{
char *p = (char *)buf;
-@@ -1066,7 +1066,7 @@ static ssize_t nes_store_idx_addr(struct
+@@ -1065,7 +1065,7 @@ static ssize_t nes_store_idx_addr(struct
return strnlen(buf, count);
}
@@ -151,7 +151,7 @@
{
u32 idx_data = 0xdead;
u32 i = 0;
-@@ -1083,7 +1083,7 @@ static ssize_t nes_show_idx_data(struct
+@@ -1082,7 +1082,7 @@ static ssize_t nes_show_idx_data(struct
return snprintf(buf, PAGE_SIZE, "0x%x\n", idx_data);
}
@@ -160,7 +160,7 @@
const char *buf, size_t count)
{
char *p = (char *)buf;
-@@ -1104,11 +1104,7 @@ static ssize_t nes_store_idx_data(struct
+@@ -1103,11 +1103,7 @@ static ssize_t nes_store_idx_data(struct
return strnlen(buf, count);
}
@@ -173,7 +173,7 @@
{
u32 wqm_quanta_value = 0xdead;
u32 i = 0;
-@@ -1125,12 +1121,8 @@ static ssize_t nes_show_wqm_quanta(struc
+@@ -1124,12 +1120,8 @@ static ssize_t nes_show_wqm_quanta(struc
return snprintf(buf, PAGE_SIZE, "0x%X\n", wqm_quanta_value);
}
@@ -188,7 +188,7 @@
{
unsigned long wqm_quanta_value;
u32 wqm_config1;
-@@ -1155,26 +1147,16 @@ static ssize_t nes_store_wqm_quanta(stru
+@@ -1154,26 +1146,16 @@ static ssize_t nes_store_wqm_quanta(stru
return strnlen(buf, count);
}
diff --git a/d07.patch b/d07.patch
index 5778bbc0a0d0f6..26e38169ecf6b7 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
-@@ -3560,14 +3560,12 @@ static int check_module_parm(void)
+@@ -3554,14 +3554,12 @@ static int check_module_parm(void)
return ret;
}
diff --git a/d11.patch b/d11.patch
index 332e64ac370d4c..3f591a2b7d463f 100644
--- a/d11.patch
+++ b/d11.patch
@@ -87,7 +87,7 @@
&driver_attr_group.attr,
--- a/drivers/s390/net/netiucv.c
+++ b/drivers/s390/net/netiucv.c
-@@ -2041,8 +2041,8 @@ out_netdev:
+@@ -2020,8 +2020,8 @@ out_netdev:
return NULL;
}
@@ -98,7 +98,7 @@
{
char username[9];
char userdata[17];
-@@ -2103,11 +2103,10 @@ out_free_ndev:
+@@ -2082,11 +2082,10 @@ out_free_ndev:
netiucv_free_netdevice(dev);
return rc;
}
@@ -113,7 +113,7 @@
{
struct iucv_connection *cp;
struct net_device *ndev;
-@@ -2153,8 +2152,7 @@ static ssize_t remove_write (struct devi
+@@ -2132,8 +2131,7 @@ static ssize_t remove_write (struct devi
IUCV_DBF_TEXT(data, 2, "remove_write: unknown device\n");
return -EINVAL;
}
@@ -125,7 +125,7 @@
&driver_attr_connection.attr,
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
-@@ -5740,8 +5740,8 @@ static struct ccwgroup_driver qeth_core_
+@@ -5736,8 +5736,8 @@ static struct ccwgroup_driver qeth_core_
.restore = qeth_core_restore,
};
@@ -136,7 +136,7 @@
{
int err;
-@@ -5750,7 +5750,7 @@ static ssize_t qeth_core_driver_group_st
+@@ -5746,7 +5746,7 @@ static ssize_t qeth_core_driver_group_st
return err ? err : count;
}
diff --git a/d15.patch b/d15.patch
index df935a57f83bf8..ac57eafabe0a46 100644
--- a/d15.patch
+++ b/d15.patch
@@ -5,7 +5,7 @@
--- a/drivers/s390/net/ctcm_main.c
+++ b/drivers/s390/net/ctcm_main.c
-@@ -1771,15 +1771,15 @@ static struct ccwgroup_driver ctcm_group
+@@ -1770,15 +1770,15 @@ static struct ccwgroup_driver ctcm_group
.restore = ctcm_pm_resume,
};
diff --git a/driver-core-add-class_attr_wo.patch b/driver-core-add-class_attr_wo.patch
deleted file mode 100644
index 4fe5eaa76eeb48..00000000000000
--- a/driver-core-add-class_attr_wo.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From foo@baz Tue Nov 22 18:29:57 CET 2016
-Date: Tue, 22 Nov 2016 18:29:57 +0100
-To: Greg KH <gregkh@linuxfoundation.org>
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Subject: [PATCH] driver core: add CLASS_ATTR_WO()
-
-Some class subsystems are open-coding CLASS_ATTR_WO because the driver
-core never provided it. Add the macro to device.h so that we can go
-around and fix up the individual subsystems as needed.
-
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- include/linux/device.h | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/include/linux/device.h
-+++ b/include/linux/device.h
-@@ -463,6 +463,8 @@ struct class_attribute {
- struct class_attribute class_attr_##_name = __ATTR_RW(_name)
- #define CLASS_ATTR_RO(_name) \
- struct class_attribute class_attr_##_name = __ATTR_RO(_name)
-+#define CLASS_ATTR_WO(_name) \
-+ struct class_attribute class_attr_##_name = __ATTR_WO(_name)
-
- extern int __must_check class_create_file_ns(struct class *class,
- const struct class_attribute *attr,
diff --git a/driver-core-class-add-class_groups-support.patch b/driver-core-class-add-class_groups-support.patch
deleted file mode 100644
index bc31f3f6af655b..00000000000000
--- a/driver-core-class-add-class_groups-support.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From foo@baz Wed Nov 23 12:03:37 CET 2016
-Date: Wed, 23 Nov 2016 12:03:37 +0100
-To: Greg KH <gregkh@linuxfoundation.org>
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Subject: [PATCH] driver core: class: add class_groups support
-
-struct class needs to have a set of default groups that are added, as
-adding individual attributes does not work well in the long run. So add
-support for that.
-
-Future patches will convert the existing usages of class_attrs to use
-class_groups and then class_attrs will go away.
-
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/base/class.c | 15 +++++++++++++++
- include/linux/device.h | 2 ++
- 2 files changed, 17 insertions(+)
-
---- a/drivers/base/class.c
-+++ b/drivers/base/class.c
-@@ -163,6 +163,18 @@ static void klist_class_dev_put(struct k
- put_device(dev);
- }
-
-+static int class_add_groups(struct class *cls,
-+ const struct attribute_group **groups)
-+{
-+ return sysfs_create_groups(&cls->p->subsys.kobj, groups);
-+}
-+
-+static void class_remove_groups(struct class *cls,
-+ const struct attribute_group **groups)
-+{
-+ return sysfs_remove_groups(&cls->p->subsys.kobj, groups);
-+}
-+
- int __class_register(struct class *cls, struct lock_class_key *key)
- {
- struct subsys_private *cp;
-@@ -203,6 +215,8 @@ int __class_register(struct class *cls,
- kfree(cp);
- return error;
- }
-+ error = class_add_groups(class_get(cls), cls->class_groups);
-+ class_put(cls);
- error = add_class_attrs(class_get(cls));
- class_put(cls);
- return error;
-@@ -213,6 +227,7 @@ void class_unregister(struct class *cls)
- {
- pr_debug("device class '%s': unregistering\n", cls->name);
- remove_class_attrs(cls);
-+ class_remove_groups(cls, cls->class_groups);
- kset_unregister(&cls->p->subsys);
- }
-
---- a/include/linux/device.h
-+++ b/include/linux/device.h
-@@ -360,6 +360,7 @@ int subsys_virtual_register(struct bus_t
- * @name: Name of the class.
- * @owner: The module owner.
- * @class_attrs: Default attributes of this class.
-+ * @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.
- * @dev_uevent: Called when a device is added, removed from this class, or a
-@@ -388,6 +389,7 @@ struct class {
- struct module *owner;
-
- struct class_attribute *class_attrs;
-+ const struct attribute_group **class_groups;
- const struct attribute_group **dev_groups;
- struct kobject *dev_kobj;
-
diff --git a/driver-core-devcoredump-convert-to-use-class_groups.patch b/driver-core-devcoredump-convert-to-use-class_groups.patch
deleted file mode 100644
index b6e1575f92bc39..00000000000000
--- a/driver-core-devcoredump-convert-to-use-class_groups.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From foo@baz Wed Nov 23 12:05:55 CET 2016
-Date: Wed, 23 Nov 2016 12:05:55 +0100
-To: Greg KH <gregkh@linuxfoundation.org>
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Subject: [PATCH] driver core: devcoredump: convert to use class_groups
-
-Convert devcoredump to use class_groups instead of class_attrs as that's
-the correct way to handle lists of class attribute files.
-
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/base/devcoredump.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
---- a/drivers/base/devcoredump.c
-+++ b/drivers/base/devcoredump.c
-@@ -160,18 +160,20 @@ static ssize_t disabled_store(struct cla
-
- return count;
- }
-+static CLASS_ATTR_RW(disabled);
-
--static struct class_attribute devcd_class_attrs[] = {
-- __ATTR_RW(disabled),
-- __ATTR_NULL
-+static struct attribute *devcd_class_attrs[] = {
-+ &class_attr_disabled.attr,
-+ NULL,
- };
-+ATTRIBUTE_GROUPS(devcd_class);
-
- static struct class devcd_class = {
- .name = "devcoredump",
- .owner = THIS_MODULE,
- .dev_release = devcd_dev_release,
- .dev_groups = devcd_dev_groups,
-- .class_attrs = devcd_class_attrs,
-+ .class_groups = devcd_class_groups,
- };
-
- static ssize_t devcd_readv(char *buffer, loff_t offset, size_t count,
diff --git a/driver-core-firmware_class-convert-to-use-class_groups.patch b/driver-core-firmware_class-convert-to-use-class_groups.patch
deleted file mode 100644
index ce2c8db777c41d..00000000000000
--- a/driver-core-firmware_class-convert-to-use-class_groups.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From foo@baz Wed Nov 23 12:06:51 CET 2016
-Date: Wed, 23 Nov 2016 12:06:51 +0100
-To: Greg KH <gregkh@linuxfoundation.org>
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Subject: [PATCH] driver core: firmware_class: convert to use class_groups
-
-Convert the firmware core to use class_groups instead of class_attrs as
-that's the correct way to handle lists of class attribute files.
-
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/base/firmware_class.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
---- a/drivers/base/firmware_class.c
-+++ b/drivers/base/firmware_class.c
-@@ -546,11 +546,13 @@ static ssize_t timeout_store(struct clas
-
- return count;
- }
-+static CLASS_ATTR_RW(timeout);
-
--static struct class_attribute firmware_class_attrs[] = {
-- __ATTR_RW(timeout),
-- __ATTR_NULL
-+static struct attribute *firmware_class_attrs[] = {
-+ &class_attr_timeout.attr,
-+ NULL,
- };
-+ATTRIBUTE_GROUPS(firmware_class);
-
- static void fw_dev_release(struct device *dev)
- {
-@@ -585,7 +587,7 @@ static int firmware_uevent(struct device
-
- static struct class firmware_class = {
- .name = "firmware",
-- .class_attrs = firmware_class_attrs,
-+ .class_groups = firmware_class_groups,
- .dev_uevent = firmware_uevent,
- .dev_release = fw_dev_release,
- };
diff --git a/p23.patch b/p23.patch
index e25525418e8419..6a652165b8467e 100644
--- a/p23.patch
+++ b/p23.patch
@@ -4,7 +4,7 @@
--- a/drivers/rpmsg/rpmsg_core.c
+++ b/drivers/rpmsg/rpmsg_core.c
-@@ -275,7 +275,8 @@ field##_show(struct device *dev, \
+@@ -310,7 +310,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");
-@@ -290,15 +291,17 @@ static ssize_t modalias_show(struct devi
+@@ -325,15 +326,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,
-@@ -393,7 +396,7 @@ static int rpmsg_dev_remove(struct devic
+@@ -435,7 +438,7 @@ static int rpmsg_dev_remove(struct devic
static struct bus_type rpmsg_bus = {
.name = "rpmsg",
.match = rpmsg_dev_match,
diff --git a/p30.patch b/p30.patch
index 30164305ce6064..75d041de3a8e9c 100644
--- a/p30.patch
+++ b/p30.patch
@@ -4,7 +4,7 @@
--- a/drivers/hwtracing/intel_th/core.c
+++ b/drivers/hwtracing/intel_th/core.c
-@@ -136,7 +136,6 @@ static int intel_th_remove(struct device
+@@ -139,7 +139,6 @@ static int intel_th_remove(struct device
static struct bus_type intel_th_bus = {
.name = "intel_th",
diff --git a/pci_groups.patch b/pci_groups.patch
index afd7f8aaaaeb88..5617216362a447 100644
--- a/pci_groups.patch
+++ b/pci_groups.patch
@@ -6,7 +6,7 @@
--- a/drivers/infiniband/hw/nes/nes.c
+++ b/drivers/infiniband/hw/nes/nes.c
-@@ -810,13 +810,6 @@ static void nes_remove(struct pci_dev *p
+@@ -809,13 +809,6 @@ static void nes_remove(struct pci_dev *p
}
@@ -20,7 +20,7 @@
static ssize_t adapter_show(struct device_driver *ddp, char *buf)
{
unsigned int devfn = 0xffffffff;
-@@ -1158,35 +1151,29 @@ static DRIVER_ATTR_RW(idx_addr);
+@@ -1157,35 +1150,29 @@ static DRIVER_ATTR_RW(idx_addr);
static DRIVER_ATTR_RW(idx_data);
static DRIVER_ATTR_RW(wqm_quanta);
@@ -79,7 +79,7 @@
/**
* nes_init_module - module initialization entry point
-@@ -1194,20 +1181,13 @@ static void nes_remove_driver_sysfs(stru
+@@ -1193,20 +1180,13 @@ static void nes_remove_driver_sysfs(stru
static int __init nes_init_module(void)
{
int retval;
@@ -101,7 +101,7 @@
}
-@@ -1217,7 +1197,6 @@ static int __init nes_init_module(void)
+@@ -1216,7 +1196,6 @@ static int __init nes_init_module(void)
static void __exit nes_exit_module(void)
{
nes_cm_stop();
diff --git a/series b/series
index 661e3b0fa70591..2cac3379f7a97a 100644
--- a/series
+++ b/series
@@ -2,7 +2,6 @@
0002-drbd-rename-usermode_helper-to-drbd_usermode_helper.patch
0003-Make-static-usermode-helper-binaries-constant.patch
0004-Introduce-CONFIG_READONLY_USERMODEHELPER.patch
-usb-core-add-missing-license-information.patch
## broken patch!
#
@@ -58,10 +57,6 @@ p29.patch
p30.patch
p31.patch
-driver-core-add-class_attr_wo.patch
-driver-core-class-add-class_groups-support.patch
-driver-core-devcoredump-convert-to-use-class_groups.patch
-driver-core-firmware_class-convert-to-use-class_groups.patch
c03.patch
c04.patch
c05.patch
diff --git a/staging-exfat-add-filesystem-to-the-build.patch b/staging-exfat-add-filesystem-to-the-build.patch
index 54646b28b582e5..0c72a826dc8353 100644
--- a/staging-exfat-add-filesystem-to-the-build.patch
+++ b/staging-exfat-add-filesystem-to-the-build.patch
@@ -18,7 +18,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
-@@ -106,4 +106,6 @@ source "drivers/staging/greybus/Kconfig"
+@@ -104,4 +104,6 @@ source "drivers/staging/greybus/Kconfig"
source "drivers/staging/vc04_services/Kconfig"
@@ -27,10 +27,10 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
endif # STAGING
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
-@@ -42,3 +42,4 @@ obj-$(CONFIG_ISDN_I4L) += i4l/
+@@ -41,3 +41,4 @@ obj-$(CONFIG_ISDN_I4L) += i4l/
obj-$(CONFIG_KS7010) += ks7010/
obj-$(CONFIG_GREYBUS) += greybus/
- obj-$(CONFIG_BCM2708_VCHIQ) += vc04_services/
+ obj-$(CONFIG_BCM2835_VCHIQ) += vc04_services/
+obj-$(CONFIG_EXFAT_FS) += exfat/
--- /dev/null
+++ b/drivers/staging/exfat/Kconfig
diff --git a/usb-core-add-missing-license-information.patch b/usb-core-add-missing-license-information.patch
deleted file mode 100644
index 6c353e4b54fc55..00000000000000
--- a/usb-core-add-missing-license-information.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From foo@baz Sun Aug 21 16:22:06 CEST 2016
-Date: Sun, 21 Aug 2016 16:22:06 +0200
-To: Greg KH <gregkh@linuxfoundation.org>
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Subject: [PATCH] USB: core: add missing license information
-
-Some of the USB core files were missing explicit license information.
-As all files in the kernel tree are implicitly licensed under the
-GPLv2-only, be explicit in case someone get confused looking at
-individual files by using the SPDX nomenclature.
-
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/usb/core/buffer.c | 3 +++
- drivers/usb/core/config.c | 5 +++++
- drivers/usb/core/driver.c | 3 +++
- drivers/usb/core/endpoint.c | 4 +++-
- drivers/usb/core/file.c | 2 ++
- drivers/usb/core/generic.c | 2 ++
- drivers/usb/core/hub.c | 2 ++
- drivers/usb/core/message.c | 3 +++
- drivers/usb/core/notify.c | 2 ++
- drivers/usb/core/sysfs.c | 2 ++
- drivers/usb/core/urb.c | 5 +++++
- drivers/usb/core/usb.c | 3 +++
- drivers/usb/core/usb.h | 5 +++++
- 13 files changed, 40 insertions(+), 1 deletion(-)
-
---- a/drivers/usb/core/buffer.c
-+++ b/drivers/usb/core/buffer.c
-@@ -3,6 +3,9 @@
- *
- * This implementation plugs in through generic "usb_bus" level methods,
- * and should work with all USB controllers, regardless of bus type.
-+ *
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
- */
-
- #include <linux/module.h>
---- a/drivers/usb/core/config.c
-+++ b/drivers/usb/core/config.c
-@@ -1,3 +1,8 @@
-+/*
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
-+ */
-+
- #include <linux/usb.h>
- #include <linux/usb/ch9.h>
- #include <linux/usb/hcd.h>
---- a/drivers/usb/core/driver.c
-+++ b/drivers/usb/core/driver.c
-@@ -15,6 +15,9 @@
- * (usb_device_id matching changes by Adam J. Richter)
- * (C) Copyright Greg Kroah-Hartman 2002-2003
- *
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
-+ *
- * NOTE! This is not actually a driver at all, rather this is
- * just a collection of helper routines that implement the
- * matching, probing, releasing, suspending and resuming for
---- a/drivers/usb/core/endpoint.c
-+++ b/drivers/usb/core/endpoint.c
-@@ -5,8 +5,10 @@
- * (C) Copyright 2002,2004 IBM Corp.
- * (C) Copyright 2006 Novell Inc.
- *
-- * Endpoint sysfs stuff
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
- *
-+ * Endpoint sysfs stuff
- */
-
- #include <linux/kernel.h>
---- a/drivers/usb/core/file.c
-+++ b/drivers/usb/core/file.c
-@@ -13,6 +13,8 @@
- * (usb_device_id matching changes by Adam J. Richter)
- * (C) Copyright Greg Kroah-Hartman 2002-2003
- *
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
- */
-
- #include <linux/module.h>
---- a/drivers/usb/core/generic.c
-+++ b/drivers/usb/core/generic.c
-@@ -15,6 +15,8 @@
- * (usb_device_id matching changes by Adam J. Richter)
- * (C) Copyright Greg Kroah-Hartman 2002-2003
- *
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
- */
-
- #include <linux/usb.h>
---- a/drivers/usb/core/hub.c
-+++ b/drivers/usb/core/hub.c
-@@ -6,6 +6,8 @@
- * (C) Copyright 1999 Gregory P. Smith
- * (C) Copyright 2001 Brad Hards (bhards@bigpond.net.au)
- *
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
- */
-
- #include <linux/kernel.h>
---- a/drivers/usb/core/message.c
-+++ b/drivers/usb/core/message.c
-@@ -1,5 +1,8 @@
- /*
- * message.c - synchronous message handling
-+ *
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
- */
-
- #include <linux/pci.h> /* for scatterlist macros */
---- a/drivers/usb/core/notify.c
-+++ b/drivers/usb/core/notify.c
-@@ -6,6 +6,8 @@
- * notifier functions originally based on those in kernel/sys.c
- * but fixed up to not be so broken.
- *
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
- */
-
-
---- a/drivers/usb/core/sysfs.c
-+++ b/drivers/usb/core/sysfs.c
-@@ -7,6 +7,8 @@
- *
- * All of the sysfs file attributes for usb devices and interfaces.
- *
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
- */
-
-
---- a/drivers/usb/core/urb.c
-+++ b/drivers/usb/core/urb.c
-@@ -1,3 +1,8 @@
-+/*
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
-+ */
-+
- #include <linux/module.h>
- #include <linux/string.h>
- #include <linux/bitops.h>
---- a/drivers/usb/core/usb.c
-+++ b/drivers/usb/core/usb.c
-@@ -12,6 +12,9 @@
- * (usb_device_id matching changes by Adam J. Richter)
- * (C) Copyright Greg Kroah-Hartman 2002-2003
- *
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
-+ *
- * NOTE! This is not actually a driver at all, rather this is
- * just a collection of helper routines that implement the
- * generic USB things that the real drivers can use..
---- a/drivers/usb/core/usb.h
-+++ b/drivers/usb/core/usb.h
-@@ -1,3 +1,8 @@
-+/*
-+ * Released under the GPLv2 only.
-+ * SPDX-License-Identifier: GPL-2.0
-+ */
-+
- #include <linux/pm.h>
- #include <linux/acpi.h>
-