aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/netiucv.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-01-25 11:34:42 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2008-01-25 11:35:13 -0500
commitdf8dc74e8a383eaf2d9b44b80a71ec6f0e52b42e (patch)
treebc3799a43e8b94fa84b32e37b1c124d5e4868f50 /drivers/s390/net/netiucv.c
parent556a169dab38b5100df6f4a45b655dddd3db94c1 (diff)
parent4a3ad20ccd8f4d2a0535cf98fa83f7b561ba59a9 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
This can be broken down into these major areas: - Documentation updates (language translations and fixes, as well as kobject and kset documenatation updates.) - major kset/kobject/ktype rework and fixes. This cleans up the kset and kobject and ktype relationship and architecture, making sense of things now, and good documenation and samples are provided for others to use. Also the attributes for kobjects are much easier to handle now. This cleaned up a LOT of code all through the kernel, making kobjects easier to use if you want to. - struct bus_type has been reworked to now handle the lifetime rules properly, as the kobject is properly dynamic. - struct driver has also been reworked, and now the lifetime issues are resolved. - the block subsystem has been converted to use struct device now, and not "raw" kobjects. This patch has been in the -mm tree for over a year now, and finally all the issues are worked out with it. Older distros now properly work with new kernels, and no userspace updates are needed at all. - nozomi driver is added. This has also been in -mm for a long time, and many people have asked for it to go in. It is now in good enough shape to do so. - lots of class_device conversions to use struct device instead. The tree is almost all cleaned up now, only SCSI and IB is the remaining code to fix up... * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6: (196 commits) Driver core: coding style fixes Kobject: fix coding style issues in kobject c files Kobject: fix coding style issues in kobject.h Driver core: fix coding style issues in device.h spi: use class iteration api scsi: use class iteration api rtc: use class iteration api power supply : use class iteration api ieee1394: use class iteration api Driver Core: add class iteration api Driver core: Cleanup get_device_parent() in device_add() and device_move() UIO: constify function pointer tables Driver Core: constify the name passed to platform_device_register_simple driver core: fix build with SYSFS=n sysfs: make SYSFS_DEPRECATED depend on SYSFS Driver core: use LIST_HEAD instead of call to INIT_LIST_HEAD in __init kobject: add sample code for how to use ksets/ktypes/kobjects kobject: add sample code for how to use kobjects in a simple manner. kobject: update the kobject/kset documentation kobject: remove old, outdated documentation. ...
Diffstat (limited to 'drivers/s390/net/netiucv.c')
-rw-r--r--drivers/s390/net/netiucv.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c
index c7ea9381db9f..d6e93f15440e 100644
--- a/drivers/s390/net/netiucv.c
+++ b/drivers/s390/net/netiucv.c
@@ -2089,6 +2089,11 @@ static struct attribute_group netiucv_drv_attr_group = {
2089 .attrs = netiucv_drv_attrs, 2089 .attrs = netiucv_drv_attrs,
2090}; 2090};
2091 2091
2092static struct attribute_group *netiucv_drv_attr_groups[] = {
2093 &netiucv_drv_attr_group,
2094 NULL,
2095};
2096
2092static void netiucv_banner(void) 2097static void netiucv_banner(void)
2093{ 2098{
2094 PRINT_INFO("NETIUCV driver initialized\n"); 2099 PRINT_INFO("NETIUCV driver initialized\n");
@@ -2113,7 +2118,6 @@ static void __exit netiucv_exit(void)
2113 netiucv_unregister_device(dev); 2118 netiucv_unregister_device(dev);
2114 } 2119 }
2115 2120
2116 sysfs_remove_group(&netiucv_driver.kobj, &netiucv_drv_attr_group);
2117 driver_unregister(&netiucv_driver); 2121 driver_unregister(&netiucv_driver);
2118 iucv_unregister(&netiucv_handler, 1); 2122 iucv_unregister(&netiucv_handler, 1);
2119 iucv_unregister_dbf_views(); 2123 iucv_unregister_dbf_views();
@@ -2133,6 +2137,7 @@ static int __init netiucv_init(void)
2133 if (rc) 2137 if (rc)
2134 goto out_dbf; 2138 goto out_dbf;
2135 IUCV_DBF_TEXT(trace, 3, __FUNCTION__); 2139 IUCV_DBF_TEXT(trace, 3, __FUNCTION__);
2140 netiucv_driver.groups = netiucv_drv_attr_groups;
2136 rc = driver_register(&netiucv_driver); 2141 rc = driver_register(&netiucv_driver);
2137 if (rc) { 2142 if (rc) {
2138 PRINT_ERR("NETIUCV: failed to register driver.\n"); 2143 PRINT_ERR("NETIUCV: failed to register driver.\n");
@@ -2140,18 +2145,9 @@ static int __init netiucv_init(void)
2140 goto out_iucv; 2145 goto out_iucv;
2141 } 2146 }
2142 2147
2143 rc = sysfs_create_group(&netiucv_driver.kobj, &netiucv_drv_attr_group);
2144 if (rc) {
2145 PRINT_ERR("NETIUCV: failed to add driver attributes.\n");
2146 IUCV_DBF_TEXT_(setup, 2,
2147 "ret %d - netiucv_drv_attr_group\n", rc);
2148 goto out_driver;
2149 }
2150 netiucv_banner(); 2148 netiucv_banner();
2151 return rc; 2149 return rc;
2152 2150
2153out_driver:
2154 driver_unregister(&netiucv_driver);
2155out_iucv: 2151out_iucv:
2156 iucv_unregister(&netiucv_handler, 1); 2152 iucv_unregister(&netiucv_handler, 1);
2157out_dbf: 2153out_dbf: