fbcon: Honor the return value of device_create_file
Subsystems (2)
PATCH 4/8 fbcon: Honor the return value of device_create_file
Check the return value of device_create_file(). If return is 'fail', remove attributes by calling device_remove_file().
Signed-off-by Antonino Daplas <[email protected]>
---
drivers/video/console/fbcon.c | 34 +++++++++++++++++++++++++++------- 1 files changed, 27 insertions(+), 7 deletions(-)
drivers/video/console/fbcon.c +27 -7
@@ -133,6 +133,7 @@ static int info_idx = -1;/* console rotation */ static int rotate; +static int fbcon_has_sysfs;static const struct consw fb_con;
@@ -3166,11 +3167,26 @@ static struct class_device_attribute clastatic int fbcon_init_class_device (void ) { -int i; +int i, error =0 ; + + fbcon_has_sysfs =1 ; + +for (i =0 ; i <ARRAY_SIZE (class_device_attrs); i++) { + error =class_device_create_file (fbcon_class_device, + &class_device_attrs[i]); + +if (error) +break ; + } + +if (error) { +while (--i >=0 ) +class_device_remove_file (fbcon_class_device, + &class_device_attrs[i]); + + fbcon_has_sysfs =0 ; + } -for (i =0 ; i <ARRAY_SIZE (class_device_attrs); i++) -class_device_create_file (fbcon_class_device, - &class_device_attrs[i]);return 0 ; }
@@ -3279,9 +3295,13 @@ static void __exit fbcon_deinit_class_de {int i; -for (i =0 ; i <ARRAY_SIZE (class_device_attrs); i++) -class_device_remove_file (fbcon_class_device, - &class_device_attrs[i]); +if (fbcon_has_sysfs) { +for (i =0 ; i <ARRAY_SIZE (class_device_attrs); i++) +class_device_remove_file (fbcon_class_device, + &class_device_attrs[i]); + + fbcon_has_sysfs =0 ; + } } static void __exit fb_console_exit(void)
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642