lkml.org 
[lkml]   [2004]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH] (urgent) ppc32: Fix CPUs with soft loaded TLB
    From
    Date
    On Sun, 2004-06-06 at 16:20, Linus Torvalds wrote:
    > On Sun, 6 Jun 2004, Benjamin Herrenschmidt wrote:
    > >
    > > The recent introduction of ptep_set_access_flags() with the optimisation
    > > of not flushing the TLB unfortunately broke ppc32 CPUs with no hash table.
    >
    > Makes sense, applied.

    ARGH. Missed one file. Here is an additional patch (missed tlbflush.h patch)

    Sorry.

    This adds the definiction of flush_tlb_page_nohash() that was missing
    from the previous patch fixing SW-TLB loaded PPCs

    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

    ===== include/asm-ppc/tlbflush.h 1.9 vs edited =====
    --- 1.9/include/asm-ppc/tlbflush.h 2003-09-15 15:59:05 -05:00
    +++ edited/include/asm-ppc/tlbflush.h 2004-06-06 16:01:50 -05:00
    @@ -29,6 +29,9 @@
    static inline void flush_tlb_page(struct vm_area_struct *vma,
    unsigned long vmaddr)
    { _tlbie(vmaddr); }
    +static inline void flush_tlb_page_nohash(struct vm_area_struct *vma,
    + unsigned long vmaddr)
    + { _tlbie(vmaddr); }
    static inline void flush_tlb_range(struct vm_area_struct *vma,
    unsigned long start, unsigned long end)
    { __tlbia(); }
    @@ -44,6 +47,9 @@
    static inline void flush_tlb_page(struct vm_area_struct *vma,
    unsigned long vmaddr)
    { _tlbie(vmaddr); }
    +static inline void flush_tlb_page_nohash(struct vm_area_struct *vma,
    + unsigned long vmaddr)
    + { _tlbie(vmaddr); }
    static inline void flush_tlb_range(struct mm_struct *mm,
    unsigned long start, unsigned long end)
    { __tlbia(); }
    @@ -56,6 +62,7 @@
    struct vm_area_struct;
    extern void flush_tlb_mm(struct mm_struct *mm);
    extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr);
    +extern void flush_tlb_page_nohash(struct vm_area_struct *vma, unsigned long addr);
    extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
    unsigned long end);
    extern void flush_tlb_kernel_range(unsigned long start, unsigned long end);


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

    \
     
     \ /
      Last update: 2005-03-22 14:03    [W:0.044 / U:0.096 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site