http://bugs.freedesktop.org/show_bug.cgi?id=17191

           Summary: libdrm has sign-extension bug in drmIoctl
           Product: DRI
           Version: XOrg CVS
          Platform: x86-64 (AMD64)
        OS/Version: FreeBSD
            Status: NEW
          Severity: normal
          Priority: medium
         Component: libdrm
        AssignedTo: dri-devel@lists.sourceforge.net
        ReportedBy: [EMAIL PROTECTED]


Created an attachment (id=18361)
 --> (http://bugs.freedesktop.org/attachment.cgi?id=18361)
Patch to libdrm to fix the problem on FreeBSD/amd64

FreeBSD amd64 reports a sign-extension on the ioctl calls which pass through
drmIoctl in xf86drm.c. The problem is that the request is typed as "int" (a
signed, 32-bit type), while the ioctl system call expects this to be an
"unsigned long" (an unsigned, 64-bit type). As it first performs the signed
conversion, then the field extension, any ioctl's with the high-bit set will
have all high 32-bits set in the ioctl passed to the driver. The drm driver is
only looking for unsigned long ioctl requests, so none of these high ioctls
will succeed. This eventually leads to a hang in the X-server on my system.

For instance: ioctl request 0xc0001432 becomes 0xffffffffc0001432, but the drm
driver is looking for 0x00000000c0001432, so the subsequent ioctls never
succeed.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to