archrelease: copy trunk to community-any
[ArchLinux/community.git] / ndiswrapper-arch / trunk / kernel-5.6.patch
blob9fd7d61257c8e89c7af867bf7d3968218f7ebf71
1 diff --git a/driver/ntoskernel.c b/driver/ntoskernel.c
2 index fccb28e..cd87740 100644
3 --- a/driver/ntoskernel.c
4 +++ b/driver/ntoskernel.c
5 @@ -1763,9 +1763,9 @@ wstdcall void __iomem *WIN_FUNC(MmMapIoSpace,3)
6 void __iomem *virt;
7 ENTER1("cache type: %d", cache);
8 if (cache == MmCached)
9 - virt = ioremap(phys_addr, size);
10 + virt = ioremap_cache(phys_addr, size);
11 else
12 - virt = ioremap_nocache(phys_addr, size);
13 + virt = ioremap(phys_addr, size);
14 TRACE1("%llx, %zu, %p", phys_addr, size, virt);
15 return virt;
17 diff --git a/driver/proc.c b/driver/proc.c
18 index 8a8cf2b..2622228 100644
19 --- a/driver/proc.c
20 +++ b/driver/proc.c
21 @@ -70,7 +70,11 @@ static inline void *PDE_DATA(const struct inode *inode)
22 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
23 static inline struct proc_dir_entry *proc_create_data(const char *name,
24 umode_t mode, struct proc_dir_entry *parent,
25 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
26 + struct proc_ops *fops, void *data)
27 +#else
28 struct file_operations *fops, void *data)
29 +#endif
31 struct proc_dir_entry *de;
33 @@ -86,7 +90,11 @@ static inline struct proc_dir_entry *proc_create_data(const char *name,
35 static int do_proc_make_entry(const char *name, umode_t mode,
36 struct proc_dir_entry *parent,
37 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
38 + struct proc_ops *fops, kuid_t uid,
39 +#else
40 struct file_operations *fops, kuid_t uid,
41 +#endif
42 kgid_t gid, struct ndis_device *wnd)
44 struct proc_dir_entry *de;
45 @@ -100,6 +108,32 @@ static int do_proc_make_entry(const char *name, umode_t mode,
46 return 0;
49 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
50 +#define PROC_DECLARE_RO(name) \
51 + static int proc_##name##_open(struct inode *inode, struct file *file) \
52 + { \
53 + return single_open(file, proc_##name##_read, PDE_DATA(inode)); \
54 + } \
55 + static struct proc_ops name##_fops = { \
56 + .proc_open = proc_##name##_open, \
57 + .proc_read = seq_read, \
58 + .proc_lseek = seq_lseek, \
59 + .proc_release = single_release, \
60 + };
62 +#define PROC_DECLARE_RW(name) \
63 + static int proc_##name##_open(struct inode *inode, struct file *file) \
64 + { \
65 + return single_open(file, proc_##name##_read, PDE_DATA(inode)); \
66 + } \
67 + static struct proc_ops name##_fops = { \
68 + .proc_open = proc_##name##_open, \
69 + .proc_read = seq_read, \
70 + .proc_lseek = seq_lseek, \
71 + .proc_release = single_release, \
72 + .proc_write = proc_##name##_write, \
73 + };
74 +#else
75 #define PROC_DECLARE_RO(name) \
76 static int proc_##name##_open(struct inode *inode, struct file *file) \
77 { \
78 @@ -126,6 +160,7 @@ static int do_proc_make_entry(const char *name, umode_t mode,
79 .release = single_release, \
80 .write = proc_##name##_write, \
82 +#endif
84 #define proc_make_entry_ro(name, parent, wnd) \
85 do_proc_make_entry(#name, S_IFREG | S_IRUSR | S_IRGRP, parent, \