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?
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 *