diff options
| -rw-r--r-- | Documentation/driver-model/driver.txt | 4 | ||||
| -rw-r--r-- | Documentation/filesystems/sysfs.txt | 12 | ||||
| -rw-r--r-- | Documentation/stable_kernel_rules.txt | 24 | ||||
| -rw-r--r-- | drivers/base/bus.c | 2 | ||||
| -rw-r--r-- | drivers/base/core.c | 16 | ||||
| -rw-r--r-- | drivers/base/devtmpfs.c | 19 | ||||
| -rw-r--r-- | drivers/base/driver.c | 4 | ||||
| -rw-r--r-- | drivers/base/platform.c | 1 | ||||
| -rw-r--r-- | fs/super.c | 3 | ||||
| -rw-r--r-- | fs/sysfs/bin.c | 6 | ||||
| -rw-r--r-- | include/linux/device.h | 12 | ||||
| -rw-r--r-- | include/linux/sysfs.h | 9 |
12 files changed, 72 insertions, 40 deletions
diff --git a/Documentation/driver-model/driver.txt b/Documentation/driver-model/driver.txt index 60120fb3b961..d2cd6fb8ba9e 100644 --- a/Documentation/driver-model/driver.txt +++ b/Documentation/driver-model/driver.txt | |||
| @@ -226,5 +226,5 @@ struct driver_attribute driver_attr_debug; | |||
| 226 | This can then be used to add and remove the attribute from the | 226 | This can then be used to add and remove the attribute from the |
| 227 | driver's directory using: | 227 | driver's directory using: |
| 228 | 228 | ||
| 229 | int driver_create_file(struct device_driver *, struct driver_attribute *); | 229 | int driver_create_file(struct device_driver *, const struct driver_attribute *); |
| 230 | void driver_remove_file(struct device_driver *, struct driver_attribute *); | 230 | void driver_remove_file(struct device_driver *, const struct driver_attribute *); |
diff --git a/Documentation/filesystems/sysfs.txt b/Documentation/filesystems/sysfs.txt index b245d524d568..931c806642c5 100644 --- a/Documentation/filesystems/sysfs.txt +++ b/Documentation/filesystems/sysfs.txt | |||
| @@ -91,8 +91,8 @@ struct device_attribute { | |||
| 91 | const char *buf, size_t count); | 91 | const char *buf, size_t count); |
| 92 | }; | 92 | }; |
| 93 | 93 | ||
| 94 | int device_create_file(struct device *, struct device_attribute *); | 94 | int device_create_file(struct device *, const struct device_attribute *); |
| 95 | void device_remove_file(struct device *, struct device_attribute *); | 95 | void device_remove_file(struct device *, const struct device_attribute *); |
| 96 | 96 | ||
| 97 | It also defines this helper for defining device attributes: | 97 | It also defines this helper for defining device attributes: |
| 98 | 98 | ||
| @@ -316,8 +316,8 @@ DEVICE_ATTR(_name, _mode, _show, _store); | |||
| 316 | 316 | ||
| 317 | Creation/Removal: | 317 | Creation/Removal: |
| 318 | 318 | ||
| 319 | int device_create_file(struct device *device, struct device_attribute * attr); | 319 | int device_create_file(struct device *dev, const struct device_attribute * attr); |
| 320 | void device_remove_file(struct device * dev, struct device_attribute * attr); | 320 | void device_remove_file(struct device *dev, const struct device_attribute * attr); |
| 321 | 321 | ||
| 322 | 322 | ||
| 323 | - bus drivers (include/linux/device.h) | 323 | - bus drivers (include/linux/device.h) |
| @@ -358,7 +358,7 @@ DRIVER_ATTR(_name, _mode, _show, _store) | |||
| 358 | 358 | ||
| 359 | Creation/Removal: | 359 | Creation/Removal: |
| 360 | 360 | ||
| 361 | int driver_create_file(struct device_driver *, struct driver_attribute *); | 361 | int driver_create_file(struct device_driver *, const struct driver_attribute *); |
| 362 | void driver_remove_file(struct device_driver *, struct driver_attribute *); | 362 | void driver_remove_file(struct device_driver *, const struct driver_attribute *); |
| 363 | 363 | ||
| 364 | 364 | ||
diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt index a452227361b1..5effa5bd993b 100644 --- a/Documentation/stable_kernel_rules.txt +++ b/Documentation/stable_kernel_rules.txt | |||
| @@ -26,13 +26,33 @@ Procedure for submitting patches to the -stable tree: | |||
| 26 | 26 | ||
| 27 | - Send the patch, after verifying that it follows the above rules, to | 27 | - Send the patch, after verifying that it follows the above rules, to |
| 28 | stable@kernel.org. | 28 | stable@kernel.org. |
| 29 | - To have the patch automatically included in the stable tree, add the | ||
| 30 | the tag | ||
| 31 | Cc: stable@kernel.org | ||
| 32 | in the sign-off area. Once the patch is merged it will be applied to | ||
| 33 | the stable tree without anything else needing to be done by the author | ||
| 34 | or subsystem maintainer. | ||
| 35 | - If the patch requires other patches as prerequisites which can be | ||
| 36 | cherry-picked than this can be specified in the following format in | ||
| 37 | the sign-off area: | ||
| 38 | |||
| 39 | Cc: <stable@kernel.org> # .32.x: a1f84a3: sched: Check for idle | ||
| 40 | Cc: <stable@kernel.org> # .32.x: 1b9508f: sched: Rate-limit newidle | ||
| 41 | Cc: <stable@kernel.org> # .32.x: fd21073: sched: Fix affinity logic | ||
| 42 | Cc: <stable@kernel.org> # .32.x | ||
| 43 | Signed-off-by: Ingo Molnar <mingo@elte.hu> | ||
| 44 | |||
| 45 | The tag sequence has the meaning of: | ||
| 46 | git cherry-pick a1f84a3 | ||
| 47 | git cherry-pick 1b9508f | ||
| 48 | git cherry-pick fd21073 | ||
| 49 | git cherry-pick <this commit> | ||
| 50 | |||
| 29 | - The sender will receive an ACK when the patch has been accepted into the | 51 | - The sender will receive an ACK when the patch has been accepted into the |
| 30 | queue, or a NAK if the patch is rejected. This response might take a few | 52 | queue, or a NAK if the patch is rejected. This response might take a few |
| 31 | days, according to the developer's schedules. | 53 | days, according to the developer's schedules. |
| 32 | - If accepted, the patch will be added to the -stable queue, for review by | 54 | - If accepted, the patch will be added to the -stable queue, for review by |
| 33 | other developers and by the relevant subsystem maintainer. | 55 | other developers and by the relevant subsystem maintainer. |
| 34 | - If the stable@kernel.org address is added to a patch, when it goes into | ||
| 35 | Linus's tree it will automatically be emailed to the stable team. | ||
| 36 | - Security patches should not be sent to this alias, but instead to the | 56 | - Security patches should not be sent to this alias, but instead to the |
| 37 | documented security@kernel.org address. | 57 | documented security@kernel.org address. |
| 38 | 58 | ||
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 63c143e54a57..c0c5a43d9fb3 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c | |||
| @@ -703,9 +703,9 @@ int bus_add_driver(struct device_driver *drv) | |||
| 703 | return 0; | 703 | return 0; |
| 704 | 704 | ||
| 705 | out_unregister: | 705 | out_unregister: |
| 706 | kobject_put(&priv->kobj); | ||
| 706 | kfree(drv->p); | 707 | kfree(drv->p); |
| 707 | drv->p = NULL; | 708 | drv->p = NULL; |
| 708 | kobject_put(&priv->kobj); | ||
| 709 | out_put_bus: | 709 | out_put_bus: |
| 710 | bus_put(bus); | 710 | bus_put(bus); |
| 711 | return error; | 711 | return error; |
diff --git a/drivers/base/core.c b/drivers/base/core.c index f1290cbd1350..282025770429 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c | |||
| @@ -446,7 +446,8 @@ struct kset *devices_kset; | |||
| 446 | * @dev: device. | 446 | * @dev: device. |
| 447 | * @attr: device attribute descriptor. | 447 | * @attr: device attribute descriptor. |
| 448 | */ | 448 | */ |
| 449 | int device_create_file(struct device *dev, struct device_attribute *attr) | 449 | int device_create_file(struct device *dev, |
| 450 | const struct device_attribute *attr) | ||
| 450 | { | 451 | { |
| 451 | int error = 0; | 452 | int error = 0; |
| 452 | if (dev) | 453 | if (dev) |
| @@ -459,7 +460,8 @@ int device_create_file(struct device *dev, struct device_attribute *attr) | |||
| 459 | * @dev: device. | 460 | * @dev: device. |
| 460 | * @attr: device attribute descriptor. | 461 | * @attr: device attribute descriptor. |
| 461 | */ | 462 | */ |
| 462 | void device_remove_file(struct device *dev, struct device_attribute *attr) | 463 | void device_remove_file(struct device *dev, |
| 464 | const struct device_attribute *attr) | ||
| 463 | { | 465 | { |
| 464 | if (dev) | 466 | if (dev) |
| 465 | sysfs_remove_file(&dev->kobj, &attr->attr); | 467 | sysfs_remove_file(&dev->kobj, &attr->attr); |
| @@ -470,7 +472,8 @@ void device_remove_file(struct device *dev, struct device_attribute *attr) | |||
| 470 | * @dev: device. | 472 | * @dev: device. |
| 471 | * @attr: device binary attribute descriptor. | 473 | * @attr: device binary attribute descriptor. |
| 472 | */ | 474 | */ |
| 473 | int device_create_bin_file(struct device *dev, struct bin_attribute *attr) | 475 | int device_create_bin_file(struct device *dev, |
| 476 | const struct bin_attribute *attr) | ||
| 474 | { | 477 | { |
| 475 | int error = -EINVAL; | 478 | int error = -EINVAL; |
| 476 | if (dev) | 479 | if (dev) |
| @@ -484,7 +487,8 @@ EXPORT_SYMBOL_GPL(device_create_bin_file); | |||
| 484 | * @dev: device. | 487 | * @dev: device. |
| 485 | * @attr: device binary attribute descriptor. | 488 | * @attr: device binary attribute descriptor. |
| 486 | */ | 489 | */ |
| 487 | void device_remove_bin_file(struct device *dev, struct bin_attribute *attr) | 490 | void device_remove_bin_file(struct device *dev, |
| 491 | const struct bin_attribute *attr) | ||
| 488 | { | 492 | { |
| 489 | if (dev) | 493 | if (dev) |
| 490 | sysfs_remove_bin_file(&dev->kobj, attr); | 494 | sysfs_remove_bin_file(&dev->kobj, attr); |
| @@ -905,8 +909,10 @@ int device_add(struct device *dev) | |||
| 905 | dev->init_name = NULL; | 909 | dev->init_name = NULL; |
| 906 | } | 910 | } |
| 907 | 911 | ||
| 908 | if (!dev_name(dev)) | 912 | if (!dev_name(dev)) { |
| 913 | error = -EINVAL; | ||
| 909 | goto name_error; | 914 | goto name_error; |
| 915 | } | ||
| 910 | 916 | ||
| 911 | pr_debug("device: '%s': %s\n", dev_name(dev), __func__); | 917 | pr_debug("device: '%s': %s\n", dev_name(dev), __func__); |
| 912 | 918 | ||
diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c index 50375bb8e51d..090dd4851301 100644 --- a/drivers/base/devtmpfs.c +++ b/drivers/base/devtmpfs.c | |||
| @@ -32,7 +32,7 @@ static int dev_mount = 1; | |||
| 32 | static int dev_mount; | 32 | static int dev_mount; |
| 33 | #endif | 33 | #endif |
| 34 | 34 | ||
| 35 | static rwlock_t dirlock; | 35 | static DEFINE_MUTEX(dirlock); |
| 36 | 36 | ||
| 37 | static int __init mount_param(char *str) | 37 | static int __init mount_param(char *str) |
| 38 | { | 38 | { |
| @@ -93,7 +93,7 @@ static int create_path(const char *nodepath) | |||
| 93 | { | 93 | { |
| 94 | int err; | 94 | int err; |
| 95 | 95 | ||
| 96 | read_lock(&dirlock); | 96 | mutex_lock(&dirlock); |
| 97 | err = dev_mkdir(nodepath, 0755); | 97 | err = dev_mkdir(nodepath, 0755); |
| 98 | if (err == -ENOENT) { | 98 | if (err == -ENOENT) { |
| 99 | char *path; | 99 | char *path; |
| @@ -101,8 +101,10 @@ static int create_path(const char *nodepath) | |||
| 101 | 101 | ||
| 102 | /* parent directories do not exist, create them */ | 102 | /* parent directories do not exist, create them */ |
| 103 | path = kstrdup(nodepath, GFP_KERNEL); | 103 | path = kstrdup(nodepath, GFP_KERNEL); |
| 104 | if (!path) | 104 | if (!path) { |
| 105 | return -ENOMEM; | 105 | err = -ENOMEM; |
| 106 | goto out; | ||
| 107 | } | ||
| 106 | s = path; | 108 | s = path; |
| 107 | for (;;) { | 109 | for (;;) { |
| 108 | s = strchr(s, '/'); | 110 | s = strchr(s, '/'); |
| @@ -117,7 +119,8 @@ static int create_path(const char *nodepath) | |||
| 117 | } | 119 | } |
| 118 | kfree(path); | 120 | kfree(path); |
| 119 | } | 121 | } |
| 120 | read_unlock(&dirlock); | 122 | out: |
| 123 | mutex_unlock(&dirlock); | ||
| 121 | return err; | 124 | return err; |
| 122 | } | 125 | } |
| 123 | 126 | ||
| @@ -229,7 +232,7 @@ static int delete_path(const char *nodepath) | |||
| 229 | if (!path) | 232 | if (!path) |
| 230 | return -ENOMEM; | 233 | return -ENOMEM; |
| 231 | 234 | ||
| 232 | write_lock(&dirlock); | 235 | mutex_lock(&dirlock); |
| 233 | for (;;) { | 236 | for (;;) { |
| 234 | char *base; | 237 | char *base; |
| 235 | 238 | ||
| @@ -241,7 +244,7 @@ static int delete_path(const char *nodepath) | |||
| 241 | if (err) | 244 | if (err) |
| 242 | break; | 245 | break; |
| 243 | } | 246 | } |
| 244 | write_unlock(&dirlock); | 247 | mutex_unlock(&dirlock); |
| 245 | 248 | ||
| 246 | kfree(path); | 249 | kfree(path); |
| 247 | return err; | 250 | return err; |
| @@ -352,8 +355,6 @@ int __init devtmpfs_init(void) | |||
| 352 | int err; | 355 | int err; |
| 353 | struct vfsmount *mnt; | 356 | struct vfsmount *mnt; |
| 354 | 357 | ||
| 355 | rwlock_init(&dirlock); | ||
| 356 | |||
| 357 | err = register_filesystem(&dev_fs_type); | 358 | err = register_filesystem(&dev_fs_type); |
| 358 | if (err) { | 359 | if (err) { |
| 359 | printk(KERN_ERR "devtmpfs: unable to register devtmpfs " | 360 | printk(KERN_ERR "devtmpfs: unable to register devtmpfs " |
diff --git a/drivers/base/driver.c b/drivers/base/driver.c index f367885a7646..90c9fff09ead 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c | |||
| @@ -98,7 +98,7 @@ EXPORT_SYMBOL_GPL(driver_find_device); | |||
| 98 | * @attr: driver attribute descriptor. | 98 | * @attr: driver attribute descriptor. |
| 99 | */ | 99 | */ |
| 100 | int driver_create_file(struct device_driver *drv, | 100 | int driver_create_file(struct device_driver *drv, |
| 101 | struct driver_attribute *attr) | 101 | const struct driver_attribute *attr) |
| 102 | { | 102 | { |
| 103 | int error; | 103 | int error; |
| 104 | if (drv) | 104 | if (drv) |
| @@ -115,7 +115,7 @@ EXPORT_SYMBOL_GPL(driver_create_file); | |||
| 115 | * @attr: driver attribute descriptor. | 115 | * @attr: driver attribute descriptor. |
| 116 | */ | 116 | */ |
| 117 | void driver_remove_file(struct device_driver *drv, | 117 | void driver_remove_file(struct device_driver *drv, |
| 118 | struct driver_attribute *attr) | 118 | const struct driver_attribute *attr) |
| 119 | { | 119 | { |
| 120 | if (drv) | 120 | if (drv) |
| 121 | sysfs_remove_file(&drv->p->kobj, &attr->attr); | 121 | sysfs_remove_file(&drv->p->kobj, &attr->attr); |
diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 9d2ee25deaf5..58efaf2f1259 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c | |||
| @@ -441,6 +441,7 @@ error: | |||
| 441 | platform_device_put(pdev); | 441 | platform_device_put(pdev); |
| 442 | return ERR_PTR(retval); | 442 | return ERR_PTR(retval); |
| 443 | } | 443 | } |
| 444 | EXPORT_SYMBOL_GPL(platform_device_register_data); | ||
| 444 | 445 | ||
| 445 | static int platform_drv_probe(struct device *_dev) | 446 | static int platform_drv_probe(struct device *_dev) |
| 446 | { | 447 | { |
diff --git a/fs/super.c b/fs/super.c index 19eb70b374bc..aff046b0fe78 100644 --- a/fs/super.c +++ b/fs/super.c | |||
| @@ -901,8 +901,9 @@ int get_sb_single(struct file_system_type *fs_type, | |||
| 901 | return error; | 901 | return error; |
| 902 | } | 902 | } |
| 903 | s->s_flags |= MS_ACTIVE; | 903 | s->s_flags |= MS_ACTIVE; |
| 904 | } else { | ||
| 905 | do_remount_sb(s, flags, data, 0); | ||
| 904 | } | 906 | } |
| 905 | do_remount_sb(s, flags, data, 0); | ||
| 906 | simple_set_mnt(mnt, s); | 907 | simple_set_mnt(mnt, s); |
| 907 | return 0; | 908 | return 0; |
| 908 | } | 909 | } |
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c index 60c702bc10ae..a0a500af24a1 100644 --- a/fs/sysfs/bin.c +++ b/fs/sysfs/bin.c | |||
| @@ -483,7 +483,8 @@ void unmap_bin_file(struct sysfs_dirent *attr_sd) | |||
| 483 | * @attr: attribute descriptor. | 483 | * @attr: attribute descriptor. |
| 484 | */ | 484 | */ |
| 485 | 485 | ||
| 486 | int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr) | 486 | int sysfs_create_bin_file(struct kobject *kobj, |
| 487 | const struct bin_attribute *attr) | ||
| 487 | { | 488 | { |
| 488 | BUG_ON(!kobj || !kobj->sd || !attr); | 489 | BUG_ON(!kobj || !kobj->sd || !attr); |
| 489 | 490 | ||
| @@ -497,7 +498,8 @@ int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr) | |||
| 497 | * @attr: attribute descriptor. | 498 | * @attr: attribute descriptor. |
| 498 | */ | 499 | */ |
| 499 | 500 | ||
| 500 | void sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr) | 501 | void sysfs_remove_bin_file(struct kobject *kobj, |
| 502 | const struct bin_attribute *attr) | ||
| 501 | { | 503 | { |
| 502 | sysfs_hash_and_remove(kobj->sd, attr->attr.name); | 504 | sysfs_hash_and_remove(kobj->sd, attr->attr.name); |
| 503 | } | 505 | } |
diff --git a/include/linux/device.h b/include/linux/device.h index 2a73d9bcbc9c..a62799f2ab00 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -166,9 +166,9 @@ struct driver_attribute driver_attr_##_name = \ | |||
| 166 | __ATTR(_name, _mode, _show, _store) | 166 | __ATTR(_name, _mode, _show, _store) |
| 167 | 167 | ||
| 168 | extern int __must_check driver_create_file(struct device_driver *driver, | 168 | extern int __must_check driver_create_file(struct device_driver *driver, |
| 169 | struct driver_attribute *attr); | 169 | const struct driver_attribute *attr); |
| 170 | extern void driver_remove_file(struct device_driver *driver, | 170 | extern void driver_remove_file(struct device_driver *driver, |
| 171 | struct driver_attribute *attr); | 171 | const struct driver_attribute *attr); |
| 172 | 172 | ||
| 173 | extern int __must_check driver_add_kobj(struct device_driver *drv, | 173 | extern int __must_check driver_add_kobj(struct device_driver *drv, |
| 174 | struct kobject *kobj, | 174 | struct kobject *kobj, |
| @@ -319,13 +319,13 @@ struct device_attribute { | |||
| 319 | struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store) | 319 | struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store) |
| 320 | 320 | ||
| 321 | extern int __must_check device_create_file(struct device *device, | 321 | extern int __must_check device_create_file(struct device *device, |
| 322 | struct device_attribute *entry); | 322 | const struct device_attribute *entry); |
| 323 | extern void device_remove_file(struct device *dev, | 323 | extern void device_remove_file(struct device *dev, |
| 324 | struct device_attribute *attr); | 324 | const struct device_attribute *attr); |
| 325 | extern int __must_check device_create_bin_file(struct device *dev, | 325 | extern int __must_check device_create_bin_file(struct device *dev, |
| 326 | struct bin_attribute *attr); | 326 | const struct bin_attribute *attr); |
| 327 | extern void device_remove_bin_file(struct device *dev, | 327 | extern void device_remove_bin_file(struct device *dev, |
| 328 | struct bin_attribute *attr); | 328 | const struct bin_attribute *attr); |
| 329 | extern int device_schedule_callback_owner(struct device *dev, | 329 | extern int device_schedule_callback_owner(struct device *dev, |
| 330 | void (*func)(struct device *dev), struct module *owner); | 330 | void (*func)(struct device *dev), struct module *owner); |
| 331 | 331 | ||
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index 9d68fed50f11..cfa83083a2d4 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h | |||
| @@ -99,8 +99,9 @@ int __must_check sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, | |||
| 99 | void sysfs_remove_file(struct kobject *kobj, const struct attribute *attr); | 99 | void sysfs_remove_file(struct kobject *kobj, const struct attribute *attr); |
| 100 | 100 | ||
| 101 | int __must_check sysfs_create_bin_file(struct kobject *kobj, | 101 | int __must_check sysfs_create_bin_file(struct kobject *kobj, |
| 102 | struct bin_attribute *attr); | 102 | const struct bin_attribute *attr); |
| 103 | void sysfs_remove_bin_file(struct kobject *kobj, struct bin_attribute *attr); | 103 | void sysfs_remove_bin_file(struct kobject *kobj, |
| 104 | const struct bin_attribute *attr); | ||
| 104 | 105 | ||
| 105 | int __must_check sysfs_create_link(struct kobject *kobj, struct kobject *target, | 106 | int __must_check sysfs_create_link(struct kobject *kobj, struct kobject *target, |
| 106 | const char *name); | 107 | const char *name); |
| @@ -175,13 +176,13 @@ static inline void sysfs_remove_file(struct kobject *kobj, | |||
| 175 | } | 176 | } |
| 176 | 177 | ||
| 177 | static inline int sysfs_create_bin_file(struct kobject *kobj, | 178 | static inline int sysfs_create_bin_file(struct kobject *kobj, |
| 178 | struct bin_attribute *attr) | 179 | const struct bin_attribute *attr) |
| 179 | { | 180 | { |
| 180 | return 0; | 181 | return 0; |
| 181 | } | 182 | } |
| 182 | 183 | ||
| 183 | static inline void sysfs_remove_bin_file(struct kobject *kobj, | 184 | static inline void sysfs_remove_bin_file(struct kobject *kobj, |
| 184 | struct bin_attribute *attr) | 185 | const struct bin_attribute *attr) |
| 185 | { | 186 | { |
| 186 | } | 187 | } |
| 187 | 188 | ||
