mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-05-06 03:38:03 +02:00
read-only mirror of https://gitlab.freedesktop.org/mesa/drm
Commit 9b01bd5b284bbf519b726b39f1352023cb5e9e69 introduced a
compat_ioctl handler for RADEON_SETPARAM, the sole purpose of which was
to handle the fact that on i386, alignof(uint64_t)==4.
Unfortunately, this handler was installed for _all_ 64-bit
architectures, instead of only x86_64 and ia64. And thus it breaks
32-bit compatibility on every other arch, where 64-bit integers are
aligned to 8 bytes in 32-bit mode just the same as in 64-bit mode.
Arnd has a cunning plan to use 'compat_u64' with appropriate alignment
attributes according to the 32-bit ABI, but for now let's just make the
compat_radeon_cp_setparam routine entirely disappear on 64-bit machines
whose 32-bit compat support isn't for i386. It would be a no-op with
compat_u64 anyway.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
|
||
|---|---|---|
| bsd-core | ||
| libdrm | ||
| linux-core | ||
| scripts | ||
| shared-core | ||
| tests | ||
| .gitignore | ||
| autogen.sh | ||
| configure.ac | ||
| libdrm.pc.in | ||
| Makefile.am | ||
| README | ||
DRM README file There are two main parts to this package: the DRM client library/interface (libdrm.so) and kernel/hardware-specific device modules (such as i915.ko). Compiling --------- By default, libdrm and the DRM header files will install into /usr/local/. If you want to install this DRM to replace your system copy, say: ./configure --prefix=/usr --exec-prefix=/ Then, make install To build the device-specific kernel modules: cd linux-core/ make cp *.ko /lib/modules/VERSION/kernel/drivers/char/drm/ (where VERSION is your kernel version: uname -f) Or, cd bsd-core/ make copy the kernel modules to the appropriate place Tips & Trouble-shooting ----------------------- 1. You'll need kernel sources. If using Fedora Core 5, for example, you may need to install RPMs such as: kernel-smp-devel-2.6.15-1.2054_FC5.i686.rpm kernel-devel-2.6.15-1.2054_FC5.i686.rpm etc. 2. You may need to make a symlink from /lib/modules/VERSION/build to your kernel sources in /usr/src/kernels/VERSION (where version is `uname -r`): cd /lib/modules/VERSION ln -s /usr/src/kernels/VERSION build 3. If you've build the kernel modules but they won't load because of an error like this: $ /sbin/modprobe drm FATAL: Error inserting drm (/lib/modules/2.6.15-1.2054_FC5smp/kernel/drivers/char/drm/drm.ko): Invalid module format And 'dmesg|tail' says: drm: disagrees about version of symbol struct_module Try recompiling your drm modules without the Module.symvers file. That is rm the /usr/src/kernels/2.6.15-1.2054_FC5-smp-i686/Module.symvers file (or rename it). Then do a 'make clean' before rebuilding your drm modules.