[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NetBSD/powerpc pmap.c



NetBSD/powerpc でデバイス(framebufferとか)を mmap して munmap すると
-DDIAGNOSTIC の場合、panic しちゃいます。

落ちるのは pmap_remove_pv の最初の pa_to_attr() で、
理由は mmap の時の pmap_enter で実メモリーじゃないものは pv table
に記録しないからなんですが、どう直すのがいいでしょう?

原理的には pa_to_attr(pa) の直前に

	if (vm_physseg_find(atop(pa), NULL) == -1)
		return;

してやればいいんですが、同じ pa に2回も vm_physseg_find() するのは
もったいないし。:-)

# ってそんなに重くないんだけど…。

他にうまい手がなければ、しかたがないのでこれでいくことにします。