Subversion Repositories HelenOS

Rev

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