diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-11-30 15:37:22 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-11-30 15:37:22 +0100 |
commit | 946cb48082b0bbff0bb96b3f816d0327bf409d79 (patch) | |
tree | ddf24fb1cffad74877ccd6d4c3421cf8e6cc5bb8 | |
parent | 3c37d678907cad7f656ff2d3f1d7d9781cf90b58 (diff) | |
download | patches-946cb48082b0bbff0bb96b3f816d0327bf409d79.tar.gz |
more patches updated
-rw-r--r-- | c09.patch | 2 | ||||
-rw-r--r-- | c10.patch | 4 | ||||
-rw-r--r-- | csdio2.patch | 2 | ||||
-rw-r--r-- | d06.patch | 61 | ||||
-rw-r--r-- | d07.patch | 23 | ||||
-rw-r--r-- | d08.patch | 61 | ||||
-rw-r--r-- | d09.patch | 24 | ||||
-rw-r--r-- | d10.patch | 200 | ||||
-rw-r--r-- | d11.patch | 147 | ||||
-rw-r--r-- | d12.patch | 34 | ||||
-rw-r--r-- | d13.patch | 29 | ||||
-rw-r--r-- | d14.patch | 73 | ||||
-rw-r--r-- | d15.patch | 26 | ||||
-rw-r--r-- | d16.patch | 120 | ||||
-rw-r--r-- | d99.patch | 29 | ||||
-rw-r--r-- | pci_groups.patch | 131 | ||||
-rw-r--r-- | series | 13 |
17 files changed, 975 insertions, 4 deletions
diff --git a/c09.patch b/c09.patch index 8023640ffecd35..d6cca560e1da40 100644 --- a/c09.patch +++ b/c09.patch @@ -21,7 +21,7 @@ mutex_unlock(&ctl_mutex); return n; } -+static CLASS_ATTRIBUTE_RO(device_map); ++static CLASS_ATTR_RO(device_map); -static ssize_t class_pktcdvd_store_add(struct class *c, - struct class_attribute *attr, diff --git a/c10.patch b/c10.patch index 422409d813db94..f55fd6edc0bff7 100644 --- a/c10.patch +++ b/c10.patch @@ -17,7 +17,7 @@ return ret; } -+static CLASS_ATTRIBUTE_RO(model); ++static CLASS_ATTR_RO(model); -static ssize_t merisc_revision_show(struct class *class, char *buf) +static ssize_t revision_show(struct class *class, char *buf) @@ -28,7 +28,7 @@ return ret; } -+static CLASS_ATTRIBUTE_RO(revision); ++static CLASS_ATTR_RO(revision); -static struct class_attribute merisc_class_attrs[] = { - __ATTR(model, S_IRUGO, merisc_model_show, NULL), diff --git a/csdio2.patch b/csdio2.patch index 74fca2d76e81c6..1a66ab8d8a9edd 100644 --- a/csdio2.patch +++ b/csdio2.patch @@ -266,7 +266,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> + help + Enter device id for targeted sdio device, this may be overwritten by + module parameters. -+. ++ endmenu --- a/drivers/char/Makefile diff --git a/d06.patch b/d06.patch new file mode 100644 index 00000000000000..bff4fdf7205c51 --- /dev/null +++ b/d06.patch @@ -0,0 +1,61 @@ +--- + drivers/net/caif/caif_spi.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +--- a/drivers/net/caif/caif_spi.c ++++ b/drivers/net/caif/caif_spi.c +@@ -289,44 +289,44 @@ static LIST_HEAD(cfspi_list); + static spinlock_t cfspi_list_lock; + + /* SPI uplink head alignment. */ +-static ssize_t show_up_head_align(struct device_driver *driver, char *buf) ++static ssize_t up_head_align_show(struct device_driver *driver, char *buf) + { + return sprintf(buf, "%d\n", spi_up_head_align); + } + +-static DRIVER_ATTR(up_head_align, S_IRUSR, show_up_head_align, NULL); ++static DRIVER_ATTR_RO(up_head_align); + + /* SPI uplink tail alignment. */ +-static ssize_t show_up_tail_align(struct device_driver *driver, char *buf) ++static ssize_t up_tail_align_show(struct device_driver *driver, char *buf) + { + return sprintf(buf, "%d\n", spi_up_tail_align); + } + +-static DRIVER_ATTR(up_tail_align, S_IRUSR, show_up_tail_align, NULL); ++static DRIVER_ATTR_RO(up_tail_align); + + /* SPI downlink head alignment. */ +-static ssize_t show_down_head_align(struct device_driver *driver, char *buf) ++static ssize_t down_head_align_show(struct device_driver *driver, char *buf) + { + return sprintf(buf, "%d\n", spi_down_head_align); + } + +-static DRIVER_ATTR(down_head_align, S_IRUSR, show_down_head_align, NULL); ++static DRIVER_ATTR_RO(down_head_align); + + /* SPI downlink tail alignment. */ +-static ssize_t show_down_tail_align(struct device_driver *driver, char *buf) ++static ssize_t down_tail_align_show(struct device_driver *driver, char *buf) + { + return sprintf(buf, "%d\n", spi_down_tail_align); + } + +-static DRIVER_ATTR(down_tail_align, S_IRUSR, show_down_tail_align, NULL); ++static DRIVER_ATTR_RO(down_tail_align); + + /* SPI frame alignment. */ +-static ssize_t show_frame_align(struct device_driver *driver, char *buf) ++static ssize_t frame_align_show(struct device_driver *driver, char *buf) + { + return sprintf(buf, "%d\n", spi_frm_align); + } + +-static DRIVER_ATTR(frame_align, S_IRUSR, show_frame_align, NULL); ++static DRIVER_ATTR_RO(frame_align); + + int cfspi_xmitfrm(struct cfspi *cfspi, u8 *buf, size_t len) + { diff --git a/d07.patch b/d07.patch new file mode 100644 index 00000000000000..5778bbc0a0d0f6 --- /dev/null +++ b/d07.patch @@ -0,0 +1,23 @@ +--- + drivers/net/ethernet/ibm/ehea/ehea_main.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +--- 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) + return ret; + } + +-static ssize_t ehea_show_capabilities(struct device_driver *drv, +- char *buf) ++static ssize_t capabilities_show(struct device_driver *drv, char *buf) + { + return sprintf(buf, "%d", EHEA_CAPABILITIES); + } + +-static DRIVER_ATTR(capabilities, S_IRUSR | S_IRGRP | S_IROTH, +- ehea_show_capabilities, NULL); ++static DRIVER_ATTR_RO(capabilities); + + static int __init ehea_module_init(void) + { diff --git a/d08.patch b/d08.patch new file mode 100644 index 00000000000000..0bb621a5adb6b7 --- /dev/null +++ b/d08.patch @@ -0,0 +1,61 @@ +--- + drivers/net/wireless/intel/ipw2x00/ipw2100.c | 8 +++----- + drivers/net/wireless/intel/ipw2x00/ipw2200.c | 8 +++----- + 2 files changed, 6 insertions(+), 10 deletions(-) + +--- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c ++++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c +@@ -4160,12 +4160,12 @@ static ssize_t show_bssinfo(struct devic + static DEVICE_ATTR(bssinfo, S_IRUGO, show_bssinfo, NULL); + + #ifdef CONFIG_IPW2100_DEBUG +-static ssize_t show_debug_level(struct device_driver *d, char *buf) ++static ssize_t debug_level_show(struct device_driver *d, char *buf) + { + return sprintf(buf, "0x%08X\n", ipw2100_debug_level); + } + +-static ssize_t store_debug_level(struct device_driver *d, ++static ssize_t debug_level_store(struct device_driver *d, + const char *buf, size_t count) + { + u32 val; +@@ -4179,9 +4179,7 @@ static ssize_t store_debug_level(struct + + return strnlen(buf, count); + } +- +-static DRIVER_ATTR(debug_level, S_IWUSR | S_IRUGO, show_debug_level, +- store_debug_level); ++static DRIVER_ATTR_RW(debug_level); + #endif /* CONFIG_IPW2100_DEBUG */ + + static ssize_t show_fatal_error(struct device *d, +--- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c ++++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c +@@ -1195,12 +1195,12 @@ static void ipw_led_shutdown(struct ipw_ + * + * See the level definitions in ipw for details. + */ +-static ssize_t show_debug_level(struct device_driver *d, char *buf) ++static ssize_t debug_level_show(struct device_driver *d, char *buf) + { + return sprintf(buf, "0x%08X\n", ipw_debug_level); + } + +-static ssize_t store_debug_level(struct device_driver *d, const char *buf, ++static ssize_t debug_level_store(struct device_driver *d, const char *buf, + size_t count) + { + char *p = (char *)buf; +@@ -1221,9 +1221,7 @@ static ssize_t store_debug_level(struct + + return strnlen(buf, count); + } +- +-static DRIVER_ATTR(debug_level, S_IWUSR | S_IRUGO, +- show_debug_level, store_debug_level); ++static DRIVER_ATTR_RW(debug_level); + + static inline u32 ipw_get_event_log_len(struct ipw_priv *priv) + { diff --git a/d09.patch b/d09.patch new file mode 100644 index 00000000000000..d58affbbf94a5b --- /dev/null +++ b/d09.patch @@ -0,0 +1,24 @@ +--- + drivers/pcmcia/ds.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/pcmcia/ds.c ++++ b/drivers/pcmcia/ds.c +@@ -95,7 +95,7 @@ struct pcmcia_dynid { + * and causes the driver to probe for all devices again. + */ + static ssize_t +-pcmcia_store_new_id(struct device_driver *driver, const char *buf, size_t count) ++new_id_store(struct device_driver *driver, const char *buf, size_t count) + { + struct pcmcia_dynid *dynid; + struct pcmcia_driver *pdrv = to_pcmcia_drv(driver); +@@ -133,7 +133,7 @@ pcmcia_store_new_id(struct device_driver + return retval; + return count; + } +-static DRIVER_ATTR(new_id, S_IWUSR, NULL, pcmcia_store_new_id); ++static DRIVER_ATTR_WO(new_id, S_IWUSR, NULL, pcmcia_store_new_id); + + static void + pcmcia_free_dynids(struct pcmcia_driver *drv) diff --git a/d10.patch b/d10.patch new file mode 100644 index 00000000000000..139450dce5dcfc --- /dev/null +++ b/d10.patch @@ -0,0 +1,200 @@ +--- + drivers/platform/x86/thinkpad_acpi.c | 91 ++++++++++------------------------- + 1 file changed, 28 insertions(+), 63 deletions(-) + +--- a/drivers/platform/x86/thinkpad_acpi.c ++++ b/drivers/platform/x86/thinkpad_acpi.c +@@ -1430,25 +1430,20 @@ static int tpacpi_rfk_procfs_write(const + */ + + /* interface_version --------------------------------------------------- */ +-static ssize_t tpacpi_driver_interface_version_show( +- struct device_driver *drv, +- char *buf) ++static ssize_t interface_version_show(struct device_driver *drv, char *buf) + { + return snprintf(buf, PAGE_SIZE, "0x%08x\n", TPACPI_SYSFS_VERSION); + } +- +-static DRIVER_ATTR(interface_version, S_IRUGO, +- tpacpi_driver_interface_version_show, NULL); ++static DRIVER_ATTR_RO(interface_version); + + /* debug_level --------------------------------------------------------- */ +-static ssize_t tpacpi_driver_debug_show(struct device_driver *drv, +- char *buf) ++static ssize_t debug_level_show(struct device_driver *drv, char *buf) + { + return snprintf(buf, PAGE_SIZE, "0x%04x\n", dbg_level); + } + +-static ssize_t tpacpi_driver_debug_store(struct device_driver *drv, +- const char *buf, size_t count) ++static ssize_t debug_level_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + unsigned long t; + +@@ -1459,34 +1454,28 @@ static ssize_t tpacpi_driver_debug_store + + return count; + } +- +-static DRIVER_ATTR(debug_level, S_IWUSR | S_IRUGO, +- tpacpi_driver_debug_show, tpacpi_driver_debug_store); ++static DRIVER_ATTR_RW(debug_level); + + /* version ------------------------------------------------------------- */ +-static ssize_t tpacpi_driver_version_show(struct device_driver *drv, +- char *buf) ++static ssize_t version_show(struct device_driver *drv, char *buf) + { + return snprintf(buf, PAGE_SIZE, "%s v%s\n", + TPACPI_DESC, TPACPI_VERSION); + } +- +-static DRIVER_ATTR(version, S_IRUGO, +- tpacpi_driver_version_show, NULL); ++static DRIVER_ATTR_RO(version); + + /* --------------------------------------------------------------------- */ + + #ifdef CONFIG_THINKPAD_ACPI_DEBUGFACILITIES + + /* wlsw_emulstate ------------------------------------------------------ */ +-static ssize_t tpacpi_driver_wlsw_emulstate_show(struct device_driver *drv, +- char *buf) ++static ssize_t wlsw_emulstate_show(struct device_driver *drv, char *buf) + { + return snprintf(buf, PAGE_SIZE, "%d\n", !!tpacpi_wlsw_emulstate); + } + +-static ssize_t tpacpi_driver_wlsw_emulstate_store(struct device_driver *drv, +- const char *buf, size_t count) ++static ssize_t wlsw_emulstate_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + unsigned long t; + +@@ -1500,22 +1489,16 @@ static ssize_t tpacpi_driver_wlsw_emulst + + return count; + } +- +-static DRIVER_ATTR(wlsw_emulstate, S_IWUSR | S_IRUGO, +- tpacpi_driver_wlsw_emulstate_show, +- tpacpi_driver_wlsw_emulstate_store); ++static DRIVER_ATTR_RW(wlsw_emulstate); + + /* bluetooth_emulstate ------------------------------------------------- */ +-static ssize_t tpacpi_driver_bluetooth_emulstate_show( +- struct device_driver *drv, +- char *buf) ++static ssize_t bluetooth_emulstate_show(struct device_driver *drv, char *buf) + { + return snprintf(buf, PAGE_SIZE, "%d\n", !!tpacpi_bluetooth_emulstate); + } + +-static ssize_t tpacpi_driver_bluetooth_emulstate_store( +- struct device_driver *drv, +- const char *buf, size_t count) ++static ssize_t bluetooth_emulstate_store(struct device_driver *drv, ++ const char *buf, size_t count) + { + unsigned long t; + +@@ -1526,22 +1509,16 @@ static ssize_t tpacpi_driver_bluetooth_e + + return count; + } +- +-static DRIVER_ATTR(bluetooth_emulstate, S_IWUSR | S_IRUGO, +- tpacpi_driver_bluetooth_emulstate_show, +- tpacpi_driver_bluetooth_emulstate_store); ++static DRIVER_ATTR_RW(bluetooth_emulstate); + + /* wwan_emulstate ------------------------------------------------- */ +-static ssize_t tpacpi_driver_wwan_emulstate_show( +- struct device_driver *drv, +- char *buf) ++static ssize_t wwan_emulstate_show(struct device_driver *drv, char *buf) + { + return snprintf(buf, PAGE_SIZE, "%d\n", !!tpacpi_wwan_emulstate); + } + +-static ssize_t tpacpi_driver_wwan_emulstate_store( +- struct device_driver *drv, +- const char *buf, size_t count) ++static ssize_t wwan_emulstate_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + unsigned long t; + +@@ -1552,22 +1529,16 @@ static ssize_t tpacpi_driver_wwan_emulst + + return count; + } +- +-static DRIVER_ATTR(wwan_emulstate, S_IWUSR | S_IRUGO, +- tpacpi_driver_wwan_emulstate_show, +- tpacpi_driver_wwan_emulstate_store); ++static DRIVER_ATTR_RW(wwan_emulstate); + + /* uwb_emulstate ------------------------------------------------- */ +-static ssize_t tpacpi_driver_uwb_emulstate_show( +- struct device_driver *drv, +- char *buf) ++static ssize_t uwb_emulstate_show(struct device_driver *drv, char *buf) + { + return snprintf(buf, PAGE_SIZE, "%d\n", !!tpacpi_uwb_emulstate); + } + +-static ssize_t tpacpi_driver_uwb_emulstate_store( +- struct device_driver *drv, +- const char *buf, size_t count) ++static ssize_t uwb_emulstate_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + unsigned long t; + +@@ -1578,10 +1549,7 @@ static ssize_t tpacpi_driver_uwb_emulsta + + return count; + } +- +-static DRIVER_ATTR(uwb_emulstate, S_IWUSR | S_IRUGO, +- tpacpi_driver_uwb_emulstate_show, +- tpacpi_driver_uwb_emulstate_store); ++static DRIVER_ATTR_RW(uwb_emulstate); + #endif + + /* --------------------------------------------------------------------- */ +@@ -8516,14 +8484,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) ------------------------------- */ +-static ssize_t fan_fan_watchdog_show(struct device_driver *drv, +- char *buf) ++static ssize_t fan_watchdog_show(struct device_driver *drv, char *buf) + { + return snprintf(buf, PAGE_SIZE, "%u\n", fan_watchdog_maxinterval); + } + +-static ssize_t fan_fan_watchdog_store(struct device_driver *drv, +- const char *buf, size_t count) ++static ssize_t fan_watchdog_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + unsigned long t; + +@@ -8540,9 +8507,7 @@ static ssize_t fan_fan_watchdog_store(st + + return count; + } +- +-static DRIVER_ATTR(fan_watchdog, S_IWUSR | S_IRUGO, +- fan_fan_watchdog_show, fan_fan_watchdog_store); ++static DRIVER_ATTR_RW(fan_watchdog); + + /* --------------------------------------------------------------------- */ + static struct attribute *fan_attributes[] = { diff --git a/d11.patch b/d11.patch new file mode 100644 index 00000000000000..332e64ac370d4c --- /dev/null +++ b/d11.patch @@ -0,0 +1,147 @@ +--- + drivers/s390/char/sclp.c | 12 ++++++------ + drivers/s390/char/vmlogrdr.c | 7 ++----- + drivers/s390/net/lcs.c | 6 +++--- + drivers/s390/net/netiucv.c | 14 ++++++-------- + drivers/s390/net/qeth_core_main.c | 6 +++--- + 5 files changed, 20 insertions(+), 25 deletions(-) + +--- 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 + .restore = sclp_restore, + }; + +-static ssize_t sclp_show_console_pages(struct device_driver *dev, char *buf) ++static ssize_t console_pages_show(struct device_driver *dev, char *buf) + { + return sprintf(buf, "%i\n", sclp_console_pages); + } + +-static DRIVER_ATTR(con_pages, S_IRUSR, sclp_show_console_pages, NULL); ++static DRIVER_ATTR_RO(con_pages); + +-static ssize_t sclp_show_con_drop(struct device_driver *dev, char *buf) ++static ssize_t con_drop_show(struct device_driver *dev, char *buf) + { + return sprintf(buf, "%i\n", sclp_console_drop); + } + +-static DRIVER_ATTR(con_drop, S_IRUSR, sclp_show_con_drop, NULL); ++static DRIVER_ATTR_RO(con_drop); + +-static ssize_t sclp_show_console_full(struct device_driver *dev, char *buf) ++static ssize_t con_full_show(struct device_driver *dev, char *buf) + { + return sprintf(buf, "%lu\n", sclp_console_full); + } + +-static DRIVER_ATTR(con_full, S_IRUSR, sclp_show_console_full, NULL); ++static DRIVER_ATTR_RO(con_full); + + static struct attribute *sclp_drv_attrs[] = { + &driver_attr_con_pages.attr, +--- a/drivers/s390/char/vmlogrdr.c ++++ b/drivers/s390/char/vmlogrdr.c +@@ -641,10 +641,8 @@ static ssize_t vmlogrdr_recording_store( + static DEVICE_ATTR(recording, 0200, NULL, vmlogrdr_recording_store); + + +-static ssize_t vmlogrdr_recording_status_show(struct device_driver *driver, +- char *buf) ++static ssize_t recording_status_show(struct device_driver *driver, char *buf) + { +- + static const char cp_command[] = "QUERY RECORDING "; + int len; + +@@ -652,8 +650,7 @@ static ssize_t vmlogrdr_recording_status + len = strlen(buf); + return len; + } +-static DRIVER_ATTR(recording_status, 0444, vmlogrdr_recording_status_show, +- NULL); ++static DRIVER_ATTR_RO(recording_status); + static struct attribute *vmlogrdr_drv_attrs[] = { + &driver_attr_recording_status.attr, + NULL, +--- a/drivers/s390/net/lcs.c ++++ b/drivers/s390/net/lcs.c +@@ -2411,14 +2411,14 @@ static struct ccwgroup_driver lcs_group_ + .restore = lcs_restore, + }; + +-static ssize_t lcs_driver_group_store(struct device_driver *ddrv, +- const char *buf, size_t count) ++static ssize_t group_store(struct device_driver *ddrv, const char *buf, ++ size_t count) + { + int err; + err = ccwgroup_create_dev(lcs_root_dev, &lcs_group_driver, 2, buf); + return err ? err : count; + } +-static DRIVER_ATTR(group, 0200, NULL, lcs_driver_group_store); ++static DRIVER_ATTR_WO(group); + + static struct attribute *lcs_drv_attrs[] = { + &driver_attr_group.attr, +--- a/drivers/s390/net/netiucv.c ++++ b/drivers/s390/net/netiucv.c +@@ -2041,8 +2041,8 @@ out_netdev: + return NULL; + } + +-static ssize_t conn_write(struct device_driver *drv, +- const char *buf, size_t count) ++static ssize_t connection_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + char username[9]; + char userdata[17]; +@@ -2103,11 +2103,10 @@ out_free_ndev: + netiucv_free_netdevice(dev); + return rc; + } ++static DRIVER_ATTR_WO(connection); + +-static DRIVER_ATTR(connection, 0200, NULL, conn_write); +- +-static ssize_t remove_write (struct device_driver *drv, +- const char *buf, size_t count) ++static ssize_t remove_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + struct iucv_connection *cp; + struct net_device *ndev; +@@ -2153,8 +2152,7 @@ static ssize_t remove_write (struct devi + IUCV_DBF_TEXT(data, 2, "remove_write: unknown device\n"); + return -EINVAL; + } +- +-static DRIVER_ATTR(remove, 0200, NULL, remove_write); ++static DRIVER_ATTR_WO(remove); + + static struct attribute * netiucv_drv_attrs[] = { + &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_ + .restore = qeth_core_restore, + }; + +-static ssize_t qeth_core_driver_group_store(struct device_driver *ddrv, +- const char *buf, size_t count) ++static ssize_t group_store(struct device_driver *ddrv, const char *buf, ++ size_t count) + { + int err; + +@@ -5750,7 +5750,7 @@ static ssize_t qeth_core_driver_group_st + + return err ? err : count; + } +-static DRIVER_ATTR(group, 0200, NULL, qeth_core_driver_group_store); ++static DRIVER_ATTR_WO(group); + + static struct attribute *qeth_drv_attrs[] = { + &driver_attr_group.attr, diff --git a/d12.patch b/d12.patch new file mode 100644 index 00000000000000..b626b75dd768fa --- /dev/null +++ b/d12.patch @@ -0,0 +1,34 @@ +--- + drivers/usb/usbip/stub_main.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +--- a/drivers/usb/usbip/stub_main.c ++++ b/drivers/usb/usbip/stub_main.c +@@ -134,7 +134,7 @@ out: + return ret; + } + +-static ssize_t show_match_busid(struct device_driver *drv, char *buf) ++static ssize_t match_busid_show(struct device_driver *drv, char *buf) + { + int i; + char *out = buf; +@@ -149,7 +149,7 @@ static ssize_t show_match_busid(struct d + return out - buf; + } + +-static ssize_t store_match_busid(struct device_driver *dev, const char *buf, ++static ssize_t match_busid_store(struct device_driver *dev, const char *buf, + size_t count) + { + int len; +@@ -181,8 +181,7 @@ static ssize_t store_match_busid(struct + + return -EINVAL; + } +-static DRIVER_ATTR(match_busid, S_IRUSR | S_IWUSR, show_match_busid, +- store_match_busid); ++static DRIVER_ATTR_RW(match_busid); + + static ssize_t rebind_store(struct device_driver *dev, const char *buf, + size_t count) diff --git a/d13.patch b/d13.patch new file mode 100644 index 00000000000000..aec58db47c1152 --- /dev/null +++ b/d13.patch @@ -0,0 +1,29 @@ +--- + drivers/video/fbdev/uvesafb.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +--- a/drivers/video/fbdev/uvesafb.c ++++ b/drivers/video/fbdev/uvesafb.c +@@ -1883,19 +1883,18 @@ static int uvesafb_setup(char *options) + } + #endif /* !MODULE */ + +-static ssize_t show_v86d(struct device_driver *dev, char *buf) ++static ssize_t v86d_show(struct device_driver *dev, char *buf) + { + return snprintf(buf, PAGE_SIZE, "%s\n", v86d_path); + } + +-static ssize_t store_v86d(struct device_driver *dev, const char *buf, ++static ssize_t v86d_store(struct device_driver *dev, const char *buf, + size_t count) + { + strncpy(v86d_path, buf, PATH_MAX); + return count; + } +- +-static DRIVER_ATTR(v86d, S_IRUGO | S_IWUSR, show_v86d, store_v86d); ++static DRIVER_ATTR_RW(v86d); + + static int uvesafb_init(void) + { diff --git a/d14.patch b/d14.patch new file mode 100644 index 00000000000000..27abe3120c4a99 --- /dev/null +++ b/d14.patch @@ -0,0 +1,73 @@ +--- + drivers/dma/ppc4xx/adma.c | 23 ++++++++++------------- + 1 file changed, 10 insertions(+), 13 deletions(-) + + +--- a/drivers/dma/ppc4xx/adma.c ++++ b/drivers/dma/ppc4xx/adma.c +@@ -4307,7 +4307,7 @@ static int ppc440spe_adma_remove(struct + * "poly" allows setting/checking used polynomial (for PPC440SPe only). + */ + +-static ssize_t show_ppc440spe_devices(struct device_driver *dev, char *buf) ++static ssize_t devices_show(struct device_driver *dev, char *buf) + { + ssize_t size = 0; + int i; +@@ -4321,16 +4321,17 @@ static ssize_t show_ppc440spe_devices(st + } + return size; + } ++static DRIVER_ATTR_RO(devices); + +-static ssize_t show_ppc440spe_r6enable(struct device_driver *dev, char *buf) ++static ssize_t enable_show(struct device_driver *dev, char *buf) + { + return snprintf(buf, PAGE_SIZE, + "PPC440SP(e) RAID-6 capabilities are %sABLED.\n", + ppc440spe_r6_enabled ? "EN" : "DIS"); + } + +-static ssize_t store_ppc440spe_r6enable(struct device_driver *dev, +- const char *buf, size_t count) ++static ssize_t enable_store(struct device_driver *dev, const char *buf, ++ size_t count) + { + unsigned long val; + +@@ -4357,8 +4358,9 @@ static ssize_t store_ppc440spe_r6enable( + } + return count; + } ++static DRIVER_ATTR_RW(enable); + +-static ssize_t show_ppc440spe_r6poly(struct device_driver *dev, char *buf) ++static ssize_t poly_store(struct device_driver *dev, char *buf) + { + ssize_t size = 0; + u32 reg; +@@ -4377,8 +4379,8 @@ static ssize_t show_ppc440spe_r6poly(str + return size; + } + +-static ssize_t store_ppc440spe_r6poly(struct device_driver *dev, +- const char *buf, size_t count) ++static ssize_t poly_store(struct device_driver *dev, const char *buf, ++ size_t count) + { + unsigned long reg, val; + +@@ -4404,12 +4406,7 @@ static ssize_t store_ppc440spe_r6poly(st + + return count; + } +- +-static DRIVER_ATTR(devices, S_IRUGO, show_ppc440spe_devices, NULL); +-static DRIVER_ATTR(enable, S_IRUGO | S_IWUSR, show_ppc440spe_r6enable, +- store_ppc440spe_r6enable); +-static DRIVER_ATTR(poly, S_IRUGO | S_IWUSR, show_ppc440spe_r6poly, +- store_ppc440spe_r6poly); ++static DRIVER_ATTR_RW(poly); + + /* + * Common initialisation for RAID engines; allocate memory for diff --git a/d15.patch b/d15.patch new file mode 100644 index 00000000000000..df935a57f83bf8 --- /dev/null +++ b/d15.patch @@ -0,0 +1,26 @@ +--- + drivers/s390/net/ctcm_main.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + + +--- a/drivers/s390/net/ctcm_main.c ++++ b/drivers/s390/net/ctcm_main.c +@@ -1771,15 +1771,15 @@ static struct ccwgroup_driver ctcm_group + .restore = ctcm_pm_resume, + }; + +-static ssize_t ctcm_driver_group_store(struct device_driver *ddrv, +- const char *buf, size_t count) ++static ssize_t group_store(struct device_driver *ddrv, const char *buf, ++ size_t count) + { + int err; + + err = ccwgroup_create_dev(ctcm_root_dev, &ctcm_group_driver, 2, buf); + return err ? err : count; + } +-static DRIVER_ATTR(group, 0200, NULL, ctcm_driver_group_store); ++static DRIVER_ATTR_WO(group); + + static struct attribute *ctcm_drv_attrs[] = { + &driver_attr_group.attr, diff --git a/d16.patch b/d16.patch new file mode 100644 index 00000000000000..1fa50d6891fb20 --- /dev/null +++ b/d16.patch @@ -0,0 +1,120 @@ +--- + drivers/xen/xen-pciback/pci_stub.c | 44 ++++++++++++++++--------------------- + 1 file changed, 20 insertions(+), 24 deletions(-) + + +--- a/drivers/xen/xen-pciback/pci_stub.c ++++ b/drivers/xen/xen-pciback/pci_stub.c +@@ -1172,8 +1172,8 @@ out: + return err; + } + +-static ssize_t pcistub_slot_add(struct device_driver *drv, const char *buf, +- size_t count) ++static ssize_t new_slot_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + int domain, bus, slot, func; + int err; +@@ -1189,10 +1189,10 @@ out: + err = count; + return err; + } +-static DRIVER_ATTR(new_slot, S_IWUSR, NULL, pcistub_slot_add); ++static DRIVER_ATTR_WO(new_slot); + +-static ssize_t pcistub_slot_remove(struct device_driver *drv, const char *buf, +- size_t count) ++static ssize_t remove_slot_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + int domain, bus, slot, func; + int err; +@@ -1208,9 +1208,9 @@ out: + err = count; + return err; + } +-static DRIVER_ATTR(remove_slot, S_IWUSR, NULL, pcistub_slot_remove); ++static DRIVER_ATTR_WO(remove_slot); + +-static ssize_t pcistub_slot_show(struct device_driver *drv, char *buf) ++static ssize_t slots_show(struct device_driver *drv, char *buf) + { + struct pcistub_device_id *pci_dev_id; + size_t count = 0; +@@ -1231,9 +1231,9 @@ static ssize_t pcistub_slot_show(struct + + return count; + } +-static DRIVER_ATTR(slots, S_IRUSR, pcistub_slot_show, NULL); ++static DRIVER_ATTR_RO(slots); + +-static ssize_t pcistub_irq_handler_show(struct device_driver *drv, char *buf) ++static ssize_t irq_handlers_show(struct device_driver *drv, char *buf) + { + struct pcistub_device *psdev; + struct xen_pcibk_dev_data *dev_data; +@@ -1260,11 +1260,10 @@ static ssize_t pcistub_irq_handler_show( + spin_unlock_irqrestore(&pcistub_devices_lock, flags); + return count; + } +-static DRIVER_ATTR(irq_handlers, S_IRUSR, pcistub_irq_handler_show, NULL); ++static DRIVER_ATTR_RO(irq_handlers); + +-static ssize_t pcistub_irq_handler_switch(struct device_driver *drv, +- const char *buf, +- size_t count) ++static ssize_t irq_handler_state_store(struct device_driver *drv, ++ const char *buf, size_t count) + { + struct pcistub_device *psdev; + struct xen_pcibk_dev_data *dev_data; +@@ -1301,11 +1300,10 @@ out: + err = count; + return err; + } +-static DRIVER_ATTR(irq_handler_state, S_IWUSR, NULL, +- pcistub_irq_handler_switch); ++static DRIVER_ATTR_WO(irq_handler_state); + +-static ssize_t pcistub_quirk_add(struct device_driver *drv, const char *buf, +- size_t count) ++static ssize_t quirks_add(struct device_driver *drv, const char *buf, ++ size_t count) + { + int domain, bus, slot, func, reg, size, mask; + int err; +@@ -1323,7 +1321,7 @@ out: + return err; + } + +-static ssize_t pcistub_quirk_show(struct device_driver *drv, char *buf) ++static ssize_t quirks_show(struct device_driver *drv, char *buf) + { + int count = 0; + unsigned long flags; +@@ -1366,11 +1364,10 @@ out: + + return count; + } +-static DRIVER_ATTR(quirks, S_IRUSR | S_IWUSR, pcistub_quirk_show, +- pcistub_quirk_add); ++static DRIVER_ATTR_RW(quirks); + +-static ssize_t permissive_add(struct device_driver *drv, const char *buf, +- size_t count) ++static ssize_t permissive_store(struct device_driver *drv, const char *buf, ++ size_t count) + { + int domain, bus, slot, func; + int err; +@@ -1431,8 +1428,7 @@ static ssize_t permissive_show(struct de + spin_unlock_irqrestore(&pcistub_devices_lock, flags); + return count; + } +-static DRIVER_ATTR(permissive, S_IRUSR | S_IWUSR, permissive_show, +- permissive_add); ++static DRIVER_ATTR_RW(permissive); + + static void pcistub_exit(void) + { diff --git a/d99.patch b/d99.patch new file mode 100644 index 00000000000000..b3d1f6cd46f37b --- /dev/null +++ b/d99.patch @@ -0,0 +1,29 @@ +From foo@baz Wed Nov 30 14:34:22 CET 2016 +Date: Wed, 30 Nov 2016 14:34:22 +0100 +To: Greg KH <gregkh@linuxfoundation.org> +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +Subject: [PATCH] driver core: remove DRIVER_ATTR + +DRIVER_ATTR is no longer in use, and driver authors should be using +DRIVER_ATTR_RW() or DRIVER_ATTR_RO() or DRIVER_ATTR_WO() instead in +order to always get the permissions correct. So remove it so that no +one can use it anymore. + +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> + +--- + include/linux/device.h | 2 -- + 1 file changed, 2 deletions(-) + + +--- a/include/linux/device.h ++++ b/include/linux/device.h +@@ -303,8 +303,6 @@ struct driver_attribute { + size_t count); + }; + +-#define DRIVER_ATTR(_name, _mode, _show, _store) \ +- struct driver_attribute driver_attr_##_name = __ATTR(_name, _mode, _show, _store) + #define DRIVER_ATTR_RW(_name) \ + struct driver_attribute driver_attr_##_name = __ATTR_RW(_name) + #define DRIVER_ATTR_RO(_name) \ diff --git a/pci_groups.patch b/pci_groups.patch new file mode 100644 index 00000000000000..afd7f8aaaaeb88 --- /dev/null +++ b/pci_groups.patch @@ -0,0 +1,131 @@ +--- + drivers/infiniband/hw/nes/nes.c | 69 +++++++++++++--------------------------- + drivers/pci/pci-driver.c | 1 + include/linux/pci.h | 1 + 3 files changed, 26 insertions(+), 45 deletions(-) + +--- 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 + } + + +-static struct pci_driver nes_pci_driver = { +- .name = DRV_NAME, +- .id_table = nes_pci_table, +- .probe = nes_probe, +- .remove = nes_remove, +-}; +- + 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); + static DRIVER_ATTR_RW(idx_data); + static DRIVER_ATTR_RW(wqm_quanta); + +-static int nes_create_driver_sysfs(struct pci_driver *drv) +-{ +- int error; +- error = driver_create_file(&drv->driver, &driver_attr_adapter); +- error |= driver_create_file(&drv->driver, &driver_attr_eeprom_cmd); +- error |= driver_create_file(&drv->driver, &driver_attr_eeprom_data); +- error |= driver_create_file(&drv->driver, &driver_attr_flash_cmd); +- error |= driver_create_file(&drv->driver, &driver_attr_flash_data); +- error |= driver_create_file(&drv->driver, &driver_attr_nonidx_addr); +- error |= driver_create_file(&drv->driver, &driver_attr_nonidx_data); +- error |= driver_create_file(&drv->driver, &driver_attr_idx_addr); +- error |= driver_create_file(&drv->driver, &driver_attr_idx_data); +- error |= driver_create_file(&drv->driver, &driver_attr_wqm_quanta); +- return error; +-} +- +-static void nes_remove_driver_sysfs(struct pci_driver *drv) +-{ +- driver_remove_file(&drv->driver, &driver_attr_adapter); +- driver_remove_file(&drv->driver, &driver_attr_eeprom_cmd); +- driver_remove_file(&drv->driver, &driver_attr_eeprom_data); +- driver_remove_file(&drv->driver, &driver_attr_flash_cmd); +- driver_remove_file(&drv->driver, &driver_attr_flash_data); +- driver_remove_file(&drv->driver, &driver_attr_nonidx_addr); +- driver_remove_file(&drv->driver, &driver_attr_nonidx_data); +- driver_remove_file(&drv->driver, &driver_attr_idx_addr); +- driver_remove_file(&drv->driver, &driver_attr_idx_data); +- driver_remove_file(&drv->driver, &driver_attr_wqm_quanta); +-} ++static struct attribute *nes_attrs[] = { ++ &driver_attr_adapter, ++ &driver_attr_eeprom_cmd, ++ &driver_attr_eeprom_data, ++ &driver_attr_flash_cmd, ++ &driver_attr_flash_data, ++ &driver_attr_nonidx_addr, ++ &driver_attr_nonidx_data, ++ &driver_attr_idx_addr, ++ &driver_attr_idx_data, ++ &driver_attr_wqm_quanta, ++ NULL, ++}; ++ATTRIBUTE_GROUPS(nes); ++ ++static struct pci_driver nes_pci_driver = { ++ .name = DRV_NAME, ++ .id_table = nes_pci_table, ++ .probe = nes_probe, ++ .remove = nes_remove, ++ .groups = nes_groups, ++}; ++ + + /** + * nes_init_module - module initialization entry point +@@ -1194,20 +1181,13 @@ static void nes_remove_driver_sysfs(stru + static int __init nes_init_module(void) + { + int retval; +- int retval1; + + retval = nes_cm_start(); + if (retval) { + printk(KERN_ERR PFX "Unable to start NetEffect iWARP CM.\n"); + return retval; + } +- retval = pci_register_driver(&nes_pci_driver); +- if (retval >= 0) { +- retval1 = nes_create_driver_sysfs(&nes_pci_driver); +- if (retval1 < 0) +- printk(KERN_ERR PFX "Unable to create NetEffect sys files.\n"); +- } +- return retval; ++ return pci_register_driver(&nes_pci_driver); + } + + +@@ -1217,7 +1197,6 @@ static int __init nes_init_module(void) + static void __exit nes_exit_module(void) + { + nes_cm_stop(); +- nes_remove_driver_sysfs(&nes_pci_driver); + + pci_unregister_driver(&nes_pci_driver); + } +--- a/drivers/pci/pci-driver.c ++++ b/drivers/pci/pci-driver.c +@@ -1289,6 +1289,7 @@ int __pci_register_driver(struct pci_dri + drv->driver.bus = &pci_bus_type; + drv->driver.owner = owner; + drv->driver.mod_name = mod_name; ++ drv->driver.groups = drv->groups; + + spin_lock_init(&drv->dynids.lock); + INIT_LIST_HEAD(&drv->dynids.list); +--- a/include/linux/pci.h ++++ b/include/linux/pci.h +@@ -689,6 +689,7 @@ struct pci_driver { + void (*shutdown) (struct pci_dev *dev); + int (*sriov_configure) (struct pci_dev *dev, int num_vfs); /* PF pdev */ + const struct pci_error_handlers *err_handler; ++ const struct attribute_group **groups; + struct device_driver driver; + struct pci_dynids dynids; + }; @@ -74,6 +74,19 @@ d02.patch d03.patch d04.patch d05.patch +d06.patch +d07.patch +d08.patch +d09.patch +d10.patch +d11.patch +d12.patch +d13.patch +d14.patch +d15.patch +d16.patch +d99.patch +pci_groups.patch qlcnic_sysfs.patch # |