]>
Commit | Line | Data |
---|---|---|
e6475696 | 1 | diff -ru usr/src/nv/nv-linux.h usr/src/nv.1296092/nv-linux.h |
2 | --- usr/src/nv/nv-linux.h 2005-03-22 16:19:09.000000000 +0100 | |
3 | +++ usr/src/nv.1296092/nv-linux.h 2005-06-14 16:55:30.416687848 +0200 | |
4 | @@ -76,7 +76,7 @@ | |
5 | #include <asm/page.h> /* PAGE_OFFSET */ | |
6 | #include <asm/pgtable.h> /* pte bit definitions */ | |
7 | ||
8 | -#if defined(NVCPU_X86_64) && defined(KERNEL_2_6) | |
9 | +#if defined(NVCPU_X86_64) && defined(KERNEL_2_6) && !defined(HAVE_COMPAT_IOCTL) | |
10 | #include <linux/syscalls.h> /* sys_ioctl() */ | |
11 | #include <linux/ioctl32.h> /* register_ioctl32_conversion() */ | |
12 | #endif | |
13 | diff -ru usr/src/nv/nv.c usr/src/nv.1296092/nv.c | |
14 | --- usr/src/nv/nv.c 2005-03-22 16:19:09.000000000 +0100 | |
15 | +++ usr/src/nv.1296092/nv.c 2005-06-14 16:55:16.745766144 +0200 | |
16 | @@ -153,6 +153,7 @@ | |
17 | int nv_kern_mmap(struct file *, struct vm_area_struct *); | |
18 | unsigned int nv_kern_poll(struct file *, poll_table *); | |
19 | int nv_kern_ioctl(struct inode *, struct file *, unsigned int, unsigned long); | |
20 | +long nv_kern_compat_ioctl(struct file *, unsigned int, unsigned long); | |
21 | void nv_kern_isr_bh(unsigned long); | |
22 | irqreturn_t nv_kern_isr(int, void *, struct pt_regs *); | |
23 | void nv_kern_rc_timer(unsigned long); | |
24 | @@ -209,6 +210,9 @@ | |
25 | .owner = THIS_MODULE, | |
26 | .poll = nv_kern_poll, | |
27 | .ioctl = nv_kern_ioctl, | |
28 | +#if defined(NVCPU_X86_64) && defined(HAVE_COMPAT_IOCTL) | |
29 | + .compat_ioctl = nv_kern_compat_ioctl, | |
30 | +#endif | |
31 | .mmap = nv_kern_mmap, | |
32 | .open = nv_kern_open, | |
33 | .release = nv_kern_close, | |
34 | @@ -993,8 +997,10 @@ | |
35 | inter_module_register("nv_linux_devices", THIS_MODULE, nv_linux_devices); | |
36 | #endif | |
37 | ||
38 | +#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL) | |
39 | /* Register ioctl conversions for 32 bit clients */ | |
40 | rm_register_ioctl_conversions(); | |
41 | +#endif | |
42 | ||
43 | #ifdef NV_SWIOTLB | |
44 | // may need a better test than this eventually | |
45 | @@ -1154,8 +1160,10 @@ | |
46 | #endif | |
47 | } | |
48 | ||
49 | +#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL) | |
50 | /* Unregister ioctl conversions for 32 bit clients */ | |
51 | rm_unregister_ioctl_conversions(); | |
52 | +#endif | |
53 | ||
54 | #if defined(NV_BUILD_NV_PAT_SUPPORT) | |
55 | if (nv_pat_enabled) | |
56 | @@ -1930,6 +1938,15 @@ | |
57 | return status; | |
58 | } | |
59 | ||
60 | +long nv_kern_compat_ioctl( | |
61 | + struct file *file, | |
62 | + unsigned int cmd, | |
63 | + unsigned long i_arg | |
64 | +) | |
65 | +{ | |
66 | + return nv_kern_ioctl(file->f_dentry->d_inode, file, cmd, i_arg); | |
67 | +} | |
68 | + | |
69 | /* | |
70 | * driver receives an interrupt | |
71 | * if someone waiting, then hand it off. | |
72 | diff -ru usr/src/nv/os-interface.c usr/src/nv.1296092/os-interface.c | |
73 | --- usr/src/nv/os-interface.c 2005-03-22 16:19:09.000000000 +0100 | |
74 | +++ usr/src/nv.1296092/os-interface.c 2005-06-14 16:55:21.366063752 +0200 | |
75 | @@ -1227,18 +1227,18 @@ | |
76 | ||
77 | void NV_API_CALL os_register_ioctl32_conversion(U032 cmd, U032 size) | |
78 | { | |
79 | -#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) | |
80 | +#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL) | |
81 | unsigned int request = _IOWR(NV_IOCTL_MAGIC, cmd, char[size]); | |
82 | register_ioctl32_conversion(request, (void *)sys_ioctl); | |
83 | -#endif /* NVCPU_X86_64 */ | |
84 | +#endif | |
85 | } | |
86 | ||
87 | void NV_API_CALL os_unregister_ioctl32_conversion(U032 cmd, U032 size) | |
88 | { | |
89 | -#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) | |
90 | +#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL) | |
91 | unsigned int request = _IOWR(NV_IOCTL_MAGIC, cmd, char[size]); | |
92 | unregister_ioctl32_conversion(request); | |
93 | -#endif /* NVCPU_X86_64 */ | |
94 | +#endif | |
95 | } | |
96 | ||
97 | BOOL NV_API_CALL os_pat_supported(void) |