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 Tue, 30 Aug 2005, Marc Aurele La France wrote:
On Tue, 30 Aug 2005, Bang Jun-Young wrote:
On Mon, 29 Aug 2005 17:49:02 +0900, Bang Jun-Young <junyoung@xxxxxxxxx> wrote:
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.

It is, one I pointed out to VMWare sometime ago. I'll commit a workaround for this soon. Thanks for reminding me of VMWare's unaligned accesses.

The attached should work with the vmware driver. Please also try this with the vesa driver.

Thanks.

Marc.

+----------------------------------+-----------------------------------+
|  Marc Aurele La France           |  work:   1-780-492-9310           |
|  Academic Information and        |  fax:    1-780-492-1729           |
|    Communications Technologies   |  email:  tsi@xxxxxxxxxxx          |
|  352 General Services Building   +-----------------------------------+
|  University of Alberta           |                                   |
|  Edmonton, Alberta               |     Standard disclaimers apply    |
|  T6G 2H1                         |                                   |
|  CANADA                          |                                   |
+----------------------------------+-----------------------------------+
XFree86 developer and VP.  ATI driver and X server internals.

Attachment: vmware.diff.gz
Description: Binary data


[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