Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 113466
Collapse All | Expand All

(-)usr/src/nv/nv-linux.h (-1 / +1 lines)
Lines 76-82 Link Here
76
#include <asm/page.h>               /* PAGE_OFFSET                      */
76
#include <asm/page.h>               /* PAGE_OFFSET                      */
77
#include <asm/pgtable.h>            /* pte bit definitions              */
77
#include <asm/pgtable.h>            /* pte bit definitions              */
78
78
79
#if defined(NVCPU_X86_64) && defined(KERNEL_2_6)
79
#if defined(NVCPU_X86_64) && defined(KERNEL_2_6) && !defined(HAVE_COMPAT_IOCTL)
80
#include <linux/syscalls.h>         /* sys_ioctl()                      */
80
#include <linux/syscalls.h>         /* sys_ioctl()                      */
81
#include <linux/ioctl32.h>          /* register_ioctl32_conversion()    */
81
#include <linux/ioctl32.h>          /* register_ioctl32_conversion()    */
82
#endif
82
#endif
(-)usr/src/nv/nv.c (+17 lines)
Lines 153-158 Link Here
153
int           nv_kern_mmap(struct file *, struct vm_area_struct *);
153
int           nv_kern_mmap(struct file *, struct vm_area_struct *);
154
unsigned int  nv_kern_poll(struct file *, poll_table *);
154
unsigned int  nv_kern_poll(struct file *, poll_table *);
155
int           nv_kern_ioctl(struct inode *, struct file *, unsigned int, unsigned long);
155
int           nv_kern_ioctl(struct inode *, struct file *, unsigned int, unsigned long);
156
long          nv_kern_compat_ioctl(struct file *, unsigned int, unsigned long);
156
void          nv_kern_isr_bh(unsigned long);
157
void          nv_kern_isr_bh(unsigned long);
157
irqreturn_t   nv_kern_isr(int, void *, struct pt_regs *);
158
irqreturn_t   nv_kern_isr(int, void *, struct pt_regs *);
158
void          nv_kern_rc_timer(unsigned long);
159
void          nv_kern_rc_timer(unsigned long);
Lines 209-214 Link Here
209
    .owner     = THIS_MODULE,
210
    .owner     = THIS_MODULE,
210
    .poll      = nv_kern_poll,
211
    .poll      = nv_kern_poll,
211
    .ioctl     = nv_kern_ioctl,
212
    .ioctl     = nv_kern_ioctl,
213
#if defined(NVCPU_X86_64) && defined(HAVE_COMPAT_IOCTL)
214
    .compat_ioctl = nv_kern_compat_ioctl,
215
#endif
212
    .mmap      = nv_kern_mmap,
216
    .mmap      = nv_kern_mmap,
213
    .open      = nv_kern_open,
217
    .open      = nv_kern_open,
214
    .release   = nv_kern_close,
218
    .release   = nv_kern_close,
Lines 993-1000 Link Here
993
    inter_module_register("nv_linux_devices", THIS_MODULE, nv_linux_devices);
997
    inter_module_register("nv_linux_devices", THIS_MODULE, nv_linux_devices);
994
#endif
998
#endif
995
999
1000
#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL)
996
    /* Register ioctl conversions for 32 bit clients */
1001
    /* Register ioctl conversions for 32 bit clients */
997
    rm_register_ioctl_conversions();
1002
    rm_register_ioctl_conversions();
1003
#endif
998
1004
999
#ifdef NV_SWIOTLB
1005
#ifdef NV_SWIOTLB
1000
    // may need a better test than this eventually
1006
    // may need a better test than this eventually
Lines 1154-1161 Link Here
1154
#endif
1160
#endif
1155
    }
1161
    }
1156
1162
1163
#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL)
1157
    /* Unregister ioctl conversions for 32 bit clients */
1164
    /* Unregister ioctl conversions for 32 bit clients */
1158
    rm_unregister_ioctl_conversions();
1165
    rm_unregister_ioctl_conversions();
1166
#endif
1159
1167
1160
#if defined(NV_BUILD_NV_PAT_SUPPORT)
1168
#if defined(NV_BUILD_NV_PAT_SUPPORT)
1161
    if (nv_pat_enabled)
1169
    if (nv_pat_enabled)
Lines 1930-1935 Link Here
1930
    return status;
1938
    return status;
1931
}
1939
}
1932
1940
1941
long nv_kern_compat_ioctl(
1942
    struct file *file,
1943
    unsigned int cmd,
1944
    unsigned long i_arg
1945
)
1946
{
1947
    return nv_kern_ioctl(file->f_dentry->d_inode, file, cmd, i_arg);
1948
}
1949
1933
/*
1950
/*
1934
 * driver receives an interrupt
1951
 * driver receives an interrupt
1935
 *    if someone waiting, then hand it off.
1952
 *    if someone waiting, then hand it off.
(-)usr/src/nv/os-interface.c (-4 / +4 lines)
Lines 1227-1244 Link Here
1227
1227
1228
void NV_API_CALL os_register_ioctl32_conversion(U032 cmd, U032 size)
1228
void NV_API_CALL os_register_ioctl32_conversion(U032 cmd, U032 size)
1229
{
1229
{
1230
#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION)
1230
#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL)
1231
    unsigned int request = _IOWR(NV_IOCTL_MAGIC, cmd, char[size]);
1231
    unsigned int request = _IOWR(NV_IOCTL_MAGIC, cmd, char[size]);
1232
    register_ioctl32_conversion(request, (void *)sys_ioctl);
1232
    register_ioctl32_conversion(request, (void *)sys_ioctl);
1233
#endif /* NVCPU_X86_64 */
1233
#endif
1234
}
1234
}
1235
1235
1236
void NV_API_CALL os_unregister_ioctl32_conversion(U032 cmd, U032 size)
1236
void NV_API_CALL os_unregister_ioctl32_conversion(U032 cmd, U032 size)
1237
{
1237
{
1238
#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION)
1238
#if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL)
1239
    unsigned int request = _IOWR(NV_IOCTL_MAGIC, cmd, char[size]);
1239
    unsigned int request = _IOWR(NV_IOCTL_MAGIC, cmd, char[size]);
1240
    unregister_ioctl32_conversion(request);
1240
    unregister_ioctl32_conversion(request);
1241
#endif /* NVCPU_X86_64 */
1241
#endif
1242
}
1242
}
1243
1243
1244
BOOL NV_API_CALL os_pat_supported(void)
1244
BOOL NV_API_CALL os_pat_supported(void)

Return to bug 113466