xhci broken on 10-CURRENT and 2013 MacBook Air?
Hans Petter Selasky
hps at bitfrost.no
Fri Aug 30 12:25:02 UTC 2013
On 08/30/13 13:54, Lundberg, Johannes wrote:
> Still got the same behaviour after applying the patch...
>
> Johannes Lundberg
> BRILLIANTSERVICE CO., LTD. <http://www.brilliantservice.co.jp>
I've seen something similar with my mac, that the boot menu counter is
not always counting stable. I think this problem is inside the following
function, if you say that the code is stuck inside pause():
sys/x86/isa/clock.c:DELAY()
Maybe you can try this patch instead. Just apply it by hand:
=== sys/x86/isa/clock.c
==================================================================
--- sys/x86/isa/clock.c (revision 254832)
+++ sys/x86/isa/clock.c (local)
@@ -262,6 +262,7 @@
timecounter_get_t *func;
uint64_t end, freq, now;
u_int last, mask, u;
+ int overflow = 0;
tc = timecounter;
freq = atomic_load_acq_64(&tsc_freq);
@@ -281,6 +282,11 @@
sched_pin();
last = func(tc) & mask;
do {
+ if (--overflow == 0) {
+ printf("DELAY overflow\n");
+ break;
+ }
+
cpu_spinwait();
u = func(tc) & mask;
if (u < last)
@@ -304,6 +310,7 @@
DELAY(int n)
{
int delta, prev_tick, tick, ticks_left;
+ int overflow = 0;
#ifdef DELAYDEBUG
int getit_calls = 1;
int n1;
@@ -365,6 +372,10 @@
/ 1000000;
while (ticks_left > 0) {
+ if (--overflow == 0) {
+ printf("DELAY overflow\n");
+ break;
+ }
#ifdef KDB
if (kdb_active) {
#ifdef PC98
--HPS
More information about the freebsd-current
mailing list