diff options
| author | Roger Pau Monné <royger@FreeBSD.org> | 2017-02-22 09:22:17 +0000 |
|---|---|---|
| committer | Roger Pau Monné <royger@FreeBSD.org> | 2017-02-22 09:22:17 +0000 |
| commit | de7d5ac603c78115600c885c47abccaf3c598a86 (patch) | |
| tree | c9417b3a30bc5e908920f6a284fa981655ea06d7 /sys/dev/xen/timer | |
| parent | cfbeb41ccf973c77bcc2a56d997f63599c11075c (diff) | |
Notes
Diffstat (limited to 'sys/dev/xen/timer')
| -rw-r--r-- | sys/dev/xen/timer/timer.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sys/dev/xen/timer/timer.c b/sys/dev/xen/timer/timer.c index 0b26847b399d..2e94ce76fa5d 100644 --- a/sys/dev/xen/timer/timer.c +++ b/sys/dev/xen/timer/timer.c @@ -417,8 +417,20 @@ xentimer_attach(device_t dev) /* Register the timecounter. */ sc->tc.tc_name = "XENTIMER"; sc->tc.tc_quality = XENTIMER_QUALITY; - sc->tc.tc_flags = TC_FLAGS_SUSPEND_SAFE; /* + * FIXME: due to the lack of ordering during resume, FreeBSD cannot + * guarantee that the Xen PV timer is resumed before any other device + * attempts to make use of it, so mark it as not safe for suspension + * (ie: remove the TC_FLAGS_SUSPEND_SAFE flag). + * + * NB: This was not a problem in previous FreeBSD versions because the + * timer was directly attached to the nexus, but it is an issue now + * that the timer is attached to the xenpv bus, and thus resumed + * later. + * + * sc->tc.tc_flags = TC_FLAGS_SUSPEND_SAFE; + */ + /* * The underlying resolution is in nanoseconds, since the timer info * scales TSC frequencies using a fraction that represents time in * terms of nanoseconds. |
