lkml.org 
[lkml]   [2000]   [Jan]   [30]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 30 Jan 2000 12:53:40 +0100
FromManfred Spraul <>
SubjectRe: bug in __flush_tlb_global() ?
Mikael Pettersson wrote:
> 
> I believe there's a bug in the __flush_tlb_global() macro
> added to include/asm-i386/pgtable.h in 2.3.40:
> 
> [...]
>                         : "r" (mmu_cr4_features),                       \
>                           "r" (mmu_cr4_features & ~X86_CR4_PGE),        \
>                           "r" (__pa(current->active_mm->pgd))           \
>                         : "memory");                                    \
> [...]
> I may be wrong, but it looks to me as if inputs 0 and 1 have been
> swapped. Proposed fix included below.
> 
Yes, that's a known bug, but the complete bug list of the tlb flush code
is a bit longer :-(

* parameters swapped.
* current->active_mm can be NULL during thread switch.
* current->mm->cpu_vm_mask is not updated properly during thread switch
if a flush IPI arrives between switch_mm() and switch_to().

The first 2 problems are fixed in Ingo's newest patch, and the third
problem is fixed in my patch that I posted yesterday [and forwarded to
Linus for inclusion in the next kernel]

--
	Manfred

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:56    [from the cache]
©2003-2008