aboutsummaryrefslogtreecommitdiffstats
path: root/pci_groups.patch
diff options
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-11-30 15:37:22 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-11-30 15:37:22 +0100
commit946cb48082b0bbff0bb96b3f816d0327bf409d79 (patch)
treeddf24fb1cffad74877ccd6d4c3421cf8e6cc5bb8 /pci_groups.patch
parent3c37d678907cad7f656ff2d3f1d7d9781cf90b58 (diff)
downloadpatches-946cb48082b0bbff0bb96b3f816d0327bf409d79.tar.gz
more patches updated
Diffstat (limited to 'pci_groups.patch')
-rw-r--r--pci_groups.patch131
1 files changed, 131 insertions, 0 deletions
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;
+ };