On Tue, Aug 27, 2019 at 11:13:24AM +0200, Mark Kettenis wrote:
> Wonder if it is trying to remove a notifier that hasn't been
> registered.  Seems the Linux code would allow that.
> 
> Can you try the diff below?

the host boot fine with it. the error path is taken, and the system
continues to boot.

the diff itself looks fine. so ok semarie@

Thanks.
-- 
Sebastien Marie

> Index: dev/pci/drm/drm_linux.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/drm_linux.c,v
> retrieving revision 1.48
> diff -u -p -r1.48 drm_linux.c
> --- dev/pci/drm/drm_linux.c   18 Aug 2019 13:11:47 -0000      1.48
> +++ dev/pci/drm/drm_linux.c   27 Aug 2019 09:12:10 -0000
> @@ -1120,8 +1120,17 @@ register_acpi_notifier(struct notifier_b
>  int
>  unregister_acpi_notifier(struct notifier_block *nb)
>  {
> -     SLIST_REMOVE(&drm_linux_acpi_notify_list, nb, notifier_block, link);
> -     return 0;
> +     struct notifier_block *tmp;
> +
> +     SLIST_FOREACH(tmp, &drm_linux_acpi_notify_list, link) {
> +             if (tmp == nb) {
> +                     SLIST_REMOVE(&drm_linux_acpi_notify_list, nb,
> +                         notifier_block, link);
> +                     return 0;
> +             }
> +     }
> +
> +     return -ENOENT;
>  }
>  
>  const char *

Reply via email to