Hi Olaf,

Thanks for doing this.  Patches to drivers/of should also be cc'd to the
Sparc guys as they share this stuff with is, now.

Also, drivers/macintosh/macio_sysfs.c does this for itself, so that
should probably be removed.

On Tue, 22 Jan 2008 15:40:53 +0100 Olaf Hering <[EMAIL PROTECTED]> wrote:
>
> Create /sys/bus/of_platform/devices/*/modalias file to allow autoloading
> of modules. modalias files are already present for many other bus types.
> 
> Signed-off-by: Olaf Hering <[EMAIL PROTECTED]>
> 
> ---
>  drivers/of/device.c |   19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> --- a/drivers/of/device.c
> +++ b/drivers/of/device.c
> @@ -86,7 +86,20 @@ static ssize_t dev_show_devspec(struct d
>       return sprintf(buf, "%s", ofdev->node->full_name);
>  }
>  
> +static ssize_t dev_show_modalias(struct device *dev,
> +                             struct device_attribute *attr, char *buf)
> +{
> +     struct of_device *ofdev = to_of_device(dev);
> +     ssize_t len = 0;
> +
> +     len = of_device_get_modalias(ofdev, buf, PAGE_SIZE);

Should you pass (PAGE_SIZE - 1 (or 2)) here?

> +     buf[len] = '\n';
> +     buf[len+1] = 0;
> +     return len+1;
> +}
> +
>  static DEVICE_ATTR(devspec, S_IRUGO, dev_show_devspec, NULL);
> +static DEVICE_ATTR(modalias, S_IRUGO, dev_show_modalias, NULL);
>  
>  /**
>   * of_release_dev - free an of device structure when all users of it are 
> finished.
> @@ -116,6 +129,11 @@ int of_device_register(struct of_device 
>               return rc;
>  
>       rc = device_create_file(&ofdev->dev, &dev_attr_devspec);
> +     if (rc) {
> +             device_unregister(&ofdev->dev);
> +             return rc;
> +     }
> +     rc = device_create_file(&ofdev->dev, &dev_attr_modalias);
>       if (rc)
>               device_unregister(&ofdev->dev);
>  
> @@ -126,6 +144,7 @@ EXPORT_SYMBOL(of_device_register);
>  void of_device_unregister(struct of_device *ofdev)
>  {
>       device_remove_file(&ofdev->dev, &dev_attr_devspec);
> +     device_remove_file(&ofdev->dev, &dev_attr_modalias);
>       device_unregister(&ofdev->dev);
>  }
>  EXPORT_SYMBOL(of_device_unregister);

-- 
Cheers,
Stephen Rothwell                    [EMAIL PROTECTED]
http://www.canb.auug.org.au/~sfr/

Attachment: pgpx91jmaMwKI.pgp
Description: PGP signature

Reply via email to