svn commit: r320690 - head/sys/dev/acpica/Osd

Mark Johnston markj at FreeBSD.org
Wed Jul 5 17:39:18 UTC 2017


Author: markj
Date: Wed Jul  5 17:39:17 2017
New Revision: 320690
URL: https://svnweb.freebsd.org/changeset/base/320690

Log:
  Defer ACPI taskqueue creation to SI_SUB_KICK_SCHEDULER.
  
  This addresses a deadlock during boot when EARLY_AP_STARTUP is configured:
  a taskqueue thread may call pause() with an ACPI mutex held, and thread0
  may block on this mutex before configuring the eventtimer. In this case
  the taskqueue thread will sleep forever waiting for its callout to fire.
  
  PR:		220277
  Submitted by:	jhb
  MFC after:	3 days

Modified:
  head/sys/dev/acpica/Osd/OsdSchedule.c

Modified: head/sys/dev/acpica/Osd/OsdSchedule.c
==============================================================================
--- head/sys/dev/acpica/Osd/OsdSchedule.c	Wed Jul  5 17:29:07 2017	(r320689)
+++ head/sys/dev/acpica/Osd/OsdSchedule.c	Wed Jul  5 17:39:17 2017	(r320690)
@@ -128,7 +128,7 @@ acpi_taskq_init(void *arg)
     acpi_taskq_started = 1;
 }
 
-SYSINIT(acpi_taskq, SI_SUB_CONFIGURE, SI_ORDER_SECOND, acpi_taskq_init, NULL);
+SYSINIT(acpi_taskq, SI_SUB_KICK_SCHEDULER, SI_ORDER_ANY, acpi_taskq_init, NULL);
 
 /*
  * Bounce through this wrapper function since ACPI-CA doesn't understand


More information about the svn-src-all mailing list