From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Regression due to d9581c7dcac15c02ad4d47c60c60f4d8f197db55 en/fb: allow xenfb initialization for hvm guest Date: Fri, 27 Feb 2015 16:24:27 -0500 Message-ID: <20150227212427.GA9502@l.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xensource.com, Stefano Stabellini List-Id: xen-devel@lists.xenproject.org This has been in queue for some time. In our kernels (UEK3) we had to revert said patch. The patch says: " xen/fb: allow xenfb initialization for hvm guests There is no reasons why an HVM guest shouldn't be allowed to use xenfb. As a matter of fact ARM guests, HVM from Linux POV, can use xenfb. Given that no Xen toolstacks configure a xenfb backend for x86 HVM guests, they are not affected. Please note that at this time QEMU needs few outstanding fixes to provide xenfb on ARM: http://marc.info/?l=qemu-devel&m=138739419700837&w=2 " which is a lie. The "no Xen toolstacks configure a xenfb backend for x86 HVM" is actually a lie. If you try to boot this kernel under Xen with Xend it will be a problem - as Xend does setup an 'vfb' device. The end result is that during the bootup - up until X starts, there is no console output on the VNC window. As the Linux kernel tries to use the vfb console driver. Any suggestsion on how to fix this? Should we just wrap the whole thing with #ifdef, like this? diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c index 09dc447..584be8e 100644 --- a/drivers/video/fbdev/xen-fbfront.c +++ b/drivers/video/fbdev/xen-fbfront.c @@ -696,7 +696,10 @@ static int __init xenfb_init(void) { if (!xen_domain()) return -ENODEV; - +#ifdef CONFIG_X86 + if (!xen_pv_domain()) + return -ENODEV; +#endif /* Nothing to do if running in dom0. */ if (xen_initial_domain()) return -ENODEV;