[Bug 206711] Export linux_ioctl_{,un}register_handler from linux64 for x11/nvidia-driver

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Feb 23 14:28:11 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=206711

--- Comment #3 from Jan Beich <jbeich at FreeBSD.org> ---
(In reply to Dmitry Chagin from comment #2)
The patch here is the result of failed attempt to register 64bit |struct
linux_ioctl_handler| from within nvidia-driver. All in-tree kernel modules
register only 32bit ioctls, the rest is done by linux64 (drm2, v4l2, console,
etc). How do you expect ports drivers to support linux64 without examples?

  $ nm -A /boot/kernel/*.ko | fgrep ioctl_register_handler
  /boot/kernel/amr_linux.ko:                  U linux_ioctl_register_handler
  /boot/kernel/ipmi_linux.ko:                 U linux_ioctl_register_handler
  /boot/kernel/linux.ko:     0000000000009480 t linux_ioctl_register_handler
  /boot/kernel/linux64.ko:   00000000000093e0 t linux_ioctl_register_handler
  /boot/kernel/mfi_linux.ko:                  U linux_ioctl_register_handler
  /boot/kernel/mrsas_linux.ko:                U linux_ioctl_register_handler

nvidia_linux.c doesn't have much MD code but the following has no effect even
on the hashsum of its object file.

  --- src/nvidia/nvidia_linux.c~
  +++ src/nvidia/nvidia_linux.c
  @@ -18,13 +18,8 @@
   #define LINUX_IOCTL_NVIDIA_MIN 0x4600
   #define LINUX_IOCTL_NVIDIA_MAX 0x46ff

  -#if defined(NVCPU_X86)
   #include "machine/../linux/linux.h"
   #include "machine/../linux/linux_proto.h"
  -#elif defined(NVCPU_X86_64)
  -#include "machine/../linux32/linux.h"
  -#include "machine/../linux32/linux32_proto.h"
  -#endif

   #include <compat/linux/linux_ioctl.h>

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-emulation mailing list