On Sun, 12 Aug 2007 13:44:07 +0900,
Akinobu Mita <[EMAIL PROTECTED]> wrote:

> No one uses sysdev_drivers. Because no one calls sysdev_driver_register
> with NULL class.
> 
> And it is difficult to imagine that someone want to implement a global
> sysdev driver which is called with all sys_device on any kind of
> sysdev_class.
> 
> So this patch removes global sysdev_drivers list.

This makes sense, I guess, especially since it simplyfies the code.

Some minor comments below.

> @@ -182,10 +179,12 @@ int sysdev_driver_register(struct sysdev
>                       list_for_each_entry(dev, &cls->kset.list, kobj.entry)
>                               drv->add(dev);
>               }
> -     } else
> -             list_add_tail(&drv->entry, &sysdev_drivers);
> +     } else {
> +             err = -EINVAL;
> +             WARN_ON(1);

Maybe print what went wrong here?

> +     }
>       mutex_unlock(&sysdev_drivers_lock);
> -     return 0;
> +     return err;
>  }
> 
> 
> @@ -206,6 +205,8 @@ void sysdev_driver_unregister(struct sys
>                               drv->remove(dev);
>               }
>               kset_put(&cls->kset);
> +     } else {
> +             WARN_ON(1);

This one is redundant, since you already warned on register.

>       }
>       mutex_unlock(&sysdev_drivers_lock);
>  }

> @@ -320,12 +310,6 @@ void sysdev_shutdown(void)
>                       struct sysdev_driver * drv;
>                       pr_debug(" %s\n", kobject_name(&sysdev->kobj));
> 
> -                     /* Call global drivers first. */
> -                     list_for_each_entry(drv, &sysdev_drivers, entry) {
> -                             if (drv->shutdown)
> -                                     drv->shutdown(sysdev);
> -                     }
> -
>                       /* Call auxillary drivers next. */

This comment has become meaningless.

>                       list_for_each_entry(drv, &cls->drivers, entry) {
>                               if (drv->shutdown)

> @@ -393,15 +371,6 @@ int sysdev_suspend(pm_message_t state)
>               list_for_each_entry(sysdev, &cls->kset.list, kobj.entry) {
>                       pr_debug(" %s\n", kobject_name(&sysdev->kobj));
> 
> -                     /* Call global drivers first. */
> -                     list_for_each_entry(drv, &sysdev_drivers, entry) {
> -                             if (drv->suspend) {
> -                                     ret = drv->suspend(sysdev, state);
> -                                     if (ret)
> -                                             goto gbl_driver;
> -                             }
> -                     }
> -
>                       /* Call auxillary drivers next. */

Dito here.

>                       list_for_each_entry(drv, &cls->drivers, entry) {
>                               if (drv->suspend) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to