Hi all, We encounter a Oops message from loop driver when vbd is used in dom0 kernel with CONFIG_VIRTUAL_MEM_MAP on ia64. I investigated this and might find a serious bug. On x86, flush_dcache_page() does nothing and there is no problem. But on ia64 flush_dcache_page() might access a wrong page struct and destroy the kernel memory. Attached patch fixes this problem but it seems bad idea to modify a linux driver. How should we fix it? Regards, Kouya Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Tue, Apr 18, 2006 at 07:41:55PM +0900, Kouya SHIMURA wrote:> I investigated this and might find a serious bug. > On x86, flush_dcache_page() does nothing and there is no problem. > But on ia64 flush_dcache_page() might access a wrong page struct > and destroy the kernel memory. > > Attached patch fixes this problem but it seems bad idea to modify > a linux driver. How should we fix it?Adding ifdefs to drivers is definitely not the right thing do do from an upstream inclusion point of view. Can you define flush_dcache_page() to be a NOP or some other reasonable definition when running under Xen? Cheers, Muli _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Isaku Yamahata
2006-Apr-18 11:37 UTC
[Xen-devel] Re: [Xen-ia64-devel] Oops from loop driver on IA64
On Tue, Apr 18, 2006 at 07:41:55PM +0900, Kouya SHIMURA wrote: Content-Description: message body text> We encounter a Oops message from loop driver when vbd is used > in dom0 kernel with CONFIG_VIRTUAL_MEM_MAP on ia64. > > I investigated this and might find a serious bug. > On x86, flush_dcache_page() does nothing and there is no problem. > But on ia64 flush_dcache_page() might access a wrong page struct > and destroy the kernel memory. > > Attached patch fixes this problem but it seems bad idea to modify > a linux driver. How should we fix it?Why is a invalid page passed? Should it be fixed instead of modifying loop.c? -- yamahata _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel