libata-sff: separate out BMDMA qc_issue
[safe/jmp/linux-2.6] / drivers / parisc / pdc_stable.c
index ef1a353..1062b8f 100644 (file)
@@ -370,7 +370,7 @@ pdcspath_layer_read(struct pdcspath_entry *entry, char *buf)
        if (!i) /* entry is not ready */
                return -ENODATA;
        
-       for (i = 0; devpath->layers[i] && (likely(i < 6)); i++)
+       for (i = 0; i < 6 && devpath->layers[i]; i++)
                out += sprintf(out, "%u ", devpath->layers[i]);
 
        out += sprintf(out, "\n");
@@ -481,7 +481,7 @@ pdcspath_attr_store(struct kobject *kobj, struct attribute *attr,
        return ret;
 }
 
-static struct sysfs_ops pdcspath_attr_ops = {
+static const struct sysfs_ops pdcspath_attr_ops = {
        .show = pdcspath_attr_show,
        .store = pdcspath_attr_store,
 };
@@ -779,12 +779,9 @@ static ssize_t pdcs_auto_write(struct kobject *kobj,
        read_unlock(&pathentry->rw_lock);
        
        DPRINTK("%s: flags before: 0x%X\n", __func__, flags);
-                       
-       temp = in;
-       
-       while (*temp && isspace(*temp))
-               temp++;
-       
+
+       temp = skip_spaces(in);
+
        c = *temp++ - '0';
        if ((c != 0) && (c != 1))
                goto parse_error;
@@ -829,7 +826,7 @@ static ssize_t pdcs_autoboot_write(struct kobject *kobj,
                                   struct kobj_attribute *attr,
                                   const char *buf, size_t count)
 {
-       return pdcs_auto_write(kset, attr, buf, count, PF_AUTOBOOT);
+       return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOBOOT);
 }
 
 /**
@@ -845,7 +842,7 @@ static ssize_t pdcs_autosearch_write(struct kobject *kobj,
                                     struct kobj_attribute *attr,
                                     const char *buf, size_t count)
 {
-       return pdcs_auto_write(kset, attr, buf, count, PF_AUTOSEARCH);
+       return pdcs_auto_write(kobj, attr, buf, count, PF_AUTOSEARCH);
 }
 
 /**
@@ -960,7 +957,7 @@ static struct attribute_group pdcs_attr_group = {
        .attrs = pdcs_subsys_attrs,
 };
 
-static struct kset *stable_kset;
+static struct kobject *stable_kobj;
 static struct kset *paths_kset;
 
 /**
@@ -991,13 +988,12 @@ pdcs_register_pathentries(void)
                if (err < 0)
                        continue;
 
-               if ((err = kobject_set_name(&entry->kobj, "%s", entry->name)))
-                       return err;
                entry->kobj.kset = paths_kset;
-               entry->kobj.ktype = &ktype_pdcspath;
-               if ((err = kobject_register(&entry->kobj)))
+               err = kobject_init_and_add(&entry->kobj, &ktype_pdcspath, NULL,
+                                          "%s", entry->name);
+               if (err)
                        return err;
-               
+
                /* kobject is now registered */
                write_lock(&entry->rw_lock);
                entry->ready = 2;
@@ -1009,6 +1005,7 @@ pdcs_register_pathentries(void)
                }
 
                write_unlock(&entry->rw_lock);
+               kobject_uevent(&entry->kobj, KOBJ_ADD);
        }
        
        return 0;
@@ -1026,7 +1023,7 @@ pdcs_unregister_pathentries(void)
        for (i = 0; (entry = pdcspath_entries[i]); i++) {
                read_lock(&entry->rw_lock);
                if (entry->ready >= 2)
-                       kobject_unregister(&entry->kobj);
+                       kobject_put(&entry->kobj);
                read_unlock(&entry->rw_lock);
        }
 }
@@ -1058,18 +1055,18 @@ pdc_stable_init(void)
        /* the actual result is 16 bits away */
        pdcs_osid = (u16)(result >> 16);
 
-       /* For now we'll register the stable kset within this driver */
-       stable_kset = kset_create_and_add("stable", NULL, firmware_kobj);
-       if (!stable_kset) {
+       /* For now we'll register the directory at /sys/firmware/stable */
+       stable_kobj = kobject_create_and_add("stable", firmware_kobj);
+       if (!stable_kobj) {
                rc = -ENOMEM;
                goto fail_firmreg;
        }
 
        /* Don't forget the root entries */
-       error = sysfs_create_group(&stable_kset->kobj, pdcs_attr_group);
+       error = sysfs_create_group(stable_kobj, &pdcs_attr_group);
 
        /* register the paths kset as a child of the stable kset */
-       paths_kset = kset_create_and_add("paths", NULL, &stable_kset->kobj);
+       paths_kset = kset_create_and_add("paths", NULL, stable_kobj);
        if (!paths_kset) {
                rc = -ENOMEM;
                goto fail_ksetreg;
@@ -1086,7 +1083,7 @@ fail_pdcsreg:
        kset_unregister(paths_kset);
        
 fail_ksetreg:
-       kset_unregister(stable_kset);
+       kobject_put(stable_kobj);
        
 fail_firmreg:
        printk(KERN_INFO PDCS_PREFIX " bailing out\n");
@@ -1098,7 +1095,7 @@ pdc_stable_exit(void)
 {
        pdcs_unregister_pathentries();
        kset_unregister(paths_kset);
-       kset_unregister(stable_kset);
+       kobject_put(stable_kobj);
 }