it's on a tqm850l with mpc850. i've done the following:

in update_mmu_cache:

                if (!PageReserved(page)
                    && !test_bit(PG_arch_1, &page->flags)) {
//                      if (vma->vm_mm == current->active_mm){
//                              _tlbie(address);
//                              __flush_dcache_icache((void *) address);
//                      } else
                                __flush_dcache_icache(page _address(page));
//                              flush_dcache_icache_page(page);
                       
                        set_bit(PG_arch_1, &page->flags);
                }

like it is in ppc64. now it works. the flush_dcache_icache_page calls __flush_dcache_icache_phys, which temporary turns off the mmu for data-addressing. a bit strange i think. but unfortunately i have too less knowledge about kernel-internal ppc-stuff :(

anton