Re: Vesa driver doesn't work with int10/helper_exec.c r1.29

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

 



On Mon, 29 Aug 2005 17:49:02 +0900, Bang Jun-Young <junyoung@xxxxxxxxx> wrote:

Hi,

I got the following error when I ran XFree86 tagged xf-4_5_99_10 with vesa driver
on a VMware virtual machine running NetBSD/i386:

Fatal server error:
xf86MapVidMem: could not mmap /dev/mem [s=ffec0000,a=ffeb9898] (Invalid argument)

I have found that this was caused by changes made in helper_exec.c r1.28.
Reverting to r1.27 fixed the problem.

Upon some experiments, I have found that the following code is causing
the problem:

CARD32
x_inl(CARD16 port)
{
    CARD32 val;

    if (port & 0x0003U) {
	  UnalignedIO(Int10Current, "read", port, 4);
	  if (port & 0x0001U) {
	      val = x_inb(port);
	      val |= (CARD32)x_inw(port + 1) << 8;
	      val |= (CARD32)x_inb(port + 3) << 24;
	  } else {
	      val = x_inw(port);
	      val |= (CARD32)x_inw(port + 2) << 16;
	  }
    } ... snipped ...
}

It seems that a unaligned dword-sized IO can't be separated to smaller
word/byte-sized IO's. I'm not sure if this is a bug of VMware virtual
graphics adapter.

Jun-Young




_______________________________________________
XFree86 mailing list
XFree86@xxxxxxxxxxx
http://XFree86.Org/mailman/listinfo/xfree86

[Index of Archives]     [X Forum]     [Xorg]     [XFree86 Newbie]     [IETF Announce]     [Security]     [Font Config]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux Kernel]

  Powered by Linux