Rev 2927 | Rev 4346 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2927 | Rev 3149 | ||
|---|---|---|---|
| Line 104... | Line 104... | ||
| 104 | #ifdef CONFIG_FB |
104 | #ifdef CONFIG_FB |
| 105 | if (sl == &fb_lock) |
105 | if (sl == &fb_lock) |
| 106 | continue; |
106 | continue; |
| 107 | #endif |
107 | #endif |
| 108 | if (i++ > DEADLOCK_THRESHOLD) { |
108 | if (i++ > DEADLOCK_THRESHOLD) { |
| 109 | printf("cpu%d: looping on spinlock %.*p:%s, " |
109 | printf("cpu%u: looping on spinlock %" PRIp ":%s, caller=%" PRIp, |
| 110 | "caller=%.*p", CPU->id, sizeof(uintptr_t) * 2, sl, |
- | |
| 111 | sl->name, sizeof(uintptr_t) * 2, CALLER); |
110 | CPU->id, sl, sl->name, CALLER); |
| 112 | symbol = get_symtab_entry(CALLER); |
111 | symbol = get_symtab_entry(CALLER); |
| 113 | if (symbol) |
112 | if (symbol) |
| 114 | printf("(%s)", symbol); |
113 | printf("(%s)", symbol); |
| 115 | printf("\n"); |
114 | printf("\n"); |
| 116 | i = 0; |
115 | i = 0; |
| 117 | deadlock_reported = true; |
116 | deadlock_reported = true; |
| 118 | } |
117 | } |
| 119 | } |
118 | } |
| 120 | 119 | ||
| 121 | if (deadlock_reported) |
120 | if (deadlock_reported) |
| 122 | printf("cpu%d: not deadlocked\n", CPU->id); |
121 | printf("cpu%u: not deadlocked\n", CPU->id); |
| 123 | 122 | ||
| 124 | /* |
123 | /* |
| 125 | * Prevent critical section code from bleeding out this way up. |
124 | * Prevent critical section code from bleeding out this way up. |
| 126 | */ |
125 | */ |
| 127 | CS_ENTER_BARRIER(); |
126 | CS_ENTER_BARRIER(); |