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 /pci_groups.patch | |
| parent | 3c37d678907cad7f656ff2d3f1d7d9781cf90b58 (diff) | |
| download | patches-946cb48082b0bbff0bb96b3f816d0327bf409d79.tar.gz | |
more patches updated
Diffstat (limited to 'pci_groups.patch')
| -rw-r--r-- | pci_groups.patch | 131 |
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; + }; |
