sparse, __iomem and framebuffer memory

From: Jon Smirl
Date: Fri Sep 24 2004 - 22:15:48 EST


I just spent sometime looking at about a thousand errors from sparse
in the DRM code.

There are two main problems, first DRM makes use of opaque handles
which are passed to user space. These handles can be to normal or
iomem memory. Since the handles are typeless this generates a lot of
sparse errors. Other data associated with the handle can be use to
tell if it is normal or iomem.

Second the DRM code always treats the framebuffer as if it is in
IOMEM. But what about IGP type devices where the framebuffer is in
main memory? These only exist on the x86 so treating their framebuffer
as IOMEM works since there is no difference between IOMEM and normal
memory access on an x86.

Is there an example of a IGP type device on an architecture where
normal and IOMEM need different access functions? I suspect DRI/DRM
would break on the device.

This implies that DRM should be passing back two distinct handle
types, one for normal and one for IOMEM, so that the user space app
will use the correct access function. This is also a pretty good
argument for hiding direct framebuffer access and forcing access with
read/write calls on a handle like the IA64 people want to do.

Of course there are a thousand errors to browse though and I may not
be interpreting everything right.

--
Jon Smirl
jonsmirl@xxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/