[PATCH] staging: comedi: refactor sysfs files in comedi_fops.c

H Hartley Sweeten hartleys at visionengravers.com
Wed May 9 15:56:54 UTC 2012


On Tuesday, May 08, 2012 7:17 PM, H Hartley Sweeten wrote:
>
> Refactor the sysfs attributes and functions to remove
> the need for the forward declarations and use the
> DEVICE_ATTR macro to define them.
>
> Instead of individually creating sysfs device attribute
> files, wrap them in an attribute_group and use the
> sysfs_create_group function to create them.
>
> Signed-off-by: H Hartley Sweeten <hsweeten at visionengravers.com>
> Cc: Ian Abbott <abbotti at mev.co.uk>
> Cc: Mori Hess <fmhess at users.sourceforge.net>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
>
> ---

Oops... spotted a copy-paste error after I posted this.

<snip>

> @@ -2367,42 +2620,15 @@ int comedi_alloc_subdevice_minor(struct comedi_device *dev,
>  	if (!IS_ERR(csdev))
>  		s->class_dev = csdev;
>  	dev_set_drvdata(csdev, info);
> -	retval = device_create_file(csdev, &dev_attr_max_read_buffer_kb);
> +
> +	retval = sysfs_create_group(&csdev->kobj, &comedi_sysfs_files);
>  	if (retval) {
>  		printk(KERN_ERR
> -		       "comedi: "
> -		       "failed to create sysfs attribute file \"%s\".\n",
> -		       dev_attr_max_read_buffer_kb.attr.name);
> -		comedi_free_subdevice_minor(s);
> -		return retval;
> -	}
> -	retval = device_create_file(csdev, &dev_attr_read_buffer_kb);
> -	if (retval) {
> -		printk(KERN_ERR
> -		       "comedi: "
> -		       "failed to create sysfs attribute file \"%s\".\n",
> -		       dev_attr_read_buffer_kb.attr.name);
> -		comedi_free_subdevice_minor(s);
> -		return retval;
> -	}
> -	retval = device_create_file(csdev, &dev_attr_max_write_buffer_kb);
> -	if (retval) {
> -		printk(KERN_ERR
> -		       "comedi: "
> -		       "failed to create sysfs attribute file \"%s\".\n",
> -		       dev_attr_max_write_buffer_kb.attr.name);
> -		comedi_free_subdevice_minor(s);
> -		return retval;
> -	}
> -	retval = device_create_file(csdev, &dev_attr_write_buffer_kb);
> -	if (retval) {
> -		printk(KERN_ERR
> -		       "comedi: "
> -		       "failed to create sysfs attribute file \"%s\".\n",
> -		       dev_attr_write_buffer_kb.attr.name);
> -		comedi_free_subdevice_minor(s);
> +		       "comedi: failed to create sysfs attribute files\n");
> +		comedi_free_board_minor(i);

This should still be:

		comedi_free_subdevice_minor(s);

I'll fix it and re-post.

>  		return retval;
>  	}
> +
>  	return i;
>  }

Regards,
Hartley

 



More information about the devel mailing list