Rev 2183 | Rev 3059 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2183 | Rev 2211 | ||
---|---|---|---|
Line 81... | Line 81... | ||
81 | 81 | ||
82 | preemption_disable(); |
82 | preemption_disable(); |
83 | while (test_and_set(&sl->val)) { |
83 | while (test_and_set(&sl->val)) { |
84 | 84 | ||
85 | /* |
85 | /* |
86 | * We need to be careful about printflock and fb_lock. |
86 | * We need to be careful about printf_lock and fb_lock. |
87 | * Both of them are used to report deadlocks via |
87 | * Both of them are used to report deadlocks via |
88 | * printf() and fb_putchar(). |
88 | * printf() and fb_putchar(). |
89 | * |
89 | * |
90 | * We trust our code that there is no possible deadlock |
90 | * We trust our code that there is no possible deadlock |
91 | * caused by these two locks (except when an exception |
91 | * caused by these two locks (except when an exception |
92 | * is triggered for instance by printf() or fb_putchar()). |
92 | * is triggered for instance by printf() or fb_putchar()). |
93 | * However, we encountered false positives caused by very |
93 | * However, we encountered false positives caused by very |
94 | * slow VESA framebuffer interaction (especially when |
94 | * slow VESA framebuffer interaction (especially when |
95 | * run in a simulator) that caused problems with both |
95 | * run in a simulator) that caused problems with both |
96 | * printflock and fb_lock. |
96 | * printf_lock and fb_lock. |
97 | * |
97 | * |
98 | * Possible deadlocks on both printflock and fb_lock |
98 | * Possible deadlocks on both printf_lock and fb_lock |
99 | * are therefore not reported as they would cause an |
99 | * are therefore not reported as they would cause an |
100 | * infinite recursion. |
100 | * infinite recursion. |
101 | */ |
101 | */ |
102 | if (sl == &printflock) |
102 | if (sl == &printf_lock) |
103 | continue; |
103 | continue; |
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 |