Change-Id: I21a65fa9f2a678f04c434ad4ccfb0f0eb65777c6
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/1529
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Sharath George
1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,661 @@ |
0 |
+From 9d635c04ddbc8415bcb060017ac34e23a17b8136 Mon Sep 17 00:00:00 2001 |
|
1 |
+From: Alexey Makhalov <amakhalov@vmware.com> |
|
2 |
+Date: Tue, 4 Oct 2016 21:07:14 +0000 |
|
3 |
+Subject: [PATCH 1/2] NOWRITEEXEC and PAX features: EMUTRAMP, MPROTECT |
|
4 |
+ |
|
5 |
+--- |
|
6 |
+ arch/x86/mm/fault.c | 218 +++++++++++++++++++++++++++++++++++++++++++++++ |
|
7 |
+ fs/binfmt_elf.c | 70 +++++++++++++++ |
|
8 |
+ fs/exec.c | 5 ++ |
|
9 |
+ include/linux/binfmts.h | 3 + |
|
10 |
+ include/linux/elf.h | 2 + |
|
11 |
+ include/linux/mm_types.h | 3 + |
|
12 |
+ include/linux/sched.h | 2 + |
|
13 |
+ include/uapi/linux/elf.h | 3 + |
|
14 |
+ ipc/shm.c | 3 + |
|
15 |
+ mm/mmap.c | 25 ++++++ |
|
16 |
+ mm/mprotect.c | 12 +++ |
|
17 |
+ security/Kconfig | 78 +++++++++++++++++ |
|
18 |
+ 12 files changed, 424 insertions(+) |
|
19 |
+ |
|
20 |
+diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c |
|
21 |
+index dc80230..9de4144 100644 |
|
22 |
+--- a/arch/x86/mm/fault.c |
|
23 |
+@@ -244,6 +244,11 @@ force_sig_info_fault(int si_signo, int si_code, unsigned long address, |
|
24 |
+ force_sig_info(si_signo, &info, tsk); |
|
25 |
+ } |
|
26 |
+ |
|
27 |
++#ifdef CONFIG_PAX_EMUTRAMP |
|
28 |
++static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address); |
|
29 |
++static int pax_handle_fetch_fault(struct pt_regs *regs); |
|
30 |
++#endif |
|
31 |
++ |
|
32 |
+ DEFINE_SPINLOCK(pgd_lock); |
|
33 |
+ LIST_HEAD(pgd_list); |
|
34 |
+ |
|
35 |
+@@ -854,6 +859,13 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, |
|
36 |
+ return; |
|
37 |
+ } |
|
38 |
+ #endif |
|
39 |
++#ifdef CONFIG_PAX_EMUTRAMP |
|
40 |
++ if (pax_is_fetch_fault(regs, error_code, address)) { |
|
41 |
++ if (pax_handle_fetch_fault(regs) == 2) |
|
42 |
++ return; |
|
43 |
++ do_group_exit(SIGKILL); |
|
44 |
++ } |
|
45 |
++#endif |
|
46 |
+ |
|
47 |
+ /* |
|
48 |
+ * To avoid leaking information about the kernel page table |
|
49 |
+@@ -1451,3 +1463,209 @@ trace_do_page_fault(struct pt_regs *regs, unsigned long error_code) |
|
50 |
+ } |
|
51 |
+ NOKPROBE_SYMBOL(trace_do_page_fault); |
|
52 |
+ #endif /* CONFIG_TRACING */ |
|
53 |
++ |
|
54 |
++#ifdef CONFIG_PAX_EMUTRAMP |
|
55 |
++static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address) |
|
56 |
++{ |
|
57 |
++ unsigned long ip = regs->ip; |
|
58 |
++ |
|
59 |
++ if (v8086_mode(regs)) |
|
60 |
++ ip = ((regs->cs & 0xffff) << 4) + (ip & 0xffff); |
|
61 |
++ |
|
62 |
++ if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR)) |
|
63 |
++ return true; |
|
64 |
++ if (!(error_code & (PF_PROT | PF_WRITE)) && ip == address) |
|
65 |
++ return true; |
|
66 |
++ return false; |
|
67 |
++} |
|
68 |
++ |
|
69 |
++static int pax_handle_fetch_fault_32(struct pt_regs *regs) |
|
70 |
++{ |
|
71 |
++ int err; |
|
72 |
++ |
|
73 |
++ do { /* PaX: libffi trampoline emulation */ |
|
74 |
++ unsigned char mov, jmp; |
|
75 |
++ unsigned int addr1, addr2; |
|
76 |
++ |
|
77 |
++#ifdef CONFIG_X86_64 |
|
78 |
++ if ((regs->ip + 9) >> 32) |
|
79 |
++ break; |
|
80 |
++#endif |
|
81 |
++ |
|
82 |
++ err = get_user(mov, (unsigned char __user *)regs->ip); |
|
83 |
++ err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1)); |
|
84 |
++ err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5)); |
|
85 |
++ err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6)); |
|
86 |
++ |
|
87 |
++ if (err) |
|
88 |
++ break; |
|
89 |
++ |
|
90 |
++ if (mov == 0xB8 && jmp == 0xE9) { |
|
91 |
++ regs->ax = addr1; |
|
92 |
++ regs->ip = (unsigned int)(regs->ip + addr2 + 10); |
|
93 |
++ return 2; |
|
94 |
++ } |
|
95 |
++ } while (0); |
|
96 |
++ |
|
97 |
++ do { /* PaX: gcc trampoline emulation #1 */ |
|
98 |
++ unsigned char mov1, mov2; |
|
99 |
++ unsigned short jmp; |
|
100 |
++ unsigned int addr1, addr2; |
|
101 |
++ |
|
102 |
++#ifdef CONFIG_X86_64 |
|
103 |
++ if ((regs->ip + 11) >> 32) |
|
104 |
++ break; |
|
105 |
++#endif |
|
106 |
++ |
|
107 |
++ err = get_user(mov1, (unsigned char __user *)regs->ip); |
|
108 |
++ err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1)); |
|
109 |
++ err |= get_user(mov2, (unsigned char __user *)(regs->ip + 5)); |
|
110 |
++ err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6)); |
|
111 |
++ err |= get_user(jmp, (unsigned short __user *)(regs->ip + 10)); |
|
112 |
++ |
|
113 |
++ if (err) |
|
114 |
++ break; |
|
115 |
++ |
|
116 |
++ if (mov1 == 0xB9 && mov2 == 0xB8 && jmp == 0xE0FF) { |
|
117 |
++ regs->cx = addr1; |
|
118 |
++ regs->ax = addr2; |
|
119 |
++ regs->ip = addr2; |
|
120 |
++ return 2; |
|
121 |
++ } |
|
122 |
++ } while (0); |
|
123 |
++ |
|
124 |
++ do { /* PaX: gcc trampoline emulation #2 */ |
|
125 |
++ unsigned char mov, jmp; |
|
126 |
++ unsigned int addr1, addr2; |
|
127 |
++ |
|
128 |
++#ifdef CONFIG_X86_64 |
|
129 |
++ if ((regs->ip + 9) >> 32) |
|
130 |
++ break; |
|
131 |
++#endif |
|
132 |
++ |
|
133 |
++ err = get_user(mov, (unsigned char __user *)regs->ip); |
|
134 |
++ err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1)); |
|
135 |
++ err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5)); |
|
136 |
++ err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6)); |
|
137 |
++ |
|
138 |
++ if (err) |
|
139 |
++ break; |
|
140 |
++ |
|
141 |
++ if (mov == 0xB9 && jmp == 0xE9) { |
|
142 |
++ regs->cx = addr1; |
|
143 |
++ regs->ip = (unsigned int)(regs->ip + addr2 + 10); |
|
144 |
++ return 2; |
|
145 |
++ } |
|
146 |
++ } while (0); |
|
147 |
++ |
|
148 |
++ return 1; /* PaX in action */ |
|
149 |
++} |
|
150 |
++ |
|
151 |
++#ifdef CONFIG_X86_64 |
|
152 |
++static int pax_handle_fetch_fault_64(struct pt_regs *regs) |
|
153 |
++{ |
|
154 |
++ int err; |
|
155 |
++ |
|
156 |
++ do { /* PaX: libffi trampoline emulation */ |
|
157 |
++ unsigned short mov1, mov2, jmp1; |
|
158 |
++ unsigned char stcclc, jmp2; |
|
159 |
++ unsigned long addr1, addr2; |
|
160 |
++ |
|
161 |
++ err = get_user(mov1, (unsigned short __user *)regs->ip); |
|
162 |
++ err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2)); |
|
163 |
++ err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10)); |
|
164 |
++ err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12)); |
|
165 |
++ err |= get_user(stcclc, (unsigned char __user *)(regs->ip + 20)); |
|
166 |
++ err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 21)); |
|
167 |
++ err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 23)); |
|
168 |
++ |
|
169 |
++ if (err) |
|
170 |
++ break; |
|
171 |
++ |
|
172 |
++ if (mov1 == 0xBB49 && mov2 == 0xBA49 && (stcclc == 0xF8 || stcclc == 0xF9) && jmp1 == 0xFF49 && jmp2 == 0xE3) { |
|
173 |
++ regs->r11 = addr1; |
|
174 |
++ regs->r10 = addr2; |
|
175 |
++ if (stcclc == 0xF8) |
|
176 |
++ regs->flags &= ~X86_EFLAGS_CF; |
|
177 |
++ else |
|
178 |
++ regs->flags |= X86_EFLAGS_CF; |
|
179 |
++ regs->ip = addr1; |
|
180 |
++ return 2; |
|
181 |
++ } |
|
182 |
++ } while (0); |
|
183 |
++ |
|
184 |
++ do { /* PaX: gcc trampoline emulation #1 */ |
|
185 |
++ unsigned short mov1, mov2, jmp1; |
|
186 |
++ unsigned char jmp2; |
|
187 |
++ unsigned int addr1; |
|
188 |
++ unsigned long addr2; |
|
189 |
++ |
|
190 |
++ err = get_user(mov1, (unsigned short __user *)regs->ip); |
|
191 |
++ err |= get_user(addr1, (unsigned int __user *)(regs->ip + 2)); |
|
192 |
++ err |= get_user(mov2, (unsigned short __user *)(regs->ip + 6)); |
|
193 |
++ err |= get_user(addr2, (unsigned long __user *)(regs->ip + 8)); |
|
194 |
++ err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 16)); |
|
195 |
++ err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 18)); |
|
196 |
++ |
|
197 |
++ if (err) |
|
198 |
++ break; |
|
199 |
++ |
|
200 |
++ if (mov1 == 0xBB41 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) { |
|
201 |
++ regs->r11 = addr1; |
|
202 |
++ regs->r10 = addr2; |
|
203 |
++ regs->ip = addr1; |
|
204 |
++ return 2; |
|
205 |
++ } |
|
206 |
++ } while (0); |
|
207 |
++ |
|
208 |
++ do { /* PaX: gcc trampoline emulation #2 */ |
|
209 |
++ unsigned short mov1, mov2, jmp1; |
|
210 |
++ unsigned char jmp2; |
|
211 |
++ unsigned long addr1, addr2; |
|
212 |
++ |
|
213 |
++ err = get_user(mov1, (unsigned short __user *)regs->ip); |
|
214 |
++ err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2)); |
|
215 |
++ err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10)); |
|
216 |
++ err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12)); |
|
217 |
++ err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 20)); |
|
218 |
++ err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 22)); |
|
219 |
++ |
|
220 |
++ if (err) |
|
221 |
++ break; |
|
222 |
++ |
|
223 |
++ if (mov1 == 0xBB49 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) { |
|
224 |
++ regs->r11 = addr1; |
|
225 |
++ regs->r10 = addr2; |
|
226 |
++ regs->ip = addr1; |
|
227 |
++ return 2; |
|
228 |
++ } |
|
229 |
++ } while (0); |
|
230 |
++ |
|
231 |
++ return 1; /* PaX in action */ |
|
232 |
++} |
|
233 |
++#endif |
|
234 |
++ |
|
235 |
++/* |
|
236 |
++ * PaX: decide what to do with offenders (regs->ip = fault address) |
|
237 |
++ * |
|
238 |
++ * returns 1 when task should be killed |
|
239 |
++ * 2 when gcc trampoline was detected |
|
240 |
++ */ |
|
241 |
++static int pax_handle_fetch_fault(struct pt_regs *regs) |
|
242 |
++{ |
|
243 |
++ if (v8086_mode(regs)) |
|
244 |
++ return 1; |
|
245 |
++ |
|
246 |
++ if (!(current->mm->pax_flags & MF_PAX_EMUTRAMP)) |
|
247 |
++ return 1; |
|
248 |
++ |
|
249 |
++#ifdef CONFIG_X86_32 |
|
250 |
++ return pax_handle_fetch_fault_32(regs); |
|
251 |
++#else |
|
252 |
++ if (regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)) |
|
253 |
++ return pax_handle_fetch_fault_32(regs); |
|
254 |
++ else |
|
255 |
++ return pax_handle_fetch_fault_64(regs); |
|
256 |
++#endif |
|
257 |
++} |
|
258 |
++#endif |
|
259 |
+diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c |
|
260 |
+index e5495f3..e8baaaf 100644 |
|
261 |
+--- a/fs/binfmt_elf.c |
|
262 |
+@@ -36,6 +36,7 @@ |
|
263 |
+ #include <linux/coredump.h> |
|
264 |
+ #include <linux/sched.h> |
|
265 |
+ #include <linux/dax.h> |
|
266 |
++#include <linux/xattr.h> |
|
267 |
+ #include <asm/uaccess.h> |
|
268 |
+ #include <asm/param.h> |
|
269 |
+ #include <asm/page.h> |
|
270 |
+@@ -67,6 +68,10 @@ static int elf_core_dump(struct coredump_params *cprm); |
|
271 |
+ #define elf_core_dump NULL |
|
272 |
+ #endif |
|
273 |
+ |
|
274 |
++#ifdef CONFIG_PAX_MPROTECT |
|
275 |
++static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags); |
|
276 |
++#endif |
|
277 |
++ |
|
278 |
+ #if ELF_EXEC_PAGESIZE > PAGE_SIZE |
|
279 |
+ #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE |
|
280 |
+ #else |
|
281 |
+@@ -86,6 +91,9 @@ static struct linux_binfmt elf_format = { |
|
282 |
+ .load_binary = load_elf_binary, |
|
283 |
+ .load_shlib = load_elf_library, |
|
284 |
+ .core_dump = elf_core_dump, |
|
285 |
++#ifdef CONFIG_PAX_MPROTECT |
|
286 |
++ .handle_mprotect= elf_handle_mprotect, |
|
287 |
++#endif |
|
288 |
+ .min_coredump = ELF_EXEC_PAGESIZE, |
|
289 |
+ }; |
|
290 |
+ |
|
291 |
+@@ -846,6 +854,18 @@ static int load_elf_binary(struct linux_binprm *bprm) |
|
292 |
+ /* Do this immediately, since STACK_TOP as used in setup_arg_pages |
|
293 |
+ may depend on the personality. */ |
|
294 |
+ SET_PERSONALITY2(loc->elf_ex, &arch_state); |
|
295 |
++#if defined(CONFIG_PAX) |
|
296 |
++ current->mm->pax_flags = 0UL; |
|
297 |
++#if defined(CONFIG_PAX_NOWRITEEXEC) |
|
298 |
++ if (executable_stack == EXSTACK_ENABLE_X) |
|
299 |
++ { |
|
300 |
++#if defined(CONFIG_PAX_EMUTRAMP) |
|
301 |
++ executable_stack = EXSTACK_DISABLE_X; |
|
302 |
++ current->mm->pax_flags |= MF_PAX_EMUTRAMP; |
|
303 |
++#endif |
|
304 |
++ } |
|
305 |
++#endif |
|
306 |
++#endif |
|
307 |
+ if (elf_read_implies_exec(loc->elf_ex, executable_stack)) |
|
308 |
+ current->personality |= READ_IMPLIES_EXEC; |
|
309 |
+ |
|
310 |
+@@ -2327,6 +2347,56 @@ out: |
|
311 |
+ |
|
312 |
+ #endif /* CONFIG_ELF_CORE */ |
|
313 |
+ |
|
314 |
++#ifdef CONFIG_PAX_MPROTECT |
|
315 |
++/* PaX: non-PIC ELF libraries need relocations on their executable segments |
|
316 |
++ * therefore we'll grant them VM_MAYWRITE once during their life. Similarly |
|
317 |
++ * we'll remove VM_MAYWRITE for good on RELRO segments. |
|
318 |
++ * |
|
319 |
++ * The checks favour ld-linux.so behaviour which operates on a per ELF segment |
|
320 |
++ * basis because we want to allow the common case and not the special ones. |
|
321 |
++ */ |
|
322 |
++static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags) |
|
323 |
++{ |
|
324 |
++ struct elfhdr elf_h; |
|
325 |
++ struct elf_phdr elf_p; |
|
326 |
++ unsigned long i; |
|
327 |
++ unsigned long oldflags; |
|
328 |
++ bool is_relro; |
|
329 |
++ |
|
330 |
++ if (!vma->vm_file) |
|
331 |
++ return; |
|
332 |
++ |
|
333 |
++ oldflags = vma->vm_flags & (VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ); |
|
334 |
++ newflags &= VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ; |
|
335 |
++ |
|
336 |
++ /* possible RELRO */ |
|
337 |
++ is_relro = vma->anon_vma && oldflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ) && newflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ); |
|
338 |
++ |
|
339 |
++ if (!is_relro) |
|
340 |
++ return; |
|
341 |
++ |
|
342 |
++ if (sizeof(elf_h) != kernel_read(vma->vm_file, 0UL, (char *)&elf_h, sizeof(elf_h)) || |
|
343 |
++ memcmp(elf_h.e_ident, ELFMAG, SELFMAG) || |
|
344 |
++ (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC) || |
|
345 |
++ !elf_check_arch(&elf_h) || |
|
346 |
++ elf_h.e_phentsize != sizeof(struct elf_phdr) || |
|
347 |
++ elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr)) |
|
348 |
++ return; |
|
349 |
++ |
|
350 |
++ for (i = 0UL; i < elf_h.e_phnum; i++) { |
|
351 |
++ if (sizeof(elf_p) != kernel_read(vma->vm_file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p))) |
|
352 |
++ return; |
|
353 |
++ if (elf_p.p_type == PT_GNU_RELRO) { |
|
354 |
++ if (!is_relro) |
|
355 |
++ continue; |
|
356 |
++ if ((elf_p.p_offset >> PAGE_SHIFT) == vma->vm_pgoff && ELF_PAGEALIGN(elf_p.p_memsz) == vma->vm_end - vma->vm_start) |
|
357 |
++ vma->vm_flags &= ~VM_MAYWRITE; |
|
358 |
++ is_relro = false; |
|
359 |
++ } |
|
360 |
++ } |
|
361 |
++} |
|
362 |
++#endif |
|
363 |
++ |
|
364 |
+ static int __init init_elf_binfmt(void) |
|
365 |
+ { |
|
366 |
+ register_binfmt(&elf_format); |
|
367 |
+diff --git a/fs/exec.c b/fs/exec.c |
|
368 |
+index 6fcfb3f..8f667d1 100644 |
|
369 |
+--- a/fs/exec.c |
|
370 |
+@@ -713,7 +713,12 @@ int setup_arg_pages(struct linux_binprm *bprm, |
|
371 |
+ if (unlikely(executable_stack == EXSTACK_ENABLE_X)) |
|
372 |
+ vm_flags |= VM_EXEC; |
|
373 |
+ else if (executable_stack == EXSTACK_DISABLE_X) |
|
374 |
++ { |
|
375 |
+ vm_flags &= ~VM_EXEC; |
|
376 |
++#ifdef CONFIG_PAX_MPROTECT |
|
377 |
++ vm_flags &= ~VM_MAYEXEC; |
|
378 |
++#endif |
|
379 |
++ } |
|
380 |
+ vm_flags |= mm->def_flags; |
|
381 |
+ vm_flags |= VM_STACK_INCOMPLETE_SETUP; |
|
382 |
+ |
|
383 |
+diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h |
|
384 |
+index 1303b57..e5ce743 100644 |
|
385 |
+--- a/include/linux/binfmts.h |
|
386 |
+@@ -78,6 +78,9 @@ struct linux_binfmt { |
|
387 |
+ int (*load_binary)(struct linux_binprm *); |
|
388 |
+ int (*load_shlib)(struct file *); |
|
389 |
+ int (*core_dump)(struct coredump_params *cprm); |
|
390 |
++#ifdef CONFIG_PAX_MPROTECT |
|
391 |
++ void (*handle_mprotect)(struct vm_area_struct *vma, unsigned long newflags); |
|
392 |
++#endif |
|
393 |
+ unsigned long min_coredump; /* minimal dump size */ |
|
394 |
+ }; |
|
395 |
+ |
|
396 |
+diff --git a/include/linux/elf.h b/include/linux/elf.h |
|
397 |
+index 20fa8d8..3d0dd18 100644 |
|
398 |
+--- a/include/linux/elf.h |
|
399 |
+@@ -29,6 +29,7 @@ extern Elf32_Dyn _DYNAMIC []; |
|
400 |
+ #define elf_note elf32_note |
|
401 |
+ #define elf_addr_t Elf32_Off |
|
402 |
+ #define Elf_Half Elf32_Half |
|
403 |
++#define elf_dyn Elf32_Dyn |
|
404 |
+ |
|
405 |
+ #else |
|
406 |
+ |
|
407 |
+@@ -39,6 +40,7 @@ extern Elf64_Dyn _DYNAMIC []; |
|
408 |
+ #define elf_note elf64_note |
|
409 |
+ #define elf_addr_t Elf64_Off |
|
410 |
+ #define Elf_Half Elf64_Half |
|
411 |
++#define elf_dyn Elf64_Dyn |
|
412 |
+ |
|
413 |
+ #endif |
|
414 |
+ |
|
415 |
+diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h |
|
416 |
+index 903200f..b321ee5 100644 |
|
417 |
+--- a/include/linux/mm_types.h |
|
418 |
+@@ -518,6 +518,9 @@ struct mm_struct { |
|
419 |
+ #ifdef CONFIG_MMU |
|
420 |
+ struct work_struct async_put_work; |
|
421 |
+ #endif |
|
422 |
++#if defined(CONFIG_PAX) |
|
423 |
++ unsigned long pax_flags; |
|
424 |
++#endif |
|
425 |
+ }; |
|
426 |
+ |
|
427 |
+ static inline void mm_init_cpumask(struct mm_struct *mm) |
|
428 |
+diff --git a/include/linux/sched.h b/include/linux/sched.h |
|
429 |
+index 62c68e5..2eb0c94 100644 |
|
430 |
+--- a/include/linux/sched.h |
|
431 |
+@@ -1939,6 +1939,8 @@ extern int arch_task_struct_size __read_mostly; |
|
432 |
+ # define arch_task_struct_size (sizeof(struct task_struct)) |
|
433 |
+ #endif |
|
434 |
+ |
|
435 |
++#define MF_PAX_EMUTRAMP 0x02000000 /* Emulate trampolines */ |
|
436 |
++ |
|
437 |
+ /* Future-safe accessor for struct task_struct's cpus_allowed. */ |
|
438 |
+ #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) |
|
439 |
+ |
|
440 |
+diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h |
|
441 |
+index b59ee07..ad4d96b 100644 |
|
442 |
+--- a/include/uapi/linux/elf.h |
|
443 |
+@@ -37,6 +37,7 @@ typedef __s64 Elf64_Sxword; |
|
444 |
+ #define PT_GNU_EH_FRAME 0x6474e550 |
|
445 |
+ |
|
446 |
+ #define PT_GNU_STACK (PT_LOOS + 0x474e551) |
|
447 |
++#define PT_GNU_RELRO (PT_LOOS + 0x474e552) |
|
448 |
+ |
|
449 |
+ /* |
|
450 |
+ * Extended Numbering |
|
451 |
+@@ -94,6 +95,8 @@ typedef __s64 Elf64_Sxword; |
|
452 |
+ #define DT_DEBUG 21 |
|
453 |
+ #define DT_TEXTREL 22 |
|
454 |
+ #define DT_JMPREL 23 |
|
455 |
++#define DT_FLAGS 30 |
|
456 |
++ #define DF_TEXTREL 0x00000004 |
|
457 |
+ #define DT_ENCODING 32 |
|
458 |
+ #define OLD_DT_LOOS 0x60000000 |
|
459 |
+ #define DT_LOOS 0x6000000d |
|
460 |
+diff --git a/ipc/shm.c b/ipc/shm.c |
|
461 |
+index dbac886..266e8bd 100644 |
|
462 |
+--- a/ipc/shm.c |
|
463 |
+@@ -1133,6 +1133,9 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr, |
|
464 |
+ f_mode = FMODE_READ | FMODE_WRITE; |
|
465 |
+ } |
|
466 |
+ if (shmflg & SHM_EXEC) { |
|
467 |
++#ifdef CONFIG_PAX_NOWRITEEXEC |
|
468 |
++ goto out; |
|
469 |
++#endif |
|
470 |
+ prot |= PROT_EXEC; |
|
471 |
+ acc_mode |= S_IXUGO; |
|
472 |
+ } |
|
473 |
+diff --git a/mm/mmap.c b/mm/mmap.c |
|
474 |
+index ca9d91b..d032fe1 100644 |
|
475 |
+--- a/mm/mmap.c |
|
476 |
+@@ -1207,6 +1207,17 @@ unsigned long do_mmap(struct file *file, unsigned long addr, |
|
477 |
+ vm_flags |= calc_vm_prot_bits(prot, pkey) | calc_vm_flag_bits(flags) | |
|
478 |
+ mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC; |
|
479 |
+ |
|
480 |
++#ifdef CONFIG_PAX_NOWRITEEXEC |
|
481 |
++ if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC)) |
|
482 |
++ return -EPERM; |
|
483 |
++#ifdef CONFIG_PAX_MPROTECT |
|
484 |
++ if (!(vm_flags & VM_EXEC)) |
|
485 |
++ vm_flags &= ~VM_MAYEXEC; |
|
486 |
++ else |
|
487 |
++ vm_flags &= ~VM_MAYWRITE; |
|
488 |
++#endif |
|
489 |
++#endif |
|
490 |
++ |
|
491 |
+ if (flags & MAP_LOCKED) |
|
492 |
+ if (!can_do_mlock()) |
|
493 |
+ return -EPERM; |
|
494 |
+@@ -2669,6 +2680,9 @@ static int do_brk(unsigned long addr, unsigned long request) |
|
495 |
+ return 0; |
|
496 |
+ |
|
497 |
+ flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags; |
|
498 |
++#ifdef CONFIG_PAX_MPROTECT |
|
499 |
++ flags &= ~VM_MAYEXEC; |
|
500 |
++#endif |
|
501 |
+ |
|
502 |
+ error = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED); |
|
503 |
+ if (offset_in_page(error)) |
|
504 |
+@@ -3042,6 +3056,17 @@ static struct vm_area_struct *__install_special_mapping( |
|
505 |
+ vma->vm_start = addr; |
|
506 |
+ vma->vm_end = addr + len; |
|
507 |
+ |
|
508 |
++#ifdef CONFIG_PAX_NOWRITEEXEC |
|
509 |
++ if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC)) |
|
510 |
++ return ERR_PTR(-EPERM); |
|
511 |
++#ifdef CONFIG_PAX_MPROTECT |
|
512 |
++ if (!(vm_flags & VM_EXEC)) |
|
513 |
++ vm_flags &= ~VM_MAYEXEC; |
|
514 |
++ else |
|
515 |
++ vm_flags &= ~VM_MAYWRITE; |
|
516 |
++#endif |
|
517 |
++#endif |
|
518 |
++ |
|
519 |
+ vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND | VM_SOFTDIRTY; |
|
520 |
+ vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); |
|
521 |
+ |
|
522 |
+diff --git a/mm/mprotect.c b/mm/mprotect.c |
|
523 |
+index a4830f0..6aba51c 100644 |
|
524 |
+--- a/mm/mprotect.c |
|
525 |
+@@ -25,6 +25,10 @@ |
|
526 |
+ #include <linux/perf_event.h> |
|
527 |
+ #include <linux/ksm.h> |
|
528 |
+ #include <linux/pkeys.h> |
|
529 |
++#ifdef CONFIG_PAX_MPROTECT |
|
530 |
++#include <linux/elf.h> |
|
531 |
++#include <linux/binfmts.h> |
|
532 |
++#endif |
|
533 |
+ #include <asm/uaccess.h> |
|
534 |
+ #include <asm/pgtable.h> |
|
535 |
+ #include <asm/cacheflush.h> |
|
536 |
+@@ -327,6 +331,10 @@ success: |
|
537 |
+ * held in write mode. |
|
538 |
+ */ |
|
539 |
+ vma->vm_flags = newflags; |
|
540 |
++#ifdef CONFIG_PAX_MPROTECT |
|
541 |
++ if (mm->binfmt && mm->binfmt->handle_mprotect) |
|
542 |
++ mm->binfmt->handle_mprotect(vma, newflags); |
|
543 |
++#endif |
|
544 |
+ dirty_accountable = vma_wants_writenotify(vma); |
|
545 |
+ vma_set_page_prot(vma); |
|
546 |
+ |
|
547 |
+@@ -407,6 +415,10 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len, |
|
548 |
+ if (start > vma->vm_start) |
|
549 |
+ prev = vma; |
|
550 |
+ |
|
551 |
++#ifdef CONFIG_PAX_MPROTECT |
|
552 |
++ if (current->mm->binfmt && current->mm->binfmt->handle_mprotect) |
|
553 |
++ current->mm->binfmt->handle_mprotect(vma, calc_vm_prot_bits(prot, 0)); |
|
554 |
++#endif |
|
555 |
+ for (nstart = start ; ; ) { |
|
556 |
+ unsigned long newflags; |
|
557 |
+ int pkey = arch_override_mprotect_pkey(vma, prot, -1); |
|
558 |
+diff --git a/security/Kconfig b/security/Kconfig |
|
559 |
+index 118f454..965f1a3 100644 |
|
560 |
+--- a/security/Kconfig |
|
561 |
+@@ -4,6 +4,84 @@ |
|
562 |
+ |
|
563 |
+ menu "Security options" |
|
564 |
+ |
|
565 |
++menuconfig PAX |
|
566 |
++ bool "Enable various PaX features" |
|
567 |
++ depends on X86 |
|
568 |
++ help |
|
569 |
++ This allows you to enable various PaX features. PaX adds |
|
570 |
++ intrusion prevention mechanisms to the kernel that reduce |
|
571 |
++ the risks posed by exploitable memory corruption bugs. |
|
572 |
++ |
|
573 |
++if PAX |
|
574 |
++config PAX_NOWRITEEXEC |
|
575 |
++ bool "Enforce non-executable pages" |
|
576 |
++ depends on X86 |
|
577 |
++ help |
|
578 |
++ Enforces writables pages to be non-executable (such as the stack |
|
579 |
++ or heap). And enforces executable pages to be non-writable. |
|
580 |
++ |
|
581 |
++ Enabling this option will prevent the injection and execution of |
|
582 |
++ 'foreign' code in a program. |
|
583 |
++ |
|
584 |
++ This will also break programs that rely on the old behaviour and |
|
585 |
++ expect that dynamically allocated memory via the malloc() family |
|
586 |
++ of functions is executable (which it is not). Notable examples |
|
587 |
++ are the XFree86 4.x server, the java runtime and wine. |
|
588 |
++ |
|
589 |
++if PAX_NOWRITEEXEC |
|
590 |
++choice |
|
591 |
++ prompt "Executable stack" |
|
592 |
++ |
|
593 |
++ help |
|
594 |
++ Select the security model for the binaries with executable stack. |
|
595 |
++ |
|
596 |
++ config PAX_EMUTRAMP |
|
597 |
++ bool "emulate" |
|
598 |
++ help |
|
599 |
++ There are some programs and libraries that for one reason or |
|
600 |
++ another attempt to execute special small code snippets from |
|
601 |
++ non-executable memory pages. Most notable examples are the |
|
602 |
++ signal handler return code generated by the kernel itself and |
|
603 |
++ the GCC trampolines. |
|
604 |
++ |
|
605 |
++ If you enabled CONFIG_NOWRITEEXEC then such programs will no |
|
606 |
++ longer work under your kernel. |
|
607 |
++ |
|
608 |
++ As a remedy you can say Y here enable trampoline emulation for |
|
609 |
++ the affected programs yet still have the protection provided by |
|
610 |
++ the non-executable pages. |
|
611 |
++ |
|
612 |
++ NOTE: enabling this feature *may* open up a loophole in the |
|
613 |
++ protection provided by non-executable pages that an attacker |
|
614 |
++ could abuse. Therefore the best solution is to not have any |
|
615 |
++ files on your system that would require this option. This can |
|
616 |
++ be achieved by not using libc5 (which relies on the kernel |
|
617 |
++ signal handler return code) and not using or rewriting programs |
|
618 |
++ that make use of the nested function implementation of GCC. |
|
619 |
++ Skilled users can just fix GCC itself so that it implements |
|
620 |
++ nested function calls in a way that does not interfere with PaX. |
|
621 |
++ |
|
622 |
++ config EXECSTACK_DISABLED |
|
623 |
++ bool "disabled" |
|
624 |
++ |
|
625 |
++endchoice |
|
626 |
++ |
|
627 |
++config PAX_MPROTECT |
|
628 |
++ bool "Restrict mprotect()" |
|
629 |
++ help |
|
630 |
++ Enabling this option will prevent programs from |
|
631 |
++ - changing the executable status of memory pages that were |
|
632 |
++ not originally created as executable, |
|
633 |
++ - making read-only executable pages writable again, |
|
634 |
++ - creating executable pages from anonymous memory, |
|
635 |
++ - making read-only-after-relocations (RELRO) data pages writable again. |
|
636 |
++ |
|
637 |
++ You should say Y here to complete the protection provided by |
|
638 |
++ the enforcement of non-executable pages. |
|
639 |
++ |
|
640 |
++endif |
|
641 |
++endif |
|
642 |
++ |
|
643 |
+ source security/keys/Kconfig |
|
644 |
+ |
|
645 |
+ config SECURITY_DMESG_RESTRICT |
|
646 |
+-- |
|
647 |
+2.8.1 |
|
648 |
+ |
0 | 649 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,2623 @@ |
0 |
+From f12829dce28783647bffdc1c4d8e125582747921 Mon Sep 17 00:00:00 2001 |
|
1 |
+From: Alexey Makhalov <amakhalov@vmware.com> |
|
2 |
+Date: Mon, 17 Oct 2016 20:31:38 +0000 |
|
3 |
+Subject: [PATCH 2/2] Added rap_plugin. Func signature fixing is still |
|
4 |
+ required. |
|
5 |
+ |
|
6 |
+--- |
|
7 |
+ arch/x86/entry/Makefile | 2 + |
|
8 |
+ arch/x86/entry/common.c | 61 +++ |
|
9 |
+ arch/x86/include/asm/fixmap.h | 2 +- |
|
10 |
+ arch/x86/include/asm/module.h | 9 +- |
|
11 |
+ arch/x86/kernel/mcount_64.S | 2 +- |
|
12 |
+ arch/x86/kernel/traps.c | 4 + |
|
13 |
+ arch/x86/mm/pgtable.c | 2 +- |
|
14 |
+ drivers/gpu/drm/nouveau/nvkm/subdev/secboot/priv.h | 4 +- |
|
15 |
+ drivers/gpu/drm/radeon/radeon_kms.c | 6 +- |
|
16 |
+ drivers/staging/lustre/lustre/llite/dir.c | 2 +- |
|
17 |
+ drivers/video/console/dummycon.c | 76 ++- |
|
18 |
+ fs/afs/file.c | 8 +- |
|
19 |
+ fs/afs/internal.h | 2 +- |
|
20 |
+ fs/exofs/inode.c | 7 +- |
|
21 |
+ fs/fuse/file.c | 4 +- |
|
22 |
+ fs/logfs/dev_bdev.c | 13 +- |
|
23 |
+ fs/logfs/dev_mtd.c | 13 +- |
|
24 |
+ fs/logfs/dir.c | 4 +- |
|
25 |
+ fs/logfs/logfs.h | 5 +- |
|
26 |
+ fs/logfs/readwrite.c | 2 +- |
|
27 |
+ fs/logfs/segment.c | 2 +- |
|
28 |
+ fs/logfs/super.c | 39 -- |
|
29 |
+ fs/nfs/dir.c | 5 +- |
|
30 |
+ fs/nfs/read.c | 2 +- |
|
31 |
+ fs/nfs/symlink.c | 6 +- |
|
32 |
+ fs/read_write.c | 34 +- |
|
33 |
+ include/linux/compiler.h | 5 + |
|
34 |
+ include/linux/gfp.h | 2 +- |
|
35 |
+ include/linux/linkage.h | 28 +- |
|
36 |
+ include/linux/pagemap.h | 4 +- |
|
37 |
+ include/linux/syscalls.h | 18 +- |
|
38 |
+ kernel/bpf/core.c | 19 +- |
|
39 |
+ kernel/module.c | 9 +- |
|
40 |
+ mm/filemap.c | 6 +- |
|
41 |
+ mm/page_alloc.c | 6 +- |
|
42 |
+ mm/readahead.c | 2 +- |
|
43 |
+ scripts/Makefile.gcc-plugins | 15 +- |
|
44 |
+ scripts/gcc-plugins/gcc-common.h | 22 + |
|
45 |
+ scripts/gcc-plugins/rap_plugin/Makefile | 6 + |
|
46 |
+ scripts/gcc-plugins/rap_plugin/rap.h | 36 ++ |
|
47 |
+ scripts/gcc-plugins/rap_plugin/rap_fptr_pass.c | 220 +++++++++ |
|
48 |
+ scripts/gcc-plugins/rap_plugin/rap_hash.c | 382 +++++++++++++++ |
|
49 |
+ scripts/gcc-plugins/rap_plugin/rap_plugin.c | 513 +++++++++++++++++++++ |
|
50 |
+ scripts/gcc-plugins/rap_plugin/sip.c | 96 ++++ |
|
51 |
+ security/Kconfig | 19 + |
|
52 |
+ 45 files changed, 1597 insertions(+), 127 deletions(-) |
|
53 |
+ create mode 100644 scripts/gcc-plugins/rap_plugin/Makefile |
|
54 |
+ create mode 100644 scripts/gcc-plugins/rap_plugin/rap.h |
|
55 |
+ create mode 100644 scripts/gcc-plugins/rap_plugin/rap_fptr_pass.c |
|
56 |
+ create mode 100644 scripts/gcc-plugins/rap_plugin/rap_hash.c |
|
57 |
+ create mode 100644 scripts/gcc-plugins/rap_plugin/rap_plugin.c |
|
58 |
+ create mode 100644 scripts/gcc-plugins/rap_plugin/sip.c |
|
59 |
+ |
|
60 |
+diff --git a/arch/x86/entry/Makefile b/arch/x86/entry/Makefile |
|
61 |
+index 77f28ce..7714ca0 100644 |
|
62 |
+--- a/arch/x86/entry/Makefile |
|
63 |
+@@ -15,3 +15,5 @@ obj-y += vsyscall/ |
|
64 |
+ |
|
65 |
+ obj-$(CONFIG_IA32_EMULATION) += entry_64_compat.o syscall_32.o |
|
66 |
+ |
|
67 |
++CFLAGS_REMOVE_syscall_32.o = $(RAP_PLUGIN_ABS_CFLAGS) |
|
68 |
++CFLAGS_REMOVE_syscall_64.o = $(RAP_PLUGIN_ABS_CFLAGS) |
|
69 |
+diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c |
|
70 |
+index 1433f6b..30c2df5 100644 |
|
71 |
+--- a/arch/x86/entry/common.c |
|
72 |
+@@ -285,9 +285,29 @@ __visible void do_syscall_64(struct pt_regs *regs) |
|
73 |
+ * regs->orig_ax, which changes the behavior of some syscalls. |
|
74 |
+ */ |
|
75 |
+ if (likely((nr & __SYSCALL_MASK) < NR_syscalls)) { |
|
76 |
++#ifdef CONFIG_PAX_RAP |
|
77 |
++ asm volatile("movq %[param1],%%rdi\n\t" |
|
78 |
++ "movq %[param2],%%rsi\n\t" |
|
79 |
++ "movq %[param3],%%rdx\n\t" |
|
80 |
++ "movq %[param4],%%rcx\n\t" |
|
81 |
++ "movq %[param5],%%r8\n\t" |
|
82 |
++ "movq %[param6],%%r9\n\t" |
|
83 |
++ "call *%P[syscall]\n\t" |
|
84 |
++ "mov %%rax,%[result]\n\t" |
|
85 |
++ : [result] "=m" (regs->ax) |
|
86 |
++ : [syscall] "m" (sys_call_table[nr & __SYSCALL_MASK]), |
|
87 |
++ [param1] "m" (regs->di), |
|
88 |
++ [param2] "m" (regs->si), |
|
89 |
++ [param3] "m" (regs->dx), |
|
90 |
++ [param4] "m" (regs->r10), |
|
91 |
++ [param5] "m" (regs->r8), |
|
92 |
++ [param6] "m" (regs->r9) |
|
93 |
++ : "ax", "di", "si", "dx", "cx", "r8", "r9", "r10", "r11", "memory"); |
|
94 |
++#else |
|
95 |
+ regs->ax = sys_call_table[nr & __SYSCALL_MASK]( |
|
96 |
+ regs->di, regs->si, regs->dx, |
|
97 |
+ regs->r10, regs->r8, regs->r9); |
|
98 |
++#endif |
|
99 |
+ } |
|
100 |
+ |
|
101 |
+ syscall_return_slowpath(regs); |
|
102 |
+@@ -327,10 +347,51 @@ static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs) |
|
103 |
+ * the high bits are zero. Make sure we zero-extend all |
|
104 |
+ * of the args. |
|
105 |
+ */ |
|
106 |
++#ifdef CONFIG_PAX_RAP |
|
107 |
++#ifdef CONFIG_X86_64 |
|
108 |
++ asm volatile("movl %[param1],%%edi\n\t" |
|
109 |
++ "movl %[param2],%%esi\n\t" |
|
110 |
++ "movl %[param3],%%edx\n\t" |
|
111 |
++ "movl %[param4],%%ecx\n\t" |
|
112 |
++ "movl %[param5],%%r8d\n\t" |
|
113 |
++ "movl %[param6],%%r9d\n\t" |
|
114 |
++ "call *%P[syscall]\n\t" |
|
115 |
++ "mov %%rax,%[result]\n\t" |
|
116 |
++ : [result] "=m" (regs->ax) |
|
117 |
++ : [syscall] "m" (ia32_sys_call_table[nr]), |
|
118 |
++ [param1] "m" (regs->bx), |
|
119 |
++ [param2] "m" (regs->cx), |
|
120 |
++ [param3] "m" (regs->dx), |
|
121 |
++ [param4] "m" (regs->si), |
|
122 |
++ [param5] "m" (regs->di), |
|
123 |
++ [param6] "m" (regs->bp) |
|
124 |
++ : "ax", "di", "si", "dx", "cx", "r8", "r9", "r10", "r11", "memory"); |
|
125 |
++#else |
|
126 |
++ asm volatile("pushl %[param6]\n\t" |
|
127 |
++ "pushl %[param5]\n\t" |
|
128 |
++ "pushl %[param4]\n\t" |
|
129 |
++ "pushl %[param3]\n\t" |
|
130 |
++ "pushl %[param2]\n\t" |
|
131 |
++ "pushl %[param1]\n\t" |
|
132 |
++ "call *%P[syscall]\n\t" |
|
133 |
++ "addl $6*8,%%esp\n\t" |
|
134 |
++ "mov %%eax,%[result]\n\t" |
|
135 |
++ : [result] "=m" (regs->ax) |
|
136 |
++ : [syscall] "m" (ia32_sys_call_table[nr]), |
|
137 |
++ [param1] "m" (regs->bx), |
|
138 |
++ [param2] "m" (regs->cx), |
|
139 |
++ [param3] "m" (regs->dx), |
|
140 |
++ [param4] "m" (regs->si), |
|
141 |
++ [param5] "m" (regs->di), |
|
142 |
++ [param6] "m" (regs->bp) |
|
143 |
++ : "ax", "dx", "cx", "memory"); |
|
144 |
++#endif |
|
145 |
++#else |
|
146 |
+ regs->ax = ia32_sys_call_table[nr]( |
|
147 |
+ (unsigned int)regs->bx, (unsigned int)regs->cx, |
|
148 |
+ (unsigned int)regs->dx, (unsigned int)regs->si, |
|
149 |
+ (unsigned int)regs->di, (unsigned int)regs->bp); |
|
150 |
++#endif |
|
151 |
+ } |
|
152 |
+ |
|
153 |
+ syscall_return_slowpath(regs); |
|
154 |
+diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h |
|
155 |
+index 8554f96..6c58add 100644 |
|
156 |
+--- a/arch/x86/include/asm/fixmap.h |
|
157 |
+@@ -142,7 +142,7 @@ extern pte_t *kmap_pte; |
|
158 |
+ extern pte_t *pkmap_page_table; |
|
159 |
+ |
|
160 |
+ void __native_set_fixmap(enum fixed_addresses idx, pte_t pte); |
|
161 |
+-void native_set_fixmap(enum fixed_addresses idx, |
|
162 |
++void native_set_fixmap(unsigned int idx, |
|
163 |
+ phys_addr_t phys, pgprot_t flags); |
|
164 |
+ |
|
165 |
+ #ifndef CONFIG_PARAVIRT |
|
166 |
+diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h |
|
167 |
+index e3b7819..f1de876 100644 |
|
168 |
+--- a/arch/x86/include/asm/module.h |
|
169 |
+@@ -5,6 +5,7 @@ |
|
170 |
+ |
|
171 |
+ #ifdef CONFIG_X86_64 |
|
172 |
+ /* X86_64 does not define MODULE_PROC_FAMILY */ |
|
173 |
++#define MODULE_PROC_FAMILY "" |
|
174 |
+ #elif defined CONFIG_M486 |
|
175 |
+ #define MODULE_PROC_FAMILY "486 " |
|
176 |
+ #elif defined CONFIG_M586 |
|
177 |
+@@ -57,8 +58,12 @@ |
|
178 |
+ #error unknown processor family |
|
179 |
+ #endif |
|
180 |
+ |
|
181 |
+-#ifdef CONFIG_X86_32 |
|
182 |
+-# define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY |
|
183 |
++#ifdef CONFIG_PAX_RAP |
|
184 |
++#define MODULE_PAX_RAP "RAP " |
|
185 |
++#else |
|
186 |
++#define MODULE_PAX_RAP "" |
|
187 |
+ #endif |
|
188 |
+ |
|
189 |
++#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_PAX_RAP |
|
190 |
++ |
|
191 |
+ #endif /* _ASM_X86_MODULE_H */ |
|
192 |
+diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S |
|
193 |
+index 6192422..d5d613a 100644 |
|
194 |
+--- a/arch/x86/kernel/mcount_64.S |
|
195 |
+@@ -183,7 +183,7 @@ GLOBAL(ftrace_graph_call) |
|
196 |
+ #endif |
|
197 |
+ |
|
198 |
+ /* This is weak to keep gas from relaxing the jumps */ |
|
199 |
+-WEAK(ftrace_stub) |
|
200 |
++RAP_WEAK(ftrace_stub) |
|
201 |
+ retq |
|
202 |
+ END(ftrace_caller) |
|
203 |
+ |
|
204 |
+diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c |
|
205 |
+index b70ca12..8ae0d86 100644 |
|
206 |
+--- a/arch/x86/kernel/traps.c |
|
207 |
+@@ -189,6 +189,10 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str, |
|
208 |
+ if (!fixup_exception(regs, trapnr)) { |
|
209 |
+ tsk->thread.error_code = error_code; |
|
210 |
+ tsk->thread.trap_nr = trapnr; |
|
211 |
++#ifdef CONFIG_PAX_RAP |
|
212 |
++ if (trapnr == X86_TRAP_UD) |
|
213 |
++ str = "PAX: overwritten function pointer or return address detected"; |
|
214 |
++#endif |
|
215 |
+ die(str, regs, error_code); |
|
216 |
+ } |
|
217 |
+ return 0; |
|
218 |
+diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c |
|
219 |
+index 3feec5a..66fc0b0 100644 |
|
220 |
+--- a/arch/x86/mm/pgtable.c |
|
221 |
+@@ -542,7 +542,7 @@ void __native_set_fixmap(enum fixed_addresses idx, pte_t pte) |
|
222 |
+ fixmaps_set++; |
|
223 |
+ } |
|
224 |
+ |
|
225 |
+-void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys, |
|
226 |
++void native_set_fixmap(unsigned int idx, phys_addr_t phys, |
|
227 |
+ pgprot_t flags) |
|
228 |
+ { |
|
229 |
+ __native_set_fixmap(idx, pfn_pte(phys >> PAGE_SHIFT, flags)); |
|
230 |
+diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/priv.h |
|
231 |
+index a9a8a0e..2ad6d62 100644 |
|
232 |
+--- a/drivers/gpu/drm/nouveau/nvkm/subdev/secboot/priv.h |
|
233 |
+@@ -226,8 +226,8 @@ struct gm200_secboot_func { |
|
234 |
+ |
|
235 |
+ int gm200_secboot_init(struct nvkm_secboot *); |
|
236 |
+ void *gm200_secboot_dtor(struct nvkm_secboot *); |
|
237 |
+-int gm200_secboot_reset(struct nvkm_secboot *, u32); |
|
238 |
+-int gm200_secboot_start(struct nvkm_secboot *, u32); |
|
239 |
++int gm200_secboot_reset(struct nvkm_secboot *, enum nvkm_secboot_falcon); |
|
240 |
++int gm200_secboot_start(struct nvkm_secboot *, enum nvkm_secboot_falcon); |
|
241 |
+ |
|
242 |
+ int gm20x_secboot_prepare_blobs(struct gm200_secboot *); |
|
243 |
+ |
|
244 |
+diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c |
|
245 |
+index 835563c..a8a676e 100644 |
|
246 |
+--- a/drivers/gpu/drm/radeon/radeon_kms.c |
|
247 |
+@@ -825,7 +825,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe) |
|
248 |
+ * Enable the interrupt on the requested crtc (all asics). |
|
249 |
+ * Returns 0 on success, -EINVAL on failure. |
|
250 |
+ */ |
|
251 |
+-int radeon_enable_vblank_kms(struct drm_device *dev, int crtc) |
|
252 |
++int radeon_enable_vblank_kms(struct drm_device *dev, unsigned int crtc) |
|
253 |
+ { |
|
254 |
+ struct radeon_device *rdev = dev->dev_private; |
|
255 |
+ unsigned long irqflags; |
|
256 |
+@@ -851,7 +851,7 @@ int radeon_enable_vblank_kms(struct drm_device *dev, int crtc) |
|
257 |
+ * |
|
258 |
+ * Disable the interrupt on the requested crtc (all asics). |
|
259 |
+ */ |
|
260 |
+-void radeon_disable_vblank_kms(struct drm_device *dev, int crtc) |
|
261 |
++void radeon_disable_vblank_kms(struct drm_device *dev, unsigned int crtc) |
|
262 |
+ { |
|
263 |
+ struct radeon_device *rdev = dev->dev_private; |
|
264 |
+ unsigned long irqflags; |
|
265 |
+@@ -880,7 +880,7 @@ void radeon_disable_vblank_kms(struct drm_device *dev, int crtc) |
|
266 |
+ * scanout position. (all asics). |
|
267 |
+ * Returns postive status flags on success, negative error on failure. |
|
268 |
+ */ |
|
269 |
+-int radeon_get_vblank_timestamp_kms(struct drm_device *dev, int crtc, |
|
270 |
++int radeon_get_vblank_timestamp_kms(struct drm_device *dev, unsigned int crtc, |
|
271 |
+ int *max_error, |
|
272 |
+ struct timeval *vblank_time, |
|
273 |
+ unsigned flags) |
|
274 |
+diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c |
|
275 |
+index 5b38177..929e628 100644 |
|
276 |
+--- a/drivers/staging/lustre/lustre/llite/dir.c |
|
277 |
+@@ -136,7 +136,7 @@ |
|
278 |
+ */ |
|
279 |
+ |
|
280 |
+ /* returns the page unlocked, but with a reference */ |
|
281 |
+-static int ll_dir_filler(void *_hash, struct page *page0) |
|
282 |
++static int ll_dir_filler(struct file *_hash, struct page *page0) |
|
283 |
+ { |
|
284 |
+ struct inode *inode = page0->mapping->host; |
|
285 |
+ int hash64 = ll_i2sbi(inode)->ll_flags & LL_SBI_64BIT_HASH; |
|
286 |
+diff --git a/drivers/video/console/dummycon.c b/drivers/video/console/dummycon.c |
|
287 |
+index 9269d56..78d2a06 100644 |
|
288 |
+--- a/drivers/video/console/dummycon.c |
|
289 |
+@@ -41,12 +41,60 @@ static void dummycon_init(struct vc_data *vc, int init) |
|
290 |
+ vc_resize(vc, DUMMY_COLUMNS, DUMMY_ROWS); |
|
291 |
+ } |
|
292 |
+ |
|
293 |
+-static int dummycon_dummy(void) |
|
294 |
++static void dummycon_deinit(struct vc_data *a) |
|
295 |
++{ |
|
296 |
++} |
|
297 |
++ |
|
298 |
++static void dummycon_clear(struct vc_data *a, int b, int c, int d, int e) |
|
299 |
++{ |
|
300 |
++} |
|
301 |
++ |
|
302 |
++static void dummycon_putc(struct vc_data *a, int b, int c, int d) |
|
303 |
++{ |
|
304 |
++} |
|
305 |
++ |
|
306 |
++static void dummycon_putcs(struct vc_data *a, const unsigned short *b, int c, int d, int e) |
|
307 |
++{ |
|
308 |
++} |
|
309 |
++ |
|
310 |
++static void dummycon_cursor(struct vc_data *a, int b) |
|
311 |
++{ |
|
312 |
++} |
|
313 |
++ |
|
314 |
++static int dummycon_scroll(struct vc_data *a, int b, int c, int d, int e) |
|
315 |
++{ |
|
316 |
++ return 0; |
|
317 |
++} |
|
318 |
++ |
|
319 |
++static int dummycon_switch(struct vc_data *a) |
|
320 |
+ { |
|
321 |
+ return 0; |
|
322 |
+ } |
|
323 |
+ |
|
324 |
+-#define DUMMY (void *)dummycon_dummy |
|
325 |
++static int dummycon_blank(struct vc_data *a, int b, int c) |
|
326 |
++{ |
|
327 |
++ return 0; |
|
328 |
++} |
|
329 |
++ |
|
330 |
++static int dummycon_font_set(struct vc_data *a, struct console_font *b, unsigned c) |
|
331 |
++{ |
|
332 |
++ return 0; |
|
333 |
++} |
|
334 |
++ |
|
335 |
++static int dummycon_font_get(struct vc_data *a, struct console_font *b) |
|
336 |
++{ |
|
337 |
++ return 0; |
|
338 |
++} |
|
339 |
++ |
|
340 |
++static int dummycon_font_default(struct vc_data *a, struct console_font *b , char *c) |
|
341 |
++{ |
|
342 |
++ return 0; |
|
343 |
++} |
|
344 |
++ |
|
345 |
++static int dummycon_font_copy(struct vc_data *a, int b) |
|
346 |
++{ |
|
347 |
++ return 0; |
|
348 |
++} |
|
349 |
+ |
|
350 |
+ /* |
|
351 |
+ * The console `switch' structure for the dummy console |
|
352 |
+@@ -58,17 +106,17 @@ const struct consw dummy_con = { |
|
353 |
+ .owner = THIS_MODULE, |
|
354 |
+ .con_startup = dummycon_startup, |
|
355 |
+ .con_init = dummycon_init, |
|
356 |
+- .con_deinit = DUMMY, |
|
357 |
+- .con_clear = DUMMY, |
|
358 |
+- .con_putc = DUMMY, |
|
359 |
+- .con_putcs = DUMMY, |
|
360 |
+- .con_cursor = DUMMY, |
|
361 |
+- .con_scroll = DUMMY, |
|
362 |
+- .con_switch = DUMMY, |
|
363 |
+- .con_blank = DUMMY, |
|
364 |
+- .con_font_set = DUMMY, |
|
365 |
+- .con_font_get = DUMMY, |
|
366 |
+- .con_font_default = DUMMY, |
|
367 |
+- .con_font_copy = DUMMY, |
|
368 |
++ .con_deinit = dummycon_deinit, |
|
369 |
++ .con_clear = dummycon_clear, |
|
370 |
++ .con_putc = dummycon_putc, |
|
371 |
++ .con_putcs = dummycon_putcs, |
|
372 |
++ .con_cursor = dummycon_cursor, |
|
373 |
++ .con_scroll = dummycon_scroll, |
|
374 |
++ .con_switch = dummycon_switch, |
|
375 |
++ .con_blank = dummycon_blank, |
|
376 |
++ .con_font_set = dummycon_font_set, |
|
377 |
++ .con_font_get = dummycon_font_get, |
|
378 |
++ .con_font_default = dummycon_font_default, |
|
379 |
++ .con_font_copy = dummycon_font_copy, |
|
380 |
+ }; |
|
381 |
+ EXPORT_SYMBOL_GPL(dummy_con); |
|
382 |
+diff --git a/fs/afs/file.c b/fs/afs/file.c |
|
383 |
+index 6344aee..8f5a323 100644 |
|
384 |
+--- a/fs/afs/file.c |
|
385 |
+@@ -122,11 +122,11 @@ static void afs_file_readpage_read_complete(struct page *page, |
|
386 |
+ /* |
|
387 |
+ * read page from file, directory or symlink, given a key to use |
|
388 |
+ */ |
|
389 |
+-int afs_page_filler(void *data, struct page *page) |
|
390 |
++int afs_page_filler(struct file *data, struct page *page) |
|
391 |
+ { |
|
392 |
+ struct inode *inode = page->mapping->host; |
|
393 |
+ struct afs_vnode *vnode = AFS_FS_I(inode); |
|
394 |
+- struct key *key = data; |
|
395 |
++ struct key *key = (struct file *)data; |
|
396 |
+ size_t len; |
|
397 |
+ off_t offset; |
|
398 |
+ int ret; |
|
399 |
+@@ -220,14 +220,14 @@ static int afs_readpage(struct file *file, struct page *page) |
|
400 |
+ if (file) { |
|
401 |
+ key = file->private_data; |
|
402 |
+ ASSERT(key != NULL); |
|
403 |
+- ret = afs_page_filler(key, page); |
|
404 |
++ ret = afs_page_filler((struct file *)key, page); |
|
405 |
+ } else { |
|
406 |
+ struct inode *inode = page->mapping->host; |
|
407 |
+ key = afs_request_key(AFS_FS_S(inode->i_sb)->volume->cell); |
|
408 |
+ if (IS_ERR(key)) { |
|
409 |
+ ret = PTR_ERR(key); |
|
410 |
+ } else { |
|
411 |
+- ret = afs_page_filler(key, page); |
|
412 |
++ ret = afs_page_filler((struct file *)key, page); |
|
413 |
+ key_put(key); |
|
414 |
+ } |
|
415 |
+ } |
|
416 |
+diff --git a/fs/afs/internal.h b/fs/afs/internal.h |
|
417 |
+index df976b2..21a0934 100644 |
|
418 |
+--- a/fs/afs/internal.h |
|
419 |
+@@ -498,7 +498,7 @@ extern const struct file_operations afs_file_operations; |
|
420 |
+ |
|
421 |
+ extern int afs_open(struct inode *, struct file *); |
|
422 |
+ extern int afs_release(struct inode *, struct file *); |
|
423 |
+-extern int afs_page_filler(void *, struct page *); |
|
424 |
++extern int afs_page_filler(struct file *, struct page *); |
|
425 |
+ |
|
426 |
+ /* |
|
427 |
+ * flock.c |
|
428 |
+diff --git a/fs/exofs/inode.c b/fs/exofs/inode.c |
|
429 |
+index 9dc4c6d..ed7c0e7 100644 |
|
430 |
+--- a/fs/exofs/inode.c |
|
431 |
+@@ -470,6 +470,11 @@ fail: |
|
432 |
+ return ret; |
|
433 |
+ } |
|
434 |
+ |
|
435 |
++static int readpage_filler(struct file *data, struct page *page) |
|
436 |
++{ |
|
437 |
++ return readpage_strip(data, page); |
|
438 |
++} |
|
439 |
++ |
|
440 |
+ static int exofs_readpages(struct file *file, struct address_space *mapping, |
|
441 |
+ struct list_head *pages, unsigned nr_pages) |
|
442 |
+ { |
|
443 |
+@@ -478,7 +483,7 @@ static int exofs_readpages(struct file *file, struct address_space *mapping, |
|
444 |
+ |
|
445 |
+ _pcol_init(&pcol, nr_pages, mapping->host); |
|
446 |
+ |
|
447 |
+- ret = read_cache_pages(mapping, pages, readpage_strip, &pcol); |
|
448 |
++ ret = read_cache_pages(mapping, pages, readpage_filler, &pcol); |
|
449 |
+ if (ret) { |
|
450 |
+ EXOFS_ERR("read_cache_pages => %d\n", ret); |
|
451 |
+ return ret; |
|
452 |
+diff --git a/fs/fuse/file.c b/fs/fuse/file.c |
|
453 |
+index 3988b43..c02080c 100644 |
|
454 |
+--- a/fs/fuse/file.c |
|
455 |
+@@ -838,9 +838,9 @@ struct fuse_fill_data { |
|
456 |
+ unsigned nr_pages; |
|
457 |
+ }; |
|
458 |
+ |
|
459 |
+-static int fuse_readpages_fill(void *_data, struct page *page) |
|
460 |
++static int fuse_readpages_fill(struct file *_data, struct page *page) |
|
461 |
+ { |
|
462 |
+- struct fuse_fill_data *data = _data; |
|
463 |
++ struct fuse_fill_data *data = (struct fuse_fill_data *)_data; |
|
464 |
+ struct fuse_req *req = data->req; |
|
465 |
+ struct inode *inode = data->inode; |
|
466 |
+ struct fuse_conn *fc = get_fuse_conn(inode); |
|
467 |
+diff --git a/fs/logfs/dev_bdev.c b/fs/logfs/dev_bdev.c |
|
468 |
+index a8329cc..b3d18fb 100644 |
|
469 |
+--- a/fs/logfs/dev_bdev.c |
|
470 |
+@@ -34,9 +34,8 @@ static int sync_request(struct page *page, struct block_device *bdev, int op) |
|
471 |
+ return submit_bio_wait(&bio); |
|
472 |
+ } |
|
473 |
+ |
|
474 |
+-static int bdev_readpage(void *_sb, struct page *page) |
|
475 |
++static int bdev_readpage(struct super_block *sb, struct page *page) |
|
476 |
+ { |
|
477 |
+- struct super_block *sb = _sb; |
|
478 |
+ struct block_device *bdev = logfs_super(sb)->s_bdev; |
|
479 |
+ int err; |
|
480 |
+ |
|
481 |
+@@ -52,6 +51,11 @@ static int bdev_readpage(void *_sb, struct page *page) |
|
482 |
+ return err; |
|
483 |
+ } |
|
484 |
+ |
|
485 |
++static int bdev_filler(struct file *file, struct page *page) |
|
486 |
++{ |
|
487 |
++ return bdev_readpage((struct super_block *)file, page); |
|
488 |
++} |
|
489 |
++ |
|
490 |
+ static DECLARE_WAIT_QUEUE_HEAD(wq); |
|
491 |
+ |
|
492 |
+ static void writeseg_end_io(struct bio *bio) |
|
493 |
+@@ -251,7 +255,7 @@ static struct page *bdev_find_first_sb(struct super_block *sb, u64 *ofs) |
|
494 |
+ { |
|
495 |
+ struct logfs_super *super = logfs_super(sb); |
|
496 |
+ struct address_space *mapping = super->s_mapping_inode->i_mapping; |
|
497 |
+- filler_t *filler = bdev_readpage; |
|
498 |
++ filler_t *filler = bdev_filler; |
|
499 |
+ |
|
500 |
+ *ofs = 0; |
|
501 |
+ return read_cache_page(mapping, 0, filler, sb); |
|
502 |
+@@ -261,7 +265,7 @@ static struct page *bdev_find_last_sb(struct super_block *sb, u64 *ofs) |
|
503 |
+ { |
|
504 |
+ struct logfs_super *super = logfs_super(sb); |
|
505 |
+ struct address_space *mapping = super->s_mapping_inode->i_mapping; |
|
506 |
+- filler_t *filler = bdev_readpage; |
|
507 |
++ filler_t *filler = bdev_filler; |
|
508 |
+ u64 pos = (super->s_bdev->bd_inode->i_size & ~0xfffULL) - 0x1000; |
|
509 |
+ pgoff_t index = pos >> PAGE_SHIFT; |
|
510 |
+ |
|
511 |
+@@ -292,6 +296,7 @@ static const struct logfs_device_ops bd_devops = { |
|
512 |
+ .find_last_sb = bdev_find_last_sb, |
|
513 |
+ .write_sb = bdev_write_sb, |
|
514 |
+ .readpage = bdev_readpage, |
|
515 |
++ .filler = bdev_filler, |
|
516 |
+ .writeseg = bdev_writeseg, |
|
517 |
+ .erase = bdev_erase, |
|
518 |
+ .can_write_buf = bdev_can_write_buf, |
|
519 |
+diff --git a/fs/logfs/dev_mtd.c b/fs/logfs/dev_mtd.c |
|
520 |
+index b76a62b..317c6ff 100644 |
|
521 |
+--- a/fs/logfs/dev_mtd.c |
|
522 |
+@@ -122,9 +122,8 @@ static void logfs_mtd_sync(struct super_block *sb) |
|
523 |
+ mtd_sync(mtd); |
|
524 |
+ } |
|
525 |
+ |
|
526 |
+-static int logfs_mtd_readpage(void *_sb, struct page *page) |
|
527 |
++static int logfs_mtd_readpage(struct super_block *sb, struct page *page) |
|
528 |
+ { |
|
529 |
+- struct super_block *sb = _sb; |
|
530 |
+ int err; |
|
531 |
+ |
|
532 |
+ err = logfs_mtd_read(sb, page->index << PAGE_SHIFT, PAGE_SIZE, |
|
533 |
+@@ -145,11 +144,16 @@ static int logfs_mtd_readpage(void *_sb, struct page *page) |
|
534 |
+ return err; |
|
535 |
+ } |
|
536 |
+ |
|
537 |
++static int logfs_mtd_filler(struct file *file, struct page *page) |
|
538 |
++{ |
|
539 |
++ return logfs_mtd_readpage((struct super_block *)file, page); |
|
540 |
++} |
|
541 |
++ |
|
542 |
+ static struct page *logfs_mtd_find_first_sb(struct super_block *sb, u64 *ofs) |
|
543 |
+ { |
|
544 |
+ struct logfs_super *super = logfs_super(sb); |
|
545 |
+ struct address_space *mapping = super->s_mapping_inode->i_mapping; |
|
546 |
+- filler_t *filler = logfs_mtd_readpage; |
|
547 |
++ filler_t *filler = logfs_mtd_filler; |
|
548 |
+ struct mtd_info *mtd = super->s_mtd; |
|
549 |
+ |
|
550 |
+ *ofs = 0; |
|
551 |
+@@ -166,7 +170,7 @@ static struct page *logfs_mtd_find_last_sb(struct super_block *sb, u64 *ofs) |
|
552 |
+ { |
|
553 |
+ struct logfs_super *super = logfs_super(sb); |
|
554 |
+ struct address_space *mapping = super->s_mapping_inode->i_mapping; |
|
555 |
+- filler_t *filler = logfs_mtd_readpage; |
|
556 |
++ filler_t *filler = logfs_mtd_filler; |
|
557 |
+ struct mtd_info *mtd = super->s_mtd; |
|
558 |
+ |
|
559 |
+ *ofs = mtd->size - mtd->erasesize; |
|
560 |
+@@ -254,6 +258,7 @@ static const struct logfs_device_ops mtd_devops = { |
|
561 |
+ .find_first_sb = logfs_mtd_find_first_sb, |
|
562 |
+ .find_last_sb = logfs_mtd_find_last_sb, |
|
563 |
+ .readpage = logfs_mtd_readpage, |
|
564 |
++ .filler = logfs_mtd_filler, |
|
565 |
+ .writeseg = logfs_mtd_writeseg, |
|
566 |
+ .erase = logfs_mtd_erase, |
|
567 |
+ .can_write_buf = logfs_mtd_can_write_buf, |
|
568 |
+diff --git a/fs/logfs/dir.c b/fs/logfs/dir.c |
|
569 |
+index 9568064..e188a46 100644 |
|
570 |
+--- a/fs/logfs/dir.c |
|
571 |
+@@ -174,7 +174,7 @@ static struct page *logfs_get_dd_page(struct inode *dir, struct dentry *dentry) |
|
572 |
+ if (!logfs_exist_block(dir, index)) |
|
573 |
+ continue; |
|
574 |
+ page = read_cache_page(dir->i_mapping, index, |
|
575 |
+- (filler_t *)logfs_readpage, NULL); |
|
576 |
++ logfs_readpage, NULL); |
|
577 |
+ if (IS_ERR(page)) |
|
578 |
+ return page; |
|
579 |
+ dd = kmap_atomic(page); |
|
580 |
+@@ -306,7 +306,7 @@ static int logfs_readdir(struct file *file, struct dir_context *ctx) |
|
581 |
+ continue; |
|
582 |
+ } |
|
583 |
+ page = read_cache_page(dir->i_mapping, pos, |
|
584 |
+- (filler_t *)logfs_readpage, NULL); |
|
585 |
++ logfs_readpage, NULL); |
|
586 |
+ if (IS_ERR(page)) |
|
587 |
+ return PTR_ERR(page); |
|
588 |
+ dd = kmap(page); |
|
589 |
+diff --git a/fs/logfs/logfs.h b/fs/logfs/logfs.h |
|
590 |
+index 27d040e..8959149 100644 |
|
591 |
+--- a/fs/logfs/logfs.h |
|
592 |
+@@ -151,7 +151,8 @@ struct logfs_device_ops { |
|
593 |
+ struct page *(*find_first_sb)(struct super_block *sb, u64 *ofs); |
|
594 |
+ struct page *(*find_last_sb)(struct super_block *sb, u64 *ofs); |
|
595 |
+ int (*write_sb)(struct super_block *sb, struct page *page); |
|
596 |
+- int (*readpage)(void *_sb, struct page *page); |
|
597 |
++ int (*readpage)(struct super_block *sb, struct page *page); |
|
598 |
++ int (*filler)(struct file *file, struct page *page); |
|
599 |
+ void (*writeseg)(struct super_block *sb, u64 ofs, size_t len); |
|
600 |
+ int (*erase)(struct super_block *sb, loff_t ofs, size_t len, |
|
601 |
+ int ensure_write); |
|
602 |
+@@ -617,8 +618,6 @@ static inline int logfs_buf_recover(struct logfs_area *area, u64 ofs, |
|
603 |
+ } |
|
604 |
+ |
|
605 |
+ /* super.c */ |
|
606 |
+-struct page *emergency_read_begin(struct address_space *mapping, pgoff_t index); |
|
607 |
+-void emergency_read_end(struct page *page); |
|
608 |
+ void logfs_crash_dump(struct super_block *sb); |
|
609 |
+ int logfs_statfs(struct dentry *dentry, struct kstatfs *stats); |
|
610 |
+ int logfs_check_ds(struct logfs_disk_super *ds); |
|
611 |
+diff --git a/fs/logfs/readwrite.c b/fs/logfs/readwrite.c |
|
612 |
+index 3fb8c6d..83a5133 100644 |
|
613 |
+--- a/fs/logfs/readwrite.c |
|
614 |
+@@ -1963,7 +1963,7 @@ int logfs_read_inode(struct inode *inode) |
|
615 |
+ return -ENODATA; |
|
616 |
+ |
|
617 |
+ page = read_cache_page(master_inode->i_mapping, ino, |
|
618 |
+- (filler_t *)logfs_readpage, NULL); |
|
619 |
++ logfs_readpage, NULL); |
|
620 |
+ if (IS_ERR(page)) |
|
621 |
+ return PTR_ERR(page); |
|
622 |
+ |
|
623 |
+diff --git a/fs/logfs/segment.c b/fs/logfs/segment.c |
|
624 |
+index 1efd605..d712407 100644 |
|
625 |
+--- a/fs/logfs/segment.c |
|
626 |
+@@ -54,7 +54,7 @@ static struct page *get_mapping_page(struct super_block *sb, pgoff_t index, |
|
627 |
+ { |
|
628 |
+ struct logfs_super *super = logfs_super(sb); |
|
629 |
+ struct address_space *mapping = super->s_mapping_inode->i_mapping; |
|
630 |
+- filler_t *filler = super->s_devops->readpage; |
|
631 |
++ filler_t *filler = super->s_devops->filler; |
|
632 |
+ struct page *page; |
|
633 |
+ |
|
634 |
+ BUG_ON(mapping_gfp_constraint(mapping, __GFP_FS)); |
|
635 |
+diff --git a/fs/logfs/super.c b/fs/logfs/super.c |
|
636 |
+index 5751082..7619dac 100644 |
|
637 |
+--- a/fs/logfs/super.c |
|
638 |
+@@ -18,39 +18,6 @@ |
|
639 |
+ #include <linux/statfs.h> |
|
640 |
+ #include <linux/buffer_head.h> |
|
641 |
+ |
|
642 |
+-static DEFINE_MUTEX(emergency_mutex); |
|
643 |
+-static struct page *emergency_page; |
|
644 |
+- |
|
645 |
+-struct page *emergency_read_begin(struct address_space *mapping, pgoff_t index) |
|
646 |
+-{ |
|
647 |
+- filler_t *filler = (filler_t *)mapping->a_ops->readpage; |
|
648 |
+- struct page *page; |
|
649 |
+- int err; |
|
650 |
+- |
|
651 |
+- page = read_cache_page(mapping, index, filler, NULL); |
|
652 |
+- if (page) |
|
653 |
+- return page; |
|
654 |
+- |
|
655 |
+- /* No more pages available, switch to emergency page */ |
|
656 |
+- printk(KERN_INFO"Logfs: Using emergency page\n"); |
|
657 |
+- mutex_lock(&emergency_mutex); |
|
658 |
+- err = filler(NULL, emergency_page); |
|
659 |
+- if (err) { |
|
660 |
+- mutex_unlock(&emergency_mutex); |
|
661 |
+- printk(KERN_EMERG"Logfs: Error reading emergency page\n"); |
|
662 |
+- return ERR_PTR(err); |
|
663 |
+- } |
|
664 |
+- return emergency_page; |
|
665 |
+-} |
|
666 |
+- |
|
667 |
+-void emergency_read_end(struct page *page) |
|
668 |
+-{ |
|
669 |
+- if (page == emergency_page) |
|
670 |
+- mutex_unlock(&emergency_mutex); |
|
671 |
+- else |
|
672 |
+- put_page(page); |
|
673 |
+-} |
|
674 |
+- |
|
675 |
+ static void dump_segfile(struct super_block *sb) |
|
676 |
+ { |
|
677 |
+ struct logfs_super *super = logfs_super(sb); |
|
678 |
+@@ -614,10 +581,6 @@ static int __init logfs_init(void) |
|
679 |
+ { |
|
680 |
+ int ret; |
|
681 |
+ |
|
682 |
+- emergency_page = alloc_pages(GFP_KERNEL, 0); |
|
683 |
+- if (!emergency_page) |
|
684 |
+- return -ENOMEM; |
|
685 |
+- |
|
686 |
+ ret = logfs_compr_init(); |
|
687 |
+ if (ret) |
|
688 |
+ goto out1; |
|
689 |
+@@ -633,7 +596,6 @@ static int __init logfs_init(void) |
|
690 |
+ out2: |
|
691 |
+ logfs_compr_exit(); |
|
692 |
+ out1: |
|
693 |
+- __free_pages(emergency_page, 0); |
|
694 |
+ return ret; |
|
695 |
+ } |
|
696 |
+ |
|
697 |
+@@ -642,7 +604,6 @@ static void __exit logfs_exit(void) |
|
698 |
+ unregister_filesystem(&logfs_fs_type); |
|
699 |
+ logfs_destroy_inode_cache(); |
|
700 |
+ logfs_compr_exit(); |
|
701 |
+- __free_pages(emergency_page, 0); |
|
702 |
+ } |
|
703 |
+ |
|
704 |
+ module_init(logfs_init); |
|
705 |
+diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c |
|
706 |
+index 177fefb..64c2aca 100644 |
|
707 |
+--- a/fs/nfs/dir.c |
|
708 |
+@@ -699,8 +699,9 @@ out: |
|
709 |
+ * We only need to convert from xdr once so future lookups are much simpler |
|
710 |
+ */ |
|
711 |
+ static |
|
712 |
+-int nfs_readdir_filler(nfs_readdir_descriptor_t *desc, struct page* page) |
|
713 |
++int nfs_readdir_filler(struct file *_desc, struct page* page) |
|
714 |
+ { |
|
715 |
++ nfs_readdir_descriptor_t *desc = (nfs_readdir_descriptor_t *)_desc; |
|
716 |
+ struct inode *inode = file_inode(desc->file); |
|
717 |
+ int ret; |
|
718 |
+ |
|
719 |
+@@ -735,7 +736,7 @@ struct page *get_cache_page(nfs_readdir_descriptor_t *desc) |
|
720 |
+ |
|
721 |
+ for (;;) { |
|
722 |
+ page = read_cache_page(desc->file->f_mapping, |
|
723 |
+- desc->page_index, (filler_t *)nfs_readdir_filler, desc); |
|
724 |
++ desc->page_index, nfs_readdir_filler, desc); |
|
725 |
+ if (IS_ERR(page) || grab_page(page)) |
|
726 |
+ break; |
|
727 |
+ put_page(page); |
|
728 |
+diff --git a/fs/nfs/read.c b/fs/nfs/read.c |
|
729 |
+index 572e5b3..5245a0a 100644 |
|
730 |
+--- a/fs/nfs/read.c |
|
731 |
+@@ -346,7 +346,7 @@ struct nfs_readdesc { |
|
732 |
+ }; |
|
733 |
+ |
|
734 |
+ static int |
|
735 |
+-readpage_async_filler(void *data, struct page *page) |
|
736 |
++readpage_async_filler(struct file *data, struct page *page) |
|
737 |
+ { |
|
738 |
+ struct nfs_readdesc *desc = (struct nfs_readdesc *)data; |
|
739 |
+ struct nfs_page *new; |
|
740 |
+diff --git a/fs/nfs/symlink.c b/fs/nfs/symlink.c |
|
741 |
+index 4fe3eea..8922b2b 100644 |
|
742 |
+--- a/fs/nfs/symlink.c |
|
743 |
+@@ -25,9 +25,10 @@ |
|
744 |
+ * and straight-forward than readdir caching. |
|
745 |
+ */ |
|
746 |
+ |
|
747 |
+-static int nfs_symlink_filler(struct inode *inode, struct page *page) |
|
748 |
++static int nfs_symlink_filler(struct file *_inode, struct page *page) |
|
749 |
+ { |
|
750 |
+ int error; |
|
751 |
++ struct inode *inode = (struct inode *)_inode; |
|
752 |
+ |
|
753 |
+ error = NFS_PROTO(inode)->readlink(inode, page, 0, PAGE_SIZE); |
|
754 |
+ if (error < 0) |
|
755 |
+@@ -64,8 +65,7 @@ static const char *nfs_get_link(struct dentry *dentry, |
|
756 |
+ err = ERR_PTR(nfs_revalidate_mapping(inode, inode->i_mapping)); |
|
757 |
+ if (err) |
|
758 |
+ return err; |
|
759 |
+- page = read_cache_page(&inode->i_data, 0, |
|
760 |
+- (filler_t *)nfs_symlink_filler, inode); |
|
761 |
++ page = read_cache_page(&inode->i_data, 0, nfs_symlink_filler, inode); |
|
762 |
+ if (IS_ERR(page)) |
|
763 |
+ return ERR_CAST(page); |
|
764 |
+ } |
|
765 |
+diff --git a/fs/read_write.c b/fs/read_write.c |
|
766 |
+index 66215a7..7d66f62 100644 |
|
767 |
+--- a/fs/read_write.c |
|
768 |
+@@ -23,7 +23,8 @@ |
|
769 |
+ #include <asm/uaccess.h> |
|
770 |
+ #include <asm/unistd.h> |
|
771 |
+ |
|
772 |
+-typedef ssize_t (*io_fn_t)(struct file *, char __user *, size_t, loff_t *); |
|
773 |
++typedef ssize_t (*io_fnr_t)(struct file *, char __user *, size_t, loff_t *); |
|
774 |
++typedef ssize_t (*io_fnw_t)(struct file *, const char __user *, size_t, loff_t *); |
|
775 |
+ typedef ssize_t (*iter_fn_t)(struct kiocb *, struct iov_iter *); |
|
776 |
+ |
|
777 |
+ const struct file_operations generic_ro_fops = { |
|
778 |
+@@ -526,7 +527,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t |
|
779 |
+ |
|
780 |
+ old_fs = get_fs(); |
|
781 |
+ set_fs(get_ds()); |
|
782 |
+- p = (__force const char __user *)buf; |
|
783 |
++ p = (const char __force_user *)buf; |
|
784 |
+ if (count > MAX_RW_COUNT) |
|
785 |
+ count = MAX_RW_COUNT; |
|
786 |
+ ret = __vfs_write(file, p, count, pos); |
|
787 |
+@@ -700,7 +701,7 @@ static ssize_t do_iter_readv_writev(struct file *filp, struct iov_iter *iter, |
|
788 |
+ |
|
789 |
+ /* Do it by hand, with file-ops */ |
|
790 |
+ static ssize_t do_loop_readv_writev(struct file *filp, struct iov_iter *iter, |
|
791 |
+- loff_t *ppos, io_fn_t fn, int flags) |
|
792 |
++ loff_t *ppos, io_fnr_t fnr, io_fnw_t fnw, int flags) |
|
793 |
+ { |
|
794 |
+ ssize_t ret = 0; |
|
795 |
+ |
|
796 |
+@@ -711,7 +712,10 @@ static ssize_t do_loop_readv_writev(struct file *filp, struct iov_iter *iter, |
|
797 |
+ struct iovec iovec = iov_iter_iovec(iter); |
|
798 |
+ ssize_t nr; |
|
799 |
+ |
|
800 |
+- nr = fn(filp, iovec.iov_base, iovec.iov_len, ppos); |
|
801 |
++ if (fnr) |
|
802 |
++ nr = fnr(filp, iovec.iov_base, iovec.iov_len, ppos); |
|
803 |
++ else |
|
804 |
++ nr = fnw(filp, iovec.iov_base, iovec.iov_len, ppos); |
|
805 |
+ |
|
806 |
+ if (nr < 0) { |
|
807 |
+ if (!ret) |
|
808 |
+@@ -815,7 +819,8 @@ static ssize_t do_readv_writev(int type, struct file *file, |
|
809 |
+ struct iovec *iov = iovstack; |
|
810 |
+ struct iov_iter iter; |
|
811 |
+ ssize_t ret; |
|
812 |
+- io_fn_t fn; |
|
813 |
++ io_fnr_t fnr; |
|
814 |
++ io_fnw_t fnw; |
|
815 |
+ iter_fn_t iter_fn; |
|
816 |
+ |
|
817 |
+ ret = import_iovec(type, uvector, nr_segs, |
|
818 |
+@@ -831,10 +836,12 @@ static ssize_t do_readv_writev(int type, struct file *file, |
|
819 |
+ goto out; |
|
820 |
+ |
|
821 |
+ if (type == READ) { |
|
822 |
+- fn = file->f_op->read; |
|
823 |
++ fnr = file->f_op->read; |
|
824 |
++ fnw = NULL; |
|
825 |
+ iter_fn = file->f_op->read_iter; |
|
826 |
+ } else { |
|
827 |
+- fn = (io_fn_t)file->f_op->write; |
|
828 |
++ fnr = NULL; |
|
829 |
++ fnw = file->f_op->write; |
|
830 |
+ iter_fn = file->f_op->write_iter; |
|
831 |
+ file_start_write(file); |
|
832 |
+ } |
|
833 |
+@@ -842,7 +849,7 @@ static ssize_t do_readv_writev(int type, struct file *file, |
|
834 |
+ if (iter_fn) |
|
835 |
+ ret = do_iter_readv_writev(file, &iter, pos, iter_fn, flags); |
|
836 |
+ else |
|
837 |
+- ret = do_loop_readv_writev(file, &iter, pos, fn, flags); |
|
838 |
++ ret = do_loop_readv_writev(file, &iter, pos, fnr, fnw, flags); |
|
839 |
+ |
|
840 |
+ if (type != READ) |
|
841 |
+ file_end_write(file); |
|
842 |
+@@ -1040,7 +1047,8 @@ static ssize_t compat_do_readv_writev(int type, struct file *file, |
|
843 |
+ struct iovec *iov = iovstack; |
|
844 |
+ struct iov_iter iter; |
|
845 |
+ ssize_t ret; |
|
846 |
+- io_fn_t fn; |
|
847 |
++ io_fnr_t fnr; |
|
848 |
++ io_fnw_t fnw; |
|
849 |
+ iter_fn_t iter_fn; |
|
850 |
+ |
|
851 |
+ ret = compat_import_iovec(type, uvector, nr_segs, |
|
852 |
+@@ -1056,10 +1064,12 @@ static ssize_t compat_do_readv_writev(int type, struct file *file, |
|
853 |
+ goto out; |
|
854 |
+ |
|
855 |
+ if (type == READ) { |
|
856 |
+- fn = file->f_op->read; |
|
857 |
++ fnr = file->f_op->read; |
|
858 |
++ fnw = NULL; |
|
859 |
+ iter_fn = file->f_op->read_iter; |
|
860 |
+ } else { |
|
861 |
+- fn = (io_fn_t)file->f_op->write; |
|
862 |
++ fnr = NULL; |
|
863 |
++ fnw = file->f_op->write; |
|
864 |
+ iter_fn = file->f_op->write_iter; |
|
865 |
+ file_start_write(file); |
|
866 |
+ } |
|
867 |
+@@ -1067,7 +1077,7 @@ static ssize_t compat_do_readv_writev(int type, struct file *file, |
|
868 |
+ if (iter_fn) |
|
869 |
+ ret = do_iter_readv_writev(file, &iter, pos, iter_fn, flags); |
|
870 |
+ else |
|
871 |
+- ret = do_loop_readv_writev(file, &iter, pos, fn, flags); |
|
872 |
++ ret = do_loop_readv_writev(file, &iter, pos, fnr, fnw, flags); |
|
873 |
+ |
|
874 |
+ if (type != READ) |
|
875 |
+ file_end_write(file); |
|
876 |
+diff --git a/include/linux/compiler.h b/include/linux/compiler.h |
|
877 |
+index 6685698..3083d3d 100644 |
|
878 |
+--- a/include/linux/compiler.h |
|
879 |
+@@ -5,6 +5,7 @@ |
|
880 |
+ |
|
881 |
+ #ifdef __CHECKER__ |
|
882 |
+ # define __user __attribute__((noderef, address_space(1))) |
|
883 |
++# define __force_user __force __user |
|
884 |
+ # define __kernel __attribute__((address_space(0))) |
|
885 |
+ # define __safe __attribute__((safe)) |
|
886 |
+ # define __force __attribute__((force)) |
|
887 |
+@@ -28,7 +29,9 @@ extern void __chk_io_ptr(const volatile void __iomem *); |
|
888 |
+ # define ACCESS_PRIVATE(p, member) (*((typeof((p)->member) __force *) &(p)->member)) |
|
889 |
+ #else /* __CHECKER__ */ |
|
890 |
+ # define __user |
|
891 |
++# define __force_user |
|
892 |
+ # define __kernel |
|
893 |
++# define __force_kernel |
|
894 |
+ # define __safe |
|
895 |
+ # define __force |
|
896 |
+ # define __nocast |
|
897 |
+@@ -437,6 +440,8 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s |
|
898 |
+ # define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) |
|
899 |
+ #endif |
|
900 |
+ |
|
901 |
++#define __type_is_unsigned(t) (__same_type((t)0, 0UL) || __same_type((t)0, 0U) || __same_type((t)0, (unsigned short)0) || __same_type((t)0, (unsigned char)0)) |
|
902 |
++ |
|
903 |
+ /* Is this type a native word size -- useful for atomic operations */ |
|
904 |
+ #ifndef __native_word |
|
905 |
+ # define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) |
|
906 |
+diff --git a/include/linux/gfp.h b/include/linux/gfp.h |
|
907 |
+index f8041f9..e47dbc1 100644 |
|
908 |
+--- a/include/linux/gfp.h |
|
909 |
+@@ -516,7 +516,7 @@ extern void __free_page_frag(void *addr); |
|
910 |
+ void page_alloc_init(void); |
|
911 |
+ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp); |
|
912 |
+ void drain_all_pages(struct zone *zone); |
|
913 |
+-void drain_local_pages(struct zone *zone); |
|
914 |
++void drain_local_pages(void *zone); |
|
915 |
+ |
|
916 |
+ void page_alloc_init_late(void); |
|
917 |
+ |
|
918 |
+diff --git a/include/linux/linkage.h b/include/linux/linkage.h |
|
919 |
+index a6a42dd..7d60e80 100644 |
|
920 |
+--- a/include/linux/linkage.h |
|
921 |
+@@ -5,6 +5,7 @@ |
|
922 |
+ #include <linux/stringify.h> |
|
923 |
+ #include <linux/export.h> |
|
924 |
+ #include <asm/linkage.h> |
|
925 |
++#include <asm/bitsperlong.h> |
|
926 |
+ |
|
927 |
+ /* Some toolchains use other characters (e.g. '`') to mark new line in macro */ |
|
928 |
+ #ifndef ASM_NL |
|
929 |
+@@ -79,17 +80,38 @@ |
|
930 |
+ #define ALIGN_STR __ALIGN_STR |
|
931 |
+ |
|
932 |
+ #ifndef ENTRY |
|
933 |
+-#define ENTRY(name) \ |
|
934 |
++#define __ENTRY(name, rap_hash) \ |
|
935 |
+ .globl name ASM_NL \ |
|
936 |
+ ALIGN ASM_NL \ |
|
937 |
++ rap_hash \ |
|
938 |
+ name: |
|
939 |
++ |
|
940 |
++#define ENTRY(name) __ENTRY(name,) |
|
941 |
+ #endif |
|
942 |
+ #endif /* LINKER_SCRIPT */ |
|
943 |
+ |
|
944 |
+ #ifndef WEAK |
|
945 |
+-#define WEAK(name) \ |
|
946 |
+- .weak name ASM_NL \ |
|
947 |
++#define __WEAK(name, rap_hash) \ |
|
948 |
++ .weak name ASM_NL \ |
|
949 |
++ rap_hash \ |
|
950 |
+ name: |
|
951 |
++ |
|
952 |
++#define WEAK(name) __WEAK(name, ) |
|
953 |
++#endif |
|
954 |
++ |
|
955 |
++#ifdef CONFIG_PAX_RAP |
|
956 |
++#if BITS_PER_LONG == 64 |
|
957 |
++#define __ASM_RAP_HASH(hash) .quad 0, hash ASM_NL |
|
958 |
++#elif BITS_PER_LONG == 32 |
|
959 |
++#define __ASM_RAP_HASH(hash) .long 0, 0, 0, hash ASM_NL |
|
960 |
++#else |
|
961 |
++#error incompatible BITS_PER_LONG |
|
962 |
++#endif |
|
963 |
++#define RAP_ENTRY(name) __ENTRY(name, __ASM_RAP_HASH(__rap_hash_##name)) |
|
964 |
++#define RAP_WEAK(name) __WEAK(name, __ASM_RAP_HASH(__rap_hash_##name)) |
|
965 |
++#else |
|
966 |
++#define RAP_ENTRY(name) ENTRY(name) |
|
967 |
++#define RAP_WEAK(name) WEAK(name) |
|
968 |
+ #endif |
|
969 |
+ |
|
970 |
+ #ifndef END |
|
971 |
+diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h |
|
972 |
+index 01e8443..3a4d158 100644 |
|
973 |
+--- a/include/linux/pagemap.h |
|
974 |
+@@ -215,7 +215,7 @@ static inline gfp_t readahead_gfp_mask(struct address_space *x) |
|
975 |
+ __GFP_COLD | __GFP_NORETRY | __GFP_NOWARN; |
|
976 |
+ } |
|
977 |
+ |
|
978 |
+-typedef int filler_t(void *, struct page *); |
|
979 |
++typedef int filler_t(struct file *, struct page *); |
|
980 |
+ |
|
981 |
+ pgoff_t page_cache_next_hole(struct address_space *mapping, |
|
982 |
+ pgoff_t index, unsigned long max_scan); |
|
983 |
+@@ -359,7 +359,7 @@ extern int read_cache_pages(struct address_space *mapping, |
|
984 |
+ static inline struct page *read_mapping_page(struct address_space *mapping, |
|
985 |
+ pgoff_t index, void *data) |
|
986 |
+ { |
|
987 |
+- filler_t *filler = (filler_t *)mapping->a_ops->readpage; |
|
988 |
++ filler_t *filler = mapping->a_ops->readpage; |
|
989 |
+ return read_cache_page(mapping, index, filler, data); |
|
990 |
+ } |
|
991 |
+ |
|
992 |
+diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h |
|
993 |
+index d022390..a2b7663 100644 |
|
994 |
+--- a/include/linux/syscalls.h |
|
995 |
+@@ -102,7 +102,14 @@ union bpf_attr; |
|
996 |
+ #define __TYPE_IS_L(t) (__same_type((t)0, 0L)) |
|
997 |
+ #define __TYPE_IS_UL(t) (__same_type((t)0, 0UL)) |
|
998 |
+ #define __TYPE_IS_LL(t) (__same_type((t)0, 0LL) || __same_type((t)0, 0ULL)) |
|
999 |
+-#define __SC_LONG(t, a) __typeof(__builtin_choose_expr(__TYPE_IS_LL(t), 0LL, 0L)) a |
|
1000 |
++#define __SC_TYPE(t) __typeof__( \ |
|
1001 |
++ __builtin_choose_expr( \ |
|
1002 |
++ sizeof(t) > sizeof(int), \ |
|
1003 |
++ (t) 0, \ |
|
1004 |
++ __builtin_choose_expr(__type_is_unsigned(t), 0UL, 0L) \ |
|
1005 |
++ )) |
|
1006 |
++#define __SC_LONG(t, a) __SC_TYPE(t) a |
|
1007 |
++#define __SC_WRAP(t, a) (__SC_TYPE(t)) a |
|
1008 |
+ #define __SC_CAST(t, a) (t) a |
|
1009 |
+ #define __SC_ARGS(t, a) a |
|
1010 |
+ #define __SC_TEST(t, a) (void)BUILD_BUG_ON_ZERO(!__TYPE_IS_LL(t) && sizeof(t) > sizeof(long)) |
|
1011 |
+@@ -192,17 +199,18 @@ extern struct trace_event_functions exit_syscall_print_funcs; |
|
1012 |
+ |
|
1013 |
+ #define __PROTECT(...) asmlinkage_protect(__VA_ARGS__) |
|
1014 |
+ #define __SYSCALL_DEFINEx(x, name, ...) \ |
|
1015 |
+- asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ |
|
1016 |
+- __attribute__((alias(__stringify(SyS##name)))); \ |
|
1017 |
+ static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \ |
|
1018 |
+- asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ |
|
1019 |
+- asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ |
|
1020 |
++ static inline asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ |
|
1021 |
+ { \ |
|
1022 |
+ long ret = SYSC##name(__MAP(x,__SC_CAST,__VA_ARGS__)); \ |
|
1023 |
+ __MAP(x,__SC_TEST,__VA_ARGS__); \ |
|
1024 |
+ __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \ |
|
1025 |
+ return ret; \ |
|
1026 |
+ } \ |
|
1027 |
++ asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ |
|
1028 |
++ { \ |
|
1029 |
++ return SyS##name(__MAP(x,__SC_WRAP,__VA_ARGS__)); \ |
|
1030 |
++ } \ |
|
1031 |
+ static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)) |
|
1032 |
+ |
|
1033 |
+ asmlinkage long sys32_quotactl(unsigned int cmd, const char __user *special, |
|
1034 |
+diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c |
|
1035 |
+index 03fd23d..d0f8991 100644 |
|
1036 |
+--- a/kernel/bpf/core.c |
|
1037 |
+@@ -208,6 +208,8 @@ struct bpf_prog *bpf_patch_insn_single(struct bpf_prog *prog, u32 off, |
|
1038 |
+ } |
|
1039 |
+ |
|
1040 |
+ #ifdef CONFIG_BPF_JIT |
|
1041 |
++extern long __rap_hash___bpf_prog_run; |
|
1042 |
++ |
|
1043 |
+ struct bpf_binary_header * |
|
1044 |
+ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr, |
|
1045 |
+ unsigned int alignment, |
|
1046 |
+@@ -231,11 +233,24 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr, |
|
1047 |
+ hdr->pages = size / PAGE_SIZE; |
|
1048 |
+ hole = min_t(unsigned int, size - (proglen + sizeof(*hdr)), |
|
1049 |
+ PAGE_SIZE - sizeof(*hdr)); |
|
1050 |
++#ifdef CONFIG_PAX_RAP |
|
1051 |
++ hole -= 8; |
|
1052 |
++#endif |
|
1053 |
+ start = (get_random_int() % hole) & ~(alignment - 1); |
|
1054 |
++#ifdef CONFIG_PAX_RAP |
|
1055 |
++ start += 8; |
|
1056 |
++#endif |
|
1057 |
+ |
|
1058 |
+ /* Leave a random number of instructions before BPF code. */ |
|
1059 |
+ *image_ptr = &hdr->image[start]; |
|
1060 |
+ |
|
1061 |
++#ifdef CONFIG_PAX_RAP |
|
1062 |
++#ifdef CONFIG_RELOCATABLE |
|
1063 |
++ *(long *)(*image_ptr - 8) = 0x17eeb8a2LL; |
|
1064 |
++#else |
|
1065 |
++ *(long *)(*image_ptr - 8) = (long)&__rap_hash___bpf_prog_run; |
|
1066 |
++#endif |
|
1067 |
++#endif |
|
1068 |
+ return hdr; |
|
1069 |
+ } |
|
1070 |
+ |
|
1071 |
+@@ -465,7 +480,7 @@ EXPORT_SYMBOL_GPL(__bpf_call_base); |
|
1072 |
+ * |
|
1073 |
+ * Decode and execute eBPF instructions. |
|
1074 |
+ */ |
|
1075 |
+-static unsigned int __bpf_prog_run(void *ctx, const struct bpf_insn *insn) |
|
1076 |
++unsigned int __bpf_prog_run(const struct sk_buff *ctx, const struct bpf_insn *insn) |
|
1077 |
+ { |
|
1078 |
+ u64 stack[MAX_BPF_STACK / sizeof(u64)]; |
|
1079 |
+ u64 regs[MAX_BPF_REG], tmp; |
|
1080 |
+@@ -970,7 +985,7 @@ static int bpf_check_tail_call(const struct bpf_prog *fp) |
|
1081 |
+ */ |
|
1082 |
+ struct bpf_prog *bpf_prog_select_runtime(struct bpf_prog *fp, int *err) |
|
1083 |
+ { |
|
1084 |
+- fp->bpf_func = (void *) __bpf_prog_run; |
|
1085 |
++ fp->bpf_func = __bpf_prog_run; |
|
1086 |
+ |
|
1087 |
+ /* eBPF JITs can rewrite the program in case constant |
|
1088 |
+ * blinding is active. However, in case of error during |
|
1089 |
+diff --git a/kernel/module.c b/kernel/module.c |
|
1090 |
+index 529efae..2d8ab23 100644 |
|
1091 |
+--- a/kernel/module.c |
|
1092 |
+@@ -2940,8 +2940,15 @@ static struct module *setup_load_info(struct load_info *info, int flags) |
|
1093 |
+ static int check_modinfo(struct module *mod, struct load_info *info, int flags) |
|
1094 |
+ { |
|
1095 |
+ const char *modmagic = get_modinfo(info, "vermagic"); |
|
1096 |
++ const char *license = get_modinfo(info, "license"); |
|
1097 |
+ int err; |
|
1098 |
+ |
|
1099 |
++#if defined(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR) || defined(CONFIG_PAX_RAP) |
|
1100 |
++ if (!license || !license_is_gpl_compatible(license)) { |
|
1101 |
++ pr_err("%s: module is not compatible with the KERNEXEC 'or' method and RAP\n", mod->name); |
|
1102 |
++ return -ENOEXEC; |
|
1103 |
++ } |
|
1104 |
++#endif |
|
1105 |
+ if (flags & MODULE_INIT_IGNORE_VERMAGIC) |
|
1106 |
+ modmagic = NULL; |
|
1107 |
+ |
|
1108 |
+@@ -2974,7 +2981,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags) |
|
1109 |
+ return err; |
|
1110 |
+ |
|
1111 |
+ /* Set up license info based on the info section */ |
|
1112 |
+- set_license(mod, get_modinfo(info, "license")); |
|
1113 |
++ set_license(mod, license); |
|
1114 |
+ |
|
1115 |
+ return 0; |
|
1116 |
+ } |
|
1117 |
+diff --git a/mm/filemap.c b/mm/filemap.c |
|
1118 |
+index 2d0986a..f7a7621 100644 |
|
1119 |
+--- a/mm/filemap.c |
|
1120 |
+@@ -2360,7 +2360,7 @@ static struct page *wait_on_page_read(struct page *page) |
|
1121 |
+ |
|
1122 |
+ static struct page *do_read_cache_page(struct address_space *mapping, |
|
1123 |
+ pgoff_t index, |
|
1124 |
+- int (*filler)(void *, struct page *), |
|
1125 |
++ filler_t *filler, |
|
1126 |
+ void *data, |
|
1127 |
+ gfp_t gfp) |
|
1128 |
+ { |
|
1129 |
+@@ -2467,7 +2467,7 @@ out: |
|
1130 |
+ */ |
|
1131 |
+ struct page *read_cache_page(struct address_space *mapping, |
|
1132 |
+ pgoff_t index, |
|
1133 |
+- int (*filler)(void *, struct page *), |
|
1134 |
++ filler_t *filler, |
|
1135 |
+ void *data) |
|
1136 |
+ { |
|
1137 |
+ return do_read_cache_page(mapping, index, filler, data, mapping_gfp_mask(mapping)); |
|
1138 |
+@@ -2489,7 +2489,7 @@ struct page *read_cache_page_gfp(struct address_space *mapping, |
|
1139 |
+ pgoff_t index, |
|
1140 |
+ gfp_t gfp) |
|
1141 |
+ { |
|
1142 |
+- filler_t *filler = (filler_t *)mapping->a_ops->readpage; |
|
1143 |
++ filler_t *filler = mapping->a_ops->readpage; |
|
1144 |
+ |
|
1145 |
+ return do_read_cache_page(mapping, index, filler, NULL, gfp); |
|
1146 |
+ } |
|
1147 |
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c |
|
1148 |
+index a2214c6..ede9d58 100644 |
|
1149 |
+--- a/mm/page_alloc.c |
|
1150 |
+@@ -2278,8 +2278,9 @@ static void drain_pages(unsigned int cpu) |
|
1151 |
+ * The CPU has to be pinned. When zone parameter is non-NULL, spill just |
|
1152 |
+ * the single zone's pages. |
|
1153 |
+ */ |
|
1154 |
+-void drain_local_pages(struct zone *zone) |
|
1155 |
++void drain_local_pages(void *_zone) |
|
1156 |
+ { |
|
1157 |
++ struct zone *zone = _zone; |
|
1158 |
+ int cpu = smp_processor_id(); |
|
1159 |
+ |
|
1160 |
+ if (zone) |
|
1161 |
+@@ -2339,8 +2340,7 @@ void drain_all_pages(struct zone *zone) |
|
1162 |
+ else |
|
1163 |
+ cpumask_clear_cpu(cpu, &cpus_with_pcps); |
|
1164 |
+ } |
|
1165 |
+- on_each_cpu_mask(&cpus_with_pcps, (smp_call_func_t) drain_local_pages, |
|
1166 |
+- zone, 1); |
|
1167 |
++ on_each_cpu_mask(&cpus_with_pcps, drain_local_pages, zone, 1); |
|
1168 |
+ } |
|
1169 |
+ |
|
1170 |
+ #ifdef CONFIG_HIBERNATION |
|
1171 |
+diff --git a/mm/readahead.c b/mm/readahead.c |
|
1172 |
+index c8a955b..fad2128 100644 |
|
1173 |
+--- a/mm/readahead.c |
|
1174 |
+@@ -81,7 +81,7 @@ static void read_cache_pages_invalidate_pages(struct address_space *mapping, |
|
1175 |
+ * Hides the details of the LRU cache etc from the filesystems. |
|
1176 |
+ */ |
|
1177 |
+ int read_cache_pages(struct address_space *mapping, struct list_head *pages, |
|
1178 |
+- int (*filler)(void *, struct page *), void *data) |
|
1179 |
++ filler_t *filler, void *data) |
|
1180 |
+ { |
|
1181 |
+ struct page *page; |
|
1182 |
+ int ret = 0; |
|
1183 |
+diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins |
|
1184 |
+index 61f0e6d..978c1c8 100644 |
|
1185 |
+--- a/scripts/Makefile.gcc-plugins |
|
1186 |
+@@ -19,9 +19,21 @@ ifdef CONFIG_GCC_PLUGINS |
|
1187 |
+ endif |
|
1188 |
+ endif |
|
1189 |
+ |
|
1190 |
++ gcc-plugin-subdir-$(CONFIG_PAX_RAP) += rap_plugin |
|
1191 |
++ gcc-plugin-$(CONFIG_PAX_RAP) += rap_plugin/rap_plugin.so |
|
1192 |
++ gcc-plugin-cflags-$(CONFIG_PAX_RAP) += -DRAP_PLUGIN -fplugin-arg-rap_plugin-check=call |
|
1193 |
++# gcc-plugin-cflags-$(CONFIG_PAX_RAP) += -fplugin-arg-rap_plugin-report=func,fptr,abs |
|
1194 |
++ gcc-plugin-aflags-$(CONFIG_PAX_RAP) += -DRAP_PLUGIN |
|
1195 |
++ ifdef CONFIG_PAX_RAP |
|
1196 |
++ RAP_PLUGIN_ABS_CFLAGS := -fplugin-arg-rap_plugin-hash=abs-finish |
|
1197 |
++ endif |
|
1198 |
++ gcc-plugin-cflags-$(CONFIG_PAX_RAP) += $(RAP_PLUGIN_ABS_CFLAGS) |
|
1199 |
++ |
|
1200 |
+ GCC_PLUGINS_CFLAGS := $(strip $(addprefix -fplugin=$(objtree)/scripts/gcc-plugins/, $(gcc-plugin-y)) $(gcc-plugin-cflags-y)) |
|
1201 |
++ GCC_PLUGINS_AFLAGS := $(gcc-plugin-aflags-y) |
|
1202 |
+ |
|
1203 |
+- export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGIN GCC_PLUGIN_SUBDIR SANCOV_PLUGIN |
|
1204 |
++ export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGIN GCC_PLUGIN_SUBDIR SANCOV_PLUGIN GCC_PLUGINS_AFLAGS |
|
1205 |
++ export RAP_PLUGIN_ABS_CFLAGS |
|
1206 |
+ |
|
1207 |
+ ifneq ($(PLUGINCC),) |
|
1208 |
+ # SANCOV_PLUGIN can be only in CFLAGS_KCOV because avoid duplication. |
|
1209 |
+@@ -29,6 +41,7 @@ ifdef CONFIG_GCC_PLUGINS |
|
1210 |
+ endif |
|
1211 |
+ |
|
1212 |
+ KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS) |
|
1213 |
++ KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS) |
|
1214 |
+ GCC_PLUGIN := $(gcc-plugin-y) |
|
1215 |
+ GCC_PLUGIN_SUBDIR := $(gcc-plugin-subdir-y) |
|
1216 |
+ endif |
|
1217 |
+diff --git a/scripts/gcc-plugins/gcc-common.h b/scripts/gcc-plugins/gcc-common.h |
|
1218 |
+index 172850b..ec4abe3 100644 |
|
1219 |
+--- a/scripts/gcc-plugins/gcc-common.h |
|
1220 |
+@@ -130,6 +130,7 @@ extern void dump_gimple_stmt(pretty_printer *, gimple, int, int); |
|
1221 |
+ #endif |
|
1222 |
+ |
|
1223 |
+ #define __unused __attribute__((__unused__)) |
|
1224 |
++#define __visible __attribute__((visibility("default"))) |
|
1225 |
+ |
|
1226 |
+ #define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node)) |
|
1227 |
+ #define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node)) |
|
1228 |
+@@ -286,6 +287,22 @@ static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct c |
|
1229 |
+ return NULL; |
|
1230 |
+ } |
|
1231 |
+ |
|
1232 |
++static inline bool cgraph_for_node_and_aliases(cgraph_node_ptr node, bool (*callback)(cgraph_node_ptr, void *), void *data, bool include_overwritable) |
|
1233 |
++{ |
|
1234 |
++ cgraph_node_ptr alias; |
|
1235 |
++ |
|
1236 |
++ if (callback(node, data)) |
|
1237 |
++ return true; |
|
1238 |
++ |
|
1239 |
++ for (alias = node->same_body; alias; alias = alias->next) { |
|
1240 |
++ if (include_overwritable || cgraph_function_body_availability(alias) > AVAIL_OVERWRITABLE) |
|
1241 |
++ if (cgraph_for_node_and_aliases(alias, callback, data, include_overwritable)) |
|
1242 |
++ return true; |
|
1243 |
++ } |
|
1244 |
++ |
|
1245 |
++ return false; |
|
1246 |
++} |
|
1247 |
++ |
|
1248 |
+ #define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \ |
|
1249 |
+ for ((node) = cgraph_first_function_with_gimple_body(); (node); \ |
|
1250 |
+ (node) = cgraph_next_function_with_gimple_body(node)) |
|
1251 |
+@@ -673,6 +690,11 @@ static inline cgraph_node_ptr cgraph_alias_target(cgraph_node_ptr node) |
|
1252 |
+ return node->get_alias_target(); |
|
1253 |
+ } |
|
1254 |
+ |
|
1255 |
++static inline bool cgraph_for_node_and_aliases(cgraph_node_ptr node, bool (*callback)(cgraph_node_ptr, void *), void *data, bool include_overwritable) |
|
1256 |
++{ |
|
1257 |
++ return node->call_for_symbol_thunks_and_aliases(callback, data, include_overwritable); |
|
1258 |
++} |
|
1259 |
++ |
|
1260 |
+ static inline struct cgraph_node_hook_list *cgraph_add_function_insertion_hook(cgraph_node_hook hook, void *data) |
|
1261 |
+ { |
|
1262 |
+ return symtab->add_cgraph_insertion_hook(hook, data); |
|
1263 |
+diff --git a/scripts/gcc-plugins/rap_plugin/Makefile b/scripts/gcc-plugins/rap_plugin/Makefile |
|
1264 |
+new file mode 100644 |
|
1265 |
+index 0000000..f2a0a03 |
|
1266 |
+--- /dev/null |
|
1267 |
+@@ -0,0 +1,6 @@ |
|
1268 |
++$(HOSTLIBS)-$(CONFIG_PAX_RAP) += rap_plugin.so |
|
1269 |
++always := $($(HOSTLIBS)-y) |
|
1270 |
++ |
|
1271 |
++rap_plugin-objs := $(patsubst $(srctree)/$(src)/%.c,%.o,$(wildcard $(srctree)/$(src)/*.c)) |
|
1272 |
++ |
|
1273 |
++clean-files += *.so |
|
1274 |
+diff --git a/scripts/gcc-plugins/rap_plugin/rap.h b/scripts/gcc-plugins/rap_plugin/rap.h |
|
1275 |
+new file mode 100644 |
|
1276 |
+index 0000000..f6a284d |
|
1277 |
+--- /dev/null |
|
1278 |
+@@ -0,0 +1,36 @@ |
|
1279 |
++#ifndef RAP_H_INCLUDED |
|
1280 |
++#define RAP_H_INCLUDED |
|
1281 |
++ |
|
1282 |
++#include "gcc-common.h" |
|
1283 |
++ |
|
1284 |
++typedef struct { |
|
1285 |
++ int hash; // will be sign extended to long in reality |
|
1286 |
++} rap_hash_t; |
|
1287 |
++ |
|
1288 |
++typedef struct { |
|
1289 |
++ unsigned int qual_const:1; |
|
1290 |
++ unsigned int qual_volatile:1; |
|
1291 |
++} rap_hash_flags_t; |
|
1292 |
++extern rap_hash_flags_t imprecise_rap_hash_flags; |
|
1293 |
++ |
|
1294 |
++extern bool report_fptr_hash; |
|
1295 |
++ |
|
1296 |
++extern GTY(()) tree rap_hash_type_node; |
|
1297 |
++ |
|
1298 |
++void siphash24fold(unsigned char *out, const unsigned char *in, unsigned long long inlen, const unsigned char *k); |
|
1299 |
++void rap_calculate_func_hashes(void *event_data, void *data); |
|
1300 |
++rap_hash_t rap_hash_function_type(const_tree fntype, rap_hash_flags_t flags); |
|
1301 |
++rap_hash_t rap_hash_function_decl(const_tree fndecl, rap_hash_flags_t flags); |
|
1302 |
++rap_hash_t rap_hash_function_node_imprecise(cgraph_node_ptr node); |
|
1303 |
++const_tree type_name(const_tree type); |
|
1304 |
++tree create_new_var(tree type, const char *name); |
|
1305 |
++ |
|
1306 |
++gimple barrier(tree var, bool full); |
|
1307 |
++ |
|
1308 |
++#if BUILDING_GCC_VERSION >= 4009 |
|
1309 |
++opt_pass *make_rap_fptr_pass(void); |
|
1310 |
++#else |
|
1311 |
++struct opt_pass *make_rap_fptr_pass(void); |
|
1312 |
++#endif |
|
1313 |
++ |
|
1314 |
++#endif |
|
1315 |
+diff --git a/scripts/gcc-plugins/rap_plugin/rap_fptr_pass.c b/scripts/gcc-plugins/rap_plugin/rap_fptr_pass.c |
|
1316 |
+new file mode 100644 |
|
1317 |
+index 0000000..2f53f14 |
|
1318 |
+--- /dev/null |
|
1319 |
+@@ -0,0 +1,220 @@ |
|
1320 |
++/* |
|
1321 |
++ * Copyright 2012-2016 by PaX Team <pageexec@freemail.hu> |
|
1322 |
++ * Licensed under the GPL v2 |
|
1323 |
++ * |
|
1324 |
++ * Homepage: http://pax.grsecurity.net/ |
|
1325 |
++ */ |
|
1326 |
++ |
|
1327 |
++#include "rap.h" |
|
1328 |
++ |
|
1329 |
++bool report_fptr_hash; |
|
1330 |
++ |
|
1331 |
++static bool rap_fptr_gate(void) |
|
1332 |
++{ |
|
1333 |
++#ifdef TARGET_386 |
|
1334 |
++ tree section; |
|
1335 |
++ |
|
1336 |
++ if (!TARGET_64BIT || ix86_cmodel != CM_KERNEL) |
|
1337 |
++ return true; |
|
1338 |
++ |
|
1339 |
++ section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl)); |
|
1340 |
++ if (!section || !TREE_VALUE(section)) |
|
1341 |
++ return true; |
|
1342 |
++ |
|
1343 |
++ section = TREE_VALUE(TREE_VALUE(section)); |
|
1344 |
++ return strncmp(TREE_STRING_POINTER(section), ".vsyscall_", 10); |
|
1345 |
++#else |
|
1346 |
++#error unsupported target |
|
1347 |
++#endif |
|
1348 |
++} |
|
1349 |
++ |
|
1350 |
++static tree build_rap_hash(gimple call_stmt, tree fntype) |
|
1351 |
++{ |
|
1352 |
++ rap_hash_t hash; |
|
1353 |
++ |
|
1354 |
++ hash = rap_hash_function_type(fntype, imprecise_rap_hash_flags); |
|
1355 |
++ if (report_fptr_hash) |
|
1356 |
++ inform(gimple_location(call_stmt), "fptr rap_hash: %x", hash.hash); |
|
1357 |
++ return build_int_cst_type(rap_hash_type_node, hash.hash); |
|
1358 |
++} |
|
1359 |
++ |
|
1360 |
++// check the function hash of the target of the fptr |
|
1361 |
++static basic_block rap_instrument_fptr(gimple_stmt_iterator *gsi) |
|
1362 |
++{ |
|
1363 |
++ gimple assign_hash, check_hash, call_stmt, stmt; |
|
1364 |
++ location_t loc; |
|
1365 |
++ tree computed_hash, target_hash, fptr, fntype; |
|
1366 |
++#if BUILDING_GCC_VERSION == 4005 |
|
1367 |
++ tree fptr2; |
|
1368 |
++#endif |
|
1369 |
++ basic_block cond_bb, join_bb, true_bb; |
|
1370 |
++ edge e; |
|
1371 |
++ const HOST_WIDE_INT rap_hash_offset = TARGET_64BIT ? 2 * sizeof(rap_hash_t) : sizeof(rap_hash_t); |
|
1372 |
++ |
|
1373 |
++ call_stmt = gsi_stmt(*gsi); |
|
1374 |
++ loc = gimple_location(call_stmt); |
|
1375 |
++ fptr = gimple_call_fn(call_stmt); |
|
1376 |
++ fntype = TREE_TYPE(TREE_TYPE(fptr)); |
|
1377 |
++ |
|
1378 |
++ if (TREE_CODE(fntype) == FUNCTION_TYPE) { |
|
1379 |
++ computed_hash = build_rap_hash(call_stmt, fntype); |
|
1380 |
++ } else { |
|
1381 |
++ debug_tree(fntype); |
|
1382 |
++ gcc_unreachable(); |
|
1383 |
++ } |
|
1384 |
++ |
|
1385 |
++ // target_hash = ((s64*)fptr)[-rap_hash_offset] |
|
1386 |
++ target_hash = create_tmp_var(rap_hash_type_node, "rap_hash"); |
|
1387 |
++ add_referenced_var(target_hash); |
|
1388 |
++ target_hash = make_ssa_name(target_hash, NULL); |
|
1389 |
++#if BUILDING_GCC_VERSION == 4005 |
|
1390 |
++ fptr2 = create_tmp_var(ptr_type_node, "rap_fptr2"); |
|
1391 |
++ fptr2 = make_ssa_name(fptr2, NULL); |
|
1392 |
++ assign_hash = gimple_build_assign(fptr2, build2(POINTER_PLUS_EXPR, ptr_type_node, fptr, build_int_cst_type(sizetype, -rap_hash_offset))); |
|
1393 |
++ gimple_set_location(assign_hash, loc); |
|
1394 |
++ SSA_NAME_DEF_STMT(fptr2) = assign_hash; |
|
1395 |
++ gsi_insert_before(gsi, assign_hash, GSI_SAME_STMT); |
|
1396 |
++ update_stmt(assign_hash); |
|
1397 |
++ fptr = gimple_get_lhs(assign_hash); |
|
1398 |
++ |
|
1399 |
++ fptr2 = create_tmp_var(build_pointer_type(rap_hash_type_node), "rap_fptr2"); |
|
1400 |
++ fptr2 = make_ssa_name(fptr2, NULL); |
|
1401 |
++ assign_hash = gimple_build_assign(fptr2, fold_convert(build_pointer_type(TREE_TYPE(target_hash)), fptr)); |
|
1402 |
++ gimple_set_location(assign_hash, loc); |
|
1403 |
++ SSA_NAME_DEF_STMT(fptr2) = assign_hash; |
|
1404 |
++ gsi_insert_before(gsi, assign_hash, GSI_SAME_STMT); |
|
1405 |
++ update_stmt(assign_hash); |
|
1406 |
++ fptr = gimple_get_lhs(assign_hash); |
|
1407 |
++ |
|
1408 |
++ assign_hash = gimple_build_assign(target_hash, build1(INDIRECT_REF, rap_hash_type_node, fptr)); |
|
1409 |
++#else |
|
1410 |
++ assign_hash = gimple_build_assign(target_hash, build2(MEM_REF, rap_hash_type_node, fptr, build_int_cst_type(build_pointer_type(rap_hash_type_node), -rap_hash_offset))); |
|
1411 |
++#endif |
|
1412 |
++ gimple_set_location(assign_hash, loc); |
|
1413 |
++ SSA_NAME_DEF_STMT(target_hash) = assign_hash; |
|
1414 |
++ gsi_insert_before(gsi, assign_hash, GSI_NEW_STMT); |
|
1415 |
++ update_stmt(assign_hash); |
|
1416 |
++ |
|
1417 |
++ // compare target_hash against computed function hash |
|
1418 |
++ // bail out on mismatch |
|
1419 |
++ check_hash = gimple_build_cond(NE_EXPR, target_hash, computed_hash, NULL_TREE, NULL_TREE); |
|
1420 |
++ gimple_set_location(check_hash, loc); |
|
1421 |
++ gsi_insert_after(gsi, check_hash, GSI_NEW_STMT); |
|
1422 |
++ |
|
1423 |
++ cond_bb = gimple_bb(gsi_stmt(*gsi)); |
|
1424 |
++ gcc_assert(!gsi_end_p(*gsi)); |
|
1425 |
++ gcc_assert(check_hash == gsi_stmt(*gsi)); |
|
1426 |
++ |
|
1427 |
++ e = split_block(cond_bb, gsi_stmt(*gsi)); |
|
1428 |
++ cond_bb = e->src; |
|
1429 |
++ join_bb = e->dest; |
|
1430 |
++ e->flags = EDGE_FALSE_VALUE; |
|
1431 |
++ e->probability = REG_BR_PROB_BASE; |
|
1432 |
++ |
|
1433 |
++ true_bb = create_empty_bb(EXIT_BLOCK_PTR_FOR_FN(cfun)->prev_bb); |
|
1434 |
++ make_edge(cond_bb, true_bb, EDGE_TRUE_VALUE | EDGE_PRESERVE); |
|
1435 |
++ |
|
1436 |
++ gcc_assert(dom_info_available_p(CDI_DOMINATORS)); |
|
1437 |
++ set_immediate_dominator(CDI_DOMINATORS, true_bb, cond_bb); |
|
1438 |
++ set_immediate_dominator(CDI_DOMINATORS, join_bb, cond_bb); |
|
1439 |
++ |
|
1440 |
++ gcc_assert(cond_bb->loop_father == join_bb->loop_father); |
|
1441 |
++ add_bb_to_loop(true_bb, cond_bb->loop_father); |
|
1442 |
++ |
|
1443 |
++ *gsi = gsi_start_bb(true_bb); |
|
1444 |
++ |
|
1445 |
++ // this fake dependency is to prevent PRE from merging this BB with others of the same kind |
|
1446 |
++ stmt = barrier(fptr, false); |
|
1447 |
++ gimple_set_location(stmt, loc); |
|
1448 |
++ gsi_insert_after(gsi, stmt, GSI_CONTINUE_LINKING); |
|
1449 |
++ |
|
1450 |
++ stmt = gimple_build_call(builtin_decl_implicit(BUILT_IN_TRAP), 0); |
|
1451 |
++ gimple_set_location(stmt, loc); |
|
1452 |
++ gsi_insert_after(gsi, stmt, GSI_CONTINUE_LINKING); |
|
1453 |
++ |
|
1454 |
++ return join_bb; |
|
1455 |
++} |
|
1456 |
++ |
|
1457 |
++// find all language level function pointer dereferences and verify the target function |
|
1458 |
++static unsigned int rap_fptr_execute(void) |
|
1459 |
++{ |
|
1460 |
++ basic_block bb; |
|
1461 |
++ |
|
1462 |
++ loop_optimizer_init(LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS); |
|
1463 |
++ gcc_assert(current_loops); |
|
1464 |
++ |
|
1465 |
++ calculate_dominance_info(CDI_DOMINATORS); |
|
1466 |
++ calculate_dominance_info(CDI_POST_DOMINATORS); |
|
1467 |
++ |
|
1468 |
++ // 1. loop through BBs and GIMPLE statements |
|
1469 |
++ FOR_EACH_BB_FN(bb, cfun) { |
|
1470 |
++ gimple_stmt_iterator gsi; |
|
1471 |
++ |
|
1472 |
++ for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) { |
|
1473 |
++ // gimple match: h_1 = get_fptr (); D.2709_3 = h_1 (x_2(D)); |
|
1474 |
++ tree fptr, fntype; |
|
1475 |
++ gimple call_stmt; |
|
1476 |
++ |
|
1477 |
++ // is it a call ... |
|
1478 |
++ call_stmt = gsi_stmt(gsi); |
|
1479 |
++ if (!is_gimple_call(call_stmt)) |
|
1480 |
++ continue; |
|
1481 |
++ |
|
1482 |
++ fptr = gimple_call_fn(call_stmt); |
|
1483 |
++ if (!fptr) |
|
1484 |
++ continue; |
|
1485 |
++ |
|
1486 |
++ switch (TREE_CODE(fptr)) { |
|
1487 |
++ default: |
|
1488 |
++ debug_gimple_stmt(call_stmt); |
|
1489 |
++ debug_tree(fptr); |
|
1490 |
++ debug_tree(TREE_TYPE(fptr)); |
|
1491 |
++ gcc_unreachable(); |
|
1492 |
++ |
|
1493 |
++ case ADDR_EXPR: |
|
1494 |
++ continue; |
|
1495 |
++ |
|
1496 |
++ case SSA_NAME: |
|
1497 |
++ if (SSA_NAME_VAR(fptr) == NULL_TREE) |
|
1498 |
++ break; |
|
1499 |
++ |
|
1500 |
++ switch (TREE_CODE(SSA_NAME_VAR(fptr))) { |
|
1501 |
++ default: |
|
1502 |
++ debug_gimple_stmt(call_stmt); |
|
1503 |
++ debug_tree(fptr); |
|
1504 |
++ gcc_unreachable(); |
|
1505 |
++ |
|
1506 |
++ case VAR_DECL: |
|
1507 |
++ case PARM_DECL: |
|
1508 |
++ break; |
|
1509 |
++ } |
|
1510 |
++ break; |
|
1511 |
++ |
|
1512 |
++ case INTEGER_CST: |
|
1513 |
++ case OBJ_TYPE_REF: |
|
1514 |
++ break; |
|
1515 |
++ } |
|
1516 |
++ |
|
1517 |
++ // ... through a function pointer |
|
1518 |
++ fntype = TREE_TYPE(fptr); |
|
1519 |
++ if (TREE_CODE(fntype) != POINTER_TYPE) |
|
1520 |
++ continue; |
|
1521 |
++ |
|
1522 |
++ fntype = TREE_TYPE(fntype); |
|
1523 |
++ gcc_assert(TREE_CODE(fntype) == FUNCTION_TYPE || TREE_CODE(fntype) == METHOD_TYPE); |
|
1524 |
++ |
|
1525 |
++ bb = rap_instrument_fptr(&gsi); |
|
1526 |
++ gsi = gsi_start_bb(bb); |
|
1527 |
++ } |
|
1528 |
++ } |
|
1529 |
++ |
|
1530 |
++ free_dominance_info(CDI_DOMINATORS); |
|
1531 |
++ free_dominance_info(CDI_POST_DOMINATORS); |
|
1532 |
++ loop_optimizer_finalize(); |
|
1533 |
++ |
|
1534 |
++ return 0; |
|
1535 |
++} |
|
1536 |
++ |
|
1537 |
++#define PASS_NAME rap_fptr |
|
1538 |
++#define TODO_FLAGS_FINISH TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa | TODO_cleanup_cfg | TODO_rebuild_cgraph_edges | TODO_verify_flow |
|
1539 |
++#include "gcc-generate-gimple-pass.h" |
|
1540 |
+diff --git a/scripts/gcc-plugins/rap_plugin/rap_hash.c b/scripts/gcc-plugins/rap_plugin/rap_hash.c |
|
1541 |
+new file mode 100644 |
|
1542 |
+index 0000000..7c59f38 |
|
1543 |
+--- /dev/null |
|
1544 |
+@@ -0,0 +1,382 @@ |
|
1545 |
++/* |
|
1546 |
++ * Copyright 2012-2016 by PaX Team <pageexec@freemail.hu> |
|
1547 |
++ * Licensed under the GPL v2 |
|
1548 |
++ * |
|
1549 |
++ * Homepage: http://pax.grsecurity.net/ |
|
1550 |
++ */ |
|
1551 |
++ |
|
1552 |
++#include "rap.h" |
|
1553 |
++ |
|
1554 |
++static rap_hash_t *rap_imprecise_hashes; |
|
1555 |
++static int rap_cgraph_max_uid; |
|
1556 |
++ |
|
1557 |
++static void rap_hash_function(const_tree fntype, rap_hash_flags_t flags, unsigned char sip_hash[8]); |
|
1558 |
++ |
|
1559 |
++static const unsigned char rap_hash_tree_code[MAX_TREE_CODES] = { |
|
1560 |
++ [0] = 0, |
|
1561 |
++ [1] = 0, |
|
1562 |
++ [2] = 0, |
|
1563 |
++ [3] = 0, |
|
1564 |
++ [4] = 0, |
|
1565 |
++ [OFFSET_TYPE] = 10, |
|
1566 |
++ [ENUMERAL_TYPE] = 20, |
|
1567 |
++ [BOOLEAN_TYPE] = 30, |
|
1568 |
++ [INTEGER_TYPE] = 40, |
|
1569 |
++ [REAL_TYPE] = 50, |
|
1570 |
++ [POINTER_TYPE] = 60, |
|
1571 |
++ [REFERENCE_TYPE] = 70, |
|
1572 |
++#if BUILDING_GCC_VERSION >= 4006 |
|
1573 |
++ [NULLPTR_TYPE] = 80, |
|
1574 |
++#endif |
|
1575 |
++ [FIXED_POINT_TYPE] = 0, |
|
1576 |
++ [COMPLEX_TYPE] = 100, |
|
1577 |
++ [VECTOR_TYPE] = 110, |
|
1578 |
++ [ARRAY_TYPE] = 120, |
|
1579 |
++ [RECORD_TYPE] = 130, |
|
1580 |
++ [UNION_TYPE] = 140, |
|
1581 |
++ [QUAL_UNION_TYPE] = 0, |
|
1582 |
++ [VOID_TYPE] = 160, |
|
1583 |
++#if BUILDING_GCC_VERSION >= 5000 |
|
1584 |
++ [POINTER_BOUNDS_TYPE] = 170, |
|
1585 |
++#endif |
|
1586 |
++ [FUNCTION_TYPE] = 180, |
|
1587 |
++ [METHOD_TYPE] = 0, |
|
1588 |
++ [LANG_TYPE] = 0, |
|
1589 |
++}; |
|
1590 |
++ |
|
1591 |
++static void rap_fold_hash(unsigned char *out, const unsigned char *in, unsigned long long inlen) |
|
1592 |
++{ |
|
1593 |
++ static const unsigned char rap_sip_key[16] = { |
|
1594 |
++ 'P', 'a', 'X', ' ', 'T', 'e', 'a', 'm', |
|
1595 |
++ 'R', 'A', 'P', ' ', 'H', 'A', 'S', 'H', |
|
1596 |
++ }; |
|
1597 |
++ |
|
1598 |
++ siphash24fold(out, in, inlen, rap_sip_key); |
|
1599 |
++} |
|
1600 |
++ |
|
1601 |
++// compute the final hash value in the range [1,INT_MAX] |
|
1602 |
++// the % and +1 trick leaves the value 0 available for marking non-indirectly callable functions |
|
1603 |
++// and INT_MIN (0x80000000) for longjmp targets (sign extended) |
|
1604 |
++// return places will use the (sign extended) range [INT_MIN+1,-1] ([0x8000001,0xffffffff]) |
|
1605 |
++static rap_hash_t rap_extract_hash(const unsigned char sip_hash[8]) |
|
1606 |
++{ |
|
1607 |
++ rap_hash_t hash; |
|
1608 |
++ unsigned long long dividend, divisor; |
|
1609 |
++ |
|
1610 |
++ memcpy(÷nd, sip_hash, sizeof dividend); |
|
1611 |
++// divisor = 1ULL << (sizeof hash * 8 - 1); |
|
1612 |
++// divisor |= divisor - 1; |
|
1613 |
++ divisor = 0x7fffffffUL; |
|
1614 |
++ hash.hash = dividend % divisor + 1; |
|
1615 |
++ return hash; |
|
1616 |
++} |
|
1617 |
++ |
|
1618 |
++static void rap_hash_type_name(const_tree type, unsigned char sip_hash[8]) |
|
1619 |
++{ |
|
1620 |
++ const_tree name = type_name(TYPE_MAIN_VARIANT(type)); |
|
1621 |
++ |
|
1622 |
++ // handle typedefs of anonymous structs/unions |
|
1623 |
++ if (name == NULL_TREE) |
|
1624 |
++ name = type_name(type); |
|
1625 |
++ |
|
1626 |
++ if (name == NULL_TREE) |
|
1627 |
++ return; |
|
1628 |
++ |
|
1629 |
++ gcc_assert(TREE_CODE(name) == IDENTIFIER_NODE); |
|
1630 |
++ rap_fold_hash(sip_hash, (const unsigned char *)IDENTIFIER_POINTER(name), IDENTIFIER_LENGTH(name)); |
|
1631 |
++} |
|
1632 |
++ |
|
1633 |
++static void rap_hash_type_precision(const_tree type, unsigned char sip_hash[8]) |
|
1634 |
++{ |
|
1635 |
++ unsigned HOST_WIDE_INT size; |
|
1636 |
++ |
|
1637 |
++ gcc_assert(TYPE_PRECISION(type)); |
|
1638 |
++ |
|
1639 |
++ size = TYPE_PRECISION(type); |
|
1640 |
++ rap_fold_hash(sip_hash, (const unsigned char *)&size, sizeof size); |
|
1641 |
++} |
|
1642 |
++ |
|
1643 |
++const_tree type_name(const_tree type) |
|
1644 |
++{ |
|
1645 |
++ const_tree name; |
|
1646 |
++ |
|
1647 |
++ name = TYPE_NAME(type); |
|
1648 |
++ if (!name) |
|
1649 |
++ return NULL_TREE; |
|
1650 |
++ |
|
1651 |
++ switch (TREE_CODE(name)) { |
|
1652 |
++ case IDENTIFIER_NODE: |
|
1653 |
++ return name; |
|
1654 |
++ |
|
1655 |
++ case TYPE_DECL: |
|
1656 |
++ gcc_assert(DECL_NAME(name)); |
|
1657 |
++ return DECL_NAME(name); |
|
1658 |
++ |
|
1659 |
++ default: |
|
1660 |
++ gcc_unreachable(); |
|
1661 |
++ } |
|
1662 |
++} |
|
1663 |
++ |
|
1664 |
++__attribute__((weak)) tree c_global_trees[CTI_MAX]; |
|
1665 |
++ |
|
1666 |
++// the core computation of the rap hash |
|
1667 |
++// the first piece is a (hopefully) compiler independent encondig of the type, derived from the gcc tree code |
|
1668 |
++// the second piece is type specific information, such as the size, qualifiers, (recursively) referenced types, etc |
|
1669 |
++static void rap_hash_tree(const_tree type, rap_hash_flags_t flags, unsigned char sip_hash[8]) |
|
1670 |
++{ |
|
1671 |
++ enum tree_code code; |
|
1672 |
++ unsigned int attrs; |
|
1673 |
++ |
|
1674 |
++ code = TREE_CODE(type); |
|
1675 |
++ attrs = rap_hash_tree_code[code]; |
|
1676 |
++ if (!attrs) { |
|
1677 |
++ fprintf(stderr, "unhandled tree_code %s %d\n", get_tree_code_name(code), code); |
|
1678 |
++ debug_tree(type); |
|
1679 |
++ gcc_unreachable(); |
|
1680 |
++ } |
|
1681 |
++ rap_fold_hash(sip_hash, (const unsigned char *)&attrs, sizeof attrs); |
|
1682 |
++ |
|
1683 |
++ enum { |
|
1684 |
++ // attrs layout for |
|
1685 |
++ // - all types: |
|
1686 |
++ RAP_HASH_VOLATILE = 1U << 31, |
|
1687 |
++ RAP_HASH_NOT_VOLATILE = 1U << 30, |
|
1688 |
++ RAP_HASH_CONST = 1U << 29, |
|
1689 |
++ RAP_HASH_NOT_CONST = 1U << 28, |
|
1690 |
++ |
|
1691 |
++ // - pointer types: |
|
1692 |
++ RAP_HASH_RESTRICT = 1U << 27, |
|
1693 |
++ RAP_HASH_NOT_RESTRICT = 1U << 26, |
|
1694 |
++ |
|
1695 |
++ // - C integer types: |
|
1696 |
++ RAP_HASH_UNSIGNED = 1U << 25, |
|
1697 |
++ RAP_HASH_SIGNED = 1U << 24, |
|
1698 |
++ |
|
1699 |
++ RAP_HASH_UNQUALIFIED_CHAR = 1U << 23, |
|
1700 |
++ RAP_HASH_CHAR = 1U << 22, |
|
1701 |
++ RAP_HASH_SHORT = 1U << 21, |
|
1702 |
++ RAP_HASH_INT = 1U << 20, |
|
1703 |
++ RAP_HASH_LONG = 1U << 19, |
|
1704 |
++ RAP_HASH_LONG_LONG = 1U << 18, |
|
1705 |
++ RAP_HASH_WCHAR = 1U << 17, |
|
1706 |
++ RAP_HASH_CHAR16 = 1U << 16, |
|
1707 |
++ RAP_HASH_CHAR32 = 1U << 15, |
|
1708 |
++ |
|
1709 |
++ // - C float types |
|
1710 |
++ RAP_HASH_FLOAT = 1U << 14, |
|
1711 |
++ RAP_HASH_DOUBLE = 1U << 13, |
|
1712 |
++ RAP_HASH_LONG_DOUBLE = 1U << 12, |
|
1713 |
++ RAP_HASH_DFLOAT32 = 1U << 11, |
|
1714 |
++ RAP_HASH_DFLOAT64 = 1U << 10, |
|
1715 |
++ RAP_HASH_DFLOAT128 = 1U << 9, |
|
1716 |
++ }; |
|
1717 |
++ |
|
1718 |
++ attrs = 0; |
|
1719 |
++ if (flags.qual_volatile) |
|
1720 |
++ attrs |= TYPE_VOLATILE(type) ? RAP_HASH_VOLATILE : RAP_HASH_NOT_VOLATILE; |
|
1721 |
++ if (flags.qual_const) |
|
1722 |
++ attrs |= TYPE_READONLY(type) ? RAP_HASH_CONST : RAP_HASH_NOT_CONST; |
|
1723 |
++ |
|
1724 |
++ switch (code) { |
|
1725 |
++ default: |
|
1726 |
++ debug_tree(type); |
|
1727 |
++ gcc_unreachable(); |
|
1728 |
++ break; |
|
1729 |
++ |
|
1730 |
++ case VOID_TYPE: |
|
1731 |
++ break; |
|
1732 |
++ |
|
1733 |
++ case OFFSET_TYPE: |
|
1734 |
++ rap_hash_tree(TREE_TYPE(type), flags, sip_hash); |
|
1735 |
++ rap_hash_tree(TYPE_OFFSET_BASETYPE(type), flags, sip_hash); |
|
1736 |
++ break; |
|
1737 |
++ |
|
1738 |
++ case FUNCTION_TYPE: |
|
1739 |
++ rap_hash_function(type, flags, sip_hash); |
|
1740 |
++ break; |
|
1741 |
++ |
|
1742 |
++ case RECORD_TYPE: |
|
1743 |
++ rap_hash_type_name(type, sip_hash); |
|
1744 |
++ break; |
|
1745 |
++ |
|
1746 |
++ case UNION_TYPE: |
|
1747 |
++ rap_hash_type_name(type, sip_hash); |
|
1748 |
++ break; |
|
1749 |
++ |
|
1750 |
++ case POINTER_TYPE: |
|
1751 |
++ case REFERENCE_TYPE: |
|
1752 |
++ rap_hash_tree(TREE_TYPE(type), flags, sip_hash); |
|
1753 |
++ break; |
|
1754 |
++ |
|
1755 |
++ case VECTOR_TYPE: |
|
1756 |
++ rap_hash_tree(TREE_TYPE(type), flags, sip_hash); |
|
1757 |
++ rap_hash_type_precision(TREE_TYPE(type), sip_hash); |
|
1758 |
++ break; |
|
1759 |
++ |
|
1760 |
++ case ARRAY_TYPE: |
|
1761 |
++ rap_hash_tree(TREE_TYPE(type), flags, sip_hash); |
|
1762 |
++ break; |
|
1763 |
++ |
|
1764 |
++ case REAL_TYPE: { |
|
1765 |
++ const_tree main_variant = TYPE_MAIN_VARIANT(type); |
|
1766 |
++ |
|
1767 |
++ switch (TYPE_PRECISION(main_variant)) { |
|
1768 |
++ default: |
|
1769 |
++ debug_tree(type); |
|
1770 |
++ debug_tree(TYPE_MAIN_VARIANT(type)); |
|
1771 |
++ gcc_unreachable(); |
|
1772 |
++ |
|
1773 |
++ case 32: |
|
1774 |
++// attrs |= RAP_HASH_FLOAT; |
|
1775 |
++ break; |
|
1776 |
++ |
|
1777 |
++ case 64: |
|
1778 |
++// attrs |= RAP_HASH_DOUBLE; |
|
1779 |
++ break; |
|
1780 |
++ |
|
1781 |
++ case 80: |
|
1782 |
++ case 128: |
|
1783 |
++ attrs |= RAP_HASH_LONG_DOUBLE; |
|
1784 |
++ break; |
|
1785 |
++ } |
|
1786 |
++ rap_hash_type_precision(main_variant, sip_hash); |
|
1787 |
++ break; |
|
1788 |
++ } |
|
1789 |
++ |
|
1790 |
++ case ENUMERAL_TYPE: |
|
1791 |
++ rap_hash_type_name(type, sip_hash); |
|
1792 |
++ case BOOLEAN_TYPE: |
|
1793 |
++ rap_hash_type_precision(type, sip_hash); |
|
1794 |
++ break; |
|
1795 |
++ |
|
1796 |
++ case INTEGER_TYPE: { |
|
1797 |
++ attrs |= TYPE_UNSIGNED(type) ? RAP_HASH_UNSIGNED : RAP_HASH_SIGNED; |
|
1798 |
++ rap_hash_type_precision(type, sip_hash); |
|
1799 |
++ break; |
|
1800 |
++ } |
|
1801 |
++ } |
|
1802 |
++ |
|
1803 |
++ rap_fold_hash(sip_hash, (const unsigned char *)&attrs, sizeof attrs); |
|
1804 |
++} |
|
1805 |
++ |
|
1806 |
++static const_tree rap_dequal_argtype(const_tree argtype) |
|
1807 |
++{ |
|
1808 |
++ // since gcc/tree.c:free_lang_data_in_type removes const/volatile from the top level param decl |
|
1809 |
++ // we have to simulate it here as this can be called earlier from the frontend as well |
|
1810 |
++ if (TYPE_READONLY(argtype) || TYPE_VOLATILE(argtype)) { |
|
1811 |
++ int quals; |
|
1812 |
++ |
|
1813 |
++ quals = TYPE_QUALS(argtype) & ~TYPE_QUAL_CONST & ~TYPE_QUAL_VOLATILE; |
|
1814 |
++ argtype = build_qualified_type(CONST_CAST_TREE(argtype), quals); |
|
1815 |
++ } |
|
1816 |
++ |
|
1817 |
++ return argtype; |
|
1818 |
++} |
|
1819 |
++ |
|
1820 |
++// main function to compute the rap hash for function types |
|
1821 |
++// while virtual class methods are always replaced with their ancestor, |
|
1822 |
++// callers can decide whether to fully utilize that information via flags.method_ancestor |
|
1823 |
++static void rap_hash_function(const_tree fntype, rap_hash_flags_t flags, unsigned char sip_hash[8]) |
|
1824 |
++{ |
|
1825 |
++ function_args_iterator args_iter; |
|
1826 |
++ const_tree arg; |
|
1827 |
++ |
|
1828 |
++ switch (TREE_CODE(fntype)) { |
|
1829 |
++ default: |
|
1830 |
++ debug_tree(fntype); |
|
1831 |
++ gcc_unreachable(); |
|
1832 |
++ |
|
1833 |
++ case FUNCTION_TYPE: |
|
1834 |
++ // 1. hash the result |
|
1835 |
++ rap_hash_tree(TREE_TYPE(fntype), flags, sip_hash); |
|
1836 |
++ |
|
1837 |
++ // 2. hash the function parameters |
|
1838 |
++ FOREACH_FUNCTION_ARGS(fntype, arg, args_iter) { |
|
1839 |
++ const_tree argtype = arg; |
|
1840 |
++ |
|
1841 |
++ argtype = rap_dequal_argtype(argtype); |
|
1842 |
++ rap_hash_tree(argtype, flags, sip_hash); |
|
1843 |
++ } |
|
1844 |
++ break; |
|
1845 |
++ } |
|
1846 |
++} |
|
1847 |
++ |
|
1848 |
++rap_hash_t rap_hash_function_type(const_tree fntype, rap_hash_flags_t flags) |
|
1849 |
++{ |
|
1850 |
++ unsigned char sip_hash[8] = { }; |
|
1851 |
++ rap_hash_t hash; |
|
1852 |
++ |
|
1853 |
++ rap_hash_function(fntype, flags, sip_hash); |
|
1854 |
++ hash = rap_extract_hash(sip_hash); |
|
1855 |
++ |
|
1856 |
++ gcc_assert(hash.hash); |
|
1857 |
++ return hash; |
|
1858 |
++} |
|
1859 |
++ |
|
1860 |
++rap_hash_t rap_hash_function_decl(const_tree fndecl, rap_hash_flags_t flags) |
|
1861 |
++{ |
|
1862 |
++ tree fntype; |
|
1863 |
++ |
|
1864 |
++ gcc_assert(TREE_CODE(fndecl) == FUNCTION_DECL); |
|
1865 |
++ fntype = TREE_TYPE(fndecl); |
|
1866 |
++ |
|
1867 |
++ switch (TREE_CODE(fntype)) { |
|
1868 |
++ default: |
|
1869 |
++ debug_tree(fndecl); |
|
1870 |
++ gcc_unreachable(); |
|
1871 |
++ |
|
1872 |
++ case FUNCTION_TYPE: |
|
1873 |
++ return rap_hash_function_type(fntype, flags); |
|
1874 |
++ } |
|
1875 |
++} |
|
1876 |
++ |
|
1877 |
++rap_hash_t rap_hash_function_node_imprecise(cgraph_node_ptr node) |
|
1878 |
++{ |
|
1879 |
++ rap_hash_t hash; |
|
1880 |
++ tree fndecl; |
|
1881 |
++ |
|
1882 |
++ gcc_assert(rap_imprecise_hashes); |
|
1883 |
++ |
|
1884 |
++ hash.hash = 0; |
|
1885 |
++ if (node->uid < rap_cgraph_max_uid) |
|
1886 |
++ hash = rap_imprecise_hashes[node->uid]; |
|
1887 |
++ |
|
1888 |
++ if (hash.hash) |
|
1889 |
++ return hash; |
|
1890 |
++ |
|
1891 |
++ fndecl = NODE_DECL(node); |
|
1892 |
++ if (TREE_CODE(TREE_TYPE(fndecl)) == FUNCTION_TYPE) |
|
1893 |
++ return rap_hash_function_decl(fndecl, imprecise_rap_hash_flags); |
|
1894 |
++ |
|
1895 |
++ debug_cgraph_node(node); |
|
1896 |
++ debug_tree(fndecl); |
|
1897 |
++ error("indirect call to function %qD with a reserved hash value", fndecl); |
|
1898 |
++ return hash; |
|
1899 |
++} |
|
1900 |
++ |
|
1901 |
++void rap_calculate_func_hashes(void *event_data __unused, void *data __unused) |
|
1902 |
++{ |
|
1903 |
++ cgraph_node_ptr node; |
|
1904 |
++ int uid; |
|
1905 |
++ |
|
1906 |
++ gcc_assert(!rap_imprecise_hashes); |
|
1907 |
++ |
|
1908 |
++ rap_imprecise_hashes = (rap_hash_t *)xcalloc(cgraph_max_uid, sizeof(*rap_imprecise_hashes)); |
|
1909 |
++ rap_cgraph_max_uid = cgraph_max_uid; |
|
1910 |
++ |
|
1911 |
++ FOR_EACH_FUNCTION(node) { |
|
1912 |
++ const_tree fndecl; |
|
1913 |
++ |
|
1914 |
++ uid = node->uid; |
|
1915 |
++ gcc_assert(uid < rap_cgraph_max_uid); |
|
1916 |
++ |
|
1917 |
++ if (node->global.inlined_to) |
|
1918 |
++ continue; |
|
1919 |
++ |
|
1920 |
++ fndecl = NODE_DECL(node); |
|
1921 |
++ gcc_assert(fndecl); |
|
1922 |
++ |
|
1923 |
++ rap_imprecise_hashes[uid] = rap_hash_function_decl(fndecl, imprecise_rap_hash_flags); |
|
1924 |
++ gcc_assert(rap_imprecise_hashes[uid].hash); |
|
1925 |
++ } |
|
1926 |
++} |
|
1927 |
+diff --git a/scripts/gcc-plugins/rap_plugin/rap_plugin.c b/scripts/gcc-plugins/rap_plugin/rap_plugin.c |
|
1928 |
+new file mode 100644 |
|
1929 |
+index 0000000..80f2e14 |
|
1930 |
+--- /dev/null |
|
1931 |
+@@ -0,0 +1,513 @@ |
|
1932 |
++/* |
|
1933 |
++ * Copyright 2012-2016 by PaX Team <pageexec@freemail.hu> |
|
1934 |
++ * Licensed under the GPL v2 |
|
1935 |
++ * |
|
1936 |
++ * Homepage: http://pax.grsecurity.net/ |
|
1937 |
++ * |
|
1938 |
++ * Usage: |
|
1939 |
++ * $ # for 4.5/4.6/C based 4.7 |
|
1940 |
++ * $ gcc -I`gcc -print-file-name=plugin`/include -I`gcc -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o rap_plugin.so rap_plugin.c |
|
1941 |
++ * $ # for C++ based 4.7/4.8+ |
|
1942 |
++ * $ g++ -I`g++ -print-file-name=plugin`/include -I`g++ -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o rap_plugin.so rap_plugin.c |
|
1943 |
++ * $ gcc -fplugin=./rap_plugin.so -fplugin-arg-rap_plugin-check=call test.c -O2 |
|
1944 |
++ */ |
|
1945 |
++ |
|
1946 |
++#include "rap.h" |
|
1947 |
++ |
|
1948 |
++__visible int plugin_is_GPL_compatible; |
|
1949 |
++ |
|
1950 |
++static struct plugin_info rap_plugin_info = { |
|
1951 |
++ .version = "201604272100", |
|
1952 |
++ .help = "check=call\tenable the corresponding features\n" |
|
1953 |
++ "hash=abs,abs-finish,const,volatile\n" |
|
1954 |
++ "report=func,fptr,abs\n" |
|
1955 |
++}; |
|
1956 |
++ |
|
1957 |
++rap_hash_flags_t imprecise_rap_hash_flags = { |
|
1958 |
++ .qual_const = 1, |
|
1959 |
++ .qual_volatile = 1, |
|
1960 |
++}; |
|
1961 |
++ |
|
1962 |
++tree rap_hash_type_node; |
|
1963 |
++ |
|
1964 |
++static bool report_func_hash, report_abs_hash; |
|
1965 |
++ |
|
1966 |
++// create the equivalent of |
|
1967 |
++// asm volatile("" : : : "memory"); |
|
1968 |
++// or |
|
1969 |
++// asm("" : "+rm"(var)); |
|
1970 |
++// or |
|
1971 |
++// asm("" : : "rm"(var)); |
|
1972 |
++gimple barrier(tree var, bool full) |
|
1973 |
++{ |
|
1974 |
++ gimple stmt; |
|
1975 |
++ gasm *asm_stmt; |
|
1976 |
++#if BUILDING_GCC_VERSION <= 4007 |
|
1977 |
++ VEC(tree, gc) *inputs = NULL; |
|
1978 |
++ VEC(tree, gc) *outputs = NULL; |
|
1979 |
++ VEC(tree, gc) *clobbers = NULL; |
|
1980 |
++#else |
|
1981 |
++ vec<tree, va_gc> *inputs = NULL; |
|
1982 |
++ vec<tree, va_gc> *outputs = NULL; |
|
1983 |
++ vec<tree, va_gc> *clobbers = NULL; |
|
1984 |
++#endif |
|
1985 |
++ |
|
1986 |
++ if (!var && full) { |
|
1987 |
++ tree clobber; |
|
1988 |
++ |
|
1989 |
++ clobber = build_tree_list(NULL_TREE, build_string(7, "memory")); |
|
1990 |
++#if BUILDING_GCC_VERSION <= 4007 |
|
1991 |
++ VEC_safe_push(tree, gc, clobbers, clobber); |
|
1992 |
++#else |
|
1993 |
++ vec_safe_push(clobbers, clobber); |
|
1994 |
++#endif |
|
1995 |
++ } else if (full) { |
|
1996 |
++ tree input, output; |
|
1997 |
++ |
|
1998 |
++ input = build_tree_list(NULL_TREE, build_string(2, "0")); |
|
1999 |
++ input = chainon(NULL_TREE, build_tree_list(input, var)); |
|
2000 |
++#if BUILDING_GCC_VERSION <= 4007 |
|
2001 |
++ VEC_safe_push(tree, gc, inputs, input); |
|
2002 |
++#else |
|
2003 |
++ vec_safe_push(inputs, input); |
|
2004 |
++#endif |
|
2005 |
++ |
|
2006 |
++ output = build_tree_list(NULL_TREE, build_string(4, "=rm")); |
|
2007 |
++ gcc_assert(SSA_NAME_VAR(var)); |
|
2008 |
++ var = make_ssa_name(SSA_NAME_VAR(var), NULL); |
|
2009 |
++ output = chainon(NULL_TREE, build_tree_list(output, var)); |
|
2010 |
++#if BUILDING_GCC_VERSION <= 4007 |
|
2011 |
++ VEC_safe_push(tree, gc, outputs, output); |
|
2012 |
++#else |
|
2013 |
++ vec_safe_push(outputs, output); |
|
2014 |
++#endif |
|
2015 |
++ } else { |
|
2016 |
++ tree input; |
|
2017 |
++ |
|
2018 |
++ input = build_tree_list(NULL_TREE, build_string(3, "rm")); |
|
2019 |
++ input = chainon(NULL_TREE, build_tree_list(input, var)); |
|
2020 |
++#if BUILDING_GCC_VERSION <= 4007 |
|
2021 |
++ VEC_safe_push(tree, gc, inputs, input); |
|
2022 |
++#else |
|
2023 |
++ vec_safe_push(inputs, input); |
|
2024 |
++#endif |
|
2025 |
++ } |
|
2026 |
++ |
|
2027 |
++ stmt = gimple_build_asm_vec("", inputs, outputs, clobbers, NULL); |
|
2028 |
++ asm_stmt = as_a_gasm(stmt); |
|
2029 |
++ if (!var && full) |
|
2030 |
++ gimple_asm_set_volatile(asm_stmt, true); |
|
2031 |
++ else if (full) |
|
2032 |
++ SSA_NAME_DEF_STMT(var) = stmt; |
|
2033 |
++ return stmt; |
|
2034 |
++} |
|
2035 |
++ |
|
2036 |
++static const struct gcc_debug_hooks *old_debug_hooks; |
|
2037 |
++static struct gcc_debug_hooks rap_debug_hooks; |
|
2038 |
++ |
|
2039 |
++static bool __rap_cgraph_indirectly_callable(cgraph_node_ptr node, void *data) |
|
2040 |
++{ |
|
2041 |
++#if BUILDING_GCC_VERSION >= 4008 |
|
2042 |
++ if (NODE_SYMBOL(node)->externally_visible) |
|
2043 |
++#else |
|
2044 |
++ if (node->local.externally_visible) |
|
2045 |
++#endif |
|
2046 |
++ return true; |
|
2047 |
++ |
|
2048 |
++ if (NODE_SYMBOL(node)->address_taken) |
|
2049 |
++ return true; |
|
2050 |
++ |
|
2051 |
++ return false; |
|
2052 |
++} |
|
2053 |
++ |
|
2054 |
++static bool rap_cgraph_indirectly_callable(cgraph_node_ptr node) |
|
2055 |
++{ |
|
2056 |
++ return cgraph_for_node_and_aliases(node, __rap_cgraph_indirectly_callable, NULL, true); |
|
2057 |
++} |
|
2058 |
++ |
|
2059 |
++static void rap_hash_align(tree decl) |
|
2060 |
++{ |
|
2061 |
++ const unsigned HOST_WIDE_INT rap_hash_offset = TARGET_64BIT ? 2 * sizeof(rap_hash_t) : sizeof(rap_hash_t); |
|
2062 |
++ unsigned HOST_WIDE_INT skip; |
|
2063 |
++ |
|
2064 |
++ skip = 1ULL << align_functions_log; |
|
2065 |
++ if (DECL_USER_ALIGN(decl)) |
|
2066 |
++ return; |
|
2067 |
++ |
|
2068 |
++ if (!optimize_function_for_speed_p(cfun)) |
|
2069 |
++ return; |
|
2070 |
++ |
|
2071 |
++ if (skip <= rap_hash_offset) |
|
2072 |
++ return; |
|
2073 |
++ |
|
2074 |
++#ifdef TARGET_386 |
|
2075 |
++ { |
|
2076 |
++ char padding[skip - rap_hash_offset]; |
|
2077 |
++ |
|
2078 |
++ // this byte sequence helps disassemblers not trip up on the following rap hash |
|
2079 |
++ memset(padding, 0xcc, sizeof padding - 1); |
|
2080 |
++ padding[sizeof padding - 1] = 0xb8; |
|
2081 |
++ ASM_OUTPUT_ASCII(asm_out_file, padding, sizeof padding); |
|
2082 |
++ } |
|
2083 |
++#else |
|
2084 |
++ ASM_OUTPUT_SKIP(asm_out_file, skip - rap_hash_offset); |
|
2085 |
++#endif |
|
2086 |
++} |
|
2087 |
++ |
|
2088 |
++static void rap_begin_function(tree decl) |
|
2089 |
++{ |
|
2090 |
++ cgraph_node_ptr node; |
|
2091 |
++ rap_hash_t imprecise_rap_hash; |
|
2092 |
++ |
|
2093 |
++ gcc_assert(debug_hooks == &rap_debug_hooks); |
|
2094 |
++ |
|
2095 |
++ // chain to previous callback |
|
2096 |
++ if (old_debug_hooks && old_debug_hooks->begin_function) |
|
2097 |
++ old_debug_hooks->begin_function(decl); |
|
2098 |
++ |
|
2099 |
++ // align the rap hash if necessary |
|
2100 |
++ rap_hash_align(decl); |
|
2101 |
++ |
|
2102 |
++ // don't compute hash for functions called only directly |
|
2103 |
++ node = cgraph_get_node(decl); |
|
2104 |
++ gcc_assert(node); |
|
2105 |
++ if (!rap_cgraph_indirectly_callable(node)) { |
|
2106 |
++ imprecise_rap_hash.hash = 0; |
|
2107 |
++ } else { |
|
2108 |
++ imprecise_rap_hash = rap_hash_function_node_imprecise(node); |
|
2109 |
++ } |
|
2110 |
++ |
|
2111 |
++ if (report_func_hash) |
|
2112 |
++ inform(DECL_SOURCE_LOCATION(decl), "func rap_hash: %x %s", imprecise_rap_hash.hash, IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(decl))); |
|
2113 |
++ |
|
2114 |
++ if (TARGET_64BIT) |
|
2115 |
++ fprintf(asm_out_file, "\t.quad %#lx\t%s __rap_hash_%s\n", (long)imprecise_rap_hash.hash, ASM_COMMENT_START, IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(decl))); |
|
2116 |
++ else |
|
2117 |
++ fprintf(asm_out_file, "\t.long %#x\t%s __rap_hash_%s\n", imprecise_rap_hash.hash, ASM_COMMENT_START, IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(decl))); |
|
2118 |
++} |
|
2119 |
++ |
|
2120 |
++static void rap_start_unit_common(void *gcc_data __unused, void *user_data __unused) |
|
2121 |
++{ |
|
2122 |
++ rap_hash_type_node = long_integer_type_node; |
|
2123 |
++ |
|
2124 |
++ if (debug_hooks) |
|
2125 |
++ rap_debug_hooks = *debug_hooks; |
|
2126 |
++ rap_debug_hooks.begin_function = rap_begin_function; |
|
2127 |
++ old_debug_hooks = debug_hooks; |
|
2128 |
++ debug_hooks = &rap_debug_hooks; |
|
2129 |
++} |
|
2130 |
++ |
|
2131 |
++/* |
|
2132 |
++ emit an absolute symbol for each function that may be referenced through the plt |
|
2133 |
++ - all externs |
|
2134 |
++ - non-static functions |
|
2135 |
++ - use visibility instead? |
|
2136 |
++ |
|
2137 |
++ .globl __rap_hash_func |
|
2138 |
++ .offset 0xhash_for_func |
|
2139 |
++ .type __rap_hash_func, @object |
|
2140 |
++ __rap_hash_func: |
|
2141 |
++ .previous |
|
2142 |
++*/ |
|
2143 |
++static void rap_finish_unit(void *gcc_data __unused, void *user_data __unused) |
|
2144 |
++{ |
|
2145 |
++ cgraph_node_ptr node; |
|
2146 |
++ rap_hash_t hash; |
|
2147 |
++ |
|
2148 |
++ gcc_assert(debug_hooks == &rap_debug_hooks); |
|
2149 |
++ |
|
2150 |
++ hash.hash = 0; |
|
2151 |
++ FOR_EACH_FUNCTION(node) { |
|
2152 |
++ tree fndecl; |
|
2153 |
++ const char *asmname; |
|
2154 |
++ char *name = NULL; |
|
2155 |
++ |
|
2156 |
++ if (cgraph_function_body_availability(node) >= AVAIL_INTERPOSABLE) { |
|
2157 |
++ if (node->thunk.thunk_p || node->alias) |
|
2158 |
++ continue; |
|
2159 |
++ if (!rap_cgraph_indirectly_callable(node)) |
|
2160 |
++ continue; |
|
2161 |
++ } |
|
2162 |
++ |
|
2163 |
++#if BUILDING_GCC_VERSION >= 4007 |
|
2164 |
++ gcc_assert(cgraph_function_or_thunk_node(node, NULL) == node); |
|
2165 |
++#endif |
|
2166 |
++ |
|
2167 |
++ fndecl = NODE_DECL(node); |
|
2168 |
++ gcc_assert(fndecl); |
|
2169 |
++ if (DECL_IS_BUILTIN(fndecl) && DECL_BUILT_IN_CLASS(fndecl) == BUILT_IN_NORMAL) |
|
2170 |
++ continue; |
|
2171 |
++ |
|
2172 |
++ if (!TREE_PUBLIC(fndecl)) |
|
2173 |
++ continue; |
|
2174 |
++ |
|
2175 |
++ if (DECL_ARTIFICIAL(fndecl)) |
|
2176 |
++ continue; |
|
2177 |
++ |
|
2178 |
++ if (DECL_ABSTRACT_ORIGIN(fndecl) && DECL_ABSTRACT_ORIGIN(fndecl) != fndecl) |
|
2179 |
++ continue; |
|
2180 |
++ |
|
2181 |
++ gcc_assert(DECL_ASSEMBLER_NAME(fndecl)); |
|
2182 |
++ asmname = IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(fndecl)); |
|
2183 |
++ if (strchr(asmname, '.')) |
|
2184 |
++ continue; |
|
2185 |
++ |
|
2186 |
++ if (asmname[0] == '*') |
|
2187 |
++ asmname++; |
|
2188 |
++ |
|
2189 |
++ gcc_assert(asmname[0]); |
|
2190 |
++ gcc_assert(asprintf(&name, "__rap_hash_%s", asmname) != -1); |
|
2191 |
++ |
|
2192 |
++ hash = rap_hash_function_node_imprecise(node); |
|
2193 |
++ if (report_abs_hash) |
|
2194 |
++ inform(DECL_SOURCE_LOCATION(fndecl), "abs rap_hash: %x %s", hash.hash, IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(fndecl))); |
|
2195 |
++ |
|
2196 |
++ fprintf(asm_out_file, GLOBAL_ASM_OP " %s\n", name); |
|
2197 |
++ if (TARGET_64BIT) |
|
2198 |
++ fprintf(asm_out_file, "\t.offset %#lx\n", (long)hash.hash); |
|
2199 |
++ else |
|
2200 |
++ fprintf(asm_out_file, "\t.offset %#x\n", hash.hash); |
|
2201 |
++ ASM_OUTPUT_TYPE_DIRECTIVE(asm_out_file, name, "object"); |
|
2202 |
++ ASM_OUTPUT_LABEL(asm_out_file, name); |
|
2203 |
++ free(name); |
|
2204 |
++ } |
|
2205 |
++ |
|
2206 |
++ if (hash.hash) |
|
2207 |
++ fprintf(asm_out_file, "\t.previous\n"); |
|
2208 |
++} |
|
2209 |
++ |
|
2210 |
++#if BUILDING_GCC_VERSION >= 4007 |
|
2211 |
++// emit the rap hash as an absolute symbol for all functions seen in the frontend |
|
2212 |
++// this is necessary as later unreferenced nodes will be removed yet we'd like to emit as many hashes as possible |
|
2213 |
++static void rap_finish_decl(void *event_data, void *data __unused) |
|
2214 |
++{ |
|
2215 |
++ tree fndecl = (tree)event_data; |
|
2216 |
++ rap_hash_t hash; |
|
2217 |
++ const char *asmname; |
|
2218 |
++ char *name = NULL; |
|
2219 |
++ |
|
2220 |
++ if (fndecl == error_mark_node) |
|
2221 |
++ return; |
|
2222 |
++ |
|
2223 |
++ if (TREE_CODE(fndecl) != FUNCTION_DECL) |
|
2224 |
++ return; |
|
2225 |
++ |
|
2226 |
++ if (!TREE_PUBLIC(fndecl)) |
|
2227 |
++ return; |
|
2228 |
++ |
|
2229 |
++ if (DECL_ARTIFICIAL(fndecl)) |
|
2230 |
++ return; |
|
2231 |
++ |
|
2232 |
++ if (DECL_ABSTRACT_ORIGIN(fndecl) && DECL_ABSTRACT_ORIGIN(fndecl) != fndecl) |
|
2233 |
++ return; |
|
2234 |
++ |
|
2235 |
++ asmname = DECL_NAME_POINTER(fndecl); |
|
2236 |
++ gcc_assert(asmname[0]); |
|
2237 |
++ |
|
2238 |
++ if (strchr(asmname, '.')) |
|
2239 |
++ return; |
|
2240 |
++ |
|
2241 |
++ gcc_assert(asprintf(&name, "__rap_hash_%s", asmname) != -1); |
|
2242 |
++ |
|
2243 |
++ hash = rap_hash_function_decl(fndecl, imprecise_rap_hash_flags); |
|
2244 |
++ |
|
2245 |
++ if (report_abs_hash) |
|
2246 |
++ inform(DECL_SOURCE_LOCATION(fndecl), "abs rap_hash: %x %s", hash.hash, asmname); |
|
2247 |
++ |
|
2248 |
++ fprintf(asm_out_file, GLOBAL_ASM_OP " %s\n", name); |
|
2249 |
++ if (TARGET_64BIT) |
|
2250 |
++ fprintf(asm_out_file, "\t.offset %#lx\n", (long)hash.hash); |
|
2251 |
++ else |
|
2252 |
++ fprintf(asm_out_file, "\t.offset %#x\n", hash.hash); |
|
2253 |
++ ASM_OUTPUT_TYPE_DIRECTIVE(asm_out_file, name, "object"); |
|
2254 |
++ ASM_OUTPUT_LABEL(asm_out_file, name); |
|
2255 |
++ free(name); |
|
2256 |
++ |
|
2257 |
++ fprintf(asm_out_file, "\t.previous\n"); |
|
2258 |
++} |
|
2259 |
++#endif |
|
2260 |
++ |
|
2261 |
++static bool rap_unignore_gate(void) |
|
2262 |
++{ |
|
2263 |
++ if (!DECL_IGNORED_P(current_function_decl)) |
|
2264 |
++ return false; |
|
2265 |
++ |
|
2266 |
++ inform(DECL_SOURCE_LOCATION(current_function_decl), "DECL_IGNORED fixed"); |
|
2267 |
++ |
|
2268 |
++ DECL_IGNORED_P(current_function_decl) = 0; |
|
2269 |
++ return false; |
|
2270 |
++} |
|
2271 |
++ |
|
2272 |
++#define PASS_NAME rap_unignore |
|
2273 |
++#define NO_EXECUTE |
|
2274 |
++#define TODO_FLAGS_FINISH TODO_dump_func |
|
2275 |
++#include "gcc-generate-rtl-pass.h" |
|
2276 |
++ |
|
2277 |
++static bool rap_version_check(struct plugin_gcc_version *gcc_version, struct plugin_gcc_version *plugin_version) |
|
2278 |
++{ |
|
2279 |
++ if (!gcc_version || !plugin_version) |
|
2280 |
++ return false; |
|
2281 |
++ |
|
2282 |
++#if BUILDING_GCC_VERSION >= 5000 |
|
2283 |
++ if (strncmp(gcc_version->basever, plugin_version->basever, 4)) |
|
2284 |
++#else |
|
2285 |
++ if (strcmp(gcc_version->basever, plugin_version->basever)) |
|
2286 |
++#endif |
|
2287 |
++ return false; |
|
2288 |
++ if (strcmp(gcc_version->datestamp, plugin_version->datestamp)) |
|
2289 |
++ return false; |
|
2290 |
++ if (strcmp(gcc_version->devphase, plugin_version->devphase)) |
|
2291 |
++ return false; |
|
2292 |
++ if (strcmp(gcc_version->revision, plugin_version->revision)) |
|
2293 |
++ return false; |
|
2294 |
++// if (strcmp(gcc_version->configuration_arguments, plugin_version->configuration_arguments)) |
|
2295 |
++// return false; |
|
2296 |
++ return true; |
|
2297 |
++} |
|
2298 |
++ |
|
2299 |
++EXPORTED_CONST struct ggc_root_tab gt_ggc_r_gt_rap[] = { |
|
2300 |
++ { |
|
2301 |
++ .base = &rap_hash_type_node, |
|
2302 |
++ .nelt = 1, |
|
2303 |
++ .stride = sizeof(rap_hash_type_node), |
|
2304 |
++ .cb = >_ggc_mx_tree_node, |
|
2305 |
++ .pchw = >_pch_nx_tree_node |
|
2306 |
++ }, |
|
2307 |
++ LAST_GGC_ROOT_TAB |
|
2308 |
++}; |
|
2309 |
++ |
|
2310 |
++__visible int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version) |
|
2311 |
++{ |
|
2312 |
++ int i; |
|
2313 |
++ const char * const plugin_name = plugin_info->base_name; |
|
2314 |
++ const int argc = plugin_info->argc; |
|
2315 |
++ const struct plugin_argument * const argv = plugin_info->argv; |
|
2316 |
++ bool enable_call = false; |
|
2317 |
++ bool enable_abs = false, enable_abs_finish = false; |
|
2318 |
++ |
|
2319 |
++ struct register_pass_info rap_fptr_pass_info; |
|
2320 |
++ struct register_pass_info rap_unignore_pass_info; |
|
2321 |
++ |
|
2322 |
++ rap_fptr_pass_info.pass = make_rap_fptr_pass(); |
|
2323 |
++ rap_fptr_pass_info.reference_pass_name = "nrv"; |
|
2324 |
++ rap_fptr_pass_info.ref_pass_instance_number = 1; |
|
2325 |
++ rap_fptr_pass_info.pos_op = PASS_POS_INSERT_AFTER; |
|
2326 |
++ |
|
2327 |
++ rap_unignore_pass_info.pass = make_rap_unignore_pass(); |
|
2328 |
++ rap_unignore_pass_info.reference_pass_name = "final"; |
|
2329 |
++ rap_unignore_pass_info.ref_pass_instance_number = 1; |
|
2330 |
++ rap_unignore_pass_info.pos_op = PASS_POS_INSERT_BEFORE; |
|
2331 |
++ |
|
2332 |
++ if (!rap_version_check(version, &gcc_version)) { |
|
2333 |
++ error(G_("incompatible gcc/plugin versions")); |
|
2334 |
++ return 1; |
|
2335 |
++ } |
|
2336 |
++ |
|
2337 |
++#if BUILDING_GCC_VERSION >= 5000 |
|
2338 |
++ if (flag_ipa_icf_functions) { |
|
2339 |
++// warning_at(UNKNOWN_LOCATION, 0, G_("-fipa-icf is incompatible with %s, disabling..."), plugin_name); |
|
2340 |
++// inform(UNKNOWN_LOCATION, G_("-fipa-icf is incompatible with %s, disabling..."), plugin_name); |
|
2341 |
++ flag_ipa_icf_functions = 0; |
|
2342 |
++ } |
|
2343 |
++#endif |
|
2344 |
++ |
|
2345 |
++ for (i = 0; i < argc; ++i) { |
|
2346 |
++ if (!strcmp(argv[i].key, "disable")) |
|
2347 |
++ continue; |
|
2348 |
++ |
|
2349 |
++ if (!strcmp(argv[i].key, "check")) { |
|
2350 |
++ char *values, *value, *saveptr; |
|
2351 |
++ |
|
2352 |
++ if (!argv[i].value) { |
|
2353 |
++ error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key); |
|
2354 |
++ continue; |
|
2355 |
++ } |
|
2356 |
++ |
|
2357 |
++ values = xstrdup(argv[i].value); |
|
2358 |
++ value = strtok_r(values, ",", &saveptr); |
|
2359 |
++ while (value) { |
|
2360 |
++ if (!strcmp(value, "call")) |
|
2361 |
++ enable_call = true; |
|
2362 |
++ else |
|
2363 |
++ error(G_("unknown value supplied for option '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, value); |
|
2364 |
++ value = strtok_r(NULL, ",", &saveptr); |
|
2365 |
++ } |
|
2366 |
++ free(values); |
|
2367 |
++ continue; |
|
2368 |
++ } |
|
2369 |
++ |
|
2370 |
++ if (!strcmp(argv[i].key, "hash")) { |
|
2371 |
++ char *values, *value, *saveptr; |
|
2372 |
++ |
|
2373 |
++ if (!argv[i].value) { |
|
2374 |
++ error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key); |
|
2375 |
++ continue; |
|
2376 |
++ } |
|
2377 |
++ |
|
2378 |
++ values = xstrdup(argv[i].value); |
|
2379 |
++ value = strtok_r(values, ",", &saveptr); |
|
2380 |
++ while (value) { |
|
2381 |
++ if (!strcmp(value, "abs")) |
|
2382 |
++ enable_abs = enable_abs_finish = true; |
|
2383 |
++ else if (!strcmp(value, "abs-finish")) |
|
2384 |
++ enable_abs_finish = true; |
|
2385 |
++// else if (!strcmp(value, "const")) |
|
2386 |
++// imprecise_rap_hash_flags.qual_const = 1; |
|
2387 |
++// else if (!strcmp(value, "volatile")) |
|
2388 |
++// imprecise_rap_hash_flags.qual_volatile = 1; |
|
2389 |
++ else |
|
2390 |
++ error(G_("unknown value supplied for option '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, value); |
|
2391 |
++ value = strtok_r(NULL, ",", &saveptr); |
|
2392 |
++ } |
|
2393 |
++ free(values); |
|
2394 |
++ continue; |
|
2395 |
++ } |
|
2396 |
++ |
|
2397 |
++ if (!strcmp(argv[i].key, "report")) { |
|
2398 |
++ char *values, *value, *saveptr; |
|
2399 |
++ |
|
2400 |
++ if (!argv[i].value) { |
|
2401 |
++ error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key); |
|
2402 |
++ continue; |
|
2403 |
++ } |
|
2404 |
++ |
|
2405 |
++ values = xstrdup(argv[i].value); |
|
2406 |
++ value = strtok_r(values, ",", &saveptr); |
|
2407 |
++ while (value) { |
|
2408 |
++ if (!strcmp(value, "func")) |
|
2409 |
++ report_func_hash = true; |
|
2410 |
++ else if (!strcmp(value, "fptr")) |
|
2411 |
++ report_fptr_hash = true; |
|
2412 |
++ else if (!strcmp(value, "abs")) |
|
2413 |
++ report_abs_hash = true; |
|
2414 |
++ else |
|
2415 |
++ error(G_("unknown value supplied for option '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, value); |
|
2416 |
++ value = strtok_r(NULL, ",", &saveptr); |
|
2417 |
++ } |
|
2418 |
++ free(values); |
|
2419 |
++ continue; |
|
2420 |
++ } |
|
2421 |
++ |
|
2422 |
++ error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key); |
|
2423 |
++ } |
|
2424 |
++ |
|
2425 |
++ register_callback(plugin_name, PLUGIN_INFO, NULL, &rap_plugin_info); |
|
2426 |
++ |
|
2427 |
++ if (enable_call) { |
|
2428 |
++#if BUILDING_GCC_VERSION >= 4007 |
|
2429 |
++ if (enable_abs) |
|
2430 |
++ register_callback(plugin_name, PLUGIN_FINISH_DECL, rap_finish_decl, NULL); |
|
2431 |
++#else |
|
2432 |
++#warning TODO |
|
2433 |
++#endif |
|
2434 |
++ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &rap_unignore_pass_info); |
|
2435 |
++ register_callback(plugin_name, PLUGIN_START_UNIT, rap_start_unit_common, NULL); |
|
2436 |
++ register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)>_ggc_r_gt_rap); |
|
2437 |
++ if (enable_abs_finish) |
|
2438 |
++ register_callback(plugin_name, PLUGIN_FINISH_UNIT, rap_finish_unit, NULL); |
|
2439 |
++ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &rap_fptr_pass_info); |
|
2440 |
++ register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, rap_calculate_func_hashes, NULL); |
|
2441 |
++ } |
|
2442 |
++ |
|
2443 |
++ return 0; |
|
2444 |
++} |
|
2445 |
+diff --git a/scripts/gcc-plugins/rap_plugin/sip.c b/scripts/gcc-plugins/rap_plugin/sip.c |
|
2446 |
+new file mode 100644 |
|
2447 |
+index 0000000..65bc1cd |
|
2448 |
+--- /dev/null |
|
2449 |
+@@ -0,0 +1,96 @@ |
|
2450 |
++// SipHash-2-4 adapted by the PaX Team from the public domain version written by |
|
2451 |
++// Jean-Philippe Aumasson <jeanphilippe.aumasson@gmail.com> |
|
2452 |
++// Daniel J. Bernstein <djb@cr.yp.to> |
|
2453 |
++ |
|
2454 |
++#include <stdint.h> |
|
2455 |
++ |
|
2456 |
++#define ROTL(x, b) (u64)(((x) << (b)) | ((x) >> (64 - (b)))) |
|
2457 |
++ |
|
2458 |
++#define U32TO8_LE(p, v) \ |
|
2459 |
++ (p)[0] = (u8)((v) ); (p)[1] = (u8)((v) >> 8); \ |
|
2460 |
++ (p)[2] = (u8)((v) >> 16); (p)[3] = (u8)((v) >> 24); |
|
2461 |
++ |
|
2462 |
++#define U64TO8_LE(p, v) \ |
|
2463 |
++ U32TO8_LE((p), (u32)((v) )); \ |
|
2464 |
++ U32TO8_LE((p) + 4, (u32)((v) >> 32)); |
|
2465 |
++ |
|
2466 |
++#define U8TO64_LE(p) ( \ |
|
2467 |
++ ((u64)((p)[0]) ) | \ |
|
2468 |
++ ((u64)((p)[1]) << 8) | \ |
|
2469 |
++ ((u64)((p)[2]) << 16) | \ |
|
2470 |
++ ((u64)((p)[3]) << 24) | \ |
|
2471 |
++ ((u64)((p)[4]) << 32) | \ |
|
2472 |
++ ((u64)((p)[5]) << 40) | \ |
|
2473 |
++ ((u64)((p)[6]) << 48) | \ |
|
2474 |
++ ((u64)((p)[7]) << 56)) |
|
2475 |
++ |
|
2476 |
++#define SIPROUND \ |
|
2477 |
++do { \ |
|
2478 |
++ v0 += v1; v1 = ROTL(v1, 13); v1 ^= v0; v0 = ROTL(v0, 32); \ |
|
2479 |
++ v2 += v3; v3 = ROTL(v3, 16); v3 ^= v2; \ |
|
2480 |
++ v0 += v3; v3 = ROTL(v3, 21); v3 ^= v0; \ |
|
2481 |
++ v2 += v1; v1 = ROTL(v1, 17); v1 ^= v2; v2 = ROTL(v2, 32); \ |
|
2482 |
++} while(0) |
|
2483 |
++ |
|
2484 |
++typedef uint64_t u64; |
|
2485 |
++typedef uint32_t u32; |
|
2486 |
++typedef uint8_t u8; |
|
2487 |
++ |
|
2488 |
++/* SipHash-2-4 with previous output folding, a poor man's streaming interface */ |
|
2489 |
++void siphash24fold(unsigned char *out, const unsigned char *in, unsigned long long inlen, const unsigned char *k); |
|
2490 |
++ |
|
2491 |
++void siphash24fold(unsigned char *out, const unsigned char *in, unsigned long long inlen, const unsigned char *k) |
|
2492 |
++{ |
|
2493 |
++ u64 k0 = U8TO64_LE(k); |
|
2494 |
++ u64 k1 = U8TO64_LE(k + 8); |
|
2495 |
++ /* "somepseudorandomlygeneratedbytes" */ |
|
2496 |
++ u64 v0 = 0x736f6d6570736575ULL ^ k0; |
|
2497 |
++ u64 v1 = 0x646f72616e646f6dULL ^ k1; |
|
2498 |
++ u64 v2 = 0x6c7967656e657261ULL ^ k0; |
|
2499 |
++ u64 v3 = 0x7465646279746573ULL ^ k1; |
|
2500 |
++ u64 b, m; |
|
2501 |
++ const u8 * const end = in + inlen - (inlen % sizeof(u64)); |
|
2502 |
++ const int left = inlen & 7; |
|
2503 |
++ b = ((u64)inlen) << 56; |
|
2504 |
++ |
|
2505 |
++ // fold in the previous output |
|
2506 |
++ m = U8TO64_LE(out); |
|
2507 |
++ v3 ^= m; |
|
2508 |
++ SIPROUND; |
|
2509 |
++ SIPROUND; |
|
2510 |
++ v0 ^= m; |
|
2511 |
++ |
|
2512 |
++ // consume full input blocks |
|
2513 |
++ for (; in != end; in += 8) { |
|
2514 |
++ m = U8TO64_LE(in); |
|
2515 |
++ v3 ^= m; |
|
2516 |
++ SIPROUND; |
|
2517 |
++ SIPROUND; |
|
2518 |
++ v0 ^= m; |
|
2519 |
++ } |
|
2520 |
++ |
|
2521 |
++ // consume the last potentially partial block |
|
2522 |
++ switch (left) { |
|
2523 |
++ case 7: b |= ((u64)in[6]) << 48; |
|
2524 |
++ case 6: b |= ((u64)in[5]) << 40; |
|
2525 |
++ case 5: b |= ((u64)in[4]) << 32; |
|
2526 |
++ case 4: b |= ((u64)in[3]) << 24; |
|
2527 |
++ case 3: b |= ((u64)in[2]) << 16; |
|
2528 |
++ case 2: b |= ((u64)in[1]) << 8; |
|
2529 |
++ case 1: b |= ((u64)in[0]); break; |
|
2530 |
++ case 0: break; |
|
2531 |
++ } |
|
2532 |
++ |
|
2533 |
++ // finalize |
|
2534 |
++ v3 ^= b; |
|
2535 |
++ SIPROUND; |
|
2536 |
++ SIPROUND; |
|
2537 |
++ v0 ^= b; |
|
2538 |
++ v2 ^= 0xff; |
|
2539 |
++ SIPROUND; |
|
2540 |
++ SIPROUND; |
|
2541 |
++ SIPROUND; |
|
2542 |
++ SIPROUND; |
|
2543 |
++ b = v0 ^ v1 ^ v2 ^ v3; |
|
2544 |
++ U64TO8_LE(out, b); |
|
2545 |
++} |
|
2546 |
+diff --git a/security/Kconfig b/security/Kconfig |
|
2547 |
+index 965f1a3..c18980a 100644 |
|
2548 |
+--- a/security/Kconfig |
|
2549 |
+@@ -80,6 +80,25 @@ config PAX_MPROTECT |
|
2550 |
+ the enforcement of non-executable pages. |
|
2551 |
+ |
|
2552 |
+ endif |
|
2553 |
++ |
|
2554 |
++config PAX_RAP |
|
2555 |
++ bool "Prevent code reuse attacks" |
|
2556 |
++ depends on X86_64 && GCC_PLUGINS |
|
2557 |
++ help |
|
2558 |
++ By saying Y here the kernel will check indirect control transfers |
|
2559 |
++ in order to detect and prevent attacks that try to hijack control |
|
2560 |
++ flow by overwriting code pointers. |
|
2561 |
++ |
|
2562 |
++ If you have an amd64 processor that does not support SMEP then you |
|
2563 |
++ must also enable a KERNEXEC code pointer instrumentation method |
|
2564 |
++ (see PAX_KERNEXEC_PLUGIN). |
|
2565 |
++ |
|
2566 |
++ Note that binary modules cannot be instrumented by this approach. |
|
2567 |
++ |
|
2568 |
++ Note that the implementation requires a gcc with plugin support, |
|
2569 |
++ i.e., gcc 4.5 or newer. You may need to install the supporting |
|
2570 |
++ headers explicitly in addition to the normal gcc package. |
|
2571 |
++ |
|
2572 |
+ endif |
|
2573 |
+ |
|
2574 |
+ source security/keys/Kconfig |
|
2575 |
+-- |
|
2576 |
+2.8.1 |
|
2577 |
+ |
0 | 2578 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,4668 @@ |
0 |
+# |
|
1 |
+# Automatically generated file; DO NOT EDIT. |
|
2 |
+# Linux/x86 4.8.0 Kernel Configuration |
|
3 |
+# |
|
4 |
+CONFIG_64BIT=y |
|
5 |
+CONFIG_X86_64=y |
|
6 |
+CONFIG_X86=y |
|
7 |
+CONFIG_INSTRUCTION_DECODER=y |
|
8 |
+CONFIG_OUTPUT_FORMAT="elf64-x86-64" |
|
9 |
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" |
|
10 |
+CONFIG_LOCKDEP_SUPPORT=y |
|
11 |
+CONFIG_STACKTRACE_SUPPORT=y |
|
12 |
+CONFIG_MMU=y |
|
13 |
+CONFIG_ARCH_MMAP_RND_BITS_MIN=28 |
|
14 |
+CONFIG_ARCH_MMAP_RND_BITS_MAX=32 |
|
15 |
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 |
|
16 |
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 |
|
17 |
+CONFIG_NEED_DMA_MAP_STATE=y |
|
18 |
+CONFIG_NEED_SG_DMA_LENGTH=y |
|
19 |
+CONFIG_GENERIC_ISA_DMA=y |
|
20 |
+CONFIG_GENERIC_BUG=y |
|
21 |
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y |
|
22 |
+CONFIG_GENERIC_HWEIGHT=y |
|
23 |
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
|
24 |
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
|
25 |
+CONFIG_GENERIC_CALIBRATE_DELAY=y |
|
26 |
+CONFIG_ARCH_HAS_CPU_RELAX=y |
|
27 |
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y |
|
28 |
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y |
|
29 |
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y |
|
30 |
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y |
|
31 |
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
|
32 |
+CONFIG_ARCH_SUSPEND_POSSIBLE=y |
|
33 |
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y |
|
34 |
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y |
|
35 |
+CONFIG_ZONE_DMA32=y |
|
36 |
+CONFIG_AUDIT_ARCH=y |
|
37 |
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y |
|
38 |
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
|
39 |
+CONFIG_HAVE_INTEL_TXT=y |
|
40 |
+CONFIG_X86_64_SMP=y |
|
41 |
+CONFIG_ARCH_SUPPORTS_UPROBES=y |
|
42 |
+CONFIG_FIX_EARLYCON_MEM=y |
|
43 |
+CONFIG_DEBUG_RODATA=y |
|
44 |
+CONFIG_PGTABLE_LEVELS=4 |
|
45 |
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
|
46 |
+CONFIG_IRQ_WORK=y |
|
47 |
+CONFIG_BUILDTIME_EXTABLE_SORT=y |
|
48 |
+ |
|
49 |
+# |
|
50 |
+# General setup |
|
51 |
+# |
|
52 |
+CONFIG_INIT_ENV_ARG_LIMIT=32 |
|
53 |
+CONFIG_CROSS_COMPILE="" |
|
54 |
+# CONFIG_COMPILE_TEST is not set |
|
55 |
+CONFIG_LOCALVERSION="-sec" |
|
56 |
+# CONFIG_LOCALVERSION_AUTO is not set |
|
57 |
+CONFIG_HAVE_KERNEL_GZIP=y |
|
58 |
+CONFIG_HAVE_KERNEL_BZIP2=y |
|
59 |
+CONFIG_HAVE_KERNEL_LZMA=y |
|
60 |
+CONFIG_HAVE_KERNEL_XZ=y |
|
61 |
+CONFIG_HAVE_KERNEL_LZO=y |
|
62 |
+CONFIG_HAVE_KERNEL_LZ4=y |
|
63 |
+CONFIG_KERNEL_GZIP=y |
|
64 |
+# CONFIG_KERNEL_BZIP2 is not set |
|
65 |
+# CONFIG_KERNEL_LZMA is not set |
|
66 |
+# CONFIG_KERNEL_XZ is not set |
|
67 |
+# CONFIG_KERNEL_LZO is not set |
|
68 |
+# CONFIG_KERNEL_LZ4 is not set |
|
69 |
+CONFIG_DEFAULT_HOSTNAME="Photon" |
|
70 |
+CONFIG_SWAP=y |
|
71 |
+CONFIG_SYSVIPC=y |
|
72 |
+CONFIG_SYSVIPC_SYSCTL=y |
|
73 |
+CONFIG_POSIX_MQUEUE=y |
|
74 |
+CONFIG_POSIX_MQUEUE_SYSCTL=y |
|
75 |
+# CONFIG_CROSS_MEMORY_ATTACH is not set |
|
76 |
+CONFIG_FHANDLE=y |
|
77 |
+CONFIG_USELIB=y |
|
78 |
+CONFIG_AUDIT=y |
|
79 |
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y |
|
80 |
+CONFIG_AUDITSYSCALL=y |
|
81 |
+CONFIG_AUDIT_WATCH=y |
|
82 |
+CONFIG_AUDIT_TREE=y |
|
83 |
+ |
|
84 |
+# |
|
85 |
+# IRQ subsystem |
|
86 |
+# |
|
87 |
+CONFIG_GENERIC_IRQ_PROBE=y |
|
88 |
+CONFIG_GENERIC_IRQ_SHOW=y |
|
89 |
+CONFIG_GENERIC_PENDING_IRQ=y |
|
90 |
+CONFIG_IRQ_DOMAIN=y |
|
91 |
+CONFIG_IRQ_DOMAIN_HIERARCHY=y |
|
92 |
+CONFIG_GENERIC_MSI_IRQ=y |
|
93 |
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y |
|
94 |
+# CONFIG_IRQ_DOMAIN_DEBUG is not set |
|
95 |
+CONFIG_IRQ_FORCED_THREADING=y |
|
96 |
+CONFIG_SPARSE_IRQ=y |
|
97 |
+CONFIG_CLOCKSOURCE_WATCHDOG=y |
|
98 |
+CONFIG_ARCH_CLOCKSOURCE_DATA=y |
|
99 |
+CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y |
|
100 |
+CONFIG_GENERIC_TIME_VSYSCALL=y |
|
101 |
+CONFIG_GENERIC_CLOCKEVENTS=y |
|
102 |
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y |
|
103 |
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y |
|
104 |
+CONFIG_GENERIC_CMOS_UPDATE=y |
|
105 |
+ |
|
106 |
+# |
|
107 |
+# Timers subsystem |
|
108 |
+# |
|
109 |
+CONFIG_TICK_ONESHOT=y |
|
110 |
+CONFIG_NO_HZ_COMMON=y |
|
111 |
+# CONFIG_HZ_PERIODIC is not set |
|
112 |
+CONFIG_NO_HZ_IDLE=y |
|
113 |
+# CONFIG_NO_HZ_FULL is not set |
|
114 |
+CONFIG_NO_HZ=y |
|
115 |
+CONFIG_HIGH_RES_TIMERS=y |
|
116 |
+ |
|
117 |
+# |
|
118 |
+# CPU/Task time and stats accounting |
|
119 |
+# |
|
120 |
+CONFIG_TICK_CPU_ACCOUNTING=y |
|
121 |
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set |
|
122 |
+# CONFIG_IRQ_TIME_ACCOUNTING is not set |
|
123 |
+CONFIG_BSD_PROCESS_ACCT=y |
|
124 |
+CONFIG_BSD_PROCESS_ACCT_V3=y |
|
125 |
+CONFIG_TASKSTATS=y |
|
126 |
+CONFIG_TASK_DELAY_ACCT=y |
|
127 |
+CONFIG_TASK_XACCT=y |
|
128 |
+CONFIG_TASK_IO_ACCOUNTING=y |
|
129 |
+ |
|
130 |
+# |
|
131 |
+# RCU Subsystem |
|
132 |
+# |
|
133 |
+CONFIG_TREE_RCU=y |
|
134 |
+# CONFIG_RCU_EXPERT is not set |
|
135 |
+CONFIG_SRCU=y |
|
136 |
+# CONFIG_TASKS_RCU is not set |
|
137 |
+CONFIG_RCU_STALL_COMMON=y |
|
138 |
+# CONFIG_TREE_RCU_TRACE is not set |
|
139 |
+# CONFIG_RCU_EXPEDITE_BOOT is not set |
|
140 |
+CONFIG_BUILD_BIN2C=y |
|
141 |
+CONFIG_IKCONFIG=y |
|
142 |
+CONFIG_IKCONFIG_PROC=y |
|
143 |
+CONFIG_LOG_BUF_SHIFT=18 |
|
144 |
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 |
|
145 |
+CONFIG_NMI_LOG_BUF_SHIFT=13 |
|
146 |
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y |
|
147 |
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y |
|
148 |
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y |
|
149 |
+CONFIG_ARCH_SUPPORTS_INT128=y |
|
150 |
+# CONFIG_NUMA_BALANCING is not set |
|
151 |
+CONFIG_CGROUPS=y |
|
152 |
+CONFIG_PAGE_COUNTER=y |
|
153 |
+CONFIG_MEMCG=y |
|
154 |
+CONFIG_MEMCG_SWAP=y |
|
155 |
+CONFIG_MEMCG_SWAP_ENABLED=y |
|
156 |
+CONFIG_BLK_CGROUP=y |
|
157 |
+# CONFIG_DEBUG_BLK_CGROUP is not set |
|
158 |
+CONFIG_CGROUP_WRITEBACK=y |
|
159 |
+CONFIG_CGROUP_SCHED=y |
|
160 |
+CONFIG_FAIR_GROUP_SCHED=y |
|
161 |
+CONFIG_CFS_BANDWIDTH=y |
|
162 |
+# CONFIG_RT_GROUP_SCHED is not set |
|
163 |
+CONFIG_CGROUP_PIDS=y |
|
164 |
+CONFIG_CGROUP_FREEZER=y |
|
165 |
+# CONFIG_CGROUP_HUGETLB is not set |
|
166 |
+CONFIG_CPUSETS=y |
|
167 |
+CONFIG_PROC_PID_CPUSET=y |
|
168 |
+CONFIG_CGROUP_DEVICE=y |
|
169 |
+CONFIG_CGROUP_CPUACCT=y |
|
170 |
+CONFIG_CGROUP_PERF=y |
|
171 |
+# CONFIG_CGROUP_DEBUG is not set |
|
172 |
+# CONFIG_CHECKPOINT_RESTORE is not set |
|
173 |
+CONFIG_NAMESPACES=y |
|
174 |
+CONFIG_UTS_NS=y |
|
175 |
+CONFIG_IPC_NS=y |
|
176 |
+CONFIG_USER_NS=y |
|
177 |
+CONFIG_PID_NS=y |
|
178 |
+CONFIG_NET_NS=y |
|
179 |
+# CONFIG_SCHED_AUTOGROUP is not set |
|
180 |
+# CONFIG_SYSFS_DEPRECATED is not set |
|
181 |
+CONFIG_RELAY=y |
|
182 |
+CONFIG_BLK_DEV_INITRD=y |
|
183 |
+CONFIG_INITRAMFS_SOURCE="" |
|
184 |
+CONFIG_RD_GZIP=y |
|
185 |
+CONFIG_RD_BZIP2=y |
|
186 |
+CONFIG_RD_LZMA=y |
|
187 |
+CONFIG_RD_XZ=y |
|
188 |
+CONFIG_RD_LZO=y |
|
189 |
+CONFIG_RD_LZ4=y |
|
190 |
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y |
|
191 |
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
|
192 |
+CONFIG_SYSCTL=y |
|
193 |
+CONFIG_ANON_INODES=y |
|
194 |
+CONFIG_SYSCTL_EXCEPTION_TRACE=y |
|
195 |
+CONFIG_HAVE_PCSPKR_PLATFORM=y |
|
196 |
+CONFIG_BPF=y |
|
197 |
+CONFIG_EXPERT=y |
|
198 |
+CONFIG_MULTIUSER=y |
|
199 |
+CONFIG_SGETMASK_SYSCALL=y |
|
200 |
+CONFIG_SYSFS_SYSCALL=y |
|
201 |
+# CONFIG_SYSCTL_SYSCALL is not set |
|
202 |
+CONFIG_KALLSYMS=y |
|
203 |
+CONFIG_KALLSYMS_ALL=y |
|
204 |
+CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y |
|
205 |
+CONFIG_KALLSYMS_BASE_RELATIVE=y |
|
206 |
+CONFIG_PRINTK=y |
|
207 |
+CONFIG_PRINTK_NMI=y |
|
208 |
+CONFIG_BUG=y |
|
209 |
+CONFIG_ELF_CORE=y |
|
210 |
+# CONFIG_PCSPKR_PLATFORM is not set |
|
211 |
+CONFIG_BASE_FULL=y |
|
212 |
+CONFIG_FUTEX=y |
|
213 |
+CONFIG_EPOLL=y |
|
214 |
+CONFIG_SIGNALFD=y |
|
215 |
+CONFIG_TIMERFD=y |
|
216 |
+CONFIG_EVENTFD=y |
|
217 |
+# CONFIG_BPF_SYSCALL is not set |
|
218 |
+CONFIG_SHMEM=y |
|
219 |
+CONFIG_AIO=y |
|
220 |
+CONFIG_ADVISE_SYSCALLS=y |
|
221 |
+# CONFIG_USERFAULTFD is not set |
|
222 |
+CONFIG_PCI_QUIRKS=y |
|
223 |
+CONFIG_MEMBARRIER=y |
|
224 |
+# CONFIG_EMBEDDED is not set |
|
225 |
+CONFIG_HAVE_PERF_EVENTS=y |
|
226 |
+ |
|
227 |
+# |
|
228 |
+# Kernel Performance Events And Counters |
|
229 |
+# |
|
230 |
+CONFIG_PERF_EVENTS=y |
|
231 |
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set |
|
232 |
+CONFIG_VM_EVENT_COUNTERS=y |
|
233 |
+CONFIG_SLUB_DEBUG=y |
|
234 |
+# CONFIG_COMPAT_BRK is not set |
|
235 |
+# CONFIG_SLAB is not set |
|
236 |
+CONFIG_SLUB=y |
|
237 |
+# CONFIG_SLOB is not set |
|
238 |
+CONFIG_SLAB_FREELIST_RANDOM=y |
|
239 |
+CONFIG_SLUB_CPU_PARTIAL=y |
|
240 |
+CONFIG_SYSTEM_DATA_VERIFICATION=y |
|
241 |
+CONFIG_PROFILING=y |
|
242 |
+CONFIG_TRACEPOINTS=y |
|
243 |
+CONFIG_OPROFILE=m |
|
244 |
+CONFIG_OPROFILE_EVENT_MULTIPLEX=y |
|
245 |
+CONFIG_HAVE_OPROFILE=y |
|
246 |
+CONFIG_OPROFILE_NMI_TIMER=y |
|
247 |
+CONFIG_KPROBES=y |
|
248 |
+CONFIG_JUMP_LABEL=y |
|
249 |
+# CONFIG_STATIC_KEYS_SELFTEST is not set |
|
250 |
+CONFIG_OPTPROBES=y |
|
251 |
+CONFIG_UPROBES=y |
|
252 |
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set |
|
253 |
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
|
254 |
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y |
|
255 |
+CONFIG_KRETPROBES=y |
|
256 |
+CONFIG_USER_RETURN_NOTIFIER=y |
|
257 |
+CONFIG_HAVE_IOREMAP_PROT=y |
|
258 |
+CONFIG_HAVE_KPROBES=y |
|
259 |
+CONFIG_HAVE_KRETPROBES=y |
|
260 |
+CONFIG_HAVE_OPTPROBES=y |
|
261 |
+CONFIG_HAVE_KPROBES_ON_FTRACE=y |
|
262 |
+CONFIG_HAVE_NMI=y |
|
263 |
+CONFIG_HAVE_ARCH_TRACEHOOK=y |
|
264 |
+CONFIG_HAVE_DMA_CONTIGUOUS=y |
|
265 |
+CONFIG_GENERIC_SMP_IDLE_THREAD=y |
|
266 |
+CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y |
|
267 |
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y |
|
268 |
+CONFIG_HAVE_DMA_API_DEBUG=y |
|
269 |
+CONFIG_HAVE_HW_BREAKPOINT=y |
|
270 |
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y |
|
271 |
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y |
|
272 |
+CONFIG_HAVE_PERF_EVENTS_NMI=y |
|
273 |
+CONFIG_HAVE_PERF_REGS=y |
|
274 |
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y |
|
275 |
+CONFIG_HAVE_ARCH_JUMP_LABEL=y |
|
276 |
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y |
|
277 |
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y |
|
278 |
+CONFIG_HAVE_CMPXCHG_LOCAL=y |
|
279 |
+CONFIG_HAVE_CMPXCHG_DOUBLE=y |
|
280 |
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y |
|
281 |
+CONFIG_SECCOMP_FILTER=y |
|
282 |
+CONFIG_HAVE_GCC_PLUGINS=y |
|
283 |
+CONFIG_GCC_PLUGINS=y |
|
284 |
+# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set |
|
285 |
+CONFIG_HAVE_CC_STACKPROTECTOR=y |
|
286 |
+CONFIG_CC_STACKPROTECTOR=y |
|
287 |
+# CONFIG_CC_STACKPROTECTOR_NONE is not set |
|
288 |
+# CONFIG_CC_STACKPROTECTOR_REGULAR is not set |
|
289 |
+CONFIG_CC_STACKPROTECTOR_STRONG=y |
|
290 |
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y |
|
291 |
+CONFIG_HAVE_CONTEXT_TRACKING=y |
|
292 |
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y |
|
293 |
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y |
|
294 |
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y |
|
295 |
+CONFIG_HAVE_ARCH_HUGE_VMAP=y |
|
296 |
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y |
|
297 |
+CONFIG_MODULES_USE_ELF_RELA=y |
|
298 |
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y |
|
299 |
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y |
|
300 |
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y |
|
301 |
+CONFIG_HAVE_EXIT_THREAD=y |
|
302 |
+CONFIG_ARCH_MMAP_RND_BITS=32 |
|
303 |
+CONFIG_HAVE_COPY_THREAD_TLS=y |
|
304 |
+CONFIG_HAVE_STACK_VALIDATION=y |
|
305 |
+# CONFIG_HAVE_ARCH_HASH is not set |
|
306 |
+# CONFIG_ISA_BUS_API is not set |
|
307 |
+# CONFIG_CPU_NO_EFFICIENT_FFS is not set |
|
308 |
+ |
|
309 |
+# |
|
310 |
+# GCOV-based kernel profiling |
|
311 |
+# |
|
312 |
+# CONFIG_GCOV_KERNEL is not set |
|
313 |
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y |
|
314 |
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
|
315 |
+CONFIG_SLABINFO=y |
|
316 |
+CONFIG_RT_MUTEXES=y |
|
317 |
+CONFIG_BASE_SMALL=0 |
|
318 |
+CONFIG_MODULES=y |
|
319 |
+CONFIG_MODULE_FORCE_LOAD=y |
|
320 |
+CONFIG_MODULE_UNLOAD=y |
|
321 |
+# CONFIG_MODULE_FORCE_UNLOAD is not set |
|
322 |
+# CONFIG_MODVERSIONS is not set |
|
323 |
+# CONFIG_MODULE_SRCVERSION_ALL is not set |
|
324 |
+CONFIG_MODULE_SIG=y |
|
325 |
+CONFIG_MODULE_SIG_FORCE=y |
|
326 |
+CONFIG_MODULE_SIG_ALL=y |
|
327 |
+# CONFIG_MODULE_SIG_SHA1 is not set |
|
328 |
+# CONFIG_MODULE_SIG_SHA224 is not set |
|
329 |
+# CONFIG_MODULE_SIG_SHA256 is not set |
|
330 |
+# CONFIG_MODULE_SIG_SHA384 is not set |
|
331 |
+CONFIG_MODULE_SIG_SHA512=y |
|
332 |
+CONFIG_MODULE_SIG_HASH="sha512" |
|
333 |
+# CONFIG_MODULE_COMPRESS is not set |
|
334 |
+CONFIG_MODULES_TREE_LOOKUP=y |
|
335 |
+CONFIG_BLOCK=y |
|
336 |
+CONFIG_BLK_DEV_BSG=y |
|
337 |
+CONFIG_BLK_DEV_BSGLIB=y |
|
338 |
+CONFIG_BLK_DEV_INTEGRITY=y |
|
339 |
+CONFIG_BLK_DEV_THROTTLING=y |
|
340 |
+# CONFIG_BLK_CMDLINE_PARSER is not set |
|
341 |
+ |
|
342 |
+# |
|
343 |
+# Partition Types |
|
344 |
+# |
|
345 |
+CONFIG_PARTITION_ADVANCED=y |
|
346 |
+# CONFIG_ACORN_PARTITION is not set |
|
347 |
+# CONFIG_AIX_PARTITION is not set |
|
348 |
+# CONFIG_OSF_PARTITION is not set |
|
349 |
+# CONFIG_AMIGA_PARTITION is not set |
|
350 |
+# CONFIG_ATARI_PARTITION is not set |
|
351 |
+# CONFIG_MAC_PARTITION is not set |
|
352 |
+CONFIG_MSDOS_PARTITION=y |
|
353 |
+CONFIG_BSD_DISKLABEL=y |
|
354 |
+CONFIG_MINIX_SUBPARTITION=y |
|
355 |
+CONFIG_SOLARIS_X86_PARTITION=y |
|
356 |
+CONFIG_UNIXWARE_DISKLABEL=y |
|
357 |
+# CONFIG_LDM_PARTITION is not set |
|
358 |
+# CONFIG_SGI_PARTITION is not set |
|
359 |
+# CONFIG_ULTRIX_PARTITION is not set |
|
360 |
+# CONFIG_SUN_PARTITION is not set |
|
361 |
+# CONFIG_KARMA_PARTITION is not set |
|
362 |
+CONFIG_EFI_PARTITION=y |
|
363 |
+# CONFIG_SYSV68_PARTITION is not set |
|
364 |
+# CONFIG_CMDLINE_PARTITION is not set |
|
365 |
+ |
|
366 |
+# |
|
367 |
+# IO Schedulers |
|
368 |
+# |
|
369 |
+CONFIG_IOSCHED_NOOP=y |
|
370 |
+CONFIG_IOSCHED_DEADLINE=y |
|
371 |
+CONFIG_IOSCHED_CFQ=y |
|
372 |
+CONFIG_CFQ_GROUP_IOSCHED=y |
|
373 |
+# CONFIG_DEFAULT_DEADLINE is not set |
|
374 |
+CONFIG_DEFAULT_CFQ=y |
|
375 |
+# CONFIG_DEFAULT_NOOP is not set |
|
376 |
+CONFIG_DEFAULT_IOSCHED="cfq" |
|
377 |
+CONFIG_PREEMPT_NOTIFIERS=y |
|
378 |
+CONFIG_ASN1=y |
|
379 |
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y |
|
380 |
+CONFIG_INLINE_READ_UNLOCK=y |
|
381 |
+CONFIG_INLINE_READ_UNLOCK_IRQ=y |
|
382 |
+CONFIG_INLINE_WRITE_UNLOCK=y |
|
383 |
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y |
|
384 |
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y |
|
385 |
+CONFIG_MUTEX_SPIN_ON_OWNER=y |
|
386 |
+CONFIG_RWSEM_SPIN_ON_OWNER=y |
|
387 |
+CONFIG_LOCK_SPIN_ON_OWNER=y |
|
388 |
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y |
|
389 |
+CONFIG_QUEUED_SPINLOCKS=y |
|
390 |
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y |
|
391 |
+CONFIG_QUEUED_RWLOCKS=y |
|
392 |
+CONFIG_FREEZER=y |
|
393 |
+ |
|
394 |
+# |
|
395 |
+# Processor type and features |
|
396 |
+# |
|
397 |
+# CONFIG_ZONE_DMA is not set |
|
398 |
+CONFIG_SMP=y |
|
399 |
+CONFIG_X86_FEATURE_NAMES=y |
|
400 |
+CONFIG_X86_FAST_FEATURE_TESTS=y |
|
401 |
+CONFIG_X86_X2APIC=y |
|
402 |
+# CONFIG_X86_MPPARSE is not set |
|
403 |
+# CONFIG_GOLDFISH is not set |
|
404 |
+# CONFIG_X86_EXTENDED_PLATFORM is not set |
|
405 |
+# CONFIG_X86_INTEL_LPSS is not set |
|
406 |
+# CONFIG_X86_AMD_PLATFORM_DEVICE is not set |
|
407 |
+CONFIG_IOSF_MBI=m |
|
408 |
+# CONFIG_IOSF_MBI_DEBUG is not set |
|
409 |
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y |
|
410 |
+CONFIG_SCHED_OMIT_FRAME_POINTER=y |
|
411 |
+CONFIG_HYPERVISOR_GUEST=y |
|
412 |
+CONFIG_PARAVIRT=y |
|
413 |
+# CONFIG_PARAVIRT_DEBUG is not set |
|
414 |
+# CONFIG_PARAVIRT_SPINLOCKS is not set |
|
415 |
+CONFIG_XEN=y |
|
416 |
+CONFIG_XEN_DOM0=y |
|
417 |
+CONFIG_XEN_PVHVM=y |
|
418 |
+CONFIG_XEN_512GB=y |
|
419 |
+CONFIG_XEN_SAVE_RESTORE=y |
|
420 |
+CONFIG_XEN_DEBUG_FS=y |
|
421 |
+# CONFIG_XEN_PVH is not set |
|
422 |
+CONFIG_KVM_GUEST=y |
|
423 |
+# CONFIG_KVM_DEBUG_FS is not set |
|
424 |
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set |
|
425 |
+CONFIG_PARAVIRT_CLOCK=y |
|
426 |
+CONFIG_NO_BOOTMEM=y |
|
427 |
+# CONFIG_MK8 is not set |
|
428 |
+# CONFIG_MPSC is not set |
|
429 |
+# CONFIG_MCORE2 is not set |
|
430 |
+# CONFIG_MATOM is not set |
|
431 |
+CONFIG_GENERIC_CPU=y |
|
432 |
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6 |
|
433 |
+CONFIG_X86_L1_CACHE_SHIFT=6 |
|
434 |
+CONFIG_X86_TSC=y |
|
435 |
+CONFIG_X86_CMPXCHG64=y |
|
436 |
+CONFIG_X86_CMOV=y |
|
437 |
+CONFIG_X86_MINIMUM_CPU_FAMILY=64 |
|
438 |
+CONFIG_X86_DEBUGCTLMSR=y |
|
439 |
+# CONFIG_PROCESSOR_SELECT is not set |
|
440 |
+CONFIG_CPU_SUP_INTEL=y |
|
441 |
+CONFIG_CPU_SUP_AMD=y |
|
442 |
+CONFIG_CPU_SUP_CENTAUR=y |
|
443 |
+CONFIG_HPET_TIMER=y |
|
444 |
+CONFIG_HPET_EMULATE_RTC=y |
|
445 |
+CONFIG_DMI=y |
|
446 |
+CONFIG_GART_IOMMU=y |
|
447 |
+# CONFIG_CALGARY_IOMMU is not set |
|
448 |
+CONFIG_SWIOTLB=y |
|
449 |
+CONFIG_IOMMU_HELPER=y |
|
450 |
+CONFIG_MAXSMP=y |
|
451 |
+CONFIG_NR_CPUS=8192 |
|
452 |
+CONFIG_SCHED_SMT=y |
|
453 |
+CONFIG_SCHED_MC=y |
|
454 |
+CONFIG_PREEMPT_NONE=y |
|
455 |
+# CONFIG_PREEMPT_VOLUNTARY is not set |
|
456 |
+# CONFIG_PREEMPT is not set |
|
457 |
+CONFIG_X86_LOCAL_APIC=y |
|
458 |
+CONFIG_X86_IO_APIC=y |
|
459 |
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y |
|
460 |
+CONFIG_X86_MCE=y |
|
461 |
+CONFIG_X86_MCE_INTEL=y |
|
462 |
+CONFIG_X86_MCE_AMD=y |
|
463 |
+CONFIG_X86_MCE_THRESHOLD=y |
|
464 |
+# CONFIG_X86_MCE_INJECT is not set |
|
465 |
+CONFIG_X86_THERMAL_VECTOR=y |
|
466 |
+ |
|
467 |
+# |
|
468 |
+# Performance monitoring |
|
469 |
+# |
|
470 |
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y |
|
471 |
+CONFIG_PERF_EVENTS_INTEL_RAPL=y |
|
472 |
+CONFIG_PERF_EVENTS_INTEL_CSTATE=y |
|
473 |
+# CONFIG_PERF_EVENTS_AMD_POWER is not set |
|
474 |
+# CONFIG_VM86 is not set |
|
475 |
+CONFIG_X86_VSYSCALL_EMULATION=y |
|
476 |
+# CONFIG_I8K is not set |
|
477 |
+CONFIG_MICROCODE=y |
|
478 |
+CONFIG_MICROCODE_INTEL=y |
|
479 |
+CONFIG_MICROCODE_AMD=y |
|
480 |
+CONFIG_MICROCODE_OLD_INTERFACE=y |
|
481 |
+CONFIG_X86_MSR=m |
|
482 |
+CONFIG_X86_CPUID=m |
|
483 |
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y |
|
484 |
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y |
|
485 |
+CONFIG_X86_DIRECT_GBPAGES=y |
|
486 |
+CONFIG_NUMA=y |
|
487 |
+CONFIG_AMD_NUMA=y |
|
488 |
+CONFIG_X86_64_ACPI_NUMA=y |
|
489 |
+CONFIG_NODES_SPAN_OTHER_NODES=y |
|
490 |
+# CONFIG_NUMA_EMU is not set |
|
491 |
+CONFIG_NODES_SHIFT=10 |
|
492 |
+CONFIG_ARCH_SPARSEMEM_ENABLE=y |
|
493 |
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y |
|
494 |
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
|
495 |
+CONFIG_ARCH_MEMORY_PROBE=y |
|
496 |
+CONFIG_ARCH_PROC_KCORE_TEXT=y |
|
497 |
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 |
|
498 |
+CONFIG_SELECT_MEMORY_MODEL=y |
|
499 |
+CONFIG_SPARSEMEM_MANUAL=y |
|
500 |
+CONFIG_SPARSEMEM=y |
|
501 |
+CONFIG_NEED_MULTIPLE_NODES=y |
|
502 |
+CONFIG_HAVE_MEMORY_PRESENT=y |
|
503 |
+CONFIG_SPARSEMEM_EXTREME=y |
|
504 |
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y |
|
505 |
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y |
|
506 |
+CONFIG_SPARSEMEM_VMEMMAP=y |
|
507 |
+CONFIG_HAVE_MEMBLOCK=y |
|
508 |
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y |
|
509 |
+CONFIG_ARCH_DISCARD_MEMBLOCK=y |
|
510 |
+CONFIG_MEMORY_ISOLATION=y |
|
511 |
+# CONFIG_MOVABLE_NODE is not set |
|
512 |
+CONFIG_HAVE_BOOTMEM_INFO_NODE=y |
|
513 |
+CONFIG_MEMORY_HOTPLUG=y |
|
514 |
+CONFIG_MEMORY_HOTPLUG_SPARSE=y |
|
515 |
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y |
|
516 |
+CONFIG_MEMORY_HOTREMOVE=y |
|
517 |
+CONFIG_SPLIT_PTLOCK_CPUS=4 |
|
518 |
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y |
|
519 |
+CONFIG_MEMORY_BALLOON=y |
|
520 |
+CONFIG_BALLOON_COMPACTION=y |
|
521 |
+CONFIG_COMPACTION=y |
|
522 |
+CONFIG_MIGRATION=y |
|
523 |
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y |
|
524 |
+CONFIG_PHYS_ADDR_T_64BIT=y |
|
525 |
+CONFIG_VIRT_TO_BUS=y |
|
526 |
+CONFIG_MMU_NOTIFIER=y |
|
527 |
+CONFIG_KSM=y |
|
528 |
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 |
|
529 |
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y |
|
530 |
+CONFIG_MEMORY_FAILURE=y |
|
531 |
+# CONFIG_HWPOISON_INJECT is not set |
|
532 |
+CONFIG_TRANSPARENT_HUGEPAGE=y |
|
533 |
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y |
|
534 |
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set |
|
535 |
+CONFIG_TRANSPARENT_HUGE_PAGECACHE=y |
|
536 |
+CONFIG_CLEANCACHE=y |
|
537 |
+# CONFIG_FRONTSWAP is not set |
|
538 |
+# CONFIG_CMA is not set |
|
539 |
+# CONFIG_ZPOOL is not set |
|
540 |
+# CONFIG_ZBUD is not set |
|
541 |
+# CONFIG_ZSMALLOC is not set |
|
542 |
+CONFIG_GENERIC_EARLY_IOREMAP=y |
|
543 |
+CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y |
|
544 |
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set |
|
545 |
+# CONFIG_IDLE_PAGE_TRACKING is not set |
|
546 |
+CONFIG_ZONE_DEVICE=y |
|
547 |
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y |
|
548 |
+CONFIG_ARCH_HAS_PKEYS=y |
|
549 |
+CONFIG_X86_PMEM_LEGACY_DEVICE=y |
|
550 |
+CONFIG_X86_PMEM_LEGACY=y |
|
551 |
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y |
|
552 |
+# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set |
|
553 |
+CONFIG_X86_RESERVE_LOW=64 |
|
554 |
+CONFIG_MTRR=y |
|
555 |
+CONFIG_MTRR_SANITIZER=y |
|
556 |
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 |
|
557 |
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 |
|
558 |
+CONFIG_X86_PAT=y |
|
559 |
+CONFIG_ARCH_USES_PG_UNCACHED=y |
|
560 |
+CONFIG_ARCH_RANDOM=y |
|
561 |
+CONFIG_X86_SMAP=y |
|
562 |
+# CONFIG_X86_INTEL_MPX is not set |
|
563 |
+CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y |
|
564 |
+CONFIG_EFI=y |
|
565 |
+CONFIG_EFI_STUB=y |
|
566 |
+# CONFIG_EFI_MIXED is not set |
|
567 |
+CONFIG_SECCOMP=y |
|
568 |
+# CONFIG_HZ_100 is not set |
|
569 |
+CONFIG_HZ_250=y |
|
570 |
+# CONFIG_HZ_300 is not set |
|
571 |
+# CONFIG_HZ_1000 is not set |
|
572 |
+CONFIG_HZ=250 |
|
573 |
+CONFIG_SCHED_HRTICK=y |
|
574 |
+# CONFIG_KEXEC is not set |
|
575 |
+CONFIG_CRASH_DUMP=y |
|
576 |
+CONFIG_PHYSICAL_START=0x1000000 |
|
577 |
+CONFIG_RELOCATABLE=y |
|
578 |
+CONFIG_RANDOMIZE_BASE=y |
|
579 |
+CONFIG_X86_NEED_RELOCS=y |
|
580 |
+CONFIG_PHYSICAL_ALIGN=0x1000000 |
|
581 |
+CONFIG_RANDOMIZE_MEMORY=y |
|
582 |
+CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa |
|
583 |
+CONFIG_HOTPLUG_CPU=y |
|
584 |
+# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set |
|
585 |
+# CONFIG_DEBUG_HOTPLUG_CPU0 is not set |
|
586 |
+# CONFIG_LEGACY_VSYSCALL_NATIVE is not set |
|
587 |
+# CONFIG_LEGACY_VSYSCALL_EMULATE is not set |
|
588 |
+CONFIG_LEGACY_VSYSCALL_NONE=y |
|
589 |
+# CONFIG_CMDLINE_BOOL is not set |
|
590 |
+# CONFIG_MODIFY_LDT_SYSCALL is not set |
|
591 |
+CONFIG_HAVE_LIVEPATCH=y |
|
592 |
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
|
593 |
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
|
594 |
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y |
|
595 |
+ |
|
596 |
+# |
|
597 |
+# Power management and ACPI options |
|
598 |
+# |
|
599 |
+CONFIG_SUSPEND=y |
|
600 |
+CONFIG_SUSPEND_FREEZER=y |
|
601 |
+# CONFIG_SUSPEND_SKIP_SYNC is not set |
|
602 |
+CONFIG_HIBERNATE_CALLBACKS=y |
|
603 |
+# CONFIG_HIBERNATION is not set |
|
604 |
+CONFIG_PM_SLEEP=y |
|
605 |
+CONFIG_PM_SLEEP_SMP=y |
|
606 |
+# CONFIG_PM_AUTOSLEEP is not set |
|
607 |
+# CONFIG_PM_WAKELOCKS is not set |
|
608 |
+CONFIG_PM=y |
|
609 |
+# CONFIG_PM_DEBUG is not set |
|
610 |
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set |
|
611 |
+CONFIG_ACPI=y |
|
612 |
+CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y |
|
613 |
+CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y |
|
614 |
+CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y |
|
615 |
+# CONFIG_ACPI_DEBUGGER is not set |
|
616 |
+CONFIG_ACPI_SLEEP=y |
|
617 |
+# CONFIG_ACPI_PROCFS_POWER is not set |
|
618 |
+CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y |
|
619 |
+# CONFIG_ACPI_EC_DEBUGFS is not set |
|
620 |
+CONFIG_ACPI_AC=m |
|
621 |
+CONFIG_ACPI_BATTERY=m |
|
622 |
+CONFIG_ACPI_BUTTON=m |
|
623 |
+CONFIG_ACPI_VIDEO=m |
|
624 |
+CONFIG_ACPI_FAN=m |
|
625 |
+# CONFIG_ACPI_DOCK is not set |
|
626 |
+CONFIG_ACPI_CPU_FREQ_PSS=y |
|
627 |
+CONFIG_ACPI_PROCESSOR_CSTATE=y |
|
628 |
+CONFIG_ACPI_PROCESSOR_IDLE=y |
|
629 |
+CONFIG_ACPI_PROCESSOR=y |
|
630 |
+CONFIG_ACPI_IPMI=m |
|
631 |
+CONFIG_ACPI_HOTPLUG_CPU=y |
|
632 |
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=y |
|
633 |
+CONFIG_ACPI_THERMAL=y |
|
634 |
+CONFIG_ACPI_NUMA=y |
|
635 |
+# CONFIG_ACPI_CUSTOM_DSDT is not set |
|
636 |
+CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y |
|
637 |
+CONFIG_ACPI_TABLE_UPGRADE=y |
|
638 |
+# CONFIG_ACPI_DEBUG is not set |
|
639 |
+CONFIG_ACPI_PCI_SLOT=y |
|
640 |
+CONFIG_X86_PM_TIMER=y |
|
641 |
+CONFIG_ACPI_CONTAINER=y |
|
642 |
+CONFIG_ACPI_HOTPLUG_MEMORY=y |
|
643 |
+CONFIG_ACPI_HOTPLUG_IOAPIC=y |
|
644 |
+# CONFIG_ACPI_SBS is not set |
|
645 |
+CONFIG_ACPI_HED=y |
|
646 |
+# CONFIG_ACPI_CUSTOM_METHOD is not set |
|
647 |
+# CONFIG_ACPI_BGRT is not set |
|
648 |
+# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set |
|
649 |
+CONFIG_ACPI_NFIT=m |
|
650 |
+# CONFIG_ACPI_NFIT_DEBUG is not set |
|
651 |
+CONFIG_HAVE_ACPI_APEI=y |
|
652 |
+CONFIG_HAVE_ACPI_APEI_NMI=y |
|
653 |
+CONFIG_ACPI_APEI=y |
|
654 |
+CONFIG_ACPI_APEI_GHES=y |
|
655 |
+CONFIG_ACPI_APEI_PCIEAER=y |
|
656 |
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y |
|
657 |
+# CONFIG_ACPI_APEI_EINJ is not set |
|
658 |
+CONFIG_ACPI_APEI_ERST_DEBUG=m |
|
659 |
+# CONFIG_DPTF_POWER is not set |
|
660 |
+# CONFIG_ACPI_EXTLOG is not set |
|
661 |
+CONFIG_PMIC_OPREGION=y |
|
662 |
+CONFIG_ACPI_CONFIGFS=y |
|
663 |
+# CONFIG_SFI is not set |
|
664 |
+ |
|
665 |
+# |
|
666 |
+# CPU Frequency scaling |
|
667 |
+# |
|
668 |
+CONFIG_CPU_FREQ=y |
|
669 |
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y |
|
670 |
+CONFIG_CPU_FREQ_GOV_COMMON=y |
|
671 |
+# CONFIG_CPU_FREQ_STAT is not set |
|
672 |
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y |
|
673 |
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set |
|
674 |
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set |
|
675 |
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set |
|
676 |
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set |
|
677 |
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set |
|
678 |
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y |
|
679 |
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m |
|
680 |
+CONFIG_CPU_FREQ_GOV_USERSPACE=m |
|
681 |
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m |
|
682 |
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m |
|
683 |
+# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set |
|
684 |
+ |
|
685 |
+# |
|
686 |
+# CPU frequency scaling drivers |
|
687 |
+# |
|
688 |
+CONFIG_X86_INTEL_PSTATE=y |
|
689 |
+CONFIG_X86_PCC_CPUFREQ=m |
|
690 |
+CONFIG_X86_ACPI_CPUFREQ=m |
|
691 |
+# CONFIG_X86_ACPI_CPUFREQ_CPB is not set |
|
692 |
+# CONFIG_X86_POWERNOW_K8 is not set |
|
693 |
+CONFIG_X86_AMD_FREQ_SENSITIVITY=m |
|
694 |
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set |
|
695 |
+# CONFIG_X86_P4_CLOCKMOD is not set |
|
696 |
+ |
|
697 |
+# |
|
698 |
+# shared options |
|
699 |
+# |
|
700 |
+# CONFIG_X86_SPEEDSTEP_LIB is not set |
|
701 |
+ |
|
702 |
+# |
|
703 |
+# CPU Idle |
|
704 |
+# |
|
705 |
+CONFIG_CPU_IDLE=y |
|
706 |
+CONFIG_CPU_IDLE_GOV_LADDER=y |
|
707 |
+CONFIG_CPU_IDLE_GOV_MENU=y |
|
708 |
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set |
|
709 |
+CONFIG_INTEL_IDLE=y |
|
710 |
+ |
|
711 |
+# |
|
712 |
+# Memory power savings |
|
713 |
+# |
|
714 |
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y |
|
715 |
+CONFIG_I7300_IDLE=m |
|
716 |
+ |
|
717 |
+# |
|
718 |
+# Bus options (PCI etc.) |
|
719 |
+# |
|
720 |
+CONFIG_PCI=y |
|
721 |
+CONFIG_PCI_DIRECT=y |
|
722 |
+CONFIG_PCI_MMCONFIG=y |
|
723 |
+CONFIG_PCI_XEN=y |
|
724 |
+CONFIG_PCI_DOMAINS=y |
|
725 |
+# CONFIG_PCI_CNB20LE_QUIRK is not set |
|
726 |
+CONFIG_PCIEPORTBUS=y |
|
727 |
+CONFIG_HOTPLUG_PCI_PCIE=y |
|
728 |
+CONFIG_PCIEAER=y |
|
729 |
+CONFIG_PCIE_ECRC=y |
|
730 |
+# CONFIG_PCIEAER_INJECT is not set |
|
731 |
+CONFIG_PCIEASPM=y |
|
732 |
+# CONFIG_PCIEASPM_DEBUG is not set |
|
733 |
+CONFIG_PCIEASPM_DEFAULT=y |
|
734 |
+# CONFIG_PCIEASPM_POWERSAVE is not set |
|
735 |
+# CONFIG_PCIEASPM_PERFORMANCE is not set |
|
736 |
+CONFIG_PCIE_PME=y |
|
737 |
+# CONFIG_PCIE_DPC is not set |
|
738 |
+CONFIG_PCI_BUS_ADDR_T_64BIT=y |
|
739 |
+CONFIG_PCI_MSI=y |
|
740 |
+CONFIG_PCI_MSI_IRQ_DOMAIN=y |
|
741 |
+# CONFIG_PCI_DEBUG is not set |
|
742 |
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set |
|
743 |
+# CONFIG_PCI_STUB is not set |
|
744 |
+CONFIG_XEN_PCIDEV_FRONTEND=m |
|
745 |
+CONFIG_HT_IRQ=y |
|
746 |
+CONFIG_PCI_ATS=y |
|
747 |
+CONFIG_PCI_IOV=y |
|
748 |
+CONFIG_PCI_PRI=y |
|
749 |
+CONFIG_PCI_PASID=y |
|
750 |
+CONFIG_PCI_LABEL=y |
|
751 |
+# CONFIG_PCI_HYPERV is not set |
|
752 |
+CONFIG_HOTPLUG_PCI=y |
|
753 |
+CONFIG_HOTPLUG_PCI_ACPI=y |
|
754 |
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m |
|
755 |
+# CONFIG_HOTPLUG_PCI_CPCI is not set |
|
756 |
+# CONFIG_HOTPLUG_PCI_SHPC is not set |
|
757 |
+ |
|
758 |
+# |
|
759 |
+# PCI host controller drivers |
|
760 |
+# |
|
761 |
+# CONFIG_PCIE_DW_PLAT is not set |
|
762 |
+# CONFIG_ISA_BUS is not set |
|
763 |
+CONFIG_ISA_DMA_API=y |
|
764 |
+CONFIG_AMD_NB=y |
|
765 |
+# CONFIG_PCCARD is not set |
|
766 |
+# CONFIG_RAPIDIO is not set |
|
767 |
+# CONFIG_X86_SYSFB is not set |
|
768 |
+ |
|
769 |
+# |
|
770 |
+# Executable file formats / Emulations |
|
771 |
+# |
|
772 |
+CONFIG_BINFMT_ELF=y |
|
773 |
+CONFIG_ELFCORE=y |
|
774 |
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y |
|
775 |
+CONFIG_BINFMT_SCRIPT=y |
|
776 |
+# CONFIG_HAVE_AOUT is not set |
|
777 |
+# CONFIG_BINFMT_MISC is not set |
|
778 |
+CONFIG_COREDUMP=y |
|
779 |
+# CONFIG_IA32_EMULATION is not set |
|
780 |
+# CONFIG_X86_X32 is not set |
|
781 |
+CONFIG_X86_DEV_DMA_OPS=y |
|
782 |
+CONFIG_PMC_ATOM=y |
|
783 |
+# CONFIG_VMD is not set |
|
784 |
+CONFIG_NET=y |
|
785 |
+CONFIG_NET_INGRESS=y |
|
786 |
+CONFIG_NET_EGRESS=y |
|
787 |
+ |
|
788 |
+# |
|
789 |
+# Networking options |
|
790 |
+# |
|
791 |
+CONFIG_PACKET=y |
|
792 |
+CONFIG_PACKET_DIAG=m |
|
793 |
+CONFIG_UNIX=y |
|
794 |
+CONFIG_UNIX_DIAG=m |
|
795 |
+CONFIG_XFRM=y |
|
796 |
+CONFIG_XFRM_ALGO=m |
|
797 |
+CONFIG_XFRM_USER=m |
|
798 |
+CONFIG_XFRM_SUB_POLICY=y |
|
799 |
+CONFIG_XFRM_MIGRATE=y |
|
800 |
+CONFIG_XFRM_STATISTICS=y |
|
801 |
+CONFIG_XFRM_IPCOMP=m |
|
802 |
+CONFIG_NET_KEY=m |
|
803 |
+# CONFIG_NET_KEY_MIGRATE is not set |
|
804 |
+CONFIG_INET=y |
|
805 |
+CONFIG_IP_MULTICAST=y |
|
806 |
+CONFIG_IP_ADVANCED_ROUTER=y |
|
807 |
+CONFIG_IP_FIB_TRIE_STATS=y |
|
808 |
+CONFIG_IP_MULTIPLE_TABLES=y |
|
809 |
+CONFIG_IP_ROUTE_MULTIPATH=y |
|
810 |
+CONFIG_IP_ROUTE_VERBOSE=y |
|
811 |
+CONFIG_IP_ROUTE_CLASSID=y |
|
812 |
+# CONFIG_IP_PNP is not set |
|
813 |
+CONFIG_NET_IPIP=m |
|
814 |
+CONFIG_NET_IPGRE_DEMUX=m |
|
815 |
+CONFIG_NET_IP_TUNNEL=m |
|
816 |
+CONFIG_NET_IPGRE=m |
|
817 |
+CONFIG_NET_IPGRE_BROADCAST=y |
|
818 |
+CONFIG_IP_MROUTE=y |
|
819 |
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y |
|
820 |
+CONFIG_IP_PIMSM_V1=y |
|
821 |
+CONFIG_IP_PIMSM_V2=y |
|
822 |
+CONFIG_SYN_COOKIES=y |
|
823 |
+CONFIG_NET_IPVTI=m |
|
824 |
+CONFIG_NET_UDP_TUNNEL=m |
|
825 |
+# CONFIG_NET_FOU is not set |
|
826 |
+# CONFIG_NET_FOU_IP_TUNNELS is not set |
|
827 |
+CONFIG_INET_AH=m |
|
828 |
+CONFIG_INET_ESP=m |
|
829 |
+CONFIG_INET_IPCOMP=m |
|
830 |
+CONFIG_INET_XFRM_TUNNEL=m |
|
831 |
+CONFIG_INET_TUNNEL=m |
|
832 |
+CONFIG_INET_XFRM_MODE_TRANSPORT=m |
|
833 |
+CONFIG_INET_XFRM_MODE_TUNNEL=m |
|
834 |
+CONFIG_INET_XFRM_MODE_BEET=m |
|
835 |
+# CONFIG_INET_DIAG is not set |
|
836 |
+CONFIG_TCP_CONG_ADVANCED=y |
|
837 |
+# CONFIG_TCP_CONG_BIC is not set |
|
838 |
+CONFIG_TCP_CONG_CUBIC=y |
|
839 |
+# CONFIG_TCP_CONG_WESTWOOD is not set |
|
840 |
+# CONFIG_TCP_CONG_HTCP is not set |
|
841 |
+# CONFIG_TCP_CONG_HSTCP is not set |
|
842 |
+# CONFIG_TCP_CONG_HYBLA is not set |
|
843 |
+# CONFIG_TCP_CONG_VEGAS is not set |
|
844 |
+# CONFIG_TCP_CONG_NV is not set |
|
845 |
+# CONFIG_TCP_CONG_SCALABLE is not set |
|
846 |
+# CONFIG_TCP_CONG_LP is not set |
|
847 |
+# CONFIG_TCP_CONG_VENO is not set |
|
848 |
+# CONFIG_TCP_CONG_YEAH is not set |
|
849 |
+# CONFIG_TCP_CONG_ILLINOIS is not set |
|
850 |
+# CONFIG_TCP_CONG_DCTCP is not set |
|
851 |
+# CONFIG_TCP_CONG_CDG is not set |
|
852 |
+CONFIG_DEFAULT_CUBIC=y |
|
853 |
+# CONFIG_DEFAULT_RENO is not set |
|
854 |
+CONFIG_DEFAULT_TCP_CONG="cubic" |
|
855 |
+CONFIG_TCP_MD5SIG=y |
|
856 |
+CONFIG_IPV6=y |
|
857 |
+CONFIG_IPV6_ROUTER_PREF=y |
|
858 |
+CONFIG_IPV6_ROUTE_INFO=y |
|
859 |
+CONFIG_IPV6_OPTIMISTIC_DAD=y |
|
860 |
+CONFIG_INET6_AH=m |
|
861 |
+CONFIG_INET6_ESP=m |
|
862 |
+CONFIG_INET6_IPCOMP=m |
|
863 |
+CONFIG_IPV6_MIP6=m |
|
864 |
+# CONFIG_IPV6_ILA is not set |
|
865 |
+CONFIG_INET6_XFRM_TUNNEL=m |
|
866 |
+CONFIG_INET6_TUNNEL=m |
|
867 |
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m |
|
868 |
+CONFIG_INET6_XFRM_MODE_TUNNEL=m |
|
869 |
+CONFIG_INET6_XFRM_MODE_BEET=m |
|
870 |
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m |
|
871 |
+CONFIG_IPV6_VTI=m |
|
872 |
+CONFIG_IPV6_SIT=m |
|
873 |
+CONFIG_IPV6_SIT_6RD=y |
|
874 |
+CONFIG_IPV6_NDISC_NODETYPE=y |
|
875 |
+CONFIG_IPV6_TUNNEL=m |
|
876 |
+CONFIG_IPV6_GRE=m |
|
877 |
+# CONFIG_IPV6_FOU is not set |
|
878 |
+# CONFIG_IPV6_FOU_TUNNEL is not set |
|
879 |
+CONFIG_IPV6_MULTIPLE_TABLES=y |
|
880 |
+CONFIG_IPV6_SUBTREES=y |
|
881 |
+CONFIG_IPV6_MROUTE=y |
|
882 |
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y |
|
883 |
+CONFIG_IPV6_PIMSM_V2=y |
|
884 |
+CONFIG_NETLABEL=y |
|
885 |
+CONFIG_NETWORK_SECMARK=y |
|
886 |
+CONFIG_NET_PTP_CLASSIFY=y |
|
887 |
+CONFIG_NETWORK_PHY_TIMESTAMPING=y |
|
888 |
+CONFIG_NETFILTER=y |
|
889 |
+# CONFIG_NETFILTER_DEBUG is not set |
|
890 |
+CONFIG_NETFILTER_ADVANCED=y |
|
891 |
+CONFIG_BRIDGE_NETFILTER=m |
|
892 |
+ |
|
893 |
+# |
|
894 |
+# Core Netfilter Configuration |
|
895 |
+# |
|
896 |
+CONFIG_NETFILTER_INGRESS=y |
|
897 |
+CONFIG_NETFILTER_NETLINK=m |
|
898 |
+CONFIG_NETFILTER_NETLINK_ACCT=m |
|
899 |
+CONFIG_NETFILTER_NETLINK_QUEUE=m |
|
900 |
+CONFIG_NETFILTER_NETLINK_LOG=m |
|
901 |
+CONFIG_NF_CONNTRACK=m |
|
902 |
+CONFIG_NF_LOG_COMMON=m |
|
903 |
+CONFIG_NF_CONNTRACK_MARK=y |
|
904 |
+CONFIG_NF_CONNTRACK_SECMARK=y |
|
905 |
+CONFIG_NF_CONNTRACK_PROCFS=y |
|
906 |
+CONFIG_NF_CONNTRACK_EVENTS=y |
|
907 |
+CONFIG_NF_CONNTRACK_TIMEOUT=y |
|
908 |
+CONFIG_NF_CONNTRACK_TIMESTAMP=y |
|
909 |
+CONFIG_NF_CONNTRACK_LABELS=y |
|
910 |
+CONFIG_NF_CT_PROTO_DCCP=m |
|
911 |
+CONFIG_NF_CT_PROTO_GRE=m |
|
912 |
+CONFIG_NF_CT_PROTO_SCTP=m |
|
913 |
+CONFIG_NF_CT_PROTO_UDPLITE=m |
|
914 |
+CONFIG_NF_CONNTRACK_AMANDA=m |
|
915 |
+CONFIG_NF_CONNTRACK_FTP=m |
|
916 |
+CONFIG_NF_CONNTRACK_H323=m |
|
917 |
+CONFIG_NF_CONNTRACK_IRC=m |
|
918 |
+CONFIG_NF_CONNTRACK_BROADCAST=m |
|
919 |
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m |
|
920 |
+CONFIG_NF_CONNTRACK_SNMP=m |
|
921 |
+CONFIG_NF_CONNTRACK_PPTP=m |
|
922 |
+CONFIG_NF_CONNTRACK_SANE=m |
|
923 |
+CONFIG_NF_CONNTRACK_SIP=m |
|
924 |
+CONFIG_NF_CONNTRACK_TFTP=m |
|
925 |
+CONFIG_NF_CT_NETLINK=m |
|
926 |
+CONFIG_NF_CT_NETLINK_TIMEOUT=m |
|
927 |
+# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set |
|
928 |
+CONFIG_NF_NAT=m |
|
929 |
+CONFIG_NF_NAT_NEEDED=y |
|
930 |
+CONFIG_NF_NAT_PROTO_DCCP=m |
|
931 |
+CONFIG_NF_NAT_PROTO_UDPLITE=m |
|
932 |
+CONFIG_NF_NAT_PROTO_SCTP=m |
|
933 |
+CONFIG_NF_NAT_AMANDA=m |
|
934 |
+CONFIG_NF_NAT_FTP=m |
|
935 |
+CONFIG_NF_NAT_IRC=m |
|
936 |
+CONFIG_NF_NAT_SIP=m |
|
937 |
+CONFIG_NF_NAT_TFTP=m |
|
938 |
+CONFIG_NF_NAT_REDIRECT=m |
|
939 |
+CONFIG_NETFILTER_SYNPROXY=m |
|
940 |
+# CONFIG_NF_TABLES is not set |
|
941 |
+CONFIG_NETFILTER_XTABLES=y |
|
942 |
+ |
|
943 |
+# |
|
944 |
+# Xtables combined modules |
|
945 |
+# |
|
946 |
+CONFIG_NETFILTER_XT_MARK=m |
|
947 |
+CONFIG_NETFILTER_XT_CONNMARK=m |
|
948 |
+# CONFIG_NETFILTER_XT_SET is not set |
|
949 |
+ |
|
950 |
+# |
|
951 |
+# Xtables targets |
|
952 |
+# |
|
953 |
+# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set |
|
954 |
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m |
|
955 |
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m |
|
956 |
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m |
|
957 |
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m |
|
958 |
+# CONFIG_NETFILTER_XT_TARGET_CT is not set |
|
959 |
+CONFIG_NETFILTER_XT_TARGET_DSCP=m |
|
960 |
+CONFIG_NETFILTER_XT_TARGET_HL=m |
|
961 |
+CONFIG_NETFILTER_XT_TARGET_HMARK=m |
|
962 |
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m |
|
963 |
+CONFIG_NETFILTER_XT_TARGET_LOG=m |
|
964 |
+CONFIG_NETFILTER_XT_TARGET_MARK=m |
|
965 |
+CONFIG_NETFILTER_XT_NAT=m |
|
966 |
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m |
|
967 |
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
|
968 |
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
|
969 |
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set |
|
970 |
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m |
|
971 |
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m |
|
972 |
+CONFIG_NETFILTER_XT_TARGET_TEE=m |
|
973 |
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m |
|
974 |
+# CONFIG_NETFILTER_XT_TARGET_TRACE is not set |
|
975 |
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m |
|
976 |
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
|
977 |
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m |
|
978 |
+ |
|
979 |
+# |
|
980 |
+# Xtables matches |
|
981 |
+# |
|
982 |
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m |
|
983 |
+CONFIG_NETFILTER_XT_MATCH_BPF=m |
|
984 |
+# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set |
|
985 |
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m |
|
986 |
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
|
987 |
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m |
|
988 |
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m |
|
989 |
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m |
|
990 |
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
|
991 |
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
|
992 |
+CONFIG_NETFILTER_XT_MATCH_CPU=m |
|
993 |
+CONFIG_NETFILTER_XT_MATCH_DCCP=m |
|
994 |
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m |
|
995 |
+CONFIG_NETFILTER_XT_MATCH_DSCP=m |
|
996 |
+CONFIG_NETFILTER_XT_MATCH_ECN=m |
|
997 |
+CONFIG_NETFILTER_XT_MATCH_ESP=m |
|
998 |
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m |
|
999 |
+CONFIG_NETFILTER_XT_MATCH_HELPER=m |
|
1000 |
+CONFIG_NETFILTER_XT_MATCH_HL=m |
|
1001 |
+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set |
|
1002 |
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m |
|
1003 |
+# CONFIG_NETFILTER_XT_MATCH_IPVS is not set |
|
1004 |
+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set |
|
1005 |
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
|
1006 |
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
|
1007 |
+CONFIG_NETFILTER_XT_MATCH_MAC=m |
|
1008 |
+CONFIG_NETFILTER_XT_MATCH_MARK=m |
|
1009 |
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m |
|
1010 |
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m |
|
1011 |
+CONFIG_NETFILTER_XT_MATCH_OSF=m |
|
1012 |
+CONFIG_NETFILTER_XT_MATCH_OWNER=m |
|
1013 |
+CONFIG_NETFILTER_XT_MATCH_POLICY=m |
|
1014 |
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m |
|
1015 |
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
|
1016 |
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
|
1017 |
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m |
|
1018 |
+CONFIG_NETFILTER_XT_MATCH_REALM=m |
|
1019 |
+CONFIG_NETFILTER_XT_MATCH_RECENT=m |
|
1020 |
+CONFIG_NETFILTER_XT_MATCH_SCTP=m |
|
1021 |
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m |
|
1022 |
+CONFIG_NETFILTER_XT_MATCH_STATE=m |
|
1023 |
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m |
|
1024 |
+CONFIG_NETFILTER_XT_MATCH_STRING=m |
|
1025 |
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m |
|
1026 |
+CONFIG_NETFILTER_XT_MATCH_TIME=m |
|
1027 |
+CONFIG_NETFILTER_XT_MATCH_U32=m |
|
1028 |
+CONFIG_IP_SET=m |
|
1029 |
+CONFIG_IP_SET_MAX=256 |
|
1030 |
+CONFIG_IP_SET_BITMAP_IP=m |
|
1031 |
+CONFIG_IP_SET_BITMAP_IPMAC=m |
|
1032 |
+CONFIG_IP_SET_BITMAP_PORT=m |
|
1033 |
+CONFIG_IP_SET_HASH_IP=m |
|
1034 |
+CONFIG_IP_SET_HASH_IPMARK=m |
|
1035 |
+CONFIG_IP_SET_HASH_IPPORT=m |
|
1036 |
+CONFIG_IP_SET_HASH_IPPORTIP=m |
|
1037 |
+CONFIG_IP_SET_HASH_IPPORTNET=m |
|
1038 |
+CONFIG_IP_SET_HASH_MAC=m |
|
1039 |
+CONFIG_IP_SET_HASH_NETPORTNET=m |
|
1040 |
+CONFIG_IP_SET_HASH_NET=m |
|
1041 |
+CONFIG_IP_SET_HASH_NETNET=m |
|
1042 |
+CONFIG_IP_SET_HASH_NETPORT=m |
|
1043 |
+CONFIG_IP_SET_HASH_NETIFACE=m |
|
1044 |
+CONFIG_IP_SET_LIST_SET=m |
|
1045 |
+CONFIG_IP_VS=m |
|
1046 |
+CONFIG_IP_VS_IPV6=y |
|
1047 |
+# CONFIG_IP_VS_DEBUG is not set |
|
1048 |
+CONFIG_IP_VS_TAB_BITS=12 |
|
1049 |
+ |
|
1050 |
+# |
|
1051 |
+# IPVS transport protocol load balancing support |
|
1052 |
+# |
|
1053 |
+CONFIG_IP_VS_PROTO_TCP=y |
|
1054 |
+CONFIG_IP_VS_PROTO_UDP=y |
|
1055 |
+CONFIG_IP_VS_PROTO_AH_ESP=y |
|
1056 |
+CONFIG_IP_VS_PROTO_ESP=y |
|
1057 |
+CONFIG_IP_VS_PROTO_AH=y |
|
1058 |
+CONFIG_IP_VS_PROTO_SCTP=y |
|
1059 |
+ |
|
1060 |
+# |
|
1061 |
+# IPVS scheduler |
|
1062 |
+# |
|
1063 |
+CONFIG_IP_VS_RR=m |
|
1064 |
+CONFIG_IP_VS_WRR=m |
|
1065 |
+CONFIG_IP_VS_LC=m |
|
1066 |
+CONFIG_IP_VS_WLC=m |
|
1067 |
+# CONFIG_IP_VS_FO is not set |
|
1068 |
+# CONFIG_IP_VS_OVF is not set |
|
1069 |
+CONFIG_IP_VS_LBLC=m |
|
1070 |
+CONFIG_IP_VS_LBLCR=m |
|
1071 |
+CONFIG_IP_VS_DH=m |
|
1072 |
+CONFIG_IP_VS_SH=m |
|
1073 |
+CONFIG_IP_VS_SED=m |
|
1074 |
+CONFIG_IP_VS_NQ=m |
|
1075 |
+ |
|
1076 |
+# |
|
1077 |
+# IPVS SH scheduler |
|
1078 |
+# |
|
1079 |
+CONFIG_IP_VS_SH_TAB_BITS=8 |
|
1080 |
+ |
|
1081 |
+# |
|
1082 |
+# IPVS application helper |
|
1083 |
+# |
|
1084 |
+CONFIG_IP_VS_FTP=m |
|
1085 |
+CONFIG_IP_VS_NFCT=y |
|
1086 |
+CONFIG_IP_VS_PE_SIP=m |
|
1087 |
+ |
|
1088 |
+# |
|
1089 |
+# IP: Netfilter Configuration |
|
1090 |
+# |
|
1091 |
+CONFIG_NF_DEFRAG_IPV4=m |
|
1092 |
+CONFIG_NF_CONNTRACK_IPV4=m |
|
1093 |
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set |
|
1094 |
+CONFIG_NF_DUP_IPV4=m |
|
1095 |
+# CONFIG_NF_LOG_ARP is not set |
|
1096 |
+CONFIG_NF_LOG_IPV4=m |
|
1097 |
+CONFIG_NF_REJECT_IPV4=m |
|
1098 |
+CONFIG_NF_NAT_IPV4=m |
|
1099 |
+CONFIG_NF_NAT_MASQUERADE_IPV4=m |
|
1100 |
+CONFIG_NF_NAT_SNMP_BASIC=m |
|
1101 |
+CONFIG_NF_NAT_PROTO_GRE=m |
|
1102 |
+CONFIG_NF_NAT_PPTP=m |
|
1103 |
+CONFIG_NF_NAT_H323=m |
|
1104 |
+CONFIG_IP_NF_IPTABLES=m |
|
1105 |
+CONFIG_IP_NF_MATCH_AH=m |
|
1106 |
+CONFIG_IP_NF_MATCH_ECN=m |
|
1107 |
+CONFIG_IP_NF_MATCH_RPFILTER=m |
|
1108 |
+CONFIG_IP_NF_MATCH_TTL=m |
|
1109 |
+CONFIG_IP_NF_FILTER=m |
|
1110 |
+CONFIG_IP_NF_TARGET_REJECT=m |
|
1111 |
+CONFIG_IP_NF_TARGET_SYNPROXY=m |
|
1112 |
+CONFIG_IP_NF_NAT=m |
|
1113 |
+CONFIG_IP_NF_TARGET_MASQUERADE=m |
|
1114 |
+CONFIG_IP_NF_TARGET_NETMAP=m |
|
1115 |
+CONFIG_IP_NF_TARGET_REDIRECT=m |
|
1116 |
+CONFIG_IP_NF_MANGLE=m |
|
1117 |
+CONFIG_IP_NF_TARGET_CLUSTERIP=m |
|
1118 |
+CONFIG_IP_NF_TARGET_ECN=m |
|
1119 |
+CONFIG_IP_NF_TARGET_TTL=m |
|
1120 |
+CONFIG_IP_NF_RAW=m |
|
1121 |
+# CONFIG_IP_NF_SECURITY is not set |
|
1122 |
+CONFIG_IP_NF_ARPTABLES=m |
|
1123 |
+CONFIG_IP_NF_ARPFILTER=m |
|
1124 |
+CONFIG_IP_NF_ARP_MANGLE=m |
|
1125 |
+ |
|
1126 |
+# |
|
1127 |
+# IPv6: Netfilter Configuration |
|
1128 |
+# |
|
1129 |
+CONFIG_NF_DEFRAG_IPV6=m |
|
1130 |
+CONFIG_NF_CONNTRACK_IPV6=m |
|
1131 |
+CONFIG_NF_DUP_IPV6=m |
|
1132 |
+CONFIG_NF_REJECT_IPV6=m |
|
1133 |
+CONFIG_NF_LOG_IPV6=m |
|
1134 |
+CONFIG_NF_NAT_IPV6=m |
|
1135 |
+# CONFIG_NF_NAT_MASQUERADE_IPV6 is not set |
|
1136 |
+CONFIG_IP6_NF_IPTABLES=m |
|
1137 |
+CONFIG_IP6_NF_MATCH_AH=m |
|
1138 |
+CONFIG_IP6_NF_MATCH_EUI64=m |
|
1139 |
+CONFIG_IP6_NF_MATCH_FRAG=m |
|
1140 |
+CONFIG_IP6_NF_MATCH_OPTS=m |
|
1141 |
+CONFIG_IP6_NF_MATCH_HL=m |
|
1142 |
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
|
1143 |
+CONFIG_IP6_NF_MATCH_MH=m |
|
1144 |
+CONFIG_IP6_NF_MATCH_RPFILTER=m |
|
1145 |
+CONFIG_IP6_NF_MATCH_RT=m |
|
1146 |
+CONFIG_IP6_NF_TARGET_HL=m |
|
1147 |
+CONFIG_IP6_NF_FILTER=m |
|
1148 |
+CONFIG_IP6_NF_TARGET_REJECT=m |
|
1149 |
+CONFIG_IP6_NF_TARGET_SYNPROXY=m |
|
1150 |
+CONFIG_IP6_NF_MANGLE=m |
|
1151 |
+CONFIG_IP6_NF_RAW=m |
|
1152 |
+# CONFIG_IP6_NF_SECURITY is not set |
|
1153 |
+# CONFIG_IP6_NF_NAT is not set |
|
1154 |
+CONFIG_BRIDGE_NF_EBTABLES=m |
|
1155 |
+CONFIG_BRIDGE_EBT_BROUTE=m |
|
1156 |
+CONFIG_BRIDGE_EBT_T_FILTER=m |
|
1157 |
+CONFIG_BRIDGE_EBT_T_NAT=m |
|
1158 |
+CONFIG_BRIDGE_EBT_802_3=m |
|
1159 |
+CONFIG_BRIDGE_EBT_AMONG=m |
|
1160 |
+CONFIG_BRIDGE_EBT_ARP=m |
|
1161 |
+CONFIG_BRIDGE_EBT_IP=m |
|
1162 |
+CONFIG_BRIDGE_EBT_IP6=m |
|
1163 |
+CONFIG_BRIDGE_EBT_LIMIT=m |
|
1164 |
+CONFIG_BRIDGE_EBT_MARK=m |
|
1165 |
+CONFIG_BRIDGE_EBT_PKTTYPE=m |
|
1166 |
+CONFIG_BRIDGE_EBT_STP=m |
|
1167 |
+CONFIG_BRIDGE_EBT_VLAN=m |
|
1168 |
+CONFIG_BRIDGE_EBT_ARPREPLY=m |
|
1169 |
+CONFIG_BRIDGE_EBT_DNAT=m |
|
1170 |
+CONFIG_BRIDGE_EBT_MARK_T=m |
|
1171 |
+CONFIG_BRIDGE_EBT_REDIRECT=m |
|
1172 |
+CONFIG_BRIDGE_EBT_SNAT=m |
|
1173 |
+CONFIG_BRIDGE_EBT_LOG=m |
|
1174 |
+CONFIG_BRIDGE_EBT_NFLOG=m |
|
1175 |
+CONFIG_IP_DCCP=m |
|
1176 |
+ |
|
1177 |
+# |
|
1178 |
+# DCCP CCIDs Configuration |
|
1179 |
+# |
|
1180 |
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set |
|
1181 |
+CONFIG_IP_DCCP_CCID3=y |
|
1182 |
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set |
|
1183 |
+CONFIG_IP_DCCP_TFRC_LIB=y |
|
1184 |
+ |
|
1185 |
+# |
|
1186 |
+# DCCP Kernel Hacking |
|
1187 |
+# |
|
1188 |
+# CONFIG_IP_DCCP_DEBUG is not set |
|
1189 |
+# CONFIG_NET_DCCPPROBE is not set |
|
1190 |
+CONFIG_IP_SCTP=m |
|
1191 |
+# CONFIG_NET_SCTPPROBE is not set |
|
1192 |
+# CONFIG_SCTP_DBG_OBJCNT is not set |
|
1193 |
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y |
|
1194 |
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set |
|
1195 |
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set |
|
1196 |
+CONFIG_SCTP_COOKIE_HMAC_MD5=y |
|
1197 |
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y |
|
1198 |
+CONFIG_RDS=m |
|
1199 |
+CONFIG_RDS_TCP=m |
|
1200 |
+# CONFIG_RDS_DEBUG is not set |
|
1201 |
+# CONFIG_TIPC is not set |
|
1202 |
+# CONFIG_ATM is not set |
|
1203 |
+# CONFIG_L2TP is not set |
|
1204 |
+CONFIG_STP=m |
|
1205 |
+CONFIG_GARP=m |
|
1206 |
+CONFIG_MRP=m |
|
1207 |
+CONFIG_BRIDGE=m |
|
1208 |
+CONFIG_BRIDGE_IGMP_SNOOPING=y |
|
1209 |
+CONFIG_BRIDGE_VLAN_FILTERING=y |
|
1210 |
+CONFIG_HAVE_NET_DSA=y |
|
1211 |
+CONFIG_VLAN_8021Q=m |
|
1212 |
+CONFIG_VLAN_8021Q_GVRP=y |
|
1213 |
+CONFIG_VLAN_8021Q_MVRP=y |
|
1214 |
+# CONFIG_DECNET is not set |
|
1215 |
+CONFIG_LLC=m |
|
1216 |
+# CONFIG_LLC2 is not set |
|
1217 |
+# CONFIG_IPX is not set |
|
1218 |
+# CONFIG_ATALK is not set |
|
1219 |
+# CONFIG_X25 is not set |
|
1220 |
+# CONFIG_LAPB is not set |
|
1221 |
+# CONFIG_PHONET is not set |
|
1222 |
+# CONFIG_6LOWPAN is not set |
|
1223 |
+# CONFIG_IEEE802154 is not set |
|
1224 |
+CONFIG_NET_SCHED=y |
|
1225 |
+ |
|
1226 |
+# |
|
1227 |
+# Queueing/Scheduling |
|
1228 |
+# |
|
1229 |
+CONFIG_NET_SCH_CBQ=m |
|
1230 |
+CONFIG_NET_SCH_HTB=m |
|
1231 |
+CONFIG_NET_SCH_HFSC=m |
|
1232 |
+CONFIG_NET_SCH_PRIO=m |
|
1233 |
+CONFIG_NET_SCH_MULTIQ=m |
|
1234 |
+CONFIG_NET_SCH_RED=m |
|
1235 |
+CONFIG_NET_SCH_SFB=m |
|
1236 |
+CONFIG_NET_SCH_SFQ=m |
|
1237 |
+CONFIG_NET_SCH_TEQL=m |
|
1238 |
+CONFIG_NET_SCH_TBF=m |
|
1239 |
+CONFIG_NET_SCH_GRED=m |
|
1240 |
+CONFIG_NET_SCH_DSMARK=m |
|
1241 |
+CONFIG_NET_SCH_NETEM=m |
|
1242 |
+CONFIG_NET_SCH_DRR=m |
|
1243 |
+CONFIG_NET_SCH_MQPRIO=m |
|
1244 |
+CONFIG_NET_SCH_CHOKE=m |
|
1245 |
+CONFIG_NET_SCH_QFQ=m |
|
1246 |
+CONFIG_NET_SCH_CODEL=m |
|
1247 |
+CONFIG_NET_SCH_FQ_CODEL=m |
|
1248 |
+CONFIG_NET_SCH_FQ=m |
|
1249 |
+# CONFIG_NET_SCH_HHF is not set |
|
1250 |
+# CONFIG_NET_SCH_PIE is not set |
|
1251 |
+CONFIG_NET_SCH_INGRESS=m |
|
1252 |
+CONFIG_NET_SCH_PLUG=m |
|
1253 |
+ |
|
1254 |
+# |
|
1255 |
+# Classification |
|
1256 |
+# |
|
1257 |
+CONFIG_NET_CLS=y |
|
1258 |
+CONFIG_NET_CLS_BASIC=m |
|
1259 |
+CONFIG_NET_CLS_TCINDEX=m |
|
1260 |
+CONFIG_NET_CLS_ROUTE4=m |
|
1261 |
+CONFIG_NET_CLS_FW=m |
|
1262 |
+CONFIG_NET_CLS_U32=m |
|
1263 |
+CONFIG_CLS_U32_PERF=y |
|
1264 |
+CONFIG_CLS_U32_MARK=y |
|
1265 |
+CONFIG_NET_CLS_RSVP=m |
|
1266 |
+CONFIG_NET_CLS_RSVP6=m |
|
1267 |
+CONFIG_NET_CLS_FLOW=m |
|
1268 |
+CONFIG_NET_CLS_CGROUP=m |
|
1269 |
+CONFIG_NET_CLS_BPF=m |
|
1270 |
+# CONFIG_NET_CLS_FLOWER is not set |
|
1271 |
+# CONFIG_NET_CLS_MATCHALL is not set |
|
1272 |
+CONFIG_NET_EMATCH=y |
|
1273 |
+CONFIG_NET_EMATCH_STACK=32 |
|
1274 |
+CONFIG_NET_EMATCH_CMP=m |
|
1275 |
+CONFIG_NET_EMATCH_NBYTE=m |
|
1276 |
+CONFIG_NET_EMATCH_U32=m |
|
1277 |
+CONFIG_NET_EMATCH_META=m |
|
1278 |
+CONFIG_NET_EMATCH_TEXT=m |
|
1279 |
+CONFIG_NET_EMATCH_IPSET=m |
|
1280 |
+CONFIG_NET_CLS_ACT=y |
|
1281 |
+CONFIG_NET_ACT_POLICE=m |
|
1282 |
+CONFIG_NET_ACT_GACT=m |
|
1283 |
+CONFIG_GACT_PROB=y |
|
1284 |
+CONFIG_NET_ACT_MIRRED=m |
|
1285 |
+CONFIG_NET_ACT_IPT=m |
|
1286 |
+CONFIG_NET_ACT_NAT=m |
|
1287 |
+CONFIG_NET_ACT_PEDIT=m |
|
1288 |
+# CONFIG_NET_ACT_SIMP is not set |
|
1289 |
+CONFIG_NET_ACT_SKBEDIT=m |
|
1290 |
+CONFIG_NET_ACT_CSUM=m |
|
1291 |
+# CONFIG_NET_ACT_VLAN is not set |
|
1292 |
+# CONFIG_NET_ACT_BPF is not set |
|
1293 |
+# CONFIG_NET_ACT_CONNMARK is not set |
|
1294 |
+# CONFIG_NET_ACT_IFE is not set |
|
1295 |
+CONFIG_NET_CLS_IND=y |
|
1296 |
+CONFIG_NET_SCH_FIFO=y |
|
1297 |
+CONFIG_DCB=y |
|
1298 |
+CONFIG_DNS_RESOLVER=m |
|
1299 |
+# CONFIG_BATMAN_ADV is not set |
|
1300 |
+CONFIG_OPENVSWITCH=m |
|
1301 |
+CONFIG_OPENVSWITCH_GRE=m |
|
1302 |
+CONFIG_OPENVSWITCH_VXLAN=m |
|
1303 |
+CONFIG_OPENVSWITCH_GENEVE=m |
|
1304 |
+CONFIG_VSOCKETS=m |
|
1305 |
+CONFIG_VMWARE_VMCI_VSOCKETS=m |
|
1306 |
+CONFIG_VIRTIO_VSOCKETS=m |
|
1307 |
+CONFIG_VIRTIO_VSOCKETS_COMMON=m |
|
1308 |
+CONFIG_NETLINK_DIAG=m |
|
1309 |
+CONFIG_MPLS=y |
|
1310 |
+CONFIG_NET_MPLS_GSO=m |
|
1311 |
+# CONFIG_MPLS_ROUTING is not set |
|
1312 |
+# CONFIG_HSR is not set |
|
1313 |
+# CONFIG_NET_SWITCHDEV is not set |
|
1314 |
+# CONFIG_NET_L3_MASTER_DEV is not set |
|
1315 |
+# CONFIG_NET_NCSI is not set |
|
1316 |
+CONFIG_RPS=y |
|
1317 |
+CONFIG_RFS_ACCEL=y |
|
1318 |
+CONFIG_XPS=y |
|
1319 |
+CONFIG_SOCK_CGROUP_DATA=y |
|
1320 |
+CONFIG_CGROUP_NET_PRIO=y |
|
1321 |
+CONFIG_CGROUP_NET_CLASSID=y |
|
1322 |
+CONFIG_NET_RX_BUSY_POLL=y |
|
1323 |
+CONFIG_BQL=y |
|
1324 |
+CONFIG_BPF_JIT=y |
|
1325 |
+CONFIG_NET_FLOW_LIMIT=y |
|
1326 |
+ |
|
1327 |
+# |
|
1328 |
+# Network testing |
|
1329 |
+# |
|
1330 |
+# CONFIG_NET_PKTGEN is not set |
|
1331 |
+# CONFIG_NET_TCPPROBE is not set |
|
1332 |
+CONFIG_NET_DROP_MONITOR=m |
|
1333 |
+# CONFIG_HAMRADIO is not set |
|
1334 |
+# CONFIG_CAN is not set |
|
1335 |
+# CONFIG_IRDA is not set |
|
1336 |
+# CONFIG_BT is not set |
|
1337 |
+# CONFIG_AF_RXRPC is not set |
|
1338 |
+# CONFIG_AF_KCM is not set |
|
1339 |
+CONFIG_FIB_RULES=y |
|
1340 |
+# CONFIG_WIRELESS is not set |
|
1341 |
+# CONFIG_WIMAX is not set |
|
1342 |
+# CONFIG_RFKILL is not set |
|
1343 |
+CONFIG_NET_9P=m |
|
1344 |
+CONFIG_NET_9P_VIRTIO=m |
|
1345 |
+# CONFIG_NET_9P_DEBUG is not set |
|
1346 |
+# CONFIG_CAIF is not set |
|
1347 |
+CONFIG_CEPH_LIB=m |
|
1348 |
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set |
|
1349 |
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set |
|
1350 |
+# CONFIG_NFC is not set |
|
1351 |
+# CONFIG_LWTUNNEL is not set |
|
1352 |
+CONFIG_DST_CACHE=y |
|
1353 |
+# CONFIG_NET_DEVLINK is not set |
|
1354 |
+CONFIG_MAY_USE_DEVLINK=y |
|
1355 |
+CONFIG_HAVE_EBPF_JIT=y |
|
1356 |
+ |
|
1357 |
+# |
|
1358 |
+# Device Drivers |
|
1359 |
+# |
|
1360 |
+ |
|
1361 |
+# |
|
1362 |
+# Generic Driver Options |
|
1363 |
+# |
|
1364 |
+CONFIG_UEVENT_HELPER=y |
|
1365 |
+CONFIG_UEVENT_HELPER_PATH="" |
|
1366 |
+CONFIG_DEVTMPFS=y |
|
1367 |
+CONFIG_DEVTMPFS_MOUNT=y |
|
1368 |
+CONFIG_STANDALONE=y |
|
1369 |
+CONFIG_PREVENT_FIRMWARE_BUILD=y |
|
1370 |
+CONFIG_FW_LOADER=y |
|
1371 |
+# CONFIG_FIRMWARE_IN_KERNEL is not set |
|
1372 |
+CONFIG_EXTRA_FIRMWARE="" |
|
1373 |
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set |
|
1374 |
+CONFIG_ALLOW_DEV_COREDUMP=y |
|
1375 |
+# CONFIG_DEBUG_DRIVER is not set |
|
1376 |
+# CONFIG_DEBUG_DEVRES is not set |
|
1377 |
+CONFIG_SYS_HYPERVISOR=y |
|
1378 |
+# CONFIG_GENERIC_CPU_DEVICES is not set |
|
1379 |
+CONFIG_GENERIC_CPU_AUTOPROBE=y |
|
1380 |
+CONFIG_REGMAP=y |
|
1381 |
+CONFIG_REGMAP_I2C=y |
|
1382 |
+CONFIG_DMA_SHARED_BUFFER=y |
|
1383 |
+# CONFIG_FENCE_TRACE is not set |
|
1384 |
+ |
|
1385 |
+# |
|
1386 |
+# Bus devices |
|
1387 |
+# |
|
1388 |
+CONFIG_CONNECTOR=m |
|
1389 |
+# CONFIG_MTD is not set |
|
1390 |
+# CONFIG_OF is not set |
|
1391 |
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y |
|
1392 |
+# CONFIG_PARPORT is not set |
|
1393 |
+CONFIG_PNP=y |
|
1394 |
+# CONFIG_PNP_DEBUG_MESSAGES is not set |
|
1395 |
+ |
|
1396 |
+# |
|
1397 |
+# Protocols |
|
1398 |
+# |
|
1399 |
+CONFIG_PNPACPI=y |
|
1400 |
+CONFIG_BLK_DEV=y |
|
1401 |
+# CONFIG_BLK_DEV_NULL_BLK is not set |
|
1402 |
+# CONFIG_BLK_DEV_FD is not set |
|
1403 |
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set |
|
1404 |
+# CONFIG_BLK_CPQ_CISS_DA is not set |
|
1405 |
+# CONFIG_BLK_DEV_DAC960 is not set |
|
1406 |
+# CONFIG_BLK_DEV_UMEM is not set |
|
1407 |
+# CONFIG_BLK_DEV_COW_COMMON is not set |
|
1408 |
+CONFIG_BLK_DEV_LOOP=y |
|
1409 |
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 |
|
1410 |
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set |
|
1411 |
+# CONFIG_BLK_DEV_DRBD is not set |
|
1412 |
+# CONFIG_BLK_DEV_NBD is not set |
|
1413 |
+# CONFIG_BLK_DEV_SKD is not set |
|
1414 |
+# CONFIG_BLK_DEV_OSD is not set |
|
1415 |
+# CONFIG_BLK_DEV_SX8 is not set |
|
1416 |
+CONFIG_BLK_DEV_RAM=y |
|
1417 |
+CONFIG_BLK_DEV_RAM_COUNT=16 |
|
1418 |
+CONFIG_BLK_DEV_RAM_SIZE=4096 |
|
1419 |
+CONFIG_BLK_DEV_RAM_DAX=y |
|
1420 |
+# CONFIG_CDROM_PKTCDVD is not set |
|
1421 |
+# CONFIG_ATA_OVER_ETH is not set |
|
1422 |
+CONFIG_XEN_BLKDEV_FRONTEND=m |
|
1423 |
+# CONFIG_XEN_BLKDEV_BACKEND is not set |
|
1424 |
+CONFIG_VIRTIO_BLK=m |
|
1425 |
+# CONFIG_BLK_DEV_HD is not set |
|
1426 |
+CONFIG_BLK_DEV_RBD=m |
|
1427 |
+# CONFIG_BLK_DEV_RSXX is not set |
|
1428 |
+CONFIG_NVME_CORE=y |
|
1429 |
+CONFIG_BLK_DEV_NVME=m |
|
1430 |
+CONFIG_BLK_DEV_NVME_SCSI=y |
|
1431 |
+CONFIG_NVME_FABRICS=y |
|
1432 |
+CONFIG_NVME_TARGET=y |
|
1433 |
+CONFIG_NVME_TARGET_LOOP=y |
|
1434 |
+ |
|
1435 |
+# |
|
1436 |
+# Misc devices |
|
1437 |
+# |
|
1438 |
+# CONFIG_SENSORS_LIS3LV02D is not set |
|
1439 |
+# CONFIG_AD525X_DPOT is not set |
|
1440 |
+# CONFIG_DUMMY_IRQ is not set |
|
1441 |
+# CONFIG_IBM_ASM is not set |
|
1442 |
+# CONFIG_PHANTOM is not set |
|
1443 |
+# CONFIG_SGI_IOC4 is not set |
|
1444 |
+# CONFIG_TIFM_CORE is not set |
|
1445 |
+# CONFIG_ICS932S401 is not set |
|
1446 |
+# CONFIG_ENCLOSURE_SERVICES is not set |
|
1447 |
+# CONFIG_HP_ILO is not set |
|
1448 |
+# CONFIG_APDS9802ALS is not set |
|
1449 |
+# CONFIG_ISL29003 is not set |
|
1450 |
+# CONFIG_ISL29020 is not set |
|
1451 |
+# CONFIG_SENSORS_TSL2550 is not set |
|
1452 |
+# CONFIG_SENSORS_BH1770 is not set |
|
1453 |
+# CONFIG_SENSORS_APDS990X is not set |
|
1454 |
+# CONFIG_HMC6352 is not set |
|
1455 |
+# CONFIG_DS1682 is not set |
|
1456 |
+CONFIG_VMWARE_BALLOON=m |
|
1457 |
+# CONFIG_BMP085_I2C is not set |
|
1458 |
+# CONFIG_USB_SWITCH_FSA9480 is not set |
|
1459 |
+# CONFIG_SRAM is not set |
|
1460 |
+# CONFIG_C2PORT is not set |
|
1461 |
+ |
|
1462 |
+# |
|
1463 |
+# EEPROM support |
|
1464 |
+# |
|
1465 |
+# CONFIG_EEPROM_AT24 is not set |
|
1466 |
+# CONFIG_EEPROM_LEGACY is not set |
|
1467 |
+# CONFIG_EEPROM_MAX6875 is not set |
|
1468 |
+CONFIG_EEPROM_93CX6=m |
|
1469 |
+# CONFIG_CB710_CORE is not set |
|
1470 |
+ |
|
1471 |
+# |
|
1472 |
+# Texas Instruments shared transport line discipline |
|
1473 |
+# |
|
1474 |
+# CONFIG_SENSORS_LIS3_I2C is not set |
|
1475 |
+ |
|
1476 |
+# |
|
1477 |
+# Altera FPGA firmware download module |
|
1478 |
+# |
|
1479 |
+# CONFIG_ALTERA_STAPL is not set |
|
1480 |
+CONFIG_INTEL_MEI=m |
|
1481 |
+CONFIG_INTEL_MEI_ME=m |
|
1482 |
+# CONFIG_INTEL_MEI_TXE is not set |
|
1483 |
+CONFIG_VMWARE_VMCI=m |
|
1484 |
+ |
|
1485 |
+# |
|
1486 |
+# Intel MIC Bus Driver |
|
1487 |
+# |
|
1488 |
+# CONFIG_INTEL_MIC_BUS is not set |
|
1489 |
+ |
|
1490 |
+# |
|
1491 |
+# SCIF Bus Driver |
|
1492 |
+# |
|
1493 |
+# CONFIG_SCIF_BUS is not set |
|
1494 |
+ |
|
1495 |
+# |
|
1496 |
+# VOP Bus Driver |
|
1497 |
+# |
|
1498 |
+# CONFIG_VOP_BUS is not set |
|
1499 |
+ |
|
1500 |
+# |
|
1501 |
+# Intel MIC Host Driver |
|
1502 |
+# |
|
1503 |
+ |
|
1504 |
+# |
|
1505 |
+# Intel MIC Card Driver |
|
1506 |
+# |
|
1507 |
+ |
|
1508 |
+# |
|
1509 |
+# SCIF Driver |
|
1510 |
+# |
|
1511 |
+ |
|
1512 |
+# |
|
1513 |
+# Intel MIC Coprocessor State Management (COSM) Drivers |
|
1514 |
+# |
|
1515 |
+ |
|
1516 |
+# |
|
1517 |
+# VOP Driver |
|
1518 |
+# |
|
1519 |
+# CONFIG_GENWQE is not set |
|
1520 |
+# CONFIG_ECHO is not set |
|
1521 |
+# CONFIG_CXL_BASE is not set |
|
1522 |
+# CONFIG_CXL_AFU_DRIVER_OPS is not set |
|
1523 |
+CONFIG_HAVE_IDE=y |
|
1524 |
+CONFIG_IDE=y |
|
1525 |
+ |
|
1526 |
+# |
|
1527 |
+# Please see Documentation/ide/ide.txt for help/info on IDE drives |
|
1528 |
+# |
|
1529 |
+CONFIG_IDE_ATAPI=y |
|
1530 |
+# CONFIG_BLK_DEV_IDE_SATA is not set |
|
1531 |
+CONFIG_IDE_GD=y |
|
1532 |
+CONFIG_IDE_GD_ATA=y |
|
1533 |
+# CONFIG_IDE_GD_ATAPI is not set |
|
1534 |
+CONFIG_BLK_DEV_IDECD=y |
|
1535 |
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y |
|
1536 |
+# CONFIG_BLK_DEV_IDETAPE is not set |
|
1537 |
+CONFIG_BLK_DEV_IDEACPI=y |
|
1538 |
+# CONFIG_IDE_TASK_IOCTL is not set |
|
1539 |
+CONFIG_IDE_PROC_FS=y |
|
1540 |
+ |
|
1541 |
+# |
|
1542 |
+# IDE chipset support/bugfixes |
|
1543 |
+# |
|
1544 |
+CONFIG_IDE_GENERIC=y |
|
1545 |
+CONFIG_BLK_DEV_PLATFORM=y |
|
1546 |
+# CONFIG_BLK_DEV_CMD640 is not set |
|
1547 |
+# CONFIG_BLK_DEV_IDEPNP is not set |
|
1548 |
+ |
|
1549 |
+# |
|
1550 |
+# PCI IDE chipsets support |
|
1551 |
+# |
|
1552 |
+CONFIG_BLK_DEV_IDEPCI=y |
|
1553 |
+# CONFIG_IDEPCI_PCIBUS_ORDER is not set |
|
1554 |
+# CONFIG_BLK_DEV_OFFBOARD is not set |
|
1555 |
+CONFIG_BLK_DEV_GENERIC=y |
|
1556 |
+# CONFIG_BLK_DEV_OPTI621 is not set |
|
1557 |
+# CONFIG_BLK_DEV_RZ1000 is not set |
|
1558 |
+# CONFIG_BLK_DEV_AEC62XX is not set |
|
1559 |
+# CONFIG_BLK_DEV_ALI15X3 is not set |
|
1560 |
+# CONFIG_BLK_DEV_AMD74XX is not set |
|
1561 |
+# CONFIG_BLK_DEV_ATIIXP is not set |
|
1562 |
+# CONFIG_BLK_DEV_CMD64X is not set |
|
1563 |
+# CONFIG_BLK_DEV_TRIFLEX is not set |
|
1564 |
+# CONFIG_BLK_DEV_HPT366 is not set |
|
1565 |
+# CONFIG_BLK_DEV_JMICRON is not set |
|
1566 |
+# CONFIG_BLK_DEV_PIIX is not set |
|
1567 |
+# CONFIG_BLK_DEV_IT8172 is not set |
|
1568 |
+# CONFIG_BLK_DEV_IT8213 is not set |
|
1569 |
+# CONFIG_BLK_DEV_IT821X is not set |
|
1570 |
+# CONFIG_BLK_DEV_NS87415 is not set |
|
1571 |
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set |
|
1572 |
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set |
|
1573 |
+# CONFIG_BLK_DEV_SVWKS is not set |
|
1574 |
+# CONFIG_BLK_DEV_SIIMAGE is not set |
|
1575 |
+# CONFIG_BLK_DEV_SIS5513 is not set |
|
1576 |
+# CONFIG_BLK_DEV_SLC90E66 is not set |
|
1577 |
+# CONFIG_BLK_DEV_TRM290 is not set |
|
1578 |
+# CONFIG_BLK_DEV_VIA82CXXX is not set |
|
1579 |
+# CONFIG_BLK_DEV_TC86C001 is not set |
|
1580 |
+# CONFIG_BLK_DEV_IDEDMA is not set |
|
1581 |
+ |
|
1582 |
+# |
|
1583 |
+# SCSI device support |
|
1584 |
+# |
|
1585 |
+CONFIG_SCSI_MOD=y |
|
1586 |
+CONFIG_RAID_ATTRS=y |
|
1587 |
+CONFIG_SCSI=y |
|
1588 |
+CONFIG_SCSI_DMA=y |
|
1589 |
+CONFIG_SCSI_NETLINK=y |
|
1590 |
+# CONFIG_SCSI_MQ_DEFAULT is not set |
|
1591 |
+CONFIG_SCSI_PROC_FS=y |
|
1592 |
+ |
|
1593 |
+# |
|
1594 |
+# SCSI support type (disk, tape, CD-ROM) |
|
1595 |
+# |
|
1596 |
+CONFIG_BLK_DEV_SD=y |
|
1597 |
+# CONFIG_CHR_DEV_ST is not set |
|
1598 |
+# CONFIG_CHR_DEV_OSST is not set |
|
1599 |
+CONFIG_BLK_DEV_SR=y |
|
1600 |
+# CONFIG_BLK_DEV_SR_VENDOR is not set |
|
1601 |
+CONFIG_CHR_DEV_SG=y |
|
1602 |
+# CONFIG_CHR_DEV_SCH is not set |
|
1603 |
+# CONFIG_SCSI_CONSTANTS is not set |
|
1604 |
+# CONFIG_SCSI_LOGGING is not set |
|
1605 |
+CONFIG_SCSI_SCAN_ASYNC=y |
|
1606 |
+ |
|
1607 |
+# |
|
1608 |
+# SCSI Transports |
|
1609 |
+# |
|
1610 |
+CONFIG_SCSI_SPI_ATTRS=y |
|
1611 |
+CONFIG_SCSI_FC_ATTRS=m |
|
1612 |
+CONFIG_SCSI_ISCSI_ATTRS=y |
|
1613 |
+CONFIG_SCSI_SAS_ATTRS=y |
|
1614 |
+CONFIG_SCSI_SAS_LIBSAS=m |
|
1615 |
+CONFIG_SCSI_SAS_ATA=y |
|
1616 |
+CONFIG_SCSI_SAS_HOST_SMP=y |
|
1617 |
+CONFIG_SCSI_SRP_ATTRS=m |
|
1618 |
+CONFIG_SCSI_LOWLEVEL=y |
|
1619 |
+CONFIG_ISCSI_TCP=m |
|
1620 |
+CONFIG_ISCSI_BOOT_SYSFS=m |
|
1621 |
+CONFIG_SCSI_CXGB3_ISCSI=m |
|
1622 |
+CONFIG_SCSI_CXGB4_ISCSI=m |
|
1623 |
+CONFIG_SCSI_BNX2_ISCSI=m |
|
1624 |
+# CONFIG_SCSI_BNX2X_FCOE is not set |
|
1625 |
+CONFIG_BE2ISCSI=m |
|
1626 |
+CONFIG_BLK_DEV_3W_XXXX_RAID=m |
|
1627 |
+CONFIG_SCSI_HPSA=m |
|
1628 |
+CONFIG_SCSI_3W_9XXX=m |
|
1629 |
+CONFIG_SCSI_3W_SAS=m |
|
1630 |
+CONFIG_SCSI_ACARD=m |
|
1631 |
+CONFIG_SCSI_AACRAID=m |
|
1632 |
+CONFIG_SCSI_AIC7XXX=m |
|
1633 |
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 |
|
1634 |
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000 |
|
1635 |
+CONFIG_AIC7XXX_DEBUG_ENABLE=y |
|
1636 |
+CONFIG_AIC7XXX_DEBUG_MASK=0 |
|
1637 |
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y |
|
1638 |
+CONFIG_SCSI_AIC79XX=m |
|
1639 |
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32 |
|
1640 |
+CONFIG_AIC79XX_RESET_DELAY_MS=5000 |
|
1641 |
+CONFIG_AIC79XX_DEBUG_ENABLE=y |
|
1642 |
+CONFIG_AIC79XX_DEBUG_MASK=0 |
|
1643 |
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y |
|
1644 |
+CONFIG_SCSI_AIC94XX=m |
|
1645 |
+CONFIG_AIC94XX_DEBUG=y |
|
1646 |
+CONFIG_SCSI_MVSAS=m |
|
1647 |
+CONFIG_SCSI_MVSAS_DEBUG=y |
|
1648 |
+CONFIG_SCSI_MVSAS_TASKLET=y |
|
1649 |
+CONFIG_SCSI_MVUMI=m |
|
1650 |
+CONFIG_SCSI_DPT_I2O=m |
|
1651 |
+CONFIG_SCSI_ADVANSYS=m |
|
1652 |
+CONFIG_SCSI_ARCMSR=m |
|
1653 |
+CONFIG_SCSI_ESAS2R=m |
|
1654 |
+CONFIG_MEGARAID_NEWGEN=y |
|
1655 |
+CONFIG_MEGARAID_MM=m |
|
1656 |
+CONFIG_MEGARAID_MAILBOX=m |
|
1657 |
+CONFIG_MEGARAID_LEGACY=m |
|
1658 |
+CONFIG_MEGARAID_SAS=m |
|
1659 |
+CONFIG_SCSI_MPT3SAS=y |
|
1660 |
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128 |
|
1661 |
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128 |
|
1662 |
+CONFIG_SCSI_MPT2SAS=y |
|
1663 |
+CONFIG_SCSI_UFSHCD=m |
|
1664 |
+CONFIG_SCSI_UFSHCD_PCI=m |
|
1665 |
+# CONFIG_SCSI_UFS_DWC_TC_PCI is not set |
|
1666 |
+CONFIG_SCSI_UFSHCD_PLATFORM=m |
|
1667 |
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set |
|
1668 |
+CONFIG_SCSI_HPTIOP=m |
|
1669 |
+CONFIG_SCSI_BUSLOGIC=m |
|
1670 |
+CONFIG_SCSI_FLASHPOINT=y |
|
1671 |
+CONFIG_VMWARE_PVSCSI=y |
|
1672 |
+CONFIG_XEN_SCSI_FRONTEND=m |
|
1673 |
+CONFIG_HYPERV_STORAGE=m |
|
1674 |
+CONFIG_LIBFC=m |
|
1675 |
+CONFIG_LIBFCOE=m |
|
1676 |
+CONFIG_FCOE=m |
|
1677 |
+CONFIG_FCOE_FNIC=m |
|
1678 |
+# CONFIG_SCSI_SNIC is not set |
|
1679 |
+CONFIG_SCSI_DMX3191D=m |
|
1680 |
+CONFIG_SCSI_EATA=m |
|
1681 |
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y |
|
1682 |
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y |
|
1683 |
+CONFIG_SCSI_EATA_MAX_TAGS=16 |
|
1684 |
+CONFIG_SCSI_FUTURE_DOMAIN=m |
|
1685 |
+CONFIG_SCSI_GDTH=m |
|
1686 |
+CONFIG_SCSI_ISCI=m |
|
1687 |
+CONFIG_SCSI_IPS=m |
|
1688 |
+CONFIG_SCSI_INITIO=m |
|
1689 |
+CONFIG_SCSI_INIA100=m |
|
1690 |
+CONFIG_SCSI_STEX=m |
|
1691 |
+CONFIG_SCSI_SYM53C8XX_2=y |
|
1692 |
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 |
|
1693 |
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 |
|
1694 |
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
|
1695 |
+CONFIG_SCSI_SYM53C8XX_MMIO=y |
|
1696 |
+CONFIG_SCSI_IPR=m |
|
1697 |
+CONFIG_SCSI_IPR_TRACE=y |
|
1698 |
+CONFIG_SCSI_IPR_DUMP=y |
|
1699 |
+CONFIG_SCSI_QLOGIC_1280=m |
|
1700 |
+CONFIG_SCSI_QLA_FC=m |
|
1701 |
+CONFIG_SCSI_QLA_ISCSI=m |
|
1702 |
+CONFIG_SCSI_LPFC=m |
|
1703 |
+CONFIG_SCSI_LPFC_DEBUG_FS=y |
|
1704 |
+CONFIG_SCSI_DC395x=m |
|
1705 |
+CONFIG_SCSI_AM53C974=m |
|
1706 |
+CONFIG_SCSI_WD719X=m |
|
1707 |
+CONFIG_SCSI_DEBUG=m |
|
1708 |
+CONFIG_SCSI_PMCRAID=m |
|
1709 |
+CONFIG_SCSI_PM8001=m |
|
1710 |
+CONFIG_SCSI_BFA_FC=m |
|
1711 |
+CONFIG_SCSI_VIRTIO=y |
|
1712 |
+CONFIG_SCSI_CHELSIO_FCOE=m |
|
1713 |
+CONFIG_SCSI_DH=y |
|
1714 |
+CONFIG_SCSI_DH_RDAC=y |
|
1715 |
+CONFIG_SCSI_DH_HP_SW=m |
|
1716 |
+CONFIG_SCSI_DH_EMC=m |
|
1717 |
+CONFIG_SCSI_DH_ALUA=m |
|
1718 |
+CONFIG_SCSI_OSD_INITIATOR=m |
|
1719 |
+CONFIG_SCSI_OSD_ULD=m |
|
1720 |
+CONFIG_SCSI_OSD_DPRINT_SENSE=1 |
|
1721 |
+# CONFIG_SCSI_OSD_DEBUG is not set |
|
1722 |
+CONFIG_ATA=y |
|
1723 |
+# CONFIG_ATA_NONSTANDARD is not set |
|
1724 |
+CONFIG_ATA_VERBOSE_ERROR=y |
|
1725 |
+CONFIG_ATA_ACPI=y |
|
1726 |
+# CONFIG_SATA_ZPODD is not set |
|
1727 |
+CONFIG_SATA_PMP=y |
|
1728 |
+ |
|
1729 |
+# |
|
1730 |
+# Controllers with non-SFF native interface |
|
1731 |
+# |
|
1732 |
+CONFIG_SATA_AHCI=y |
|
1733 |
+# CONFIG_SATA_AHCI_PLATFORM is not set |
|
1734 |
+# CONFIG_SATA_INIC162X is not set |
|
1735 |
+# CONFIG_SATA_ACARD_AHCI is not set |
|
1736 |
+CONFIG_SATA_SIL24=y |
|
1737 |
+CONFIG_ATA_SFF=y |
|
1738 |
+ |
|
1739 |
+# |
|
1740 |
+# SFF controllers with custom DMA interface |
|
1741 |
+# |
|
1742 |
+CONFIG_PDC_ADMA=y |
|
1743 |
+CONFIG_SATA_QSTOR=y |
|
1744 |
+CONFIG_SATA_SX4=y |
|
1745 |
+CONFIG_ATA_BMDMA=y |
|
1746 |
+ |
|
1747 |
+# |
|
1748 |
+# SATA SFF controllers with BMDMA |
|
1749 |
+# |
|
1750 |
+CONFIG_ATA_PIIX=y |
|
1751 |
+# CONFIG_SATA_DWC is not set |
|
1752 |
+CONFIG_SATA_MV=y |
|
1753 |
+CONFIG_SATA_NV=y |
|
1754 |
+CONFIG_SATA_PROMISE=y |
|
1755 |
+CONFIG_SATA_SIL=y |
|
1756 |
+CONFIG_SATA_SIS=y |
|
1757 |
+CONFIG_SATA_SVW=y |
|
1758 |
+CONFIG_SATA_ULI=y |
|
1759 |
+CONFIG_SATA_VIA=y |
|
1760 |
+CONFIG_SATA_VITESSE=y |
|
1761 |
+ |
|
1762 |
+# |
|
1763 |
+# PATA SFF controllers with BMDMA |
|
1764 |
+# |
|
1765 |
+CONFIG_PATA_ALI=y |
|
1766 |
+CONFIG_PATA_AMD=y |
|
1767 |
+CONFIG_PATA_ARTOP=y |
|
1768 |
+CONFIG_PATA_ATIIXP=y |
|
1769 |
+CONFIG_PATA_ATP867X=y |
|
1770 |
+CONFIG_PATA_CMD64X=y |
|
1771 |
+CONFIG_PATA_CYPRESS=y |
|
1772 |
+CONFIG_PATA_EFAR=y |
|
1773 |
+CONFIG_PATA_HPT366=y |
|
1774 |
+CONFIG_PATA_HPT37X=y |
|
1775 |
+CONFIG_PATA_HPT3X2N=y |
|
1776 |
+CONFIG_PATA_HPT3X3=y |
|
1777 |
+CONFIG_PATA_HPT3X3_DMA=y |
|
1778 |
+CONFIG_PATA_IT8213=y |
|
1779 |
+CONFIG_PATA_IT821X=y |
|
1780 |
+CONFIG_PATA_JMICRON=y |
|
1781 |
+CONFIG_PATA_MARVELL=y |
|
1782 |
+CONFIG_PATA_NETCELL=y |
|
1783 |
+CONFIG_PATA_NINJA32=y |
|
1784 |
+CONFIG_PATA_NS87415=y |
|
1785 |
+CONFIG_PATA_OLDPIIX=y |
|
1786 |
+# CONFIG_PATA_OPTIDMA is not set |
|
1787 |
+CONFIG_PATA_PDC2027X=y |
|
1788 |
+# CONFIG_PATA_PDC_OLD is not set |
|
1789 |
+# CONFIG_PATA_RADISYS is not set |
|
1790 |
+# CONFIG_PATA_RDC is not set |
|
1791 |
+CONFIG_PATA_SCH=y |
|
1792 |
+# CONFIG_PATA_SERVERWORKS is not set |
|
1793 |
+# CONFIG_PATA_SIL680 is not set |
|
1794 |
+CONFIG_PATA_SIS=y |
|
1795 |
+# CONFIG_PATA_TOSHIBA is not set |
|
1796 |
+# CONFIG_PATA_TRIFLEX is not set |
|
1797 |
+CONFIG_PATA_VIA=y |
|
1798 |
+# CONFIG_PATA_WINBOND is not set |
|
1799 |
+ |
|
1800 |
+# |
|
1801 |
+# PIO-only SFF controllers |
|
1802 |
+# |
|
1803 |
+CONFIG_PATA_CMD640_PCI=y |
|
1804 |
+CONFIG_PATA_MPIIX=y |
|
1805 |
+CONFIG_PATA_NS87410=y |
|
1806 |
+CONFIG_PATA_OPTI=y |
|
1807 |
+# CONFIG_PATA_PLATFORM is not set |
|
1808 |
+CONFIG_PATA_RZ1000=y |
|
1809 |
+ |
|
1810 |
+# |
|
1811 |
+# Generic fallback / legacy drivers |
|
1812 |
+# |
|
1813 |
+CONFIG_PATA_ACPI=y |
|
1814 |
+CONFIG_ATA_GENERIC=y |
|
1815 |
+CONFIG_PATA_LEGACY=y |
|
1816 |
+CONFIG_MD=y |
|
1817 |
+CONFIG_BLK_DEV_MD=m |
|
1818 |
+CONFIG_MD_LINEAR=m |
|
1819 |
+CONFIG_MD_RAID0=m |
|
1820 |
+CONFIG_MD_RAID1=m |
|
1821 |
+CONFIG_MD_RAID10=m |
|
1822 |
+CONFIG_MD_RAID456=m |
|
1823 |
+CONFIG_MD_MULTIPATH=m |
|
1824 |
+# CONFIG_MD_FAULTY is not set |
|
1825 |
+# CONFIG_MD_CLUSTER is not set |
|
1826 |
+# CONFIG_BCACHE is not set |
|
1827 |
+CONFIG_BLK_DEV_DM_BUILTIN=y |
|
1828 |
+CONFIG_BLK_DEV_DM=m |
|
1829 |
+# CONFIG_DM_MQ_DEFAULT is not set |
|
1830 |
+# CONFIG_DM_DEBUG is not set |
|
1831 |
+CONFIG_DM_BUFIO=m |
|
1832 |
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set |
|
1833 |
+CONFIG_DM_BIO_PRISON=m |
|
1834 |
+CONFIG_DM_PERSISTENT_DATA=m |
|
1835 |
+CONFIG_DM_CRYPT=m |
|
1836 |
+CONFIG_DM_SNAPSHOT=m |
|
1837 |
+CONFIG_DM_THIN_PROVISIONING=m |
|
1838 |
+# CONFIG_DM_CACHE is not set |
|
1839 |
+# CONFIG_DM_ERA is not set |
|
1840 |
+CONFIG_DM_MIRROR=m |
|
1841 |
+# CONFIG_DM_LOG_USERSPACE is not set |
|
1842 |
+CONFIG_DM_RAID=m |
|
1843 |
+CONFIG_DM_ZERO=m |
|
1844 |
+CONFIG_DM_MULTIPATH=m |
|
1845 |
+# CONFIG_DM_MULTIPATH_QL is not set |
|
1846 |
+# CONFIG_DM_MULTIPATH_ST is not set |
|
1847 |
+# CONFIG_DM_DELAY is not set |
|
1848 |
+CONFIG_DM_UEVENT=y |
|
1849 |
+CONFIG_DM_FLAKEY=m |
|
1850 |
+CONFIG_DM_VERITY=m |
|
1851 |
+# CONFIG_DM_VERITY_FEC is not set |
|
1852 |
+# CONFIG_DM_SWITCH is not set |
|
1853 |
+# CONFIG_DM_LOG_WRITES is not set |
|
1854 |
+# CONFIG_TARGET_CORE is not set |
|
1855 |
+CONFIG_FUSION=y |
|
1856 |
+CONFIG_FUSION_SPI=y |
|
1857 |
+# CONFIG_FUSION_FC is not set |
|
1858 |
+CONFIG_FUSION_SAS=y |
|
1859 |
+CONFIG_FUSION_MAX_SGE=40 |
|
1860 |
+CONFIG_FUSION_CTL=y |
|
1861 |
+CONFIG_FUSION_LOGGING=y |
|
1862 |
+ |
|
1863 |
+# |
|
1864 |
+# IEEE 1394 (FireWire) support |
|
1865 |
+# |
|
1866 |
+# CONFIG_FIREWIRE is not set |
|
1867 |
+# CONFIG_FIREWIRE_NOSY is not set |
|
1868 |
+# CONFIG_MACINTOSH_DRIVERS is not set |
|
1869 |
+CONFIG_NETDEVICES=y |
|
1870 |
+CONFIG_MII=m |
|
1871 |
+CONFIG_NET_CORE=y |
|
1872 |
+CONFIG_BONDING=m |
|
1873 |
+CONFIG_DUMMY=m |
|
1874 |
+# CONFIG_EQUALIZER is not set |
|
1875 |
+# CONFIG_NET_FC is not set |
|
1876 |
+# CONFIG_IFB is not set |
|
1877 |
+# CONFIG_NET_TEAM is not set |
|
1878 |
+CONFIG_MACVLAN=m |
|
1879 |
+CONFIG_MACVTAP=m |
|
1880 |
+CONFIG_IPVLAN=m |
|
1881 |
+CONFIG_VXLAN=m |
|
1882 |
+CONFIG_GENEVE=m |
|
1883 |
+# CONFIG_GTP is not set |
|
1884 |
+# CONFIG_MACSEC is not set |
|
1885 |
+CONFIG_NETCONSOLE=m |
|
1886 |
+CONFIG_NETCONSOLE_DYNAMIC=y |
|
1887 |
+CONFIG_NETPOLL=y |
|
1888 |
+CONFIG_NET_POLL_CONTROLLER=y |
|
1889 |
+CONFIG_TUN=m |
|
1890 |
+# CONFIG_TUN_VNET_CROSS_LE is not set |
|
1891 |
+CONFIG_VETH=y |
|
1892 |
+CONFIG_VIRTIO_NET=y |
|
1893 |
+# CONFIG_NLMON is not set |
|
1894 |
+# CONFIG_ARCNET is not set |
|
1895 |
+ |
|
1896 |
+# |
|
1897 |
+# CAIF transport drivers |
|
1898 |
+# |
|
1899 |
+ |
|
1900 |
+# |
|
1901 |
+# Distributed Switch Architecture drivers |
|
1902 |
+# |
|
1903 |
+CONFIG_ETHERNET=y |
|
1904 |
+CONFIG_MDIO=m |
|
1905 |
+# CONFIG_NET_VENDOR_3COM is not set |
|
1906 |
+# CONFIG_NET_VENDOR_ADAPTEC is not set |
|
1907 |
+CONFIG_NET_VENDOR_AGERE=y |
|
1908 |
+# CONFIG_ET131X is not set |
|
1909 |
+CONFIG_NET_VENDOR_ALTEON=y |
|
1910 |
+CONFIG_ACENIC=m |
|
1911 |
+# CONFIG_ACENIC_OMIT_TIGON_I is not set |
|
1912 |
+# CONFIG_ALTERA_TSE is not set |
|
1913 |
+CONFIG_NET_VENDOR_AMD=y |
|
1914 |
+CONFIG_AMD8111_ETH=m |
|
1915 |
+CONFIG_PCNET32=m |
|
1916 |
+# CONFIG_NET_VENDOR_ARC is not set |
|
1917 |
+CONFIG_NET_VENDOR_ATHEROS=y |
|
1918 |
+CONFIG_ATL2=m |
|
1919 |
+CONFIG_ATL1=m |
|
1920 |
+CONFIG_ATL1E=m |
|
1921 |
+CONFIG_ATL1C=m |
|
1922 |
+CONFIG_ALX=m |
|
1923 |
+# CONFIG_NET_VENDOR_AURORA is not set |
|
1924 |
+CONFIG_NET_CADENCE=y |
|
1925 |
+# CONFIG_MACB is not set |
|
1926 |
+CONFIG_NET_VENDOR_BROADCOM=y |
|
1927 |
+CONFIG_B44=m |
|
1928 |
+CONFIG_B44_PCI_AUTOSELECT=y |
|
1929 |
+CONFIG_B44_PCICORE_AUTOSELECT=y |
|
1930 |
+CONFIG_B44_PCI=y |
|
1931 |
+# CONFIG_BCMGENET is not set |
|
1932 |
+CONFIG_BNX2=m |
|
1933 |
+CONFIG_CNIC=m |
|
1934 |
+CONFIG_TIGON3=m |
|
1935 |
+CONFIG_BNX2X=m |
|
1936 |
+CONFIG_BNX2X_SRIOV=y |
|
1937 |
+# CONFIG_BNXT is not set |
|
1938 |
+CONFIG_NET_VENDOR_BROCADE=y |
|
1939 |
+CONFIG_BNA=m |
|
1940 |
+CONFIG_NET_VENDOR_CAVIUM=y |
|
1941 |
+# CONFIG_THUNDER_NIC_PF is not set |
|
1942 |
+# CONFIG_THUNDER_NIC_VF is not set |
|
1943 |
+# CONFIG_THUNDER_NIC_BGX is not set |
|
1944 |
+# CONFIG_LIQUIDIO is not set |
|
1945 |
+CONFIG_NET_VENDOR_CHELSIO=y |
|
1946 |
+CONFIG_CHELSIO_T1=m |
|
1947 |
+CONFIG_CHELSIO_T1_1G=y |
|
1948 |
+CONFIG_CHELSIO_T3=m |
|
1949 |
+CONFIG_CHELSIO_T4=m |
|
1950 |
+# CONFIG_CHELSIO_T4_DCB is not set |
|
1951 |
+CONFIG_CHELSIO_T4VF=m |
|
1952 |
+CONFIG_CHELSIO_LIB=m |
|
1953 |
+CONFIG_NET_VENDOR_CISCO=y |
|
1954 |
+CONFIG_ENIC=m |
|
1955 |
+# CONFIG_CX_ECAT is not set |
|
1956 |
+# CONFIG_DNET is not set |
|
1957 |
+CONFIG_NET_VENDOR_DEC=y |
|
1958 |
+CONFIG_NET_TULIP=y |
|
1959 |
+# CONFIG_DE2104X is not set |
|
1960 |
+CONFIG_TULIP=m |
|
1961 |
+# CONFIG_TULIP_MWI is not set |
|
1962 |
+CONFIG_TULIP_MMIO=y |
|
1963 |
+CONFIG_TULIP_NAPI=y |
|
1964 |
+# CONFIG_TULIP_NAPI_HW_MITIGATION is not set |
|
1965 |
+# CONFIG_DE4X5 is not set |
|
1966 |
+# CONFIG_WINBOND_840 is not set |
|
1967 |
+# CONFIG_DM9102 is not set |
|
1968 |
+# CONFIG_ULI526X is not set |
|
1969 |
+CONFIG_NET_VENDOR_DLINK=y |
|
1970 |
+CONFIG_DL2K=m |
|
1971 |
+CONFIG_SUNDANCE=m |
|
1972 |
+# CONFIG_SUNDANCE_MMIO is not set |
|
1973 |
+CONFIG_NET_VENDOR_EMULEX=y |
|
1974 |
+CONFIG_BE2NET=m |
|
1975 |
+CONFIG_BE2NET_HWMON=y |
|
1976 |
+CONFIG_NET_VENDOR_EZCHIP=y |
|
1977 |
+CONFIG_NET_VENDOR_EXAR=y |
|
1978 |
+CONFIG_S2IO=m |
|
1979 |
+CONFIG_VXGE=m |
|
1980 |
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set |
|
1981 |
+CONFIG_NET_VENDOR_HP=y |
|
1982 |
+CONFIG_HP100=m |
|
1983 |
+CONFIG_NET_VENDOR_INTEL=y |
|
1984 |
+CONFIG_E100=m |
|
1985 |
+CONFIG_E1000=y |
|
1986 |
+CONFIG_E1000E=y |
|
1987 |
+CONFIG_E1000E_HWTS=y |
|
1988 |
+CONFIG_IGB=m |
|
1989 |
+CONFIG_IGB_HWMON=y |
|
1990 |
+CONFIG_IGB_DCA=y |
|
1991 |
+CONFIG_IGBVF=m |
|
1992 |
+CONFIG_IXGB=m |
|
1993 |
+CONFIG_IXGBE=m |
|
1994 |
+CONFIG_IXGBE_HWMON=y |
|
1995 |
+CONFIG_IXGBE_DCA=y |
|
1996 |
+CONFIG_IXGBE_DCB=y |
|
1997 |
+CONFIG_IXGBEVF=m |
|
1998 |
+CONFIG_I40E=m |
|
1999 |
+CONFIG_I40E_DCB=y |
|
2000 |
+# CONFIG_I40E_FCOE is not set |
|
2001 |
+CONFIG_I40EVF=m |
|
2002 |
+CONFIG_FM10K=m |
|
2003 |
+CONFIG_NET_VENDOR_I825XX=y |
|
2004 |
+CONFIG_JME=m |
|
2005 |
+CONFIG_NET_VENDOR_MARVELL=y |
|
2006 |
+# CONFIG_MVMDIO is not set |
|
2007 |
+# CONFIG_MVNETA_BM is not set |
|
2008 |
+CONFIG_SKGE=m |
|
2009 |
+# CONFIG_SKGE_DEBUG is not set |
|
2010 |
+# CONFIG_SKGE_GENESIS is not set |
|
2011 |
+CONFIG_SKY2=m |
|
2012 |
+# CONFIG_SKY2_DEBUG is not set |
|
2013 |
+CONFIG_NET_VENDOR_MELLANOX=y |
|
2014 |
+CONFIG_MLX4_EN=m |
|
2015 |
+CONFIG_MLX4_EN_DCB=y |
|
2016 |
+CONFIG_MLX4_CORE=m |
|
2017 |
+CONFIG_MLX4_DEBUG=y |
|
2018 |
+# CONFIG_MLX5_CORE is not set |
|
2019 |
+# CONFIG_MLXSW_CORE is not set |
|
2020 |
+# CONFIG_NET_VENDOR_MICREL is not set |
|
2021 |
+CONFIG_NET_VENDOR_MYRI=y |
|
2022 |
+CONFIG_MYRI10GE=m |
|
2023 |
+CONFIG_MYRI10GE_DCA=y |
|
2024 |
+# CONFIG_FEALNX is not set |
|
2025 |
+# CONFIG_NET_VENDOR_NATSEMI is not set |
|
2026 |
+# CONFIG_NET_VENDOR_NETRONOME is not set |
|
2027 |
+CONFIG_NET_VENDOR_NVIDIA=y |
|
2028 |
+CONFIG_FORCEDETH=m |
|
2029 |
+# CONFIG_NET_VENDOR_OKI is not set |
|
2030 |
+# CONFIG_ETHOC is not set |
|
2031 |
+# CONFIG_NET_PACKET_ENGINE is not set |
|
2032 |
+CONFIG_NET_VENDOR_QLOGIC=y |
|
2033 |
+# CONFIG_QLA3XXX is not set |
|
2034 |
+# CONFIG_QLCNIC is not set |
|
2035 |
+# CONFIG_QLGE is not set |
|
2036 |
+CONFIG_NETXEN_NIC=m |
|
2037 |
+# CONFIG_QED is not set |
|
2038 |
+CONFIG_NET_VENDOR_QUALCOMM=y |
|
2039 |
+CONFIG_NET_VENDOR_REALTEK=y |
|
2040 |
+CONFIG_8139CP=m |
|
2041 |
+CONFIG_8139TOO=m |
|
2042 |
+CONFIG_8139TOO_PIO=y |
|
2043 |
+CONFIG_8139TOO_TUNE_TWISTER=y |
|
2044 |
+CONFIG_8139TOO_8129=y |
|
2045 |
+# CONFIG_8139_OLD_RX_RESET is not set |
|
2046 |
+CONFIG_R8169=m |
|
2047 |
+CONFIG_NET_VENDOR_RENESAS=y |
|
2048 |
+# CONFIG_NET_VENDOR_RDC is not set |
|
2049 |
+CONFIG_NET_VENDOR_ROCKER=y |
|
2050 |
+CONFIG_NET_VENDOR_SAMSUNG=y |
|
2051 |
+# CONFIG_SXGBE_ETH is not set |
|
2052 |
+# CONFIG_NET_VENDOR_SEEQ is not set |
|
2053 |
+# CONFIG_NET_VENDOR_SILAN is not set |
|
2054 |
+# CONFIG_NET_VENDOR_SIS is not set |
|
2055 |
+# CONFIG_SFC is not set |
|
2056 |
+# CONFIG_NET_VENDOR_SMSC is not set |
|
2057 |
+# CONFIG_NET_VENDOR_STMICRO is not set |
|
2058 |
+# CONFIG_NET_VENDOR_SUN is not set |
|
2059 |
+# CONFIG_NET_VENDOR_SYNOPSYS is not set |
|
2060 |
+# CONFIG_NET_VENDOR_TEHUTI is not set |
|
2061 |
+# CONFIG_NET_VENDOR_TI is not set |
|
2062 |
+# CONFIG_NET_VENDOR_VIA is not set |
|
2063 |
+# CONFIG_NET_VENDOR_WIZNET is not set |
|
2064 |
+# CONFIG_FDDI is not set |
|
2065 |
+# CONFIG_HIPPI is not set |
|
2066 |
+# CONFIG_NET_SB1000 is not set |
|
2067 |
+CONFIG_PHYLIB=y |
|
2068 |
+CONFIG_SWPHY=y |
|
2069 |
+ |
|
2070 |
+# |
|
2071 |
+# MII PHY device drivers |
|
2072 |
+# |
|
2073 |
+# CONFIG_AQUANTIA_PHY is not set |
|
2074 |
+CONFIG_AT803X_PHY=m |
|
2075 |
+CONFIG_AMD_PHY=m |
|
2076 |
+CONFIG_MARVELL_PHY=m |
|
2077 |
+# CONFIG_DAVICOM_PHY is not set |
|
2078 |
+# CONFIG_QSEMI_PHY is not set |
|
2079 |
+CONFIG_LXT_PHY=m |
|
2080 |
+# CONFIG_CICADA_PHY is not set |
|
2081 |
+# CONFIG_VITESSE_PHY is not set |
|
2082 |
+# CONFIG_TERANETICS_PHY is not set |
|
2083 |
+# CONFIG_SMSC_PHY is not set |
|
2084 |
+CONFIG_BCM_NET_PHYLIB=m |
|
2085 |
+CONFIG_BROADCOM_PHY=m |
|
2086 |
+CONFIG_BCM7XXX_PHY=m |
|
2087 |
+CONFIG_BCM87XX_PHY=m |
|
2088 |
+# CONFIG_ICPLUS_PHY is not set |
|
2089 |
+CONFIG_REALTEK_PHY=m |
|
2090 |
+CONFIG_NATIONAL_PHY=m |
|
2091 |
+CONFIG_STE10XP=m |
|
2092 |
+CONFIG_LSI_ET1011C_PHY=m |
|
2093 |
+CONFIG_MICREL_PHY=m |
|
2094 |
+# CONFIG_DP83848_PHY is not set |
|
2095 |
+# CONFIG_DP83867_PHY is not set |
|
2096 |
+# CONFIG_MICROCHIP_PHY is not set |
|
2097 |
+CONFIG_FIXED_PHY=y |
|
2098 |
+# CONFIG_MDIO_BITBANG is not set |
|
2099 |
+# CONFIG_MDIO_OCTEON is not set |
|
2100 |
+# CONFIG_MDIO_THUNDER is not set |
|
2101 |
+# CONFIG_MDIO_BCM_UNIMAC is not set |
|
2102 |
+# CONFIG_INTEL_XWAY_PHY is not set |
|
2103 |
+# CONFIG_PPP is not set |
|
2104 |
+# CONFIG_SLIP is not set |
|
2105 |
+ |
|
2106 |
+# |
|
2107 |
+# Host-side USB support is needed for USB Network Adapter support |
|
2108 |
+# |
|
2109 |
+CONFIG_USB_NET_DRIVERS=m |
|
2110 |
+# CONFIG_USB_CATC is not set |
|
2111 |
+# CONFIG_USB_KAWETH is not set |
|
2112 |
+# CONFIG_USB_PEGASUS is not set |
|
2113 |
+# CONFIG_USB_RTL8150 is not set |
|
2114 |
+# CONFIG_USB_RTL8152 is not set |
|
2115 |
+# CONFIG_USB_LAN78XX is not set |
|
2116 |
+# CONFIG_USB_USBNET is not set |
|
2117 |
+# CONFIG_USB_IPHETH is not set |
|
2118 |
+# CONFIG_WLAN is not set |
|
2119 |
+ |
|
2120 |
+# |
|
2121 |
+# Enable WiMAX (Networking options) to see the WiMAX drivers |
|
2122 |
+# |
|
2123 |
+# CONFIG_WAN is not set |
|
2124 |
+CONFIG_XEN_NETDEV_FRONTEND=m |
|
2125 |
+# CONFIG_XEN_NETDEV_BACKEND is not set |
|
2126 |
+CONFIG_VMXNET3=y |
|
2127 |
+# CONFIG_FUJITSU_ES is not set |
|
2128 |
+CONFIG_HYPERV_NET=m |
|
2129 |
+# CONFIG_ISDN is not set |
|
2130 |
+# CONFIG_NVM is not set |
|
2131 |
+ |
|
2132 |
+# |
|
2133 |
+# Input device support |
|
2134 |
+# |
|
2135 |
+CONFIG_INPUT=y |
|
2136 |
+# CONFIG_INPUT_FF_MEMLESS is not set |
|
2137 |
+# CONFIG_INPUT_POLLDEV is not set |
|
2138 |
+# CONFIG_INPUT_SPARSEKMAP is not set |
|
2139 |
+# CONFIG_INPUT_MATRIXKMAP is not set |
|
2140 |
+ |
|
2141 |
+# |
|
2142 |
+# Userland interfaces |
|
2143 |
+# |
|
2144 |
+CONFIG_INPUT_MOUSEDEV=m |
|
2145 |
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set |
|
2146 |
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
|
2147 |
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
|
2148 |
+# CONFIG_INPUT_JOYDEV is not set |
|
2149 |
+CONFIG_INPUT_EVDEV=m |
|
2150 |
+# CONFIG_INPUT_EVBUG is not set |
|
2151 |
+ |
|
2152 |
+# |
|
2153 |
+# Input Device Drivers |
|
2154 |
+# |
|
2155 |
+CONFIG_INPUT_KEYBOARD=y |
|
2156 |
+# CONFIG_KEYBOARD_ADP5588 is not set |
|
2157 |
+# CONFIG_KEYBOARD_ADP5589 is not set |
|
2158 |
+CONFIG_KEYBOARD_ATKBD=y |
|
2159 |
+# CONFIG_KEYBOARD_QT1070 is not set |
|
2160 |
+# CONFIG_KEYBOARD_QT2160 is not set |
|
2161 |
+# CONFIG_KEYBOARD_LKKBD is not set |
|
2162 |
+# CONFIG_KEYBOARD_TCA6416 is not set |
|
2163 |
+# CONFIG_KEYBOARD_TCA8418 is not set |
|
2164 |
+# CONFIG_KEYBOARD_LM8333 is not set |
|
2165 |
+# CONFIG_KEYBOARD_MAX7359 is not set |
|
2166 |
+# CONFIG_KEYBOARD_MCS is not set |
|
2167 |
+# CONFIG_KEYBOARD_MPR121 is not set |
|
2168 |
+# CONFIG_KEYBOARD_NEWTON is not set |
|
2169 |
+# CONFIG_KEYBOARD_OPENCORES is not set |
|
2170 |
+# CONFIG_KEYBOARD_STOWAWAY is not set |
|
2171 |
+# CONFIG_KEYBOARD_SUNKBD is not set |
|
2172 |
+# CONFIG_KEYBOARD_XTKBD is not set |
|
2173 |
+CONFIG_INPUT_MOUSE=y |
|
2174 |
+CONFIG_MOUSE_PS2=m |
|
2175 |
+CONFIG_MOUSE_PS2_ALPS=y |
|
2176 |
+# CONFIG_MOUSE_PS2_BYD is not set |
|
2177 |
+CONFIG_MOUSE_PS2_LOGIPS2PP=y |
|
2178 |
+CONFIG_MOUSE_PS2_SYNAPTICS=y |
|
2179 |
+CONFIG_MOUSE_PS2_CYPRESS=y |
|
2180 |
+CONFIG_MOUSE_PS2_LIFEBOOK=y |
|
2181 |
+CONFIG_MOUSE_PS2_TRACKPOINT=y |
|
2182 |
+# CONFIG_MOUSE_PS2_ELANTECH is not set |
|
2183 |
+# CONFIG_MOUSE_PS2_SENTELIC is not set |
|
2184 |
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set |
|
2185 |
+CONFIG_MOUSE_PS2_FOCALTECH=y |
|
2186 |
+# CONFIG_MOUSE_PS2_VMMOUSE is not set |
|
2187 |
+# CONFIG_MOUSE_SERIAL is not set |
|
2188 |
+# CONFIG_MOUSE_APPLETOUCH is not set |
|
2189 |
+# CONFIG_MOUSE_BCM5974 is not set |
|
2190 |
+# CONFIG_MOUSE_CYAPA is not set |
|
2191 |
+# CONFIG_MOUSE_ELAN_I2C is not set |
|
2192 |
+# CONFIG_MOUSE_VSXXXAA is not set |
|
2193 |
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set |
|
2194 |
+# CONFIG_MOUSE_SYNAPTICS_USB is not set |
|
2195 |
+# CONFIG_INPUT_JOYSTICK is not set |
|
2196 |
+# CONFIG_INPUT_TABLET is not set |
|
2197 |
+# CONFIG_INPUT_TOUCHSCREEN is not set |
|
2198 |
+CONFIG_INPUT_MISC=y |
|
2199 |
+# CONFIG_INPUT_AD714X is not set |
|
2200 |
+# CONFIG_INPUT_BMA150 is not set |
|
2201 |
+# CONFIG_INPUT_E3X0_BUTTON is not set |
|
2202 |
+# CONFIG_INPUT_MMA8450 is not set |
|
2203 |
+# CONFIG_INPUT_MPU3050 is not set |
|
2204 |
+# CONFIG_INPUT_ATLAS_BTNS is not set |
|
2205 |
+# CONFIG_INPUT_ATI_REMOTE2 is not set |
|
2206 |
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set |
|
2207 |
+# CONFIG_INPUT_KXTJ9 is not set |
|
2208 |
+# CONFIG_INPUT_POWERMATE is not set |
|
2209 |
+# CONFIG_INPUT_YEALINK is not set |
|
2210 |
+# CONFIG_INPUT_CM109 is not set |
|
2211 |
+# CONFIG_INPUT_UINPUT is not set |
|
2212 |
+# CONFIG_INPUT_PCF8574 is not set |
|
2213 |
+# CONFIG_INPUT_ADXL34X is not set |
|
2214 |
+# CONFIG_INPUT_CMA3000 is not set |
|
2215 |
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y |
|
2216 |
+# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set |
|
2217 |
+# CONFIG_INPUT_DRV2665_HAPTICS is not set |
|
2218 |
+# CONFIG_INPUT_DRV2667_HAPTICS is not set |
|
2219 |
+# CONFIG_RMI4_CORE is not set |
|
2220 |
+ |
|
2221 |
+# |
|
2222 |
+# Hardware I/O ports |
|
2223 |
+# |
|
2224 |
+CONFIG_SERIO=y |
|
2225 |
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y |
|
2226 |
+CONFIG_SERIO_I8042=y |
|
2227 |
+# CONFIG_SERIO_SERPORT is not set |
|
2228 |
+# CONFIG_SERIO_CT82C710 is not set |
|
2229 |
+# CONFIG_SERIO_PCIPS2 is not set |
|
2230 |
+CONFIG_SERIO_LIBPS2=y |
|
2231 |
+# CONFIG_SERIO_RAW is not set |
|
2232 |
+# CONFIG_SERIO_ALTERA_PS2 is not set |
|
2233 |
+# CONFIG_SERIO_PS2MULT is not set |
|
2234 |
+# CONFIG_SERIO_ARC_PS2 is not set |
|
2235 |
+CONFIG_HYPERV_KEYBOARD=m |
|
2236 |
+# CONFIG_USERIO is not set |
|
2237 |
+# CONFIG_GAMEPORT is not set |
|
2238 |
+ |
|
2239 |
+# |
|
2240 |
+# Character devices |
|
2241 |
+# |
|
2242 |
+CONFIG_TTY=y |
|
2243 |
+CONFIG_VT=y |
|
2244 |
+CONFIG_CONSOLE_TRANSLATIONS=y |
|
2245 |
+CONFIG_VT_CONSOLE=y |
|
2246 |
+CONFIG_VT_CONSOLE_SLEEP=y |
|
2247 |
+CONFIG_HW_CONSOLE=y |
|
2248 |
+CONFIG_VT_HW_CONSOLE_BINDING=y |
|
2249 |
+CONFIG_UNIX98_PTYS=y |
|
2250 |
+# CONFIG_LEGACY_PTYS is not set |
|
2251 |
+# CONFIG_SERIAL_NONSTANDARD is not set |
|
2252 |
+# CONFIG_NOZOMI is not set |
|
2253 |
+# CONFIG_N_GSM is not set |
|
2254 |
+# CONFIG_TRACE_SINK is not set |
|
2255 |
+CONFIG_DEVMEM=y |
|
2256 |
+# CONFIG_DEVKMEM is not set |
|
2257 |
+ |
|
2258 |
+# |
|
2259 |
+# Serial drivers |
|
2260 |
+# |
|
2261 |
+CONFIG_SERIAL_EARLYCON=y |
|
2262 |
+CONFIG_SERIAL_8250=y |
|
2263 |
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y |
|
2264 |
+CONFIG_SERIAL_8250_PNP=y |
|
2265 |
+# CONFIG_SERIAL_8250_FINTEK is not set |
|
2266 |
+CONFIG_SERIAL_8250_CONSOLE=y |
|
2267 |
+CONFIG_SERIAL_8250_DMA=y |
|
2268 |
+CONFIG_SERIAL_8250_PCI=y |
|
2269 |
+CONFIG_SERIAL_8250_NR_UARTS=32 |
|
2270 |
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
|
2271 |
+CONFIG_SERIAL_8250_EXTENDED=y |
|
2272 |
+CONFIG_SERIAL_8250_MANY_PORTS=y |
|
2273 |
+CONFIG_SERIAL_8250_SHARE_IRQ=y |
|
2274 |
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set |
|
2275 |
+CONFIG_SERIAL_8250_RSA=y |
|
2276 |
+# CONFIG_SERIAL_8250_FSL is not set |
|
2277 |
+# CONFIG_SERIAL_8250_DW is not set |
|
2278 |
+# CONFIG_SERIAL_8250_RT288X is not set |
|
2279 |
+# CONFIG_SERIAL_8250_MID is not set |
|
2280 |
+# CONFIG_SERIAL_8250_MOXA is not set |
|
2281 |
+ |
|
2282 |
+# |
|
2283 |
+# Non-8250 serial port support |
|
2284 |
+# |
|
2285 |
+# CONFIG_SERIAL_UARTLITE is not set |
|
2286 |
+CONFIG_SERIAL_CORE=y |
|
2287 |
+CONFIG_SERIAL_CORE_CONSOLE=y |
|
2288 |
+# CONFIG_SERIAL_JSM is not set |
|
2289 |
+# CONFIG_SERIAL_SCCNXP is not set |
|
2290 |
+# CONFIG_SERIAL_SC16IS7XX is not set |
|
2291 |
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set |
|
2292 |
+# CONFIG_SERIAL_ALTERA_UART is not set |
|
2293 |
+# CONFIG_SERIAL_ARC is not set |
|
2294 |
+# CONFIG_SERIAL_RP2 is not set |
|
2295 |
+# CONFIG_SERIAL_FSL_LPUART is not set |
|
2296 |
+# CONFIG_TTY_PRINTK is not set |
|
2297 |
+CONFIG_HVC_DRIVER=y |
|
2298 |
+CONFIG_HVC_IRQ=y |
|
2299 |
+CONFIG_HVC_XEN=y |
|
2300 |
+CONFIG_HVC_XEN_FRONTEND=y |
|
2301 |
+CONFIG_VIRTIO_CONSOLE=m |
|
2302 |
+CONFIG_IPMI_HANDLER=m |
|
2303 |
+CONFIG_IPMI_PANIC_EVENT=y |
|
2304 |
+CONFIG_IPMI_PANIC_STRING=y |
|
2305 |
+CONFIG_IPMI_DEVICE_INTERFACE=m |
|
2306 |
+CONFIG_IPMI_SI=m |
|
2307 |
+# CONFIG_IPMI_SSIF is not set |
|
2308 |
+CONFIG_IPMI_WATCHDOG=m |
|
2309 |
+CONFIG_IPMI_POWEROFF=m |
|
2310 |
+CONFIG_HW_RANDOM=m |
|
2311 |
+CONFIG_HW_RANDOM_TIMERIOMEM=m |
|
2312 |
+CONFIG_HW_RANDOM_INTEL=m |
|
2313 |
+CONFIG_HW_RANDOM_AMD=m |
|
2314 |
+CONFIG_HW_RANDOM_VIA=m |
|
2315 |
+CONFIG_HW_RANDOM_VIRTIO=m |
|
2316 |
+CONFIG_HW_RANDOM_TPM=m |
|
2317 |
+CONFIG_NVRAM=m |
|
2318 |
+# CONFIG_R3964 is not set |
|
2319 |
+# CONFIG_APPLICOM is not set |
|
2320 |
+# CONFIG_MWAVE is not set |
|
2321 |
+CONFIG_RAW_DRIVER=m |
|
2322 |
+CONFIG_MAX_RAW_DEVS=8192 |
|
2323 |
+CONFIG_HPET=y |
|
2324 |
+CONFIG_HPET_MMAP=y |
|
2325 |
+CONFIG_HPET_MMAP_DEFAULT=y |
|
2326 |
+CONFIG_HANGCHECK_TIMER=m |
|
2327 |
+CONFIG_TCG_TPM=m |
|
2328 |
+CONFIG_TCG_TIS_CORE=m |
|
2329 |
+CONFIG_TCG_TIS=m |
|
2330 |
+CONFIG_TCG_TIS_I2C_ATMEL=m |
|
2331 |
+CONFIG_TCG_TIS_I2C_INFINEON=m |
|
2332 |
+CONFIG_TCG_TIS_I2C_NUVOTON=m |
|
2333 |
+CONFIG_TCG_NSC=m |
|
2334 |
+CONFIG_TCG_ATMEL=m |
|
2335 |
+CONFIG_TCG_INFINEON=m |
|
2336 |
+CONFIG_TCG_XEN=m |
|
2337 |
+# CONFIG_TCG_CRB is not set |
|
2338 |
+# CONFIG_TCG_VTPM_PROXY is not set |
|
2339 |
+# CONFIG_TCG_TIS_ST33ZP24_I2C is not set |
|
2340 |
+# CONFIG_TELCLOCK is not set |
|
2341 |
+CONFIG_DEVPORT=y |
|
2342 |
+# CONFIG_XILLYBUS is not set |
|
2343 |
+ |
|
2344 |
+# |
|
2345 |
+# I2C support |
|
2346 |
+# |
|
2347 |
+CONFIG_I2C=y |
|
2348 |
+CONFIG_ACPI_I2C_OPREGION=y |
|
2349 |
+CONFIG_I2C_BOARDINFO=y |
|
2350 |
+# CONFIG_I2C_COMPAT is not set |
|
2351 |
+# CONFIG_I2C_CHARDEV is not set |
|
2352 |
+# CONFIG_I2C_MUX is not set |
|
2353 |
+CONFIG_I2C_HELPER_AUTO=y |
|
2354 |
+CONFIG_I2C_SMBUS=m |
|
2355 |
+CONFIG_I2C_ALGOBIT=y |
|
2356 |
+ |
|
2357 |
+# |
|
2358 |
+# I2C Hardware Bus support |
|
2359 |
+# |
|
2360 |
+ |
|
2361 |
+# |
|
2362 |
+# PC SMBus host controller drivers |
|
2363 |
+# |
|
2364 |
+# CONFIG_I2C_ALI1535 is not set |
|
2365 |
+# CONFIG_I2C_ALI1563 is not set |
|
2366 |
+# CONFIG_I2C_ALI15X3 is not set |
|
2367 |
+CONFIG_I2C_AMD756=m |
|
2368 |
+# CONFIG_I2C_AMD756_S4882 is not set |
|
2369 |
+CONFIG_I2C_AMD8111=m |
|
2370 |
+CONFIG_I2C_I801=m |
|
2371 |
+# CONFIG_I2C_ISCH is not set |
|
2372 |
+# CONFIG_I2C_ISMT is not set |
|
2373 |
+CONFIG_I2C_PIIX4=m |
|
2374 |
+# CONFIG_I2C_NFORCE2 is not set |
|
2375 |
+# CONFIG_I2C_SIS5595 is not set |
|
2376 |
+# CONFIG_I2C_SIS630 is not set |
|
2377 |
+# CONFIG_I2C_SIS96X is not set |
|
2378 |
+# CONFIG_I2C_VIA is not set |
|
2379 |
+# CONFIG_I2C_VIAPRO is not set |
|
2380 |
+ |
|
2381 |
+# |
|
2382 |
+# ACPI drivers |
|
2383 |
+# |
|
2384 |
+# CONFIG_I2C_SCMI is not set |
|
2385 |
+ |
|
2386 |
+# |
|
2387 |
+# I2C system bus drivers (mostly embedded / system-on-chip) |
|
2388 |
+# |
|
2389 |
+# CONFIG_I2C_DESIGNWARE_PCI is not set |
|
2390 |
+# CONFIG_I2C_OCORES is not set |
|
2391 |
+# CONFIG_I2C_PCA_PLATFORM is not set |
|
2392 |
+# CONFIG_I2C_PXA_PCI is not set |
|
2393 |
+# CONFIG_I2C_SIMTEC is not set |
|
2394 |
+# CONFIG_I2C_XILINX is not set |
|
2395 |
+ |
|
2396 |
+# |
|
2397 |
+# External I2C/SMBus adapter drivers |
|
2398 |
+# |
|
2399 |
+# CONFIG_I2C_DIOLAN_U2C is not set |
|
2400 |
+# CONFIG_I2C_PARPORT_LIGHT is not set |
|
2401 |
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set |
|
2402 |
+# CONFIG_I2C_TAOS_EVM is not set |
|
2403 |
+# CONFIG_I2C_TINY_USB is not set |
|
2404 |
+ |
|
2405 |
+# |
|
2406 |
+# Other I2C/SMBus bus drivers |
|
2407 |
+# |
|
2408 |
+# CONFIG_I2C_STUB is not set |
|
2409 |
+# CONFIG_I2C_SLAVE is not set |
|
2410 |
+# CONFIG_I2C_DEBUG_CORE is not set |
|
2411 |
+# CONFIG_I2C_DEBUG_ALGO is not set |
|
2412 |
+# CONFIG_I2C_DEBUG_BUS is not set |
|
2413 |
+# CONFIG_SPI is not set |
|
2414 |
+# CONFIG_SPMI is not set |
|
2415 |
+# CONFIG_HSI is not set |
|
2416 |
+ |
|
2417 |
+# |
|
2418 |
+# PPS support |
|
2419 |
+# |
|
2420 |
+CONFIG_PPS=y |
|
2421 |
+# CONFIG_PPS_DEBUG is not set |
|
2422 |
+ |
|
2423 |
+# |
|
2424 |
+# PPS clients support |
|
2425 |
+# |
|
2426 |
+# CONFIG_PPS_CLIENT_KTIMER is not set |
|
2427 |
+# CONFIG_PPS_CLIENT_LDISC is not set |
|
2428 |
+# CONFIG_PPS_CLIENT_GPIO is not set |
|
2429 |
+ |
|
2430 |
+# |
|
2431 |
+# PPS generators support |
|
2432 |
+# |
|
2433 |
+ |
|
2434 |
+# |
|
2435 |
+# PTP clock support |
|
2436 |
+# |
|
2437 |
+CONFIG_PTP_1588_CLOCK=y |
|
2438 |
+# CONFIG_DP83640_PHY is not set |
|
2439 |
+# CONFIG_GPIOLIB is not set |
|
2440 |
+# CONFIG_W1 is not set |
|
2441 |
+CONFIG_POWER_SUPPLY=y |
|
2442 |
+# CONFIG_POWER_SUPPLY_DEBUG is not set |
|
2443 |
+# CONFIG_PDA_POWER is not set |
|
2444 |
+# CONFIG_TEST_POWER is not set |
|
2445 |
+# CONFIG_BATTERY_DS2780 is not set |
|
2446 |
+# CONFIG_BATTERY_DS2781 is not set |
|
2447 |
+# CONFIG_BATTERY_DS2782 is not set |
|
2448 |
+# CONFIG_BATTERY_SBS is not set |
|
2449 |
+# CONFIG_BATTERY_BQ27XXX is not set |
|
2450 |
+# CONFIG_BATTERY_MAX17040 is not set |
|
2451 |
+# CONFIG_BATTERY_MAX17042 is not set |
|
2452 |
+# CONFIG_CHARGER_MAX8903 is not set |
|
2453 |
+# CONFIG_CHARGER_LP8727 is not set |
|
2454 |
+# CONFIG_CHARGER_BQ2415X is not set |
|
2455 |
+# CONFIG_CHARGER_SMB347 is not set |
|
2456 |
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set |
|
2457 |
+# CONFIG_POWER_RESET is not set |
|
2458 |
+# CONFIG_POWER_AVS is not set |
|
2459 |
+CONFIG_HWMON=m |
|
2460 |
+# CONFIG_HWMON_VID is not set |
|
2461 |
+# CONFIG_HWMON_DEBUG_CHIP is not set |
|
2462 |
+ |
|
2463 |
+# |
|
2464 |
+# Native drivers |
|
2465 |
+# |
|
2466 |
+# CONFIG_SENSORS_ABITUGURU is not set |
|
2467 |
+# CONFIG_SENSORS_ABITUGURU3 is not set |
|
2468 |
+# CONFIG_SENSORS_AD7414 is not set |
|
2469 |
+# CONFIG_SENSORS_AD7418 is not set |
|
2470 |
+# CONFIG_SENSORS_ADM1021 is not set |
|
2471 |
+# CONFIG_SENSORS_ADM1025 is not set |
|
2472 |
+# CONFIG_SENSORS_ADM1026 is not set |
|
2473 |
+# CONFIG_SENSORS_ADM1029 is not set |
|
2474 |
+# CONFIG_SENSORS_ADM1031 is not set |
|
2475 |
+# CONFIG_SENSORS_ADM9240 is not set |
|
2476 |
+# CONFIG_SENSORS_ADT7410 is not set |
|
2477 |
+# CONFIG_SENSORS_ADT7411 is not set |
|
2478 |
+# CONFIG_SENSORS_ADT7462 is not set |
|
2479 |
+# CONFIG_SENSORS_ADT7470 is not set |
|
2480 |
+# CONFIG_SENSORS_ADT7475 is not set |
|
2481 |
+# CONFIG_SENSORS_ASC7621 is not set |
|
2482 |
+CONFIG_SENSORS_K8TEMP=m |
|
2483 |
+CONFIG_SENSORS_K10TEMP=m |
|
2484 |
+CONFIG_SENSORS_FAM15H_POWER=m |
|
2485 |
+# CONFIG_SENSORS_APPLESMC is not set |
|
2486 |
+# CONFIG_SENSORS_ASB100 is not set |
|
2487 |
+# CONFIG_SENSORS_ATXP1 is not set |
|
2488 |
+# CONFIG_SENSORS_DS620 is not set |
|
2489 |
+# CONFIG_SENSORS_DS1621 is not set |
|
2490 |
+# CONFIG_SENSORS_DELL_SMM is not set |
|
2491 |
+# CONFIG_SENSORS_I5K_AMB is not set |
|
2492 |
+# CONFIG_SENSORS_F71805F is not set |
|
2493 |
+# CONFIG_SENSORS_F71882FG is not set |
|
2494 |
+# CONFIG_SENSORS_F75375S is not set |
|
2495 |
+# CONFIG_SENSORS_FSCHMD is not set |
|
2496 |
+# CONFIG_SENSORS_FTSTEUTATES is not set |
|
2497 |
+# CONFIG_SENSORS_GL518SM is not set |
|
2498 |
+# CONFIG_SENSORS_GL520SM is not set |
|
2499 |
+# CONFIG_SENSORS_G760A is not set |
|
2500 |
+# CONFIG_SENSORS_G762 is not set |
|
2501 |
+# CONFIG_SENSORS_HIH6130 is not set |
|
2502 |
+# CONFIG_SENSORS_IBMAEM is not set |
|
2503 |
+# CONFIG_SENSORS_IBMPEX is not set |
|
2504 |
+# CONFIG_SENSORS_I5500 is not set |
|
2505 |
+CONFIG_SENSORS_CORETEMP=m |
|
2506 |
+# CONFIG_SENSORS_IT87 is not set |
|
2507 |
+# CONFIG_SENSORS_JC42 is not set |
|
2508 |
+# CONFIG_SENSORS_POWR1220 is not set |
|
2509 |
+# CONFIG_SENSORS_LINEAGE is not set |
|
2510 |
+# CONFIG_SENSORS_LTC2945 is not set |
|
2511 |
+# CONFIG_SENSORS_LTC2990 is not set |
|
2512 |
+# CONFIG_SENSORS_LTC4151 is not set |
|
2513 |
+# CONFIG_SENSORS_LTC4215 is not set |
|
2514 |
+# CONFIG_SENSORS_LTC4222 is not set |
|
2515 |
+# CONFIG_SENSORS_LTC4245 is not set |
|
2516 |
+# CONFIG_SENSORS_LTC4260 is not set |
|
2517 |
+# CONFIG_SENSORS_LTC4261 is not set |
|
2518 |
+# CONFIG_SENSORS_MAX16065 is not set |
|
2519 |
+# CONFIG_SENSORS_MAX1619 is not set |
|
2520 |
+# CONFIG_SENSORS_MAX1668 is not set |
|
2521 |
+# CONFIG_SENSORS_MAX197 is not set |
|
2522 |
+# CONFIG_SENSORS_MAX6639 is not set |
|
2523 |
+# CONFIG_SENSORS_MAX6642 is not set |
|
2524 |
+# CONFIG_SENSORS_MAX6650 is not set |
|
2525 |
+# CONFIG_SENSORS_MAX6697 is not set |
|
2526 |
+# CONFIG_SENSORS_MAX31790 is not set |
|
2527 |
+# CONFIG_SENSORS_MCP3021 is not set |
|
2528 |
+# CONFIG_SENSORS_LM63 is not set |
|
2529 |
+# CONFIG_SENSORS_LM73 is not set |
|
2530 |
+# CONFIG_SENSORS_LM75 is not set |
|
2531 |
+# CONFIG_SENSORS_LM77 is not set |
|
2532 |
+# CONFIG_SENSORS_LM78 is not set |
|
2533 |
+# CONFIG_SENSORS_LM80 is not set |
|
2534 |
+# CONFIG_SENSORS_LM83 is not set |
|
2535 |
+# CONFIG_SENSORS_LM85 is not set |
|
2536 |
+# CONFIG_SENSORS_LM87 is not set |
|
2537 |
+# CONFIG_SENSORS_LM90 is not set |
|
2538 |
+# CONFIG_SENSORS_LM92 is not set |
|
2539 |
+# CONFIG_SENSORS_LM93 is not set |
|
2540 |
+# CONFIG_SENSORS_LM95234 is not set |
|
2541 |
+# CONFIG_SENSORS_LM95241 is not set |
|
2542 |
+# CONFIG_SENSORS_LM95245 is not set |
|
2543 |
+# CONFIG_SENSORS_PC87360 is not set |
|
2544 |
+# CONFIG_SENSORS_PC87427 is not set |
|
2545 |
+# CONFIG_SENSORS_NTC_THERMISTOR is not set |
|
2546 |
+# CONFIG_SENSORS_NCT6683 is not set |
|
2547 |
+# CONFIG_SENSORS_NCT6775 is not set |
|
2548 |
+# CONFIG_SENSORS_NCT7802 is not set |
|
2549 |
+# CONFIG_SENSORS_NCT7904 is not set |
|
2550 |
+# CONFIG_SENSORS_PCF8591 is not set |
|
2551 |
+# CONFIG_PMBUS is not set |
|
2552 |
+# CONFIG_SENSORS_SHT21 is not set |
|
2553 |
+# CONFIG_SENSORS_SHT3x is not set |
|
2554 |
+# CONFIG_SENSORS_SHTC1 is not set |
|
2555 |
+# CONFIG_SENSORS_SIS5595 is not set |
|
2556 |
+# CONFIG_SENSORS_DME1737 is not set |
|
2557 |
+# CONFIG_SENSORS_EMC1403 is not set |
|
2558 |
+# CONFIG_SENSORS_EMC2103 is not set |
|
2559 |
+# CONFIG_SENSORS_EMC6W201 is not set |
|
2560 |
+# CONFIG_SENSORS_SMSC47M1 is not set |
|
2561 |
+# CONFIG_SENSORS_SMSC47M192 is not set |
|
2562 |
+# CONFIG_SENSORS_SMSC47B397 is not set |
|
2563 |
+# CONFIG_SENSORS_SCH56XX_COMMON is not set |
|
2564 |
+# CONFIG_SENSORS_SCH5627 is not set |
|
2565 |
+# CONFIG_SENSORS_SCH5636 is not set |
|
2566 |
+# CONFIG_SENSORS_SMM665 is not set |
|
2567 |
+# CONFIG_SENSORS_ADC128D818 is not set |
|
2568 |
+# CONFIG_SENSORS_ADS1015 is not set |
|
2569 |
+# CONFIG_SENSORS_ADS7828 is not set |
|
2570 |
+# CONFIG_SENSORS_AMC6821 is not set |
|
2571 |
+# CONFIG_SENSORS_INA209 is not set |
|
2572 |
+# CONFIG_SENSORS_INA2XX is not set |
|
2573 |
+# CONFIG_SENSORS_INA3221 is not set |
|
2574 |
+# CONFIG_SENSORS_TC74 is not set |
|
2575 |
+# CONFIG_SENSORS_THMC50 is not set |
|
2576 |
+# CONFIG_SENSORS_TMP102 is not set |
|
2577 |
+# CONFIG_SENSORS_TMP103 is not set |
|
2578 |
+# CONFIG_SENSORS_TMP401 is not set |
|
2579 |
+# CONFIG_SENSORS_TMP421 is not set |
|
2580 |
+# CONFIG_SENSORS_VIA_CPUTEMP is not set |
|
2581 |
+# CONFIG_SENSORS_VIA686A is not set |
|
2582 |
+# CONFIG_SENSORS_VT1211 is not set |
|
2583 |
+# CONFIG_SENSORS_VT8231 is not set |
|
2584 |
+# CONFIG_SENSORS_W83781D is not set |
|
2585 |
+# CONFIG_SENSORS_W83791D is not set |
|
2586 |
+# CONFIG_SENSORS_W83792D is not set |
|
2587 |
+# CONFIG_SENSORS_W83793 is not set |
|
2588 |
+# CONFIG_SENSORS_W83795 is not set |
|
2589 |
+# CONFIG_SENSORS_W83L785TS is not set |
|
2590 |
+# CONFIG_SENSORS_W83L786NG is not set |
|
2591 |
+# CONFIG_SENSORS_W83627HF is not set |
|
2592 |
+# CONFIG_SENSORS_W83627EHF is not set |
|
2593 |
+ |
|
2594 |
+# |
|
2595 |
+# ACPI drivers |
|
2596 |
+# |
|
2597 |
+# CONFIG_SENSORS_ACPI_POWER is not set |
|
2598 |
+# CONFIG_SENSORS_ATK0110 is not set |
|
2599 |
+CONFIG_THERMAL=y |
|
2600 |
+CONFIG_THERMAL_WRITABLE_TRIPS=y |
|
2601 |
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y |
|
2602 |
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set |
|
2603 |
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set |
|
2604 |
+# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set |
|
2605 |
+# CONFIG_THERMAL_GOV_FAIR_SHARE is not set |
|
2606 |
+CONFIG_THERMAL_GOV_STEP_WISE=y |
|
2607 |
+# CONFIG_THERMAL_GOV_BANG_BANG is not set |
|
2608 |
+CONFIG_THERMAL_GOV_USER_SPACE=y |
|
2609 |
+# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set |
|
2610 |
+# CONFIG_THERMAL_EMULATION is not set |
|
2611 |
+# CONFIG_INTEL_POWERCLAMP is not set |
|
2612 |
+CONFIG_X86_PKG_TEMP_THERMAL=m |
|
2613 |
+# CONFIG_INTEL_SOC_DTS_THERMAL is not set |
|
2614 |
+ |
|
2615 |
+# |
|
2616 |
+# ACPI INT340X thermal drivers |
|
2617 |
+# |
|
2618 |
+# CONFIG_INT340X_THERMAL is not set |
|
2619 |
+# CONFIG_INTEL_PCH_THERMAL is not set |
|
2620 |
+CONFIG_WATCHDOG=y |
|
2621 |
+CONFIG_WATCHDOG_CORE=y |
|
2622 |
+# CONFIG_WATCHDOG_NOWAYOUT is not set |
|
2623 |
+# CONFIG_WATCHDOG_SYSFS is not set |
|
2624 |
+ |
|
2625 |
+# |
|
2626 |
+# Watchdog Device Drivers |
|
2627 |
+# |
|
2628 |
+CONFIG_SOFT_WATCHDOG=m |
|
2629 |
+# CONFIG_XILINX_WATCHDOG is not set |
|
2630 |
+# CONFIG_ZIIRAVE_WATCHDOG is not set |
|
2631 |
+# CONFIG_CADENCE_WATCHDOG is not set |
|
2632 |
+# CONFIG_DW_WATCHDOG is not set |
|
2633 |
+# CONFIG_MAX63XX_WATCHDOG is not set |
|
2634 |
+# CONFIG_ACQUIRE_WDT is not set |
|
2635 |
+# CONFIG_ADVANTECH_WDT is not set |
|
2636 |
+# CONFIG_ALIM1535_WDT is not set |
|
2637 |
+# CONFIG_ALIM7101_WDT is not set |
|
2638 |
+# CONFIG_F71808E_WDT is not set |
|
2639 |
+# CONFIG_SP5100_TCO is not set |
|
2640 |
+# CONFIG_SBC_FITPC2_WATCHDOG is not set |
|
2641 |
+# CONFIG_EUROTECH_WDT is not set |
|
2642 |
+# CONFIG_IB700_WDT is not set |
|
2643 |
+# CONFIG_IBMASR is not set |
|
2644 |
+# CONFIG_WAFER_WDT is not set |
|
2645 |
+# CONFIG_I6300ESB_WDT is not set |
|
2646 |
+# CONFIG_IE6XX_WDT is not set |
|
2647 |
+CONFIG_ITCO_WDT=m |
|
2648 |
+CONFIG_ITCO_VENDOR_SUPPORT=y |
|
2649 |
+# CONFIG_IT8712F_WDT is not set |
|
2650 |
+# CONFIG_IT87_WDT is not set |
|
2651 |
+# CONFIG_HP_WATCHDOG is not set |
|
2652 |
+# CONFIG_SC1200_WDT is not set |
|
2653 |
+# CONFIG_PC87413_WDT is not set |
|
2654 |
+# CONFIG_NV_TCO is not set |
|
2655 |
+# CONFIG_60XX_WDT is not set |
|
2656 |
+# CONFIG_CPU5_WDT is not set |
|
2657 |
+# CONFIG_SMSC_SCH311X_WDT is not set |
|
2658 |
+# CONFIG_SMSC37B787_WDT is not set |
|
2659 |
+# CONFIG_VIA_WDT is not set |
|
2660 |
+# CONFIG_W83627HF_WDT is not set |
|
2661 |
+# CONFIG_W83877F_WDT is not set |
|
2662 |
+# CONFIG_W83977F_WDT is not set |
|
2663 |
+# CONFIG_MACHZ_WDT is not set |
|
2664 |
+# CONFIG_SBC_EPX_C3_WATCHDOG is not set |
|
2665 |
+# CONFIG_INTEL_MEI_WDT is not set |
|
2666 |
+# CONFIG_NI903X_WDT is not set |
|
2667 |
+# CONFIG_XEN_WDT is not set |
|
2668 |
+ |
|
2669 |
+# |
|
2670 |
+# PCI-based Watchdog Cards |
|
2671 |
+# |
|
2672 |
+# CONFIG_PCIPCWATCHDOG is not set |
|
2673 |
+# CONFIG_WDTPCI is not set |
|
2674 |
+ |
|
2675 |
+# |
|
2676 |
+# USB-based Watchdog Cards |
|
2677 |
+# |
|
2678 |
+# CONFIG_USBPCWATCHDOG is not set |
|
2679 |
+CONFIG_SSB_POSSIBLE=y |
|
2680 |
+ |
|
2681 |
+# |
|
2682 |
+# Sonics Silicon Backplane |
|
2683 |
+# |
|
2684 |
+CONFIG_SSB=m |
|
2685 |
+CONFIG_SSB_SPROM=y |
|
2686 |
+CONFIG_SSB_PCIHOST_POSSIBLE=y |
|
2687 |
+CONFIG_SSB_PCIHOST=y |
|
2688 |
+# CONFIG_SSB_B43_PCI_BRIDGE is not set |
|
2689 |
+CONFIG_SSB_SDIOHOST_POSSIBLE=y |
|
2690 |
+# CONFIG_SSB_SDIOHOST is not set |
|
2691 |
+# CONFIG_SSB_SILENT is not set |
|
2692 |
+# CONFIG_SSB_DEBUG is not set |
|
2693 |
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y |
|
2694 |
+CONFIG_SSB_DRIVER_PCICORE=y |
|
2695 |
+CONFIG_BCMA_POSSIBLE=y |
|
2696 |
+ |
|
2697 |
+# |
|
2698 |
+# Broadcom specific AMBA |
|
2699 |
+# |
|
2700 |
+# CONFIG_BCMA is not set |
|
2701 |
+ |
|
2702 |
+# |
|
2703 |
+# Multifunction device drivers |
|
2704 |
+# |
|
2705 |
+CONFIG_MFD_CORE=m |
|
2706 |
+# CONFIG_MFD_AS3711 is not set |
|
2707 |
+# CONFIG_PMIC_ADP5520 is not set |
|
2708 |
+# CONFIG_MFD_BCM590XX is not set |
|
2709 |
+# CONFIG_MFD_AXP20X_I2C is not set |
|
2710 |
+# CONFIG_MFD_CROS_EC is not set |
|
2711 |
+# CONFIG_PMIC_DA903X is not set |
|
2712 |
+# CONFIG_MFD_DA9052_I2C is not set |
|
2713 |
+# CONFIG_MFD_DA9055 is not set |
|
2714 |
+# CONFIG_MFD_DA9062 is not set |
|
2715 |
+# CONFIG_MFD_DA9063 is not set |
|
2716 |
+# CONFIG_MFD_DA9150 is not set |
|
2717 |
+# CONFIG_MFD_DLN2 is not set |
|
2718 |
+# CONFIG_MFD_MC13XXX_I2C is not set |
|
2719 |
+# CONFIG_HTC_PASIC3 is not set |
|
2720 |
+CONFIG_LPC_ICH=m |
|
2721 |
+# CONFIG_LPC_SCH is not set |
|
2722 |
+# CONFIG_MFD_INTEL_LPSS_ACPI is not set |
|
2723 |
+# CONFIG_MFD_INTEL_LPSS_PCI is not set |
|
2724 |
+# CONFIG_MFD_JANZ_CMODIO is not set |
|
2725 |
+# CONFIG_MFD_KEMPLD is not set |
|
2726 |
+# CONFIG_MFD_88PM800 is not set |
|
2727 |
+# CONFIG_MFD_88PM805 is not set |
|
2728 |
+# CONFIG_MFD_88PM860X is not set |
|
2729 |
+# CONFIG_MFD_MAX14577 is not set |
|
2730 |
+# CONFIG_MFD_MAX77693 is not set |
|
2731 |
+# CONFIG_MFD_MAX77843 is not set |
|
2732 |
+# CONFIG_MFD_MAX8907 is not set |
|
2733 |
+# CONFIG_MFD_MAX8925 is not set |
|
2734 |
+# CONFIG_MFD_MAX8997 is not set |
|
2735 |
+# CONFIG_MFD_MAX8998 is not set |
|
2736 |
+# CONFIG_MFD_MT6397 is not set |
|
2737 |
+# CONFIG_MFD_MENF21BMC is not set |
|
2738 |
+# CONFIG_MFD_VIPERBOARD is not set |
|
2739 |
+# CONFIG_MFD_RETU is not set |
|
2740 |
+# CONFIG_MFD_PCF50633 is not set |
|
2741 |
+# CONFIG_MFD_RDC321X is not set |
|
2742 |
+# CONFIG_MFD_RTSX_PCI is not set |
|
2743 |
+# CONFIG_MFD_RT5033 is not set |
|
2744 |
+# CONFIG_MFD_RTSX_USB is not set |
|
2745 |
+# CONFIG_MFD_RC5T583 is not set |
|
2746 |
+# CONFIG_MFD_SEC_CORE is not set |
|
2747 |
+# CONFIG_MFD_SI476X_CORE is not set |
|
2748 |
+# CONFIG_MFD_SM501 is not set |
|
2749 |
+# CONFIG_MFD_SKY81452 is not set |
|
2750 |
+# CONFIG_MFD_SMSC is not set |
|
2751 |
+# CONFIG_ABX500_CORE is not set |
|
2752 |
+# CONFIG_MFD_SYSCON is not set |
|
2753 |
+# CONFIG_MFD_TI_AM335X_TSCADC is not set |
|
2754 |
+# CONFIG_MFD_LP3943 is not set |
|
2755 |
+# CONFIG_MFD_LP8788 is not set |
|
2756 |
+# CONFIG_MFD_PALMAS is not set |
|
2757 |
+# CONFIG_TPS6105X is not set |
|
2758 |
+# CONFIG_TPS6507X is not set |
|
2759 |
+# CONFIG_MFD_TPS65086 is not set |
|
2760 |
+# CONFIG_MFD_TPS65090 is not set |
|
2761 |
+# CONFIG_MFD_TPS65217 is not set |
|
2762 |
+# CONFIG_MFD_TPS65218 is not set |
|
2763 |
+# CONFIG_MFD_TPS6586X is not set |
|
2764 |
+# CONFIG_MFD_TPS65912_I2C is not set |
|
2765 |
+# CONFIG_MFD_TPS80031 is not set |
|
2766 |
+# CONFIG_TWL4030_CORE is not set |
|
2767 |
+# CONFIG_TWL6040_CORE is not set |
|
2768 |
+# CONFIG_MFD_WL1273_CORE is not set |
|
2769 |
+# CONFIG_MFD_LM3533 is not set |
|
2770 |
+# CONFIG_MFD_TMIO is not set |
|
2771 |
+# CONFIG_MFD_VX855 is not set |
|
2772 |
+# CONFIG_MFD_ARIZONA_I2C is not set |
|
2773 |
+# CONFIG_MFD_WM8400 is not set |
|
2774 |
+# CONFIG_MFD_WM831X_I2C is not set |
|
2775 |
+# CONFIG_MFD_WM8350_I2C is not set |
|
2776 |
+# CONFIG_MFD_WM8994 is not set |
|
2777 |
+# CONFIG_REGULATOR is not set |
|
2778 |
+# CONFIG_MEDIA_SUPPORT is not set |
|
2779 |
+ |
|
2780 |
+# |
|
2781 |
+# Graphics support |
|
2782 |
+# |
|
2783 |
+CONFIG_AGP=y |
|
2784 |
+# CONFIG_AGP_AMD64 is not set |
|
2785 |
+CONFIG_AGP_INTEL=m |
|
2786 |
+# CONFIG_AGP_SIS is not set |
|
2787 |
+# CONFIG_AGP_VIA is not set |
|
2788 |
+CONFIG_INTEL_GTT=m |
|
2789 |
+CONFIG_VGA_ARB=y |
|
2790 |
+CONFIG_VGA_ARB_MAX_GPUS=16 |
|
2791 |
+# CONFIG_VGA_SWITCHEROO is not set |
|
2792 |
+CONFIG_DRM=y |
|
2793 |
+CONFIG_DRM_MIPI_DSI=y |
|
2794 |
+# CONFIG_DRM_DP_AUX_CHARDEV is not set |
|
2795 |
+CONFIG_DRM_KMS_HELPER=y |
|
2796 |
+CONFIG_DRM_KMS_FB_HELPER=y |
|
2797 |
+CONFIG_DRM_FBDEV_EMULATION=y |
|
2798 |
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set |
|
2799 |
+CONFIG_DRM_TTM=y |
|
2800 |
+ |
|
2801 |
+# |
|
2802 |
+# I2C encoder or helper chips |
|
2803 |
+# |
|
2804 |
+# CONFIG_DRM_I2C_CH7006 is not set |
|
2805 |
+# CONFIG_DRM_I2C_SIL164 is not set |
|
2806 |
+# CONFIG_DRM_I2C_NXP_TDA998X is not set |
|
2807 |
+# CONFIG_DRM_TDFX is not set |
|
2808 |
+CONFIG_DRM_R128=m |
|
2809 |
+CONFIG_DRM_RADEON=m |
|
2810 |
+# CONFIG_DRM_RADEON_USERPTR is not set |
|
2811 |
+# CONFIG_DRM_AMDGPU is not set |
|
2812 |
+ |
|
2813 |
+# |
|
2814 |
+# ACP (Audio CoProcessor) Configuration |
|
2815 |
+# |
|
2816 |
+CONFIG_DRM_NOUVEAU=m |
|
2817 |
+CONFIG_NOUVEAU_DEBUG=5 |
|
2818 |
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3 |
|
2819 |
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y |
|
2820 |
+CONFIG_DRM_I810=m |
|
2821 |
+CONFIG_DRM_I915=m |
|
2822 |
+# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set |
|
2823 |
+CONFIG_DRM_I915_USERPTR=y |
|
2824 |
+# CONFIG_DRM_I915_GVT is not set |
|
2825 |
+ |
|
2826 |
+# |
|
2827 |
+# drm/i915 Debugging |
|
2828 |
+# |
|
2829 |
+# CONFIG_DRM_I915_WERROR is not set |
|
2830 |
+# CONFIG_DRM_I915_DEBUG is not set |
|
2831 |
+# CONFIG_DRM_MGA is not set |
|
2832 |
+# CONFIG_DRM_SIS is not set |
|
2833 |
+# CONFIG_DRM_VIA is not set |
|
2834 |
+# CONFIG_DRM_SAVAGE is not set |
|
2835 |
+# CONFIG_DRM_VGEM is not set |
|
2836 |
+CONFIG_DRM_VMWGFX=y |
|
2837 |
+CONFIG_DRM_VMWGFX_FBCON=y |
|
2838 |
+# CONFIG_DRM_GMA500 is not set |
|
2839 |
+# CONFIG_DRM_UDL is not set |
|
2840 |
+# CONFIG_DRM_AST is not set |
|
2841 |
+# CONFIG_DRM_MGAG200 is not set |
|
2842 |
+CONFIG_DRM_CIRRUS_QEMU=m |
|
2843 |
+# CONFIG_DRM_QXL is not set |
|
2844 |
+# CONFIG_DRM_BOCHS is not set |
|
2845 |
+# CONFIG_DRM_VIRTIO_GPU is not set |
|
2846 |
+CONFIG_DRM_PANEL=y |
|
2847 |
+ |
|
2848 |
+# |
|
2849 |
+# Display Panels |
|
2850 |
+# |
|
2851 |
+CONFIG_DRM_BRIDGE=y |
|
2852 |
+ |
|
2853 |
+# |
|
2854 |
+# Display Interface Bridges |
|
2855 |
+# |
|
2856 |
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set |
|
2857 |
+# CONFIG_HSA_AMD is not set |
|
2858 |
+ |
|
2859 |
+# |
|
2860 |
+# Frame buffer Devices |
|
2861 |
+# |
|
2862 |
+CONFIG_FB=y |
|
2863 |
+# CONFIG_FIRMWARE_EDID is not set |
|
2864 |
+CONFIG_FB_CMDLINE=y |
|
2865 |
+CONFIG_FB_NOTIFY=y |
|
2866 |
+CONFIG_FB_DDC=m |
|
2867 |
+CONFIG_FB_BOOT_VESA_SUPPORT=y |
|
2868 |
+CONFIG_FB_CFB_FILLRECT=y |
|
2869 |
+CONFIG_FB_CFB_COPYAREA=y |
|
2870 |
+CONFIG_FB_CFB_IMAGEBLIT=y |
|
2871 |
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set |
|
2872 |
+CONFIG_FB_SYS_FILLRECT=y |
|
2873 |
+CONFIG_FB_SYS_COPYAREA=y |
|
2874 |
+CONFIG_FB_SYS_IMAGEBLIT=y |
|
2875 |
+# CONFIG_FB_FOREIGN_ENDIAN is not set |
|
2876 |
+CONFIG_FB_SYS_FOPS=y |
|
2877 |
+CONFIG_FB_DEFERRED_IO=y |
|
2878 |
+# CONFIG_FB_SVGALIB is not set |
|
2879 |
+# CONFIG_FB_MACMODES is not set |
|
2880 |
+CONFIG_FB_BACKLIGHT=y |
|
2881 |
+CONFIG_FB_MODE_HELPERS=y |
|
2882 |
+# CONFIG_FB_TILEBLITTING is not set |
|
2883 |
+ |
|
2884 |
+# |
|
2885 |
+# Frame buffer hardware drivers |
|
2886 |
+# |
|
2887 |
+CONFIG_FB_CIRRUS=m |
|
2888 |
+# CONFIG_FB_PM2 is not set |
|
2889 |
+# CONFIG_FB_CYBER2000 is not set |
|
2890 |
+# CONFIG_FB_ARC is not set |
|
2891 |
+# CONFIG_FB_ASILIANT is not set |
|
2892 |
+# CONFIG_FB_IMSTT is not set |
|
2893 |
+# CONFIG_FB_VGA16 is not set |
|
2894 |
+# CONFIG_FB_UVESA is not set |
|
2895 |
+CONFIG_FB_VESA=y |
|
2896 |
+CONFIG_FB_EFI=y |
|
2897 |
+# CONFIG_FB_N411 is not set |
|
2898 |
+# CONFIG_FB_HGA is not set |
|
2899 |
+# CONFIG_FB_OPENCORES is not set |
|
2900 |
+# CONFIG_FB_S1D13XXX is not set |
|
2901 |
+CONFIG_FB_NVIDIA=m |
|
2902 |
+# CONFIG_FB_NVIDIA_I2C is not set |
|
2903 |
+# CONFIG_FB_NVIDIA_DEBUG is not set |
|
2904 |
+CONFIG_FB_NVIDIA_BACKLIGHT=y |
|
2905 |
+# CONFIG_FB_RIVA is not set |
|
2906 |
+CONFIG_FB_I740=m |
|
2907 |
+# CONFIG_FB_LE80578 is not set |
|
2908 |
+# CONFIG_FB_INTEL is not set |
|
2909 |
+# CONFIG_FB_MATROX is not set |
|
2910 |
+CONFIG_FB_RADEON=m |
|
2911 |
+CONFIG_FB_RADEON_I2C=y |
|
2912 |
+CONFIG_FB_RADEON_BACKLIGHT=y |
|
2913 |
+# CONFIG_FB_RADEON_DEBUG is not set |
|
2914 |
+# CONFIG_FB_ATY128 is not set |
|
2915 |
+# CONFIG_FB_ATY is not set |
|
2916 |
+# CONFIG_FB_S3 is not set |
|
2917 |
+# CONFIG_FB_SAVAGE is not set |
|
2918 |
+# CONFIG_FB_SIS is not set |
|
2919 |
+# CONFIG_FB_NEOMAGIC is not set |
|
2920 |
+# CONFIG_FB_KYRO is not set |
|
2921 |
+# CONFIG_FB_3DFX is not set |
|
2922 |
+# CONFIG_FB_VOODOO1 is not set |
|
2923 |
+# CONFIG_FB_VT8623 is not set |
|
2924 |
+# CONFIG_FB_TRIDENT is not set |
|
2925 |
+# CONFIG_FB_ARK is not set |
|
2926 |
+# CONFIG_FB_PM3 is not set |
|
2927 |
+# CONFIG_FB_CARMINE is not set |
|
2928 |
+# CONFIG_FB_SMSCUFX is not set |
|
2929 |
+# CONFIG_FB_UDL is not set |
|
2930 |
+# CONFIG_FB_IBM_GXT4500 is not set |
|
2931 |
+# CONFIG_FB_VIRTUAL is not set |
|
2932 |
+CONFIG_XEN_FBDEV_FRONTEND=m |
|
2933 |
+# CONFIG_FB_METRONOME is not set |
|
2934 |
+# CONFIG_FB_MB862XX is not set |
|
2935 |
+# CONFIG_FB_BROADSHEET is not set |
|
2936 |
+# CONFIG_FB_AUO_K190X is not set |
|
2937 |
+CONFIG_FB_HYPERV=m |
|
2938 |
+# CONFIG_FB_SIMPLE is not set |
|
2939 |
+# CONFIG_FB_SM712 is not set |
|
2940 |
+CONFIG_BACKLIGHT_LCD_SUPPORT=y |
|
2941 |
+# CONFIG_LCD_CLASS_DEVICE is not set |
|
2942 |
+CONFIG_BACKLIGHT_CLASS_DEVICE=y |
|
2943 |
+CONFIG_BACKLIGHT_GENERIC=y |
|
2944 |
+# CONFIG_BACKLIGHT_APPLE is not set |
|
2945 |
+# CONFIG_BACKLIGHT_PM8941_WLED is not set |
|
2946 |
+# CONFIG_BACKLIGHT_SAHARA is not set |
|
2947 |
+# CONFIG_BACKLIGHT_ADP8860 is not set |
|
2948 |
+# CONFIG_BACKLIGHT_ADP8870 is not set |
|
2949 |
+# CONFIG_BACKLIGHT_LM3639 is not set |
|
2950 |
+# CONFIG_BACKLIGHT_LV5207LP is not set |
|
2951 |
+# CONFIG_BACKLIGHT_BD6107 is not set |
|
2952 |
+CONFIG_VGASTATE=m |
|
2953 |
+CONFIG_HDMI=y |
|
2954 |
+ |
|
2955 |
+# |
|
2956 |
+# Console display driver support |
|
2957 |
+# |
|
2958 |
+CONFIG_VGA_CONSOLE=y |
|
2959 |
+CONFIG_VGACON_SOFT_SCROLLBACK=y |
|
2960 |
+CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 |
|
2961 |
+CONFIG_DUMMY_CONSOLE=y |
|
2962 |
+CONFIG_DUMMY_CONSOLE_COLUMNS=80 |
|
2963 |
+CONFIG_DUMMY_CONSOLE_ROWS=25 |
|
2964 |
+CONFIG_FRAMEBUFFER_CONSOLE=y |
|
2965 |
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y |
|
2966 |
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y |
|
2967 |
+# CONFIG_LOGO is not set |
|
2968 |
+CONFIG_SOUND=m |
|
2969 |
+# CONFIG_SOUND_OSS_CORE is not set |
|
2970 |
+CONFIG_SND=m |
|
2971 |
+CONFIG_SND_TIMER=m |
|
2972 |
+CONFIG_SND_PCM=m |
|
2973 |
+CONFIG_SND_RAWMIDI=m |
|
2974 |
+CONFIG_SND_JACK=y |
|
2975 |
+CONFIG_SND_JACK_INPUT_DEV=y |
|
2976 |
+# CONFIG_SND_SEQUENCER is not set |
|
2977 |
+# CONFIG_SND_MIXER_OSS is not set |
|
2978 |
+# CONFIG_SND_PCM_OSS is not set |
|
2979 |
+CONFIG_SND_PCM_TIMER=y |
|
2980 |
+# CONFIG_SND_HRTIMER is not set |
|
2981 |
+# CONFIG_SND_DYNAMIC_MINORS is not set |
|
2982 |
+CONFIG_SND_SUPPORT_OLD_API=y |
|
2983 |
+CONFIG_SND_PROC_FS=y |
|
2984 |
+CONFIG_SND_VERBOSE_PROCFS=y |
|
2985 |
+# CONFIG_SND_VERBOSE_PRINTK is not set |
|
2986 |
+# CONFIG_SND_DEBUG is not set |
|
2987 |
+CONFIG_SND_VMASTER=y |
|
2988 |
+CONFIG_SND_DMA_SGBUF=y |
|
2989 |
+# CONFIG_SND_RAWMIDI_SEQ is not set |
|
2990 |
+# CONFIG_SND_OPL3_LIB_SEQ is not set |
|
2991 |
+# CONFIG_SND_OPL4_LIB_SEQ is not set |
|
2992 |
+# CONFIG_SND_SBAWE_SEQ is not set |
|
2993 |
+# CONFIG_SND_EMU10K1_SEQ is not set |
|
2994 |
+CONFIG_SND_AC97_CODEC=m |
|
2995 |
+CONFIG_SND_DRIVERS=y |
|
2996 |
+# CONFIG_SND_DUMMY is not set |
|
2997 |
+# CONFIG_SND_ALOOP is not set |
|
2998 |
+# CONFIG_SND_MTPAV is not set |
|
2999 |
+# CONFIG_SND_SERIAL_U16550 is not set |
|
3000 |
+# CONFIG_SND_MPU401 is not set |
|
3001 |
+# CONFIG_SND_AC97_POWER_SAVE is not set |
|
3002 |
+CONFIG_SND_PCI=y |
|
3003 |
+# CONFIG_SND_AD1889 is not set |
|
3004 |
+# CONFIG_SND_ALS4000 is not set |
|
3005 |
+# CONFIG_SND_ASIHPI is not set |
|
3006 |
+# CONFIG_SND_ATIIXP is not set |
|
3007 |
+# CONFIG_SND_ATIIXP_MODEM is not set |
|
3008 |
+# CONFIG_SND_AU8810 is not set |
|
3009 |
+# CONFIG_SND_AU8820 is not set |
|
3010 |
+# CONFIG_SND_AU8830 is not set |
|
3011 |
+# CONFIG_SND_AW2 is not set |
|
3012 |
+# CONFIG_SND_BT87X is not set |
|
3013 |
+# CONFIG_SND_CA0106 is not set |
|
3014 |
+# CONFIG_SND_CMIPCI is not set |
|
3015 |
+# CONFIG_SND_OXYGEN is not set |
|
3016 |
+# CONFIG_SND_CS4281 is not set |
|
3017 |
+# CONFIG_SND_CS46XX is not set |
|
3018 |
+# CONFIG_SND_CTXFI is not set |
|
3019 |
+# CONFIG_SND_DARLA20 is not set |
|
3020 |
+# CONFIG_SND_GINA20 is not set |
|
3021 |
+# CONFIG_SND_LAYLA20 is not set |
|
3022 |
+# CONFIG_SND_DARLA24 is not set |
|
3023 |
+# CONFIG_SND_GINA24 is not set |
|
3024 |
+# CONFIG_SND_LAYLA24 is not set |
|
3025 |
+# CONFIG_SND_MONA is not set |
|
3026 |
+# CONFIG_SND_MIA is not set |
|
3027 |
+# CONFIG_SND_ECHO3G is not set |
|
3028 |
+# CONFIG_SND_INDIGO is not set |
|
3029 |
+# CONFIG_SND_INDIGOIO is not set |
|
3030 |
+# CONFIG_SND_INDIGODJ is not set |
|
3031 |
+# CONFIG_SND_INDIGOIOX is not set |
|
3032 |
+# CONFIG_SND_INDIGODJX is not set |
|
3033 |
+# CONFIG_SND_ENS1370 is not set |
|
3034 |
+CONFIG_SND_ENS1371=m |
|
3035 |
+# CONFIG_SND_FM801 is not set |
|
3036 |
+# CONFIG_SND_HDSP is not set |
|
3037 |
+# CONFIG_SND_HDSPM is not set |
|
3038 |
+# CONFIG_SND_ICE1724 is not set |
|
3039 |
+# CONFIG_SND_INTEL8X0 is not set |
|
3040 |
+# CONFIG_SND_INTEL8X0M is not set |
|
3041 |
+# CONFIG_SND_KORG1212 is not set |
|
3042 |
+# CONFIG_SND_LOLA is not set |
|
3043 |
+# CONFIG_SND_LX6464ES is not set |
|
3044 |
+# CONFIG_SND_MIXART is not set |
|
3045 |
+# CONFIG_SND_NM256 is not set |
|
3046 |
+# CONFIG_SND_PCXHR is not set |
|
3047 |
+# CONFIG_SND_RIPTIDE is not set |
|
3048 |
+# CONFIG_SND_RME32 is not set |
|
3049 |
+# CONFIG_SND_RME96 is not set |
|
3050 |
+# CONFIG_SND_RME9652 is not set |
|
3051 |
+# CONFIG_SND_SE6X is not set |
|
3052 |
+# CONFIG_SND_VIA82XX is not set |
|
3053 |
+# CONFIG_SND_VIA82XX_MODEM is not set |
|
3054 |
+# CONFIG_SND_VIRTUOSO is not set |
|
3055 |
+# CONFIG_SND_VX222 is not set |
|
3056 |
+# CONFIG_SND_YMFPCI is not set |
|
3057 |
+ |
|
3058 |
+# |
|
3059 |
+# HD-Audio |
|
3060 |
+# |
|
3061 |
+CONFIG_SND_HDA=m |
|
3062 |
+CONFIG_SND_HDA_INTEL=m |
|
3063 |
+# CONFIG_SND_HDA_HWDEP is not set |
|
3064 |
+# CONFIG_SND_HDA_RECONFIG is not set |
|
3065 |
+# CONFIG_SND_HDA_INPUT_BEEP is not set |
|
3066 |
+# CONFIG_SND_HDA_PATCH_LOADER is not set |
|
3067 |
+# CONFIG_SND_HDA_CODEC_REALTEK is not set |
|
3068 |
+# CONFIG_SND_HDA_CODEC_ANALOG is not set |
|
3069 |
+# CONFIG_SND_HDA_CODEC_SIGMATEL is not set |
|
3070 |
+# CONFIG_SND_HDA_CODEC_VIA is not set |
|
3071 |
+# CONFIG_SND_HDA_CODEC_HDMI is not set |
|
3072 |
+# CONFIG_SND_HDA_CODEC_CIRRUS is not set |
|
3073 |
+# CONFIG_SND_HDA_CODEC_CONEXANT is not set |
|
3074 |
+# CONFIG_SND_HDA_CODEC_CA0110 is not set |
|
3075 |
+# CONFIG_SND_HDA_CODEC_CA0132 is not set |
|
3076 |
+# CONFIG_SND_HDA_CODEC_CMEDIA is not set |
|
3077 |
+# CONFIG_SND_HDA_CODEC_SI3054 is not set |
|
3078 |
+# CONFIG_SND_HDA_GENERIC is not set |
|
3079 |
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 |
|
3080 |
+CONFIG_SND_HDA_CORE=m |
|
3081 |
+CONFIG_SND_HDA_I915=y |
|
3082 |
+CONFIG_SND_HDA_PREALLOC_SIZE=64 |
|
3083 |
+CONFIG_SND_USB=y |
|
3084 |
+# CONFIG_SND_USB_AUDIO is not set |
|
3085 |
+# CONFIG_SND_USB_UA101 is not set |
|
3086 |
+# CONFIG_SND_USB_USX2Y is not set |
|
3087 |
+# CONFIG_SND_USB_CAIAQ is not set |
|
3088 |
+# CONFIG_SND_USB_US122L is not set |
|
3089 |
+# CONFIG_SND_USB_6FIRE is not set |
|
3090 |
+# CONFIG_SND_USB_HIFACE is not set |
|
3091 |
+# CONFIG_SND_BCD2000 is not set |
|
3092 |
+# CONFIG_SND_USB_POD is not set |
|
3093 |
+# CONFIG_SND_USB_PODHD is not set |
|
3094 |
+# CONFIG_SND_USB_TONEPORT is not set |
|
3095 |
+# CONFIG_SND_USB_VARIAX is not set |
|
3096 |
+# CONFIG_SND_SOC is not set |
|
3097 |
+# CONFIG_SOUND_PRIME is not set |
|
3098 |
+CONFIG_AC97_BUS=m |
|
3099 |
+ |
|
3100 |
+# |
|
3101 |
+# HID support |
|
3102 |
+# |
|
3103 |
+CONFIG_HID=m |
|
3104 |
+# CONFIG_HID_BATTERY_STRENGTH is not set |
|
3105 |
+# CONFIG_HIDRAW is not set |
|
3106 |
+# CONFIG_UHID is not set |
|
3107 |
+CONFIG_HID_GENERIC=m |
|
3108 |
+ |
|
3109 |
+# |
|
3110 |
+# Special HID drivers |
|
3111 |
+# |
|
3112 |
+CONFIG_HID_A4TECH=m |
|
3113 |
+# CONFIG_HID_ACRUX is not set |
|
3114 |
+CONFIG_HID_APPLE=m |
|
3115 |
+# CONFIG_HID_APPLEIR is not set |
|
3116 |
+# CONFIG_HID_AUREAL is not set |
|
3117 |
+CONFIG_HID_BELKIN=m |
|
3118 |
+# CONFIG_HID_BETOP_FF is not set |
|
3119 |
+CONFIG_HID_CHERRY=m |
|
3120 |
+# CONFIG_HID_CHICONY is not set |
|
3121 |
+# CONFIG_HID_PRODIKEYS is not set |
|
3122 |
+# CONFIG_HID_CMEDIA is not set |
|
3123 |
+# CONFIG_HID_CYPRESS is not set |
|
3124 |
+# CONFIG_HID_DRAGONRISE is not set |
|
3125 |
+# CONFIG_HID_EMS_FF is not set |
|
3126 |
+# CONFIG_HID_ELECOM is not set |
|
3127 |
+# CONFIG_HID_ELO is not set |
|
3128 |
+CONFIG_HID_EZKEY=m |
|
3129 |
+# CONFIG_HID_GEMBIRD is not set |
|
3130 |
+# CONFIG_HID_GFRM is not set |
|
3131 |
+# CONFIG_HID_HOLTEK is not set |
|
3132 |
+# CONFIG_HID_KEYTOUCH is not set |
|
3133 |
+# CONFIG_HID_KYE is not set |
|
3134 |
+# CONFIG_HID_UCLOGIC is not set |
|
3135 |
+# CONFIG_HID_WALTOP is not set |
|
3136 |
+# CONFIG_HID_GYRATION is not set |
|
3137 |
+# CONFIG_HID_ICADE is not set |
|
3138 |
+# CONFIG_HID_TWINHAN is not set |
|
3139 |
+# CONFIG_HID_KENSINGTON is not set |
|
3140 |
+# CONFIG_HID_LCPOWER is not set |
|
3141 |
+# CONFIG_HID_LENOVO is not set |
|
3142 |
+CONFIG_HID_LOGITECH=m |
|
3143 |
+# CONFIG_HID_LOGITECH_HIDPP is not set |
|
3144 |
+# CONFIG_LOGITECH_FF is not set |
|
3145 |
+# CONFIG_LOGIRUMBLEPAD2_FF is not set |
|
3146 |
+# CONFIG_LOGIG940_FF is not set |
|
3147 |
+# CONFIG_LOGIWHEELS_FF is not set |
|
3148 |
+# CONFIG_HID_MAGICMOUSE is not set |
|
3149 |
+CONFIG_HID_MICROSOFT=m |
|
3150 |
+CONFIG_HID_MONTEREY=m |
|
3151 |
+# CONFIG_HID_MULTITOUCH is not set |
|
3152 |
+# CONFIG_HID_NTRIG is not set |
|
3153 |
+# CONFIG_HID_ORTEK is not set |
|
3154 |
+# CONFIG_HID_PANTHERLORD is not set |
|
3155 |
+# CONFIG_HID_PENMOUNT is not set |
|
3156 |
+# CONFIG_HID_PETALYNX is not set |
|
3157 |
+# CONFIG_HID_PICOLCD is not set |
|
3158 |
+# CONFIG_HID_PLANTRONICS is not set |
|
3159 |
+# CONFIG_HID_PRIMAX is not set |
|
3160 |
+# CONFIG_HID_ROCCAT is not set |
|
3161 |
+# CONFIG_HID_SAITEK is not set |
|
3162 |
+# CONFIG_HID_SAMSUNG is not set |
|
3163 |
+# CONFIG_HID_SPEEDLINK is not set |
|
3164 |
+# CONFIG_HID_STEELSERIES is not set |
|
3165 |
+# CONFIG_HID_SUNPLUS is not set |
|
3166 |
+# CONFIG_HID_RMI is not set |
|
3167 |
+# CONFIG_HID_GREENASIA is not set |
|
3168 |
+CONFIG_HID_HYPERV_MOUSE=m |
|
3169 |
+# CONFIG_HID_SMARTJOYPLUS is not set |
|
3170 |
+# CONFIG_HID_TIVO is not set |
|
3171 |
+# CONFIG_HID_TOPSEED is not set |
|
3172 |
+# CONFIG_HID_THRUSTMASTER is not set |
|
3173 |
+# CONFIG_HID_WACOM is not set |
|
3174 |
+# CONFIG_HID_XINMO is not set |
|
3175 |
+# CONFIG_HID_ZEROPLUS is not set |
|
3176 |
+# CONFIG_HID_ZYDACRON is not set |
|
3177 |
+# CONFIG_HID_SENSOR_HUB is not set |
|
3178 |
+# CONFIG_HID_ALPS is not set |
|
3179 |
+ |
|
3180 |
+# |
|
3181 |
+# USB HID support |
|
3182 |
+# |
|
3183 |
+CONFIG_USB_HID=m |
|
3184 |
+# CONFIG_HID_PID is not set |
|
3185 |
+# CONFIG_USB_HIDDEV is not set |
|
3186 |
+ |
|
3187 |
+# |
|
3188 |
+# USB HID Boot Protocol drivers |
|
3189 |
+# |
|
3190 |
+# CONFIG_USB_KBD is not set |
|
3191 |
+# CONFIG_USB_MOUSE is not set |
|
3192 |
+ |
|
3193 |
+# |
|
3194 |
+# I2C HID support |
|
3195 |
+# |
|
3196 |
+# CONFIG_I2C_HID is not set |
|
3197 |
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
|
3198 |
+CONFIG_USB_SUPPORT=y |
|
3199 |
+CONFIG_USB_COMMON=m |
|
3200 |
+CONFIG_USB_ARCH_HAS_HCD=y |
|
3201 |
+CONFIG_USB=m |
|
3202 |
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set |
|
3203 |
+ |
|
3204 |
+# |
|
3205 |
+# Miscellaneous USB options |
|
3206 |
+# |
|
3207 |
+CONFIG_USB_DEFAULT_PERSIST=y |
|
3208 |
+# CONFIG_USB_DYNAMIC_MINORS is not set |
|
3209 |
+# CONFIG_USB_OTG is not set |
|
3210 |
+# CONFIG_USB_OTG_WHITELIST is not set |
|
3211 |
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set |
|
3212 |
+# CONFIG_USB_ULPI_BUS is not set |
|
3213 |
+# CONFIG_USB_MON is not set |
|
3214 |
+# CONFIG_USB_WUSB_CBAF is not set |
|
3215 |
+ |
|
3216 |
+# |
|
3217 |
+# USB Host Controller Drivers |
|
3218 |
+# |
|
3219 |
+# CONFIG_USB_C67X00_HCD is not set |
|
3220 |
+CONFIG_USB_XHCI_HCD=m |
|
3221 |
+CONFIG_USB_XHCI_PCI=m |
|
3222 |
+# CONFIG_USB_XHCI_PLATFORM is not set |
|
3223 |
+CONFIG_USB_EHCI_HCD=m |
|
3224 |
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
|
3225 |
+CONFIG_USB_EHCI_TT_NEWSCHED=y |
|
3226 |
+CONFIG_USB_EHCI_PCI=m |
|
3227 |
+CONFIG_USB_EHCI_HCD_PLATFORM=m |
|
3228 |
+# CONFIG_USB_OXU210HP_HCD is not set |
|
3229 |
+# CONFIG_USB_ISP116X_HCD is not set |
|
3230 |
+# CONFIG_USB_ISP1362_HCD is not set |
|
3231 |
+# CONFIG_USB_FOTG210_HCD is not set |
|
3232 |
+CONFIG_USB_OHCI_HCD=m |
|
3233 |
+CONFIG_USB_OHCI_HCD_PCI=m |
|
3234 |
+CONFIG_USB_OHCI_HCD_SSB=y |
|
3235 |
+CONFIG_USB_OHCI_HCD_PLATFORM=m |
|
3236 |
+CONFIG_USB_UHCI_HCD=m |
|
3237 |
+# CONFIG_USB_SL811_HCD is not set |
|
3238 |
+# CONFIG_USB_R8A66597_HCD is not set |
|
3239 |
+CONFIG_USB_HCD_SSB=m |
|
3240 |
+# CONFIG_USB_HCD_TEST_MODE is not set |
|
3241 |
+ |
|
3242 |
+# |
|
3243 |
+# USB Device Class drivers |
|
3244 |
+# |
|
3245 |
+# CONFIG_USB_ACM is not set |
|
3246 |
+# CONFIG_USB_PRINTER is not set |
|
3247 |
+# CONFIG_USB_WDM is not set |
|
3248 |
+# CONFIG_USB_TMC is not set |
|
3249 |
+ |
|
3250 |
+# |
|
3251 |
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
|
3252 |
+# |
|
3253 |
+ |
|
3254 |
+# |
|
3255 |
+# also be needed; see USB_STORAGE Help for more info |
|
3256 |
+# |
|
3257 |
+CONFIG_USB_STORAGE=m |
|
3258 |
+# CONFIG_USB_STORAGE_DEBUG is not set |
|
3259 |
+# CONFIG_USB_STORAGE_REALTEK is not set |
|
3260 |
+# CONFIG_USB_STORAGE_DATAFAB is not set |
|
3261 |
+# CONFIG_USB_STORAGE_FREECOM is not set |
|
3262 |
+# CONFIG_USB_STORAGE_ISD200 is not set |
|
3263 |
+# CONFIG_USB_STORAGE_USBAT is not set |
|
3264 |
+# CONFIG_USB_STORAGE_SDDR09 is not set |
|
3265 |
+# CONFIG_USB_STORAGE_SDDR55 is not set |
|
3266 |
+# CONFIG_USB_STORAGE_JUMPSHOT is not set |
|
3267 |
+# CONFIG_USB_STORAGE_ALAUDA is not set |
|
3268 |
+# CONFIG_USB_STORAGE_ONETOUCH is not set |
|
3269 |
+# CONFIG_USB_STORAGE_KARMA is not set |
|
3270 |
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set |
|
3271 |
+# CONFIG_USB_STORAGE_ENE_UB6250 is not set |
|
3272 |
+CONFIG_USB_UAS=m |
|
3273 |
+ |
|
3274 |
+# |
|
3275 |
+# USB Imaging devices |
|
3276 |
+# |
|
3277 |
+# CONFIG_USB_MDC800 is not set |
|
3278 |
+# CONFIG_USB_MICROTEK is not set |
|
3279 |
+# CONFIG_USBIP_CORE is not set |
|
3280 |
+# CONFIG_USB_MUSB_HDRC is not set |
|
3281 |
+# CONFIG_USB_DWC3 is not set |
|
3282 |
+# CONFIG_USB_DWC2 is not set |
|
3283 |
+# CONFIG_USB_CHIPIDEA is not set |
|
3284 |
+# CONFIG_USB_ISP1760 is not set |
|
3285 |
+ |
|
3286 |
+# |
|
3287 |
+# USB port drivers |
|
3288 |
+# |
|
3289 |
+CONFIG_USB_SERIAL=m |
|
3290 |
+CONFIG_USB_SERIAL_GENERIC=y |
|
3291 |
+# CONFIG_USB_SERIAL_SIMPLE is not set |
|
3292 |
+# CONFIG_USB_SERIAL_AIRCABLE is not set |
|
3293 |
+# CONFIG_USB_SERIAL_ARK3116 is not set |
|
3294 |
+# CONFIG_USB_SERIAL_BELKIN is not set |
|
3295 |
+# CONFIG_USB_SERIAL_CH341 is not set |
|
3296 |
+# CONFIG_USB_SERIAL_WHITEHEAT is not set |
|
3297 |
+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set |
|
3298 |
+CONFIG_USB_SERIAL_CP210X=m |
|
3299 |
+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set |
|
3300 |
+# CONFIG_USB_SERIAL_EMPEG is not set |
|
3301 |
+CONFIG_USB_SERIAL_FTDI_SIO=m |
|
3302 |
+# CONFIG_USB_SERIAL_VISOR is not set |
|
3303 |
+# CONFIG_USB_SERIAL_IPAQ is not set |
|
3304 |
+# CONFIG_USB_SERIAL_IR is not set |
|
3305 |
+# CONFIG_USB_SERIAL_EDGEPORT is not set |
|
3306 |
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set |
|
3307 |
+# CONFIG_USB_SERIAL_F81232 is not set |
|
3308 |
+# CONFIG_USB_SERIAL_GARMIN is not set |
|
3309 |
+# CONFIG_USB_SERIAL_IPW is not set |
|
3310 |
+# CONFIG_USB_SERIAL_IUU is not set |
|
3311 |
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set |
|
3312 |
+# CONFIG_USB_SERIAL_KEYSPAN is not set |
|
3313 |
+# CONFIG_USB_SERIAL_KLSI is not set |
|
3314 |
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set |
|
3315 |
+# CONFIG_USB_SERIAL_MCT_U232 is not set |
|
3316 |
+# CONFIG_USB_SERIAL_METRO is not set |
|
3317 |
+# CONFIG_USB_SERIAL_MOS7720 is not set |
|
3318 |
+# CONFIG_USB_SERIAL_MOS7840 is not set |
|
3319 |
+# CONFIG_USB_SERIAL_MXUPORT is not set |
|
3320 |
+# CONFIG_USB_SERIAL_NAVMAN is not set |
|
3321 |
+# CONFIG_USB_SERIAL_PL2303 is not set |
|
3322 |
+# CONFIG_USB_SERIAL_OTI6858 is not set |
|
3323 |
+# CONFIG_USB_SERIAL_QCAUX is not set |
|
3324 |
+# CONFIG_USB_SERIAL_QUALCOMM is not set |
|
3325 |
+# CONFIG_USB_SERIAL_SPCP8X5 is not set |
|
3326 |
+# CONFIG_USB_SERIAL_SAFE is not set |
|
3327 |
+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set |
|
3328 |
+# CONFIG_USB_SERIAL_SYMBOL is not set |
|
3329 |
+# CONFIG_USB_SERIAL_TI is not set |
|
3330 |
+# CONFIG_USB_SERIAL_CYBERJACK is not set |
|
3331 |
+# CONFIG_USB_SERIAL_XIRCOM is not set |
|
3332 |
+# CONFIG_USB_SERIAL_OPTION is not set |
|
3333 |
+# CONFIG_USB_SERIAL_OMNINET is not set |
|
3334 |
+# CONFIG_USB_SERIAL_OPTICON is not set |
|
3335 |
+# CONFIG_USB_SERIAL_XSENS_MT is not set |
|
3336 |
+# CONFIG_USB_SERIAL_WISHBONE is not set |
|
3337 |
+# CONFIG_USB_SERIAL_SSU100 is not set |
|
3338 |
+# CONFIG_USB_SERIAL_QT2 is not set |
|
3339 |
+# CONFIG_USB_SERIAL_DEBUG is not set |
|
3340 |
+ |
|
3341 |
+# |
|
3342 |
+# USB Miscellaneous drivers |
|
3343 |
+# |
|
3344 |
+# CONFIG_USB_EMI62 is not set |
|
3345 |
+# CONFIG_USB_EMI26 is not set |
|
3346 |
+# CONFIG_USB_ADUTUX is not set |
|
3347 |
+# CONFIG_USB_SEVSEG is not set |
|
3348 |
+# CONFIG_USB_RIO500 is not set |
|
3349 |
+# CONFIG_USB_LEGOTOWER is not set |
|
3350 |
+# CONFIG_USB_LCD is not set |
|
3351 |
+# CONFIG_USB_CYPRESS_CY7C63 is not set |
|
3352 |
+# CONFIG_USB_CYTHERM is not set |
|
3353 |
+# CONFIG_USB_IDMOUSE is not set |
|
3354 |
+# CONFIG_USB_FTDI_ELAN is not set |
|
3355 |
+# CONFIG_USB_APPLEDISPLAY is not set |
|
3356 |
+# CONFIG_USB_SISUSBVGA is not set |
|
3357 |
+# CONFIG_USB_LD is not set |
|
3358 |
+# CONFIG_USB_TRANCEVIBRATOR is not set |
|
3359 |
+# CONFIG_USB_IOWARRIOR is not set |
|
3360 |
+# CONFIG_USB_TEST is not set |
|
3361 |
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set |
|
3362 |
+# CONFIG_USB_ISIGHTFW is not set |
|
3363 |
+# CONFIG_USB_YUREX is not set |
|
3364 |
+# CONFIG_USB_EZUSB_FX2 is not set |
|
3365 |
+# CONFIG_USB_HSIC_USB3503 is not set |
|
3366 |
+# CONFIG_USB_LINK_LAYER_TEST is not set |
|
3367 |
+# CONFIG_USB_CHAOSKEY is not set |
|
3368 |
+# CONFIG_UCSI is not set |
|
3369 |
+ |
|
3370 |
+# |
|
3371 |
+# USB Physical Layer drivers |
|
3372 |
+# |
|
3373 |
+# CONFIG_USB_PHY is not set |
|
3374 |
+# CONFIG_NOP_USB_XCEIV is not set |
|
3375 |
+# CONFIG_USB_ISP1301 is not set |
|
3376 |
+# CONFIG_USB_GADGET is not set |
|
3377 |
+# CONFIG_UWB is not set |
|
3378 |
+CONFIG_MMC=m |
|
3379 |
+# CONFIG_MMC_DEBUG is not set |
|
3380 |
+ |
|
3381 |
+# |
|
3382 |
+# MMC/SD/SDIO Card Drivers |
|
3383 |
+# |
|
3384 |
+CONFIG_MMC_BLOCK=m |
|
3385 |
+CONFIG_MMC_BLOCK_MINORS=16 |
|
3386 |
+CONFIG_MMC_BLOCK_BOUNCE=y |
|
3387 |
+# CONFIG_SDIO_UART is not set |
|
3388 |
+# CONFIG_MMC_TEST is not set |
|
3389 |
+ |
|
3390 |
+# |
|
3391 |
+# MMC/SD/SDIO Host Controller Drivers |
|
3392 |
+# |
|
3393 |
+CONFIG_MMC_SDHCI=m |
|
3394 |
+CONFIG_MMC_SDHCI_PCI=m |
|
3395 |
+# CONFIG_MMC_RICOH_MMC is not set |
|
3396 |
+CONFIG_MMC_SDHCI_ACPI=m |
|
3397 |
+# CONFIG_MMC_SDHCI_PLTFM is not set |
|
3398 |
+# CONFIG_MMC_WBSD is not set |
|
3399 |
+# CONFIG_MMC_TIFM_SD is not set |
|
3400 |
+# CONFIG_MMC_CB710 is not set |
|
3401 |
+# CONFIG_MMC_VIA_SDMMC is not set |
|
3402 |
+# CONFIG_MMC_VUB300 is not set |
|
3403 |
+# CONFIG_MMC_USHC is not set |
|
3404 |
+# CONFIG_MMC_USDHI6ROL0 is not set |
|
3405 |
+# CONFIG_MMC_TOSHIBA_PCI is not set |
|
3406 |
+# CONFIG_MMC_MTK is not set |
|
3407 |
+# CONFIG_MEMSTICK is not set |
|
3408 |
+# CONFIG_NEW_LEDS is not set |
|
3409 |
+# CONFIG_ACCESSIBILITY is not set |
|
3410 |
+# CONFIG_INFINIBAND is not set |
|
3411 |
+CONFIG_EDAC_ATOMIC_SCRUB=y |
|
3412 |
+CONFIG_EDAC_SUPPORT=y |
|
3413 |
+CONFIG_EDAC=y |
|
3414 |
+# CONFIG_EDAC_LEGACY_SYSFS is not set |
|
3415 |
+# CONFIG_EDAC_DEBUG is not set |
|
3416 |
+CONFIG_EDAC_DECODE_MCE=m |
|
3417 |
+CONFIG_EDAC_MM_EDAC=m |
|
3418 |
+CONFIG_EDAC_AMD64=m |
|
3419 |
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set |
|
3420 |
+CONFIG_EDAC_E752X=m |
|
3421 |
+CONFIG_EDAC_I82975X=m |
|
3422 |
+CONFIG_EDAC_I3000=m |
|
3423 |
+CONFIG_EDAC_I3200=m |
|
3424 |
+# CONFIG_EDAC_IE31200 is not set |
|
3425 |
+CONFIG_EDAC_X38=m |
|
3426 |
+CONFIG_EDAC_I5400=m |
|
3427 |
+CONFIG_EDAC_I7CORE=m |
|
3428 |
+CONFIG_EDAC_I5000=m |
|
3429 |
+CONFIG_EDAC_I5100=m |
|
3430 |
+CONFIG_EDAC_I7300=m |
|
3431 |
+CONFIG_EDAC_SBRIDGE=m |
|
3432 |
+# CONFIG_EDAC_SKX is not set |
|
3433 |
+CONFIG_RTC_LIB=y |
|
3434 |
+CONFIG_RTC_MC146818_LIB=y |
|
3435 |
+CONFIG_RTC_CLASS=y |
|
3436 |
+CONFIG_RTC_HCTOSYS=y |
|
3437 |
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0" |
|
3438 |
+CONFIG_RTC_SYSTOHC=y |
|
3439 |
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0" |
|
3440 |
+# CONFIG_RTC_DEBUG is not set |
|
3441 |
+ |
|
3442 |
+# |
|
3443 |
+# RTC interfaces |
|
3444 |
+# |
|
3445 |
+CONFIG_RTC_INTF_SYSFS=y |
|
3446 |
+CONFIG_RTC_INTF_PROC=y |
|
3447 |
+CONFIG_RTC_INTF_DEV=y |
|
3448 |
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set |
|
3449 |
+# CONFIG_RTC_DRV_TEST is not set |
|
3450 |
+ |
|
3451 |
+# |
|
3452 |
+# I2C RTC drivers |
|
3453 |
+# |
|
3454 |
+# CONFIG_RTC_DRV_ABB5ZES3 is not set |
|
3455 |
+# CONFIG_RTC_DRV_ABX80X is not set |
|
3456 |
+# CONFIG_RTC_DRV_DS1307 is not set |
|
3457 |
+# CONFIG_RTC_DRV_DS1374 is not set |
|
3458 |
+# CONFIG_RTC_DRV_DS1672 is not set |
|
3459 |
+# CONFIG_RTC_DRV_MAX6900 is not set |
|
3460 |
+# CONFIG_RTC_DRV_RS5C372 is not set |
|
3461 |
+# CONFIG_RTC_DRV_ISL1208 is not set |
|
3462 |
+# CONFIG_RTC_DRV_ISL12022 is not set |
|
3463 |
+# CONFIG_RTC_DRV_ISL12057 is not set |
|
3464 |
+# CONFIG_RTC_DRV_X1205 is not set |
|
3465 |
+# CONFIG_RTC_DRV_PCF8523 is not set |
|
3466 |
+# CONFIG_RTC_DRV_PCF85063 is not set |
|
3467 |
+# CONFIG_RTC_DRV_PCF8563 is not set |
|
3468 |
+# CONFIG_RTC_DRV_PCF8583 is not set |
|
3469 |
+# CONFIG_RTC_DRV_M41T80 is not set |
|
3470 |
+# CONFIG_RTC_DRV_BQ32K is not set |
|
3471 |
+# CONFIG_RTC_DRV_S35390A is not set |
|
3472 |
+# CONFIG_RTC_DRV_FM3130 is not set |
|
3473 |
+# CONFIG_RTC_DRV_RX8010 is not set |
|
3474 |
+# CONFIG_RTC_DRV_RX8581 is not set |
|
3475 |
+# CONFIG_RTC_DRV_RX8025 is not set |
|
3476 |
+# CONFIG_RTC_DRV_EM3027 is not set |
|
3477 |
+# CONFIG_RTC_DRV_RV8803 is not set |
|
3478 |
+ |
|
3479 |
+# |
|
3480 |
+# SPI RTC drivers |
|
3481 |
+# |
|
3482 |
+CONFIG_RTC_I2C_AND_SPI=y |
|
3483 |
+ |
|
3484 |
+# |
|
3485 |
+# SPI and I2C RTC drivers |
|
3486 |
+# |
|
3487 |
+# CONFIG_RTC_DRV_DS3232 is not set |
|
3488 |
+# CONFIG_RTC_DRV_PCF2127 is not set |
|
3489 |
+# CONFIG_RTC_DRV_RV3029C2 is not set |
|
3490 |
+ |
|
3491 |
+# |
|
3492 |
+# Platform RTC drivers |
|
3493 |
+# |
|
3494 |
+CONFIG_RTC_DRV_CMOS=y |
|
3495 |
+# CONFIG_RTC_DRV_DS1286 is not set |
|
3496 |
+# CONFIG_RTC_DRV_DS1511 is not set |
|
3497 |
+# CONFIG_RTC_DRV_DS1553 is not set |
|
3498 |
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set |
|
3499 |
+# CONFIG_RTC_DRV_DS1742 is not set |
|
3500 |
+# CONFIG_RTC_DRV_DS2404 is not set |
|
3501 |
+# CONFIG_RTC_DRV_STK17TA8 is not set |
|
3502 |
+# CONFIG_RTC_DRV_M48T86 is not set |
|
3503 |
+# CONFIG_RTC_DRV_M48T35 is not set |
|
3504 |
+# CONFIG_RTC_DRV_M48T59 is not set |
|
3505 |
+# CONFIG_RTC_DRV_MSM6242 is not set |
|
3506 |
+# CONFIG_RTC_DRV_BQ4802 is not set |
|
3507 |
+# CONFIG_RTC_DRV_RP5C01 is not set |
|
3508 |
+# CONFIG_RTC_DRV_V3020 is not set |
|
3509 |
+ |
|
3510 |
+# |
|
3511 |
+# on-CPU RTC drivers |
|
3512 |
+# |
|
3513 |
+ |
|
3514 |
+# |
|
3515 |
+# HID Sensor RTC drivers |
|
3516 |
+# |
|
3517 |
+# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set |
|
3518 |
+CONFIG_DMADEVICES=y |
|
3519 |
+# CONFIG_DMADEVICES_DEBUG is not set |
|
3520 |
+ |
|
3521 |
+# |
|
3522 |
+# DMA Devices |
|
3523 |
+# |
|
3524 |
+CONFIG_DMA_ENGINE=y |
|
3525 |
+CONFIG_DMA_ACPI=y |
|
3526 |
+# CONFIG_INTEL_IDMA64 is not set |
|
3527 |
+CONFIG_INTEL_IOATDMA=y |
|
3528 |
+# CONFIG_QCOM_HIDMA_MGMT is not set |
|
3529 |
+# CONFIG_QCOM_HIDMA is not set |
|
3530 |
+# CONFIG_DW_DMAC is not set |
|
3531 |
+# CONFIG_DW_DMAC_PCI is not set |
|
3532 |
+ |
|
3533 |
+# |
|
3534 |
+# DMA Clients |
|
3535 |
+# |
|
3536 |
+# CONFIG_ASYNC_TX_DMA is not set |
|
3537 |
+# CONFIG_DMATEST is not set |
|
3538 |
+CONFIG_DMA_ENGINE_RAID=y |
|
3539 |
+ |
|
3540 |
+# |
|
3541 |
+# DMABUF options |
|
3542 |
+# |
|
3543 |
+# CONFIG_SYNC_FILE is not set |
|
3544 |
+CONFIG_DCA=y |
|
3545 |
+# CONFIG_AUXDISPLAY is not set |
|
3546 |
+CONFIG_UIO=m |
|
3547 |
+# CONFIG_UIO_CIF is not set |
|
3548 |
+# CONFIG_UIO_PDRV_GENIRQ is not set |
|
3549 |
+# CONFIG_UIO_DMEM_GENIRQ is not set |
|
3550 |
+# CONFIG_UIO_AEC is not set |
|
3551 |
+# CONFIG_UIO_SERCOS3 is not set |
|
3552 |
+# CONFIG_UIO_PCI_GENERIC is not set |
|
3553 |
+# CONFIG_UIO_NETX is not set |
|
3554 |
+# CONFIG_UIO_PRUSS is not set |
|
3555 |
+# CONFIG_UIO_MF624 is not set |
|
3556 |
+CONFIG_VFIO_IOMMU_TYPE1=m |
|
3557 |
+CONFIG_VFIO_VIRQFD=m |
|
3558 |
+CONFIG_VFIO=m |
|
3559 |
+# CONFIG_VFIO_NOIOMMU is not set |
|
3560 |
+CONFIG_VFIO_PCI=m |
|
3561 |
+CONFIG_VFIO_PCI_VGA=y |
|
3562 |
+CONFIG_VFIO_PCI_MMAP=y |
|
3563 |
+CONFIG_VFIO_PCI_INTX=y |
|
3564 |
+CONFIG_VFIO_PCI_IGD=y |
|
3565 |
+CONFIG_IRQ_BYPASS_MANAGER=m |
|
3566 |
+CONFIG_VIRT_DRIVERS=y |
|
3567 |
+CONFIG_VIRTIO=y |
|
3568 |
+ |
|
3569 |
+# |
|
3570 |
+# Virtio drivers |
|
3571 |
+# |
|
3572 |
+CONFIG_VIRTIO_PCI=y |
|
3573 |
+CONFIG_VIRTIO_PCI_LEGACY=y |
|
3574 |
+CONFIG_VIRTIO_BALLOON=y |
|
3575 |
+# CONFIG_VIRTIO_INPUT is not set |
|
3576 |
+CONFIG_VIRTIO_MMIO=y |
|
3577 |
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set |
|
3578 |
+ |
|
3579 |
+# |
|
3580 |
+# Microsoft Hyper-V guest support |
|
3581 |
+# |
|
3582 |
+CONFIG_HYPERV=m |
|
3583 |
+CONFIG_HYPERV_UTILS=m |
|
3584 |
+CONFIG_HYPERV_BALLOON=m |
|
3585 |
+ |
|
3586 |
+# |
|
3587 |
+# Xen driver support |
|
3588 |
+# |
|
3589 |
+CONFIG_XEN_BALLOON=y |
|
3590 |
+CONFIG_XEN_SELFBALLOONING=y |
|
3591 |
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y |
|
3592 |
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT=512 |
|
3593 |
+CONFIG_XEN_SCRUB_PAGES=y |
|
3594 |
+CONFIG_XEN_DEV_EVTCHN=m |
|
3595 |
+CONFIG_XEN_BACKEND=y |
|
3596 |
+CONFIG_XENFS=m |
|
3597 |
+CONFIG_XEN_COMPAT_XENFS=y |
|
3598 |
+CONFIG_XEN_SYS_HYPERVISOR=y |
|
3599 |
+CONFIG_XEN_XENBUS_FRONTEND=y |
|
3600 |
+CONFIG_XEN_GNTDEV=m |
|
3601 |
+CONFIG_XEN_GRANT_DEV_ALLOC=m |
|
3602 |
+CONFIG_SWIOTLB_XEN=y |
|
3603 |
+CONFIG_XEN_TMEM=m |
|
3604 |
+CONFIG_XEN_PCIDEV_BACKEND=m |
|
3605 |
+CONFIG_XEN_PRIVCMD=m |
|
3606 |
+CONFIG_XEN_ACPI_PROCESSOR=m |
|
3607 |
+CONFIG_XEN_MCE_LOG=y |
|
3608 |
+CONFIG_XEN_HAVE_PVMMU=y |
|
3609 |
+CONFIG_XEN_EFI=y |
|
3610 |
+CONFIG_XEN_AUTO_XLATE=y |
|
3611 |
+CONFIG_XEN_ACPI=y |
|
3612 |
+# CONFIG_XEN_SYMS is not set |
|
3613 |
+CONFIG_XEN_HAVE_VPMU=y |
|
3614 |
+# CONFIG_STAGING is not set |
|
3615 |
+CONFIG_X86_PLATFORM_DEVICES=y |
|
3616 |
+# CONFIG_ACER_WMI is not set |
|
3617 |
+# CONFIG_ACERHDF is not set |
|
3618 |
+# CONFIG_ASUS_LAPTOP is not set |
|
3619 |
+# CONFIG_DELL_WMI_AIO is not set |
|
3620 |
+# CONFIG_DELL_SMO8800 is not set |
|
3621 |
+# CONFIG_FUJITSU_LAPTOP is not set |
|
3622 |
+# CONFIG_FUJITSU_TABLET is not set |
|
3623 |
+# CONFIG_HP_ACCEL is not set |
|
3624 |
+# CONFIG_HP_WIRELESS is not set |
|
3625 |
+# CONFIG_HP_WMI is not set |
|
3626 |
+# CONFIG_PANASONIC_LAPTOP is not set |
|
3627 |
+# CONFIG_THINKPAD_ACPI is not set |
|
3628 |
+# CONFIG_SENSORS_HDAPS is not set |
|
3629 |
+# CONFIG_INTEL_MENLOW is not set |
|
3630 |
+# CONFIG_EEEPC_LAPTOP is not set |
|
3631 |
+# CONFIG_ASUS_WMI is not set |
|
3632 |
+# CONFIG_ASUS_WIRELESS is not set |
|
3633 |
+CONFIG_ACPI_WMI=m |
|
3634 |
+# CONFIG_MSI_WMI is not set |
|
3635 |
+# CONFIG_TOPSTAR_LAPTOP is not set |
|
3636 |
+# CONFIG_TOSHIBA_BT_RFKILL is not set |
|
3637 |
+# CONFIG_TOSHIBA_HAPS is not set |
|
3638 |
+# CONFIG_TOSHIBA_WMI is not set |
|
3639 |
+# CONFIG_ACPI_CMPC is not set |
|
3640 |
+# CONFIG_INTEL_HID_EVENT is not set |
|
3641 |
+# CONFIG_INTEL_VBTN is not set |
|
3642 |
+# CONFIG_INTEL_IPS is not set |
|
3643 |
+# CONFIG_INTEL_PMC_CORE is not set |
|
3644 |
+# CONFIG_IBM_RTL is not set |
|
3645 |
+# CONFIG_SAMSUNG_LAPTOP is not set |
|
3646 |
+CONFIG_MXM_WMI=m |
|
3647 |
+# CONFIG_SAMSUNG_Q10 is not set |
|
3648 |
+# CONFIG_APPLE_GMUX is not set |
|
3649 |
+# CONFIG_INTEL_RST is not set |
|
3650 |
+# CONFIG_INTEL_SMARTCONNECT is not set |
|
3651 |
+CONFIG_PVPANIC=m |
|
3652 |
+# CONFIG_INTEL_PMC_IPC is not set |
|
3653 |
+# CONFIG_SURFACE_PRO3_BUTTON is not set |
|
3654 |
+# CONFIG_INTEL_PUNIT_IPC is not set |
|
3655 |
+# CONFIG_CHROME_PLATFORMS is not set |
|
3656 |
+ |
|
3657 |
+# |
|
3658 |
+# Hardware Spinlock drivers |
|
3659 |
+# |
|
3660 |
+ |
|
3661 |
+# |
|
3662 |
+# Clock Source drivers |
|
3663 |
+# |
|
3664 |
+CONFIG_CLKEVT_I8253=y |
|
3665 |
+CONFIG_CLKBLD_I8253=y |
|
3666 |
+# CONFIG_ATMEL_PIT is not set |
|
3667 |
+# CONFIG_SH_TIMER_CMT is not set |
|
3668 |
+# CONFIG_SH_TIMER_MTU2 is not set |
|
3669 |
+# CONFIG_SH_TIMER_TMU is not set |
|
3670 |
+# CONFIG_EM_TIMER_STI is not set |
|
3671 |
+# CONFIG_MAILBOX is not set |
|
3672 |
+CONFIG_IOMMU_API=y |
|
3673 |
+CONFIG_IOMMU_SUPPORT=y |
|
3674 |
+ |
|
3675 |
+# |
|
3676 |
+# Generic IOMMU Pagetable Support |
|
3677 |
+# |
|
3678 |
+CONFIG_IOMMU_IOVA=y |
|
3679 |
+CONFIG_AMD_IOMMU=y |
|
3680 |
+CONFIG_AMD_IOMMU_V2=m |
|
3681 |
+CONFIG_DMAR_TABLE=y |
|
3682 |
+CONFIG_INTEL_IOMMU=y |
|
3683 |
+# CONFIG_INTEL_IOMMU_SVM is not set |
|
3684 |
+CONFIG_INTEL_IOMMU_DEFAULT_ON=y |
|
3685 |
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y |
|
3686 |
+CONFIG_IRQ_REMAP=y |
|
3687 |
+ |
|
3688 |
+# |
|
3689 |
+# Remoteproc drivers |
|
3690 |
+# |
|
3691 |
+# CONFIG_STE_MODEM_RPROC is not set |
|
3692 |
+ |
|
3693 |
+# |
|
3694 |
+# Rpmsg drivers |
|
3695 |
+# |
|
3696 |
+ |
|
3697 |
+# |
|
3698 |
+# SOC (System On Chip) specific Drivers |
|
3699 |
+# |
|
3700 |
+ |
|
3701 |
+# |
|
3702 |
+# Broadcom SoC drivers |
|
3703 |
+# |
|
3704 |
+# CONFIG_SUNXI_SRAM is not set |
|
3705 |
+# CONFIG_SOC_TI is not set |
|
3706 |
+CONFIG_PM_DEVFREQ=y |
|
3707 |
+ |
|
3708 |
+# |
|
3709 |
+# DEVFREQ Governors |
|
3710 |
+# |
|
3711 |
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m |
|
3712 |
+# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set |
|
3713 |
+# CONFIG_DEVFREQ_GOV_POWERSAVE is not set |
|
3714 |
+# CONFIG_DEVFREQ_GOV_USERSPACE is not set |
|
3715 |
+# CONFIG_DEVFREQ_GOV_PASSIVE is not set |
|
3716 |
+ |
|
3717 |
+# |
|
3718 |
+# DEVFREQ Drivers |
|
3719 |
+# |
|
3720 |
+# CONFIG_PM_DEVFREQ_EVENT is not set |
|
3721 |
+# CONFIG_EXTCON is not set |
|
3722 |
+# CONFIG_MEMORY is not set |
|
3723 |
+# CONFIG_IIO is not set |
|
3724 |
+# CONFIG_NTB is not set |
|
3725 |
+# CONFIG_VME_BUS is not set |
|
3726 |
+# CONFIG_PWM is not set |
|
3727 |
+CONFIG_ARM_GIC_MAX_NR=1 |
|
3728 |
+# CONFIG_IPACK_BUS is not set |
|
3729 |
+# CONFIG_RESET_CONTROLLER is not set |
|
3730 |
+# CONFIG_FMC is not set |
|
3731 |
+ |
|
3732 |
+# |
|
3733 |
+# PHY Subsystem |
|
3734 |
+# |
|
3735 |
+CONFIG_GENERIC_PHY=y |
|
3736 |
+# CONFIG_PHY_PXA_28NM_HSIC is not set |
|
3737 |
+# CONFIG_PHY_PXA_28NM_USB2 is not set |
|
3738 |
+# CONFIG_BCM_KONA_USB2_PHY is not set |
|
3739 |
+# CONFIG_POWERCAP is not set |
|
3740 |
+# CONFIG_MCB is not set |
|
3741 |
+ |
|
3742 |
+# |
|
3743 |
+# Performance monitor support |
|
3744 |
+# |
|
3745 |
+CONFIG_RAS=y |
|
3746 |
+# CONFIG_MCE_AMD_INJ is not set |
|
3747 |
+# CONFIG_THUNDERBOLT is not set |
|
3748 |
+ |
|
3749 |
+# |
|
3750 |
+# Android |
|
3751 |
+# |
|
3752 |
+# CONFIG_ANDROID is not set |
|
3753 |
+CONFIG_LIBNVDIMM=y |
|
3754 |
+CONFIG_BLK_DEV_PMEM=m |
|
3755 |
+CONFIG_ND_BLK=y |
|
3756 |
+CONFIG_ND_CLAIM=y |
|
3757 |
+CONFIG_ND_BTT=y |
|
3758 |
+CONFIG_BTT=y |
|
3759 |
+CONFIG_ND_PFN=m |
|
3760 |
+CONFIG_NVDIMM_PFN=y |
|
3761 |
+CONFIG_NVDIMM_DAX=y |
|
3762 |
+CONFIG_DEV_DAX=m |
|
3763 |
+CONFIG_DEV_DAX_PMEM=m |
|
3764 |
+# CONFIG_NVMEM is not set |
|
3765 |
+# CONFIG_STM is not set |
|
3766 |
+# CONFIG_INTEL_TH is not set |
|
3767 |
+ |
|
3768 |
+# |
|
3769 |
+# FPGA Configuration Support |
|
3770 |
+# |
|
3771 |
+# CONFIG_FPGA is not set |
|
3772 |
+ |
|
3773 |
+# |
|
3774 |
+# Firmware Drivers |
|
3775 |
+# |
|
3776 |
+# CONFIG_EDD is not set |
|
3777 |
+CONFIG_FIRMWARE_MEMMAP=y |
|
3778 |
+# CONFIG_DELL_RBU is not set |
|
3779 |
+# CONFIG_DCDBAS is not set |
|
3780 |
+CONFIG_DMIID=y |
|
3781 |
+# CONFIG_DMI_SYSFS is not set |
|
3782 |
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y |
|
3783 |
+CONFIG_ISCSI_IBFT_FIND=y |
|
3784 |
+# CONFIG_ISCSI_IBFT is not set |
|
3785 |
+# CONFIG_FW_CFG_SYSFS is not set |
|
3786 |
+# CONFIG_GOOGLE_FIRMWARE is not set |
|
3787 |
+ |
|
3788 |
+# |
|
3789 |
+# EFI (Extensible Firmware Interface) Support |
|
3790 |
+# |
|
3791 |
+# CONFIG_EFI_VARS is not set |
|
3792 |
+CONFIG_EFI_ESRT=y |
|
3793 |
+# CONFIG_EFI_FAKE_MEMMAP is not set |
|
3794 |
+CONFIG_EFI_RUNTIME_WRAPPERS=y |
|
3795 |
+# CONFIG_EFI_CAPSULE_LOADER is not set |
|
3796 |
+CONFIG_UEFI_CPER=y |
|
3797 |
+ |
|
3798 |
+# |
|
3799 |
+# File systems |
|
3800 |
+# |
|
3801 |
+CONFIG_DCACHE_WORD_ACCESS=y |
|
3802 |
+CONFIG_FS_IOMAP=y |
|
3803 |
+CONFIG_EXT2_FS=y |
|
3804 |
+# CONFIG_EXT2_FS_XATTR is not set |
|
3805 |
+# CONFIG_EXT3_FS is not set |
|
3806 |
+CONFIG_EXT4_FS=y |
|
3807 |
+CONFIG_EXT4_FS_POSIX_ACL=y |
|
3808 |
+CONFIG_EXT4_FS_SECURITY=y |
|
3809 |
+# CONFIG_EXT4_ENCRYPTION is not set |
|
3810 |
+# CONFIG_EXT4_DEBUG is not set |
|
3811 |
+CONFIG_JBD2=y |
|
3812 |
+# CONFIG_JBD2_DEBUG is not set |
|
3813 |
+CONFIG_FS_MBCACHE=y |
|
3814 |
+# CONFIG_REISERFS_FS is not set |
|
3815 |
+# CONFIG_JFS_FS is not set |
|
3816 |
+CONFIG_XFS_FS=y |
|
3817 |
+CONFIG_XFS_QUOTA=y |
|
3818 |
+CONFIG_XFS_POSIX_ACL=y |
|
3819 |
+CONFIG_XFS_RT=y |
|
3820 |
+CONFIG_XFS_WARN=y |
|
3821 |
+# CONFIG_XFS_DEBUG is not set |
|
3822 |
+# CONFIG_GFS2_FS is not set |
|
3823 |
+# CONFIG_OCFS2_FS is not set |
|
3824 |
+CONFIG_BTRFS_FS=m |
|
3825 |
+CONFIG_BTRFS_FS_POSIX_ACL=y |
|
3826 |
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set |
|
3827 |
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set |
|
3828 |
+# CONFIG_BTRFS_DEBUG is not set |
|
3829 |
+# CONFIG_BTRFS_ASSERT is not set |
|
3830 |
+# CONFIG_NILFS2_FS is not set |
|
3831 |
+# CONFIG_F2FS_FS is not set |
|
3832 |
+CONFIG_FS_DAX=y |
|
3833 |
+CONFIG_FS_POSIX_ACL=y |
|
3834 |
+CONFIG_EXPORTFS=y |
|
3835 |
+# CONFIG_EXPORTFS_BLOCK_OPS is not set |
|
3836 |
+CONFIG_FILE_LOCKING=y |
|
3837 |
+CONFIG_MANDATORY_FILE_LOCKING=y |
|
3838 |
+# CONFIG_FS_ENCRYPTION is not set |
|
3839 |
+CONFIG_FSNOTIFY=y |
|
3840 |
+CONFIG_DNOTIFY=y |
|
3841 |
+CONFIG_INOTIFY_USER=y |
|
3842 |
+CONFIG_FANOTIFY=y |
|
3843 |
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set |
|
3844 |
+CONFIG_QUOTA=y |
|
3845 |
+CONFIG_QUOTA_NETLINK_INTERFACE=y |
|
3846 |
+# CONFIG_PRINT_QUOTA_WARNING is not set |
|
3847 |
+# CONFIG_QUOTA_DEBUG is not set |
|
3848 |
+CONFIG_QUOTA_TREE=m |
|
3849 |
+# CONFIG_QFMT_V1 is not set |
|
3850 |
+CONFIG_QFMT_V2=m |
|
3851 |
+CONFIG_QUOTACTL=y |
|
3852 |
+CONFIG_AUTOFS4_FS=m |
|
3853 |
+CONFIG_FUSE_FS=m |
|
3854 |
+# CONFIG_CUSE is not set |
|
3855 |
+CONFIG_OVERLAY_FS=m |
|
3856 |
+ |
|
3857 |
+# |
|
3858 |
+# Caches |
|
3859 |
+# |
|
3860 |
+CONFIG_FSCACHE=m |
|
3861 |
+# CONFIG_FSCACHE_STATS is not set |
|
3862 |
+# CONFIG_FSCACHE_HISTOGRAM is not set |
|
3863 |
+# CONFIG_FSCACHE_DEBUG is not set |
|
3864 |
+# CONFIG_FSCACHE_OBJECT_LIST is not set |
|
3865 |
+# CONFIG_CACHEFILES is not set |
|
3866 |
+ |
|
3867 |
+# |
|
3868 |
+# CD-ROM/DVD Filesystems |
|
3869 |
+# |
|
3870 |
+CONFIG_ISO9660_FS=y |
|
3871 |
+CONFIG_JOLIET=y |
|
3872 |
+CONFIG_ZISOFS=y |
|
3873 |
+CONFIG_UDF_FS=y |
|
3874 |
+CONFIG_UDF_NLS=y |
|
3875 |
+ |
|
3876 |
+# |
|
3877 |
+# DOS/FAT/NT Filesystems |
|
3878 |
+# |
|
3879 |
+CONFIG_FAT_FS=m |
|
3880 |
+CONFIG_MSDOS_FS=m |
|
3881 |
+CONFIG_VFAT_FS=m |
|
3882 |
+CONFIG_FAT_DEFAULT_CODEPAGE=437 |
|
3883 |
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii" |
|
3884 |
+# CONFIG_FAT_DEFAULT_UTF8 is not set |
|
3885 |
+# CONFIG_NTFS_FS is not set |
|
3886 |
+ |
|
3887 |
+# |
|
3888 |
+# Pseudo filesystems |
|
3889 |
+# |
|
3890 |
+CONFIG_PROC_FS=y |
|
3891 |
+CONFIG_PROC_KCORE=y |
|
3892 |
+CONFIG_PROC_VMCORE=y |
|
3893 |
+CONFIG_PROC_SYSCTL=y |
|
3894 |
+CONFIG_PROC_PAGE_MONITOR=y |
|
3895 |
+CONFIG_PROC_CHILDREN=y |
|
3896 |
+CONFIG_KERNFS=y |
|
3897 |
+CONFIG_SYSFS=y |
|
3898 |
+CONFIG_TMPFS=y |
|
3899 |
+CONFIG_TMPFS_POSIX_ACL=y |
|
3900 |
+CONFIG_TMPFS_XATTR=y |
|
3901 |
+CONFIG_HUGETLBFS=y |
|
3902 |
+CONFIG_HUGETLB_PAGE=y |
|
3903 |
+CONFIG_CONFIGFS_FS=y |
|
3904 |
+CONFIG_EFIVAR_FS=y |
|
3905 |
+CONFIG_MISC_FILESYSTEMS=y |
|
3906 |
+# CONFIG_ORANGEFS_FS is not set |
|
3907 |
+# CONFIG_ADFS_FS is not set |
|
3908 |
+# CONFIG_AFFS_FS is not set |
|
3909 |
+# CONFIG_ECRYPT_FS is not set |
|
3910 |
+# CONFIG_HFS_FS is not set |
|
3911 |
+# CONFIG_HFSPLUS_FS is not set |
|
3912 |
+# CONFIG_BEFS_FS is not set |
|
3913 |
+# CONFIG_BFS_FS is not set |
|
3914 |
+# CONFIG_EFS_FS is not set |
|
3915 |
+# CONFIG_LOGFS is not set |
|
3916 |
+CONFIG_CRAMFS=m |
|
3917 |
+CONFIG_SQUASHFS=m |
|
3918 |
+CONFIG_SQUASHFS_FILE_CACHE=y |
|
3919 |
+# CONFIG_SQUASHFS_FILE_DIRECT is not set |
|
3920 |
+CONFIG_SQUASHFS_DECOMP_SINGLE=y |
|
3921 |
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set |
|
3922 |
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set |
|
3923 |
+# CONFIG_SQUASHFS_XATTR is not set |
|
3924 |
+CONFIG_SQUASHFS_ZLIB=y |
|
3925 |
+# CONFIG_SQUASHFS_LZ4 is not set |
|
3926 |
+CONFIG_SQUASHFS_LZO=y |
|
3927 |
+CONFIG_SQUASHFS_XZ=y |
|
3928 |
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set |
|
3929 |
+# CONFIG_SQUASHFS_EMBEDDED is not set |
|
3930 |
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 |
|
3931 |
+# CONFIG_VXFS_FS is not set |
|
3932 |
+# CONFIG_MINIX_FS is not set |
|
3933 |
+# CONFIG_OMFS_FS is not set |
|
3934 |
+# CONFIG_HPFS_FS is not set |
|
3935 |
+# CONFIG_QNX4FS_FS is not set |
|
3936 |
+# CONFIG_QNX6FS_FS is not set |
|
3937 |
+# CONFIG_ROMFS_FS is not set |
|
3938 |
+CONFIG_PSTORE=y |
|
3939 |
+CONFIG_PSTORE_ZLIB_COMPRESS=y |
|
3940 |
+# CONFIG_PSTORE_LZO_COMPRESS is not set |
|
3941 |
+# CONFIG_PSTORE_LZ4_COMPRESS is not set |
|
3942 |
+# CONFIG_PSTORE_CONSOLE is not set |
|
3943 |
+# CONFIG_PSTORE_PMSG is not set |
|
3944 |
+# CONFIG_PSTORE_RAM is not set |
|
3945 |
+# CONFIG_SYSV_FS is not set |
|
3946 |
+# CONFIG_UFS_FS is not set |
|
3947 |
+# CONFIG_EXOFS_FS is not set |
|
3948 |
+CONFIG_ORE=m |
|
3949 |
+CONFIG_NETWORK_FILESYSTEMS=y |
|
3950 |
+CONFIG_NFS_FS=m |
|
3951 |
+CONFIG_NFS_V2=m |
|
3952 |
+CONFIG_NFS_V3=m |
|
3953 |
+CONFIG_NFS_V3_ACL=y |
|
3954 |
+CONFIG_NFS_V4=m |
|
3955 |
+# CONFIG_NFS_SWAP is not set |
|
3956 |
+CONFIG_NFS_V4_1=y |
|
3957 |
+CONFIG_NFS_V4_2=y |
|
3958 |
+CONFIG_PNFS_FILE_LAYOUT=m |
|
3959 |
+CONFIG_PNFS_BLOCK=m |
|
3960 |
+CONFIG_PNFS_OBJLAYOUT=m |
|
3961 |
+CONFIG_PNFS_FLEXFILE_LAYOUT=m |
|
3962 |
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" |
|
3963 |
+# CONFIG_NFS_V4_1_MIGRATION is not set |
|
3964 |
+CONFIG_NFS_V4_SECURITY_LABEL=y |
|
3965 |
+CONFIG_NFS_FSCACHE=y |
|
3966 |
+# CONFIG_NFS_USE_LEGACY_DNS is not set |
|
3967 |
+CONFIG_NFS_USE_KERNEL_DNS=y |
|
3968 |
+CONFIG_NFS_DEBUG=y |
|
3969 |
+CONFIG_NFSD=m |
|
3970 |
+CONFIG_NFSD_V2_ACL=y |
|
3971 |
+CONFIG_NFSD_V3=y |
|
3972 |
+CONFIG_NFSD_V3_ACL=y |
|
3973 |
+CONFIG_NFSD_V4=y |
|
3974 |
+# CONFIG_NFSD_BLOCKLAYOUT is not set |
|
3975 |
+# CONFIG_NFSD_SCSILAYOUT is not set |
|
3976 |
+# CONFIG_NFSD_FLEXFILELAYOUT is not set |
|
3977 |
+# CONFIG_NFSD_V4_SECURITY_LABEL is not set |
|
3978 |
+# CONFIG_NFSD_FAULT_INJECTION is not set |
|
3979 |
+CONFIG_GRACE_PERIOD=m |
|
3980 |
+CONFIG_LOCKD=m |
|
3981 |
+CONFIG_LOCKD_V4=y |
|
3982 |
+CONFIG_NFS_ACL_SUPPORT=m |
|
3983 |
+CONFIG_NFS_COMMON=y |
|
3984 |
+CONFIG_SUNRPC=m |
|
3985 |
+CONFIG_SUNRPC_GSS=m |
|
3986 |
+CONFIG_SUNRPC_BACKCHANNEL=y |
|
3987 |
+CONFIG_RPCSEC_GSS_KRB5=m |
|
3988 |
+CONFIG_SUNRPC_DEBUG=y |
|
3989 |
+CONFIG_CEPH_FS=m |
|
3990 |
+CONFIG_CEPH_FSCACHE=y |
|
3991 |
+CONFIG_CEPH_FS_POSIX_ACL=y |
|
3992 |
+CONFIG_CIFS=m |
|
3993 |
+CONFIG_CIFS_STATS=y |
|
3994 |
+CONFIG_CIFS_STATS2=y |
|
3995 |
+CONFIG_CIFS_WEAK_PW_HASH=y |
|
3996 |
+CONFIG_CIFS_UPCALL=y |
|
3997 |
+CONFIG_CIFS_XATTR=y |
|
3998 |
+CONFIG_CIFS_POSIX=y |
|
3999 |
+CONFIG_CIFS_ACL=y |
|
4000 |
+CONFIG_CIFS_DEBUG=y |
|
4001 |
+# CONFIG_CIFS_DEBUG2 is not set |
|
4002 |
+CONFIG_CIFS_DFS_UPCALL=y |
|
4003 |
+CONFIG_CIFS_SMB2=y |
|
4004 |
+# CONFIG_CIFS_SMB311 is not set |
|
4005 |
+# CONFIG_CIFS_FSCACHE is not set |
|
4006 |
+# CONFIG_NCP_FS is not set |
|
4007 |
+# CONFIG_CODA_FS is not set |
|
4008 |
+# CONFIG_AFS_FS is not set |
|
4009 |
+CONFIG_9P_FS=m |
|
4010 |
+# CONFIG_9P_FSCACHE is not set |
|
4011 |
+CONFIG_9P_FS_POSIX_ACL=y |
|
4012 |
+# CONFIG_9P_FS_SECURITY is not set |
|
4013 |
+CONFIG_NLS=y |
|
4014 |
+CONFIG_NLS_DEFAULT="utf8" |
|
4015 |
+CONFIG_NLS_CODEPAGE_437=y |
|
4016 |
+# CONFIG_NLS_CODEPAGE_737 is not set |
|
4017 |
+# CONFIG_NLS_CODEPAGE_775 is not set |
|
4018 |
+# CONFIG_NLS_CODEPAGE_850 is not set |
|
4019 |
+# CONFIG_NLS_CODEPAGE_852 is not set |
|
4020 |
+# CONFIG_NLS_CODEPAGE_855 is not set |
|
4021 |
+# CONFIG_NLS_CODEPAGE_857 is not set |
|
4022 |
+# CONFIG_NLS_CODEPAGE_860 is not set |
|
4023 |
+# CONFIG_NLS_CODEPAGE_861 is not set |
|
4024 |
+# CONFIG_NLS_CODEPAGE_862 is not set |
|
4025 |
+# CONFIG_NLS_CODEPAGE_863 is not set |
|
4026 |
+# CONFIG_NLS_CODEPAGE_864 is not set |
|
4027 |
+# CONFIG_NLS_CODEPAGE_865 is not set |
|
4028 |
+# CONFIG_NLS_CODEPAGE_866 is not set |
|
4029 |
+# CONFIG_NLS_CODEPAGE_869 is not set |
|
4030 |
+# CONFIG_NLS_CODEPAGE_936 is not set |
|
4031 |
+# CONFIG_NLS_CODEPAGE_950 is not set |
|
4032 |
+# CONFIG_NLS_CODEPAGE_932 is not set |
|
4033 |
+# CONFIG_NLS_CODEPAGE_949 is not set |
|
4034 |
+# CONFIG_NLS_CODEPAGE_874 is not set |
|
4035 |
+# CONFIG_NLS_ISO8859_8 is not set |
|
4036 |
+# CONFIG_NLS_CODEPAGE_1250 is not set |
|
4037 |
+# CONFIG_NLS_CODEPAGE_1251 is not set |
|
4038 |
+CONFIG_NLS_ASCII=y |
|
4039 |
+CONFIG_NLS_ISO8859_1=y |
|
4040 |
+CONFIG_NLS_ISO8859_2=y |
|
4041 |
+CONFIG_NLS_ISO8859_3=y |
|
4042 |
+CONFIG_NLS_ISO8859_4=y |
|
4043 |
+CONFIG_NLS_ISO8859_5=y |
|
4044 |
+CONFIG_NLS_ISO8859_6=y |
|
4045 |
+CONFIG_NLS_ISO8859_7=y |
|
4046 |
+CONFIG_NLS_ISO8859_9=y |
|
4047 |
+CONFIG_NLS_ISO8859_13=y |
|
4048 |
+CONFIG_NLS_ISO8859_14=y |
|
4049 |
+CONFIG_NLS_ISO8859_15=y |
|
4050 |
+CONFIG_NLS_KOI8_R=y |
|
4051 |
+CONFIG_NLS_KOI8_U=y |
|
4052 |
+# CONFIG_NLS_MAC_ROMAN is not set |
|
4053 |
+# CONFIG_NLS_MAC_CELTIC is not set |
|
4054 |
+# CONFIG_NLS_MAC_CENTEURO is not set |
|
4055 |
+# CONFIG_NLS_MAC_CROATIAN is not set |
|
4056 |
+# CONFIG_NLS_MAC_CYRILLIC is not set |
|
4057 |
+# CONFIG_NLS_MAC_GAELIC is not set |
|
4058 |
+# CONFIG_NLS_MAC_GREEK is not set |
|
4059 |
+# CONFIG_NLS_MAC_ICELAND is not set |
|
4060 |
+# CONFIG_NLS_MAC_INUIT is not set |
|
4061 |
+# CONFIG_NLS_MAC_ROMANIAN is not set |
|
4062 |
+# CONFIG_NLS_MAC_TURKISH is not set |
|
4063 |
+CONFIG_NLS_UTF8=y |
|
4064 |
+CONFIG_DLM=m |
|
4065 |
+# CONFIG_DLM_DEBUG is not set |
|
4066 |
+ |
|
4067 |
+# |
|
4068 |
+# Kernel hacking |
|
4069 |
+# |
|
4070 |
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
|
4071 |
+ |
|
4072 |
+# |
|
4073 |
+# printk and dmesg options |
|
4074 |
+# |
|
4075 |
+CONFIG_PRINTK_TIME=y |
|
4076 |
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 |
|
4077 |
+# CONFIG_BOOT_PRINTK_DELAY is not set |
|
4078 |
+CONFIG_DYNAMIC_DEBUG=y |
|
4079 |
+ |
|
4080 |
+# |
|
4081 |
+# Compile-time checks and compiler options |
|
4082 |
+# |
|
4083 |
+CONFIG_DEBUG_INFO=y |
|
4084 |
+# CONFIG_DEBUG_INFO_REDUCED is not set |
|
4085 |
+# CONFIG_DEBUG_INFO_SPLIT is not set |
|
4086 |
+# CONFIG_DEBUG_INFO_DWARF4 is not set |
|
4087 |
+# CONFIG_GDB_SCRIPTS is not set |
|
4088 |
+# CONFIG_ENABLE_WARN_DEPRECATED is not set |
|
4089 |
+CONFIG_ENABLE_MUST_CHECK=y |
|
4090 |
+CONFIG_FRAME_WARN=2048 |
|
4091 |
+CONFIG_STRIP_ASM_SYMS=y |
|
4092 |
+# CONFIG_READABLE_ASM is not set |
|
4093 |
+CONFIG_UNUSED_SYMBOLS=y |
|
4094 |
+# CONFIG_PAGE_OWNER is not set |
|
4095 |
+CONFIG_DEBUG_FS=y |
|
4096 |
+# CONFIG_HEADERS_CHECK is not set |
|
4097 |
+# CONFIG_DEBUG_SECTION_MISMATCH is not set |
|
4098 |
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y |
|
4099 |
+CONFIG_ARCH_WANT_FRAME_POINTERS=y |
|
4100 |
+CONFIG_FRAME_POINTER=y |
|
4101 |
+# CONFIG_STACK_VALIDATION is not set |
|
4102 |
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
|
4103 |
+CONFIG_MAGIC_SYSRQ=y |
|
4104 |
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 |
|
4105 |
+CONFIG_DEBUG_KERNEL=y |
|
4106 |
+ |
|
4107 |
+# |
|
4108 |
+# Memory Debugging |
|
4109 |
+# |
|
4110 |
+CONFIG_PAGE_EXTENSION=y |
|
4111 |
+# CONFIG_DEBUG_PAGEALLOC is not set |
|
4112 |
+CONFIG_PAGE_POISONING=y |
|
4113 |
+CONFIG_PAGE_POISONING_NO_SANITY=y |
|
4114 |
+CONFIG_PAGE_POISONING_ZERO=y |
|
4115 |
+# CONFIG_DEBUG_PAGE_REF is not set |
|
4116 |
+# CONFIG_DEBUG_OBJECTS is not set |
|
4117 |
+# CONFIG_SLUB_DEBUG_ON is not set |
|
4118 |
+# CONFIG_SLUB_STATS is not set |
|
4119 |
+CONFIG_HAVE_DEBUG_KMEMLEAK=y |
|
4120 |
+# CONFIG_DEBUG_KMEMLEAK is not set |
|
4121 |
+# CONFIG_DEBUG_STACK_USAGE is not set |
|
4122 |
+# CONFIG_DEBUG_VM is not set |
|
4123 |
+# CONFIG_DEBUG_VIRTUAL is not set |
|
4124 |
+# CONFIG_DEBUG_MEMORY_INIT is not set |
|
4125 |
+# CONFIG_DEBUG_PER_CPU_MAPS is not set |
|
4126 |
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y |
|
4127 |
+# CONFIG_DEBUG_STACKOVERFLOW is not set |
|
4128 |
+CONFIG_HAVE_ARCH_KMEMCHECK=y |
|
4129 |
+# CONFIG_KMEMCHECK is not set |
|
4130 |
+CONFIG_HAVE_ARCH_KASAN=y |
|
4131 |
+# CONFIG_KASAN is not set |
|
4132 |
+CONFIG_ARCH_HAS_KCOV=y |
|
4133 |
+# CONFIG_KCOV is not set |
|
4134 |
+# CONFIG_DEBUG_SHIRQ is not set |
|
4135 |
+ |
|
4136 |
+# |
|
4137 |
+# Debug Lockups and Hangs |
|
4138 |
+# |
|
4139 |
+CONFIG_LOCKUP_DETECTOR=y |
|
4140 |
+CONFIG_HARDLOCKUP_DETECTOR=y |
|
4141 |
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y |
|
4142 |
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1 |
|
4143 |
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
|
4144 |
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
|
4145 |
+CONFIG_DETECT_HUNG_TASK=y |
|
4146 |
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=0 |
|
4147 |
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set |
|
4148 |
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 |
|
4149 |
+# CONFIG_WQ_WATCHDOG is not set |
|
4150 |
+CONFIG_PANIC_ON_OOPS=y |
|
4151 |
+CONFIG_PANIC_ON_OOPS_VALUE=1 |
|
4152 |
+CONFIG_PANIC_TIMEOUT=0 |
|
4153 |
+CONFIG_SCHED_DEBUG=y |
|
4154 |
+CONFIG_SCHED_INFO=y |
|
4155 |
+CONFIG_SCHEDSTATS=y |
|
4156 |
+# CONFIG_SCHED_STACK_END_CHECK is not set |
|
4157 |
+# CONFIG_DEBUG_TIMEKEEPING is not set |
|
4158 |
+CONFIG_TIMER_STATS=y |
|
4159 |
+ |
|
4160 |
+# |
|
4161 |
+# Lock Debugging (spinlocks, mutexes, etc...) |
|
4162 |
+# |
|
4163 |
+# CONFIG_DEBUG_RT_MUTEXES is not set |
|
4164 |
+# CONFIG_DEBUG_SPINLOCK is not set |
|
4165 |
+# CONFIG_DEBUG_MUTEXES is not set |
|
4166 |
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set |
|
4167 |
+# CONFIG_DEBUG_LOCK_ALLOC is not set |
|
4168 |
+# CONFIG_PROVE_LOCKING is not set |
|
4169 |
+# CONFIG_LOCK_STAT is not set |
|
4170 |
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set |
|
4171 |
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
|
4172 |
+# CONFIG_LOCK_TORTURE_TEST is not set |
|
4173 |
+CONFIG_STACKTRACE=y |
|
4174 |
+# CONFIG_DEBUG_KOBJECT is not set |
|
4175 |
+CONFIG_DEBUG_BUGVERBOSE=y |
|
4176 |
+CONFIG_DEBUG_LIST=y |
|
4177 |
+# CONFIG_DEBUG_PI_LIST is not set |
|
4178 |
+# CONFIG_DEBUG_SG is not set |
|
4179 |
+CONFIG_DEBUG_NOTIFIERS=y |
|
4180 |
+CONFIG_DEBUG_CREDENTIALS=y |
|
4181 |
+ |
|
4182 |
+# |
|
4183 |
+# RCU Debugging |
|
4184 |
+# |
|
4185 |
+# CONFIG_PROVE_RCU is not set |
|
4186 |
+# CONFIG_SPARSE_RCU_POINTER is not set |
|
4187 |
+# CONFIG_TORTURE_TEST is not set |
|
4188 |
+# CONFIG_RCU_PERF_TEST is not set |
|
4189 |
+# CONFIG_RCU_TORTURE_TEST is not set |
|
4190 |
+CONFIG_RCU_CPU_STALL_TIMEOUT=60 |
|
4191 |
+# CONFIG_RCU_TRACE is not set |
|
4192 |
+# CONFIG_RCU_EQS_DEBUG is not set |
|
4193 |
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set |
|
4194 |
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
|
4195 |
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set |
|
4196 |
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set |
|
4197 |
+# CONFIG_FAULT_INJECTION is not set |
|
4198 |
+CONFIG_LATENCYTOP=y |
|
4199 |
+CONFIG_USER_STACKTRACE_SUPPORT=y |
|
4200 |
+CONFIG_NOP_TRACER=y |
|
4201 |
+CONFIG_HAVE_FUNCTION_TRACER=y |
|
4202 |
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
|
4203 |
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y |
|
4204 |
+CONFIG_HAVE_DYNAMIC_FTRACE=y |
|
4205 |
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y |
|
4206 |
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
|
4207 |
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y |
|
4208 |
+CONFIG_HAVE_FENTRY=y |
|
4209 |
+CONFIG_HAVE_C_RECORDMCOUNT=y |
|
4210 |
+CONFIG_TRACE_CLOCK=y |
|
4211 |
+CONFIG_RING_BUFFER=y |
|
4212 |
+CONFIG_EVENT_TRACING=y |
|
4213 |
+CONFIG_CONTEXT_SWITCH_TRACER=y |
|
4214 |
+CONFIG_RING_BUFFER_ALLOW_SWAP=y |
|
4215 |
+CONFIG_TRACING=y |
|
4216 |
+CONFIG_GENERIC_TRACER=y |
|
4217 |
+CONFIG_TRACING_SUPPORT=y |
|
4218 |
+CONFIG_FTRACE=y |
|
4219 |
+# CONFIG_FUNCTION_TRACER is not set |
|
4220 |
+# CONFIG_IRQSOFF_TRACER is not set |
|
4221 |
+# CONFIG_SCHED_TRACER is not set |
|
4222 |
+# CONFIG_FTRACE_SYSCALLS is not set |
|
4223 |
+# CONFIG_TRACER_SNAPSHOT is not set |
|
4224 |
+CONFIG_BRANCH_PROFILE_NONE=y |
|
4225 |
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set |
|
4226 |
+# CONFIG_PROFILE_ALL_BRANCHES is not set |
|
4227 |
+# CONFIG_STACK_TRACER is not set |
|
4228 |
+CONFIG_BLK_DEV_IO_TRACE=y |
|
4229 |
+CONFIG_KPROBE_EVENT=y |
|
4230 |
+CONFIG_UPROBE_EVENT=y |
|
4231 |
+CONFIG_PROBE_EVENTS=y |
|
4232 |
+# CONFIG_FTRACE_STARTUP_TEST is not set |
|
4233 |
+# CONFIG_MMIOTRACE is not set |
|
4234 |
+# CONFIG_HIST_TRIGGERS is not set |
|
4235 |
+# CONFIG_TRACEPOINT_BENCHMARK is not set |
|
4236 |
+# CONFIG_RING_BUFFER_BENCHMARK is not set |
|
4237 |
+# CONFIG_RING_BUFFER_STARTUP_TEST is not set |
|
4238 |
+# CONFIG_TRACE_ENUM_MAP_FILE is not set |
|
4239 |
+ |
|
4240 |
+# |
|
4241 |
+# Runtime Testing |
|
4242 |
+# |
|
4243 |
+# CONFIG_LKDTM is not set |
|
4244 |
+# CONFIG_TEST_LIST_SORT is not set |
|
4245 |
+# CONFIG_KPROBES_SANITY_TEST is not set |
|
4246 |
+# CONFIG_BACKTRACE_SELF_TEST is not set |
|
4247 |
+# CONFIG_RBTREE_TEST is not set |
|
4248 |
+# CONFIG_INTERVAL_TREE_TEST is not set |
|
4249 |
+# CONFIG_PERCPU_TEST is not set |
|
4250 |
+# CONFIG_ATOMIC64_SELFTEST is not set |
|
4251 |
+# CONFIG_ASYNC_RAID6_TEST is not set |
|
4252 |
+# CONFIG_TEST_HEXDUMP is not set |
|
4253 |
+# CONFIG_TEST_STRING_HELPERS is not set |
|
4254 |
+# CONFIG_TEST_KSTRTOX is not set |
|
4255 |
+# CONFIG_TEST_PRINTF is not set |
|
4256 |
+# CONFIG_TEST_BITMAP is not set |
|
4257 |
+# CONFIG_TEST_UUID is not set |
|
4258 |
+# CONFIG_TEST_RHASHTABLE is not set |
|
4259 |
+# CONFIG_TEST_HASH is not set |
|
4260 |
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set |
|
4261 |
+# CONFIG_DMA_API_DEBUG is not set |
|
4262 |
+# CONFIG_TEST_LKM is not set |
|
4263 |
+# CONFIG_TEST_USER_COPY is not set |
|
4264 |
+# CONFIG_TEST_BPF is not set |
|
4265 |
+# CONFIG_TEST_FIRMWARE is not set |
|
4266 |
+# CONFIG_TEST_UDELAY is not set |
|
4267 |
+CONFIG_MEMTEST=y |
|
4268 |
+# CONFIG_TEST_STATIC_KEYS is not set |
|
4269 |
+# CONFIG_SAMPLES is not set |
|
4270 |
+CONFIG_HAVE_ARCH_KGDB=y |
|
4271 |
+# CONFIG_KGDB is not set |
|
4272 |
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y |
|
4273 |
+# CONFIG_UBSAN is not set |
|
4274 |
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y |
|
4275 |
+CONFIG_STRICT_DEVMEM=y |
|
4276 |
+CONFIG_IO_STRICT_DEVMEM=y |
|
4277 |
+# CONFIG_X86_VERBOSE_BOOTUP is not set |
|
4278 |
+CONFIG_EARLY_PRINTK=y |
|
4279 |
+# CONFIG_EARLY_PRINTK_DBGP is not set |
|
4280 |
+# CONFIG_EARLY_PRINTK_EFI is not set |
|
4281 |
+CONFIG_X86_PTDUMP_CORE=y |
|
4282 |
+# CONFIG_X86_PTDUMP is not set |
|
4283 |
+# CONFIG_EFI_PGT_DUMP is not set |
|
4284 |
+# CONFIG_DEBUG_RODATA_TEST is not set |
|
4285 |
+CONFIG_DEBUG_WX=y |
|
4286 |
+CONFIG_DEBUG_SET_MODULE_RONX=y |
|
4287 |
+# CONFIG_DEBUG_NX_TEST is not set |
|
4288 |
+CONFIG_DOUBLEFAULT=y |
|
4289 |
+# CONFIG_DEBUG_TLBFLUSH is not set |
|
4290 |
+# CONFIG_IOMMU_DEBUG is not set |
|
4291 |
+# CONFIG_IOMMU_STRESS is not set |
|
4292 |
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y |
|
4293 |
+# CONFIG_X86_DECODER_SELFTEST is not set |
|
4294 |
+CONFIG_IO_DELAY_TYPE_0X80=0 |
|
4295 |
+CONFIG_IO_DELAY_TYPE_0XED=1 |
|
4296 |
+CONFIG_IO_DELAY_TYPE_UDELAY=2 |
|
4297 |
+CONFIG_IO_DELAY_TYPE_NONE=3 |
|
4298 |
+CONFIG_IO_DELAY_0X80=y |
|
4299 |
+# CONFIG_IO_DELAY_0XED is not set |
|
4300 |
+# CONFIG_IO_DELAY_UDELAY is not set |
|
4301 |
+# CONFIG_IO_DELAY_NONE is not set |
|
4302 |
+CONFIG_DEFAULT_IO_DELAY_TYPE=0 |
|
4303 |
+# CONFIG_DEBUG_BOOT_PARAMS is not set |
|
4304 |
+# CONFIG_CPA_DEBUG is not set |
|
4305 |
+CONFIG_OPTIMIZE_INLINING=y |
|
4306 |
+# CONFIG_DEBUG_ENTRY is not set |
|
4307 |
+# CONFIG_DEBUG_NMI_SELFTEST is not set |
|
4308 |
+# CONFIG_X86_DEBUG_FPU is not set |
|
4309 |
+# CONFIG_PUNIT_ATOM_DEBUG is not set |
|
4310 |
+ |
|
4311 |
+# |
|
4312 |
+# Security options |
|
4313 |
+# |
|
4314 |
+CONFIG_PAX=y |
|
4315 |
+CONFIG_PAX_NOWRITEEXEC=y |
|
4316 |
+# CONFIG_PAX_EMUTRAMP is not set |
|
4317 |
+CONFIG_EXECSTACK_DISABLED=y |
|
4318 |
+CONFIG_PAX_MPROTECT=y |
|
4319 |
+CONFIG_PAX_RAP=y |
|
4320 |
+CONFIG_KEYS=y |
|
4321 |
+# CONFIG_PERSISTENT_KEYRINGS is not set |
|
4322 |
+# CONFIG_BIG_KEYS is not set |
|
4323 |
+CONFIG_TRUSTED_KEYS=m |
|
4324 |
+CONFIG_ENCRYPTED_KEYS=m |
|
4325 |
+# CONFIG_KEY_DH_OPERATIONS is not set |
|
4326 |
+CONFIG_SECURITY_DMESG_RESTRICT=y |
|
4327 |
+CONFIG_SECURITY=y |
|
4328 |
+CONFIG_SECURITYFS=y |
|
4329 |
+CONFIG_SECURITY_NETWORK=y |
|
4330 |
+# CONFIG_SECURITY_NETWORK_XFRM is not set |
|
4331 |
+CONFIG_SECURITY_PATH=y |
|
4332 |
+CONFIG_INTEL_TXT=y |
|
4333 |
+CONFIG_LSM_MMAP_MIN_ADDR=65536 |
|
4334 |
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y |
|
4335 |
+CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y |
|
4336 |
+CONFIG_HARDENED_USERCOPY=y |
|
4337 |
+CONFIG_HARDENED_USERCOPY_PAGESPAN=y |
|
4338 |
+CONFIG_SECURITY_SELINUX=y |
|
4339 |
+# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set |
|
4340 |
+# CONFIG_SECURITY_SELINUX_DISABLE is not set |
|
4341 |
+CONFIG_SECURITY_SELINUX_DEVELOP=y |
|
4342 |
+CONFIG_SECURITY_SELINUX_AVC_STATS=y |
|
4343 |
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 |
|
4344 |
+# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set |
|
4345 |
+CONFIG_SECURITY_SMACK=y |
|
4346 |
+# CONFIG_SECURITY_SMACK_BRINGUP is not set |
|
4347 |
+# CONFIG_SECURITY_SMACK_NETFILTER is not set |
|
4348 |
+# CONFIG_SECURITY_TOMOYO is not set |
|
4349 |
+CONFIG_SECURITY_APPARMOR=y |
|
4350 |
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 |
|
4351 |
+CONFIG_SECURITY_APPARMOR_HASH=y |
|
4352 |
+CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y |
|
4353 |
+CONFIG_SECURITY_LOADPIN=y |
|
4354 |
+CONFIG_SECURITY_LOADPIN_ENABLED=y |
|
4355 |
+CONFIG_SECURITY_YAMA=y |
|
4356 |
+CONFIG_INTEGRITY=y |
|
4357 |
+# CONFIG_INTEGRITY_SIGNATURE is not set |
|
4358 |
+CONFIG_INTEGRITY_AUDIT=y |
|
4359 |
+# CONFIG_IMA is not set |
|
4360 |
+# CONFIG_EVM is not set |
|
4361 |
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set |
|
4362 |
+# CONFIG_DEFAULT_SECURITY_SMACK is not set |
|
4363 |
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set |
|
4364 |
+CONFIG_DEFAULT_SECURITY_DAC=y |
|
4365 |
+CONFIG_DEFAULT_SECURITY="" |
|
4366 |
+CONFIG_XOR_BLOCKS=m |
|
4367 |
+CONFIG_ASYNC_CORE=m |
|
4368 |
+CONFIG_ASYNC_MEMCPY=m |
|
4369 |
+CONFIG_ASYNC_XOR=m |
|
4370 |
+CONFIG_ASYNC_PQ=m |
|
4371 |
+CONFIG_ASYNC_RAID6_RECOV=m |
|
4372 |
+CONFIG_CRYPTO=y |
|
4373 |
+ |
|
4374 |
+# |
|
4375 |
+# Crypto core or helper |
|
4376 |
+# |
|
4377 |
+# CONFIG_CRYPTO_FIPS is not set |
|
4378 |
+CONFIG_CRYPTO_ALGAPI=y |
|
4379 |
+CONFIG_CRYPTO_ALGAPI2=y |
|
4380 |
+CONFIG_CRYPTO_AEAD=m |
|
4381 |
+CONFIG_CRYPTO_AEAD2=y |
|
4382 |
+CONFIG_CRYPTO_BLKCIPHER=m |
|
4383 |
+CONFIG_CRYPTO_BLKCIPHER2=y |
|
4384 |
+CONFIG_CRYPTO_HASH=y |
|
4385 |
+CONFIG_CRYPTO_HASH2=y |
|
4386 |
+CONFIG_CRYPTO_RNG=m |
|
4387 |
+CONFIG_CRYPTO_RNG2=y |
|
4388 |
+CONFIG_CRYPTO_RNG_DEFAULT=m |
|
4389 |
+CONFIG_CRYPTO_AKCIPHER2=y |
|
4390 |
+CONFIG_CRYPTO_AKCIPHER=y |
|
4391 |
+CONFIG_CRYPTO_KPP2=y |
|
4392 |
+CONFIG_CRYPTO_RSA=y |
|
4393 |
+# CONFIG_CRYPTO_DH is not set |
|
4394 |
+# CONFIG_CRYPTO_ECDH is not set |
|
4395 |
+CONFIG_CRYPTO_MANAGER=y |
|
4396 |
+CONFIG_CRYPTO_MANAGER2=y |
|
4397 |
+# CONFIG_CRYPTO_USER is not set |
|
4398 |
+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set |
|
4399 |
+CONFIG_CRYPTO_GF128MUL=m |
|
4400 |
+CONFIG_CRYPTO_NULL=m |
|
4401 |
+CONFIG_CRYPTO_NULL2=y |
|
4402 |
+# CONFIG_CRYPTO_PCRYPT is not set |
|
4403 |
+CONFIG_CRYPTO_WORKQUEUE=y |
|
4404 |
+CONFIG_CRYPTO_CRYPTD=m |
|
4405 |
+# CONFIG_CRYPTO_MCRYPTD is not set |
|
4406 |
+CONFIG_CRYPTO_AUTHENC=m |
|
4407 |
+# CONFIG_CRYPTO_TEST is not set |
|
4408 |
+CONFIG_CRYPTO_ABLK_HELPER=m |
|
4409 |
+CONFIG_CRYPTO_GLUE_HELPER_X86=m |
|
4410 |
+ |
|
4411 |
+# |
|
4412 |
+# Authenticated Encryption with Associated Data |
|
4413 |
+# |
|
4414 |
+# CONFIG_CRYPTO_CCM is not set |
|
4415 |
+# CONFIG_CRYPTO_GCM is not set |
|
4416 |
+# CONFIG_CRYPTO_CHACHA20POLY1305 is not set |
|
4417 |
+# CONFIG_CRYPTO_SEQIV is not set |
|
4418 |
+CONFIG_CRYPTO_ECHAINIV=m |
|
4419 |
+ |
|
4420 |
+# |
|
4421 |
+# Block modes |
|
4422 |
+# |
|
4423 |
+CONFIG_CRYPTO_CBC=m |
|
4424 |
+# CONFIG_CRYPTO_CTR is not set |
|
4425 |
+CONFIG_CRYPTO_CTS=m |
|
4426 |
+CONFIG_CRYPTO_ECB=m |
|
4427 |
+CONFIG_CRYPTO_LRW=m |
|
4428 |
+# CONFIG_CRYPTO_PCBC is not set |
|
4429 |
+CONFIG_CRYPTO_XTS=m |
|
4430 |
+# CONFIG_CRYPTO_KEYWRAP is not set |
|
4431 |
+ |
|
4432 |
+# |
|
4433 |
+# Hash modes |
|
4434 |
+# |
|
4435 |
+CONFIG_CRYPTO_CMAC=m |
|
4436 |
+CONFIG_CRYPTO_HMAC=m |
|
4437 |
+# CONFIG_CRYPTO_XCBC is not set |
|
4438 |
+# CONFIG_CRYPTO_VMAC is not set |
|
4439 |
+ |
|
4440 |
+# |
|
4441 |
+# Digest |
|
4442 |
+# |
|
4443 |
+CONFIG_CRYPTO_CRC32C=y |
|
4444 |
+CONFIG_CRYPTO_CRC32C_INTEL=m |
|
4445 |
+# CONFIG_CRYPTO_CRC32 is not set |
|
4446 |
+# CONFIG_CRYPTO_CRC32_PCLMUL is not set |
|
4447 |
+CONFIG_CRYPTO_CRCT10DIF=y |
|
4448 |
+# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set |
|
4449 |
+# CONFIG_CRYPTO_GHASH is not set |
|
4450 |
+# CONFIG_CRYPTO_POLY1305 is not set |
|
4451 |
+# CONFIG_CRYPTO_POLY1305_X86_64 is not set |
|
4452 |
+CONFIG_CRYPTO_MD4=m |
|
4453 |
+CONFIG_CRYPTO_MD5=y |
|
4454 |
+# CONFIG_CRYPTO_MICHAEL_MIC is not set |
|
4455 |
+# CONFIG_CRYPTO_RMD128 is not set |
|
4456 |
+# CONFIG_CRYPTO_RMD160 is not set |
|
4457 |
+# CONFIG_CRYPTO_RMD256 is not set |
|
4458 |
+# CONFIG_CRYPTO_RMD320 is not set |
|
4459 |
+CONFIG_CRYPTO_SHA1=y |
|
4460 |
+CONFIG_CRYPTO_SHA1_SSSE3=m |
|
4461 |
+CONFIG_CRYPTO_SHA256_SSSE3=m |
|
4462 |
+# CONFIG_CRYPTO_SHA512_SSSE3 is not set |
|
4463 |
+# CONFIG_CRYPTO_SHA1_MB is not set |
|
4464 |
+# CONFIG_CRYPTO_SHA256_MB is not set |
|
4465 |
+# CONFIG_CRYPTO_SHA512_MB is not set |
|
4466 |
+CONFIG_CRYPTO_SHA256=m |
|
4467 |
+CONFIG_CRYPTO_SHA512=y |
|
4468 |
+# CONFIG_CRYPTO_SHA3 is not set |
|
4469 |
+# CONFIG_CRYPTO_TGR192 is not set |
|
4470 |
+# CONFIG_CRYPTO_WP512 is not set |
|
4471 |
+# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set |
|
4472 |
+ |
|
4473 |
+# |
|
4474 |
+# Ciphers |
|
4475 |
+# |
|
4476 |
+CONFIG_CRYPTO_AES=y |
|
4477 |
+CONFIG_CRYPTO_AES_X86_64=m |
|
4478 |
+CONFIG_CRYPTO_AES_NI_INTEL=m |
|
4479 |
+# CONFIG_CRYPTO_ANUBIS is not set |
|
4480 |
+CONFIG_CRYPTO_ARC4=m |
|
4481 |
+# CONFIG_CRYPTO_BLOWFISH is not set |
|
4482 |
+# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set |
|
4483 |
+# CONFIG_CRYPTO_CAMELLIA is not set |
|
4484 |
+# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set |
|
4485 |
+# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set |
|
4486 |
+# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set |
|
4487 |
+# CONFIG_CRYPTO_CAST5 is not set |
|
4488 |
+# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set |
|
4489 |
+# CONFIG_CRYPTO_CAST6 is not set |
|
4490 |
+# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set |
|
4491 |
+CONFIG_CRYPTO_DES=m |
|
4492 |
+# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set |
|
4493 |
+# CONFIG_CRYPTO_FCRYPT is not set |
|
4494 |
+# CONFIG_CRYPTO_KHAZAD is not set |
|
4495 |
+# CONFIG_CRYPTO_SALSA20 is not set |
|
4496 |
+# CONFIG_CRYPTO_SALSA20_X86_64 is not set |
|
4497 |
+# CONFIG_CRYPTO_CHACHA20 is not set |
|
4498 |
+# CONFIG_CRYPTO_CHACHA20_X86_64 is not set |
|
4499 |
+# CONFIG_CRYPTO_SEED is not set |
|
4500 |
+# CONFIG_CRYPTO_SERPENT is not set |
|
4501 |
+# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set |
|
4502 |
+# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set |
|
4503 |
+# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set |
|
4504 |
+# CONFIG_CRYPTO_TEA is not set |
|
4505 |
+# CONFIG_CRYPTO_TWOFISH is not set |
|
4506 |
+# CONFIG_CRYPTO_TWOFISH_X86_64 is not set |
|
4507 |
+# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set |
|
4508 |
+# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set |
|
4509 |
+ |
|
4510 |
+# |
|
4511 |
+# Compression |
|
4512 |
+# |
|
4513 |
+CONFIG_CRYPTO_DEFLATE=m |
|
4514 |
+# CONFIG_CRYPTO_LZO is not set |
|
4515 |
+# CONFIG_CRYPTO_842 is not set |
|
4516 |
+# CONFIG_CRYPTO_LZ4 is not set |
|
4517 |
+# CONFIG_CRYPTO_LZ4HC is not set |
|
4518 |
+ |
|
4519 |
+# |
|
4520 |
+# Random Number Generation |
|
4521 |
+# |
|
4522 |
+# CONFIG_CRYPTO_ANSI_CPRNG is not set |
|
4523 |
+CONFIG_CRYPTO_DRBG_MENU=m |
|
4524 |
+CONFIG_CRYPTO_DRBG_HMAC=y |
|
4525 |
+# CONFIG_CRYPTO_DRBG_HASH is not set |
|
4526 |
+CONFIG_CRYPTO_DRBG=m |
|
4527 |
+CONFIG_CRYPTO_JITTERENTROPY=m |
|
4528 |
+CONFIG_CRYPTO_USER_API=m |
|
4529 |
+CONFIG_CRYPTO_USER_API_HASH=m |
|
4530 |
+CONFIG_CRYPTO_USER_API_SKCIPHER=m |
|
4531 |
+# CONFIG_CRYPTO_USER_API_RNG is not set |
|
4532 |
+# CONFIG_CRYPTO_USER_API_AEAD is not set |
|
4533 |
+CONFIG_CRYPTO_HASH_INFO=y |
|
4534 |
+CONFIG_CRYPTO_HW=y |
|
4535 |
+# CONFIG_CRYPTO_DEV_PADLOCK is not set |
|
4536 |
+# CONFIG_CRYPTO_DEV_CCP is not set |
|
4537 |
+# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set |
|
4538 |
+# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set |
|
4539 |
+# CONFIG_CRYPTO_DEV_QAT_C62X is not set |
|
4540 |
+# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set |
|
4541 |
+# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set |
|
4542 |
+# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set |
|
4543 |
+CONFIG_ASYMMETRIC_KEY_TYPE=y |
|
4544 |
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y |
|
4545 |
+CONFIG_X509_CERTIFICATE_PARSER=y |
|
4546 |
+CONFIG_PKCS7_MESSAGE_PARSER=y |
|
4547 |
+# CONFIG_PKCS7_TEST_KEY is not set |
|
4548 |
+# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set |
|
4549 |
+ |
|
4550 |
+# |
|
4551 |
+# Certificates for signature checking |
|
4552 |
+# |
|
4553 |
+CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" |
|
4554 |
+CONFIG_SYSTEM_TRUSTED_KEYRING=y |
|
4555 |
+CONFIG_SYSTEM_TRUSTED_KEYS="" |
|
4556 |
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set |
|
4557 |
+# CONFIG_SECONDARY_TRUSTED_KEYRING is not set |
|
4558 |
+CONFIG_HAVE_KVM=y |
|
4559 |
+CONFIG_HAVE_KVM_IRQCHIP=y |
|
4560 |
+CONFIG_HAVE_KVM_IRQFD=y |
|
4561 |
+CONFIG_HAVE_KVM_IRQ_ROUTING=y |
|
4562 |
+CONFIG_HAVE_KVM_EVENTFD=y |
|
4563 |
+CONFIG_KVM_MMIO=y |
|
4564 |
+CONFIG_KVM_ASYNC_PF=y |
|
4565 |
+CONFIG_HAVE_KVM_MSI=y |
|
4566 |
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y |
|
4567 |
+CONFIG_KVM_VFIO=y |
|
4568 |
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y |
|
4569 |
+CONFIG_HAVE_KVM_IRQ_BYPASS=y |
|
4570 |
+CONFIG_VIRTUALIZATION=y |
|
4571 |
+CONFIG_KVM=m |
|
4572 |
+CONFIG_KVM_INTEL=m |
|
4573 |
+CONFIG_KVM_AMD=m |
|
4574 |
+# CONFIG_KVM_MMU_AUDIT is not set |
|
4575 |
+CONFIG_KVM_DEVICE_ASSIGNMENT=y |
|
4576 |
+CONFIG_VHOST_NET=m |
|
4577 |
+CONFIG_VHOST_VSOCK=m |
|
4578 |
+CONFIG_VHOST=m |
|
4579 |
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set |
|
4580 |
+CONFIG_BINARY_PRINTF=y |
|
4581 |
+ |
|
4582 |
+# |
|
4583 |
+# Library routines |
|
4584 |
+# |
|
4585 |
+CONFIG_RAID6_PQ=m |
|
4586 |
+CONFIG_BITREVERSE=y |
|
4587 |
+# CONFIG_HAVE_ARCH_BITREVERSE is not set |
|
4588 |
+CONFIG_RATIONAL=y |
|
4589 |
+CONFIG_GENERIC_STRNCPY_FROM_USER=y |
|
4590 |
+CONFIG_GENERIC_STRNLEN_USER=y |
|
4591 |
+CONFIG_GENERIC_NET_UTILS=y |
|
4592 |
+CONFIG_GENERIC_FIND_FIRST_BIT=y |
|
4593 |
+CONFIG_GENERIC_PCI_IOMAP=y |
|
4594 |
+CONFIG_GENERIC_IOMAP=y |
|
4595 |
+CONFIG_GENERIC_IO=y |
|
4596 |
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y |
|
4597 |
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y |
|
4598 |
+CONFIG_CRC_CCITT=y |
|
4599 |
+CONFIG_CRC16=y |
|
4600 |
+CONFIG_CRC_T10DIF=y |
|
4601 |
+CONFIG_CRC_ITU_T=y |
|
4602 |
+CONFIG_CRC32=y |
|
4603 |
+# CONFIG_CRC32_SELFTEST is not set |
|
4604 |
+CONFIG_CRC32_SLICEBY8=y |
|
4605 |
+# CONFIG_CRC32_SLICEBY4 is not set |
|
4606 |
+# CONFIG_CRC32_SARWATE is not set |
|
4607 |
+# CONFIG_CRC32_BIT is not set |
|
4608 |
+# CONFIG_CRC7 is not set |
|
4609 |
+CONFIG_LIBCRC32C=y |
|
4610 |
+# CONFIG_CRC8 is not set |
|
4611 |
+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set |
|
4612 |
+# CONFIG_RANDOM32_SELFTEST is not set |
|
4613 |
+CONFIG_ZLIB_INFLATE=y |
|
4614 |
+CONFIG_ZLIB_DEFLATE=y |
|
4615 |
+CONFIG_LZO_COMPRESS=y |
|
4616 |
+CONFIG_LZO_DECOMPRESS=y |
|
4617 |
+CONFIG_LZ4_DECOMPRESS=y |
|
4618 |
+CONFIG_XZ_DEC=y |
|
4619 |
+CONFIG_XZ_DEC_X86=y |
|
4620 |
+CONFIG_XZ_DEC_POWERPC=y |
|
4621 |
+CONFIG_XZ_DEC_IA64=y |
|
4622 |
+CONFIG_XZ_DEC_ARM=y |
|
4623 |
+CONFIG_XZ_DEC_ARMTHUMB=y |
|
4624 |
+CONFIG_XZ_DEC_SPARC=y |
|
4625 |
+CONFIG_XZ_DEC_BCJ=y |
|
4626 |
+# CONFIG_XZ_DEC_TEST is not set |
|
4627 |
+CONFIG_DECOMPRESS_GZIP=y |
|
4628 |
+CONFIG_DECOMPRESS_BZIP2=y |
|
4629 |
+CONFIG_DECOMPRESS_LZMA=y |
|
4630 |
+CONFIG_DECOMPRESS_XZ=y |
|
4631 |
+CONFIG_DECOMPRESS_LZO=y |
|
4632 |
+CONFIG_DECOMPRESS_LZ4=y |
|
4633 |
+CONFIG_GENERIC_ALLOCATOR=y |
|
4634 |
+CONFIG_TEXTSEARCH=y |
|
4635 |
+CONFIG_TEXTSEARCH_KMP=m |
|
4636 |
+CONFIG_TEXTSEARCH_BM=m |
|
4637 |
+CONFIG_TEXTSEARCH_FSM=m |
|
4638 |
+CONFIG_INTERVAL_TREE=y |
|
4639 |
+CONFIG_RADIX_TREE_MULTIORDER=y |
|
4640 |
+CONFIG_ASSOCIATIVE_ARRAY=y |
|
4641 |
+CONFIG_HAS_IOMEM=y |
|
4642 |
+CONFIG_HAS_IOPORT_MAP=y |
|
4643 |
+CONFIG_HAS_DMA=y |
|
4644 |
+CONFIG_CHECK_SIGNATURE=y |
|
4645 |
+CONFIG_CPUMASK_OFFSTACK=y |
|
4646 |
+CONFIG_CPU_RMAP=y |
|
4647 |
+CONFIG_DQL=y |
|
4648 |
+CONFIG_GLOB=y |
|
4649 |
+# CONFIG_GLOB_SELFTEST is not set |
|
4650 |
+CONFIG_NLATTR=y |
|
4651 |
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y |
|
4652 |
+CONFIG_CLZ_TAB=y |
|
4653 |
+# CONFIG_CORDIC is not set |
|
4654 |
+# CONFIG_DDR is not set |
|
4655 |
+CONFIG_IRQ_POLL=y |
|
4656 |
+CONFIG_MPILIB=y |
|
4657 |
+CONFIG_OID_REGISTRY=y |
|
4658 |
+CONFIG_UCS2_STRING=y |
|
4659 |
+CONFIG_FONT_SUPPORT=y |
|
4660 |
+# CONFIG_FONTS is not set |
|
4661 |
+CONFIG_FONT_8x8=y |
|
4662 |
+CONFIG_FONT_8x16=y |
|
4663 |
+# CONFIG_SG_SPLIT is not set |
|
4664 |
+CONFIG_SG_POOL=y |
|
4665 |
+CONFIG_ARCH_HAS_SG_CHAIN=y |
|
4666 |
+CONFIG_ARCH_HAS_PMEM_API=y |
|
4667 |
+CONFIG_ARCH_HAS_MMIO_FLUSH=y |
0 | 4668 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,53 @@ |
0 |
+diff -Naur a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h |
|
1 |
+--- a/include/linux/sched/sysctl.h 2016-08-20 09:09:38.000000000 -0700 |
|
2 |
+@@ -39,6 +39,7 @@ |
|
3 |
+ extern unsigned int sysctl_sched_min_granularity; |
|
4 |
+ extern unsigned int sysctl_sched_wakeup_granularity; |
|
5 |
+ extern unsigned int sysctl_sched_child_runs_first; |
|
6 |
++extern unsigned int sysctl_sched_weighted_cpuload_uses_rla; |
|
7 |
+ |
|
8 |
+ enum sched_tunable_scaling { |
|
9 |
+ SCHED_TUNABLESCALING_NONE, |
|
10 |
+diff -Naur a/kernel/sched/fair.c b/kernel/sched/fair.c |
|
11 |
+--- a/kernel/sched/fair.c 2016-08-20 09:09:38.000000000 -0700 |
|
12 |
+@@ -35,6 +35,10 @@ |
|
13 |
+ |
|
14 |
+ #include "sched.h" |
|
15 |
+ |
|
16 |
++#ifdef CONFIG_SMP |
|
17 |
++unsigned int sysctl_sched_weighted_cpuload_uses_rla = 1; |
|
18 |
++#endif |
|
19 |
++ |
|
20 |
+ /* |
|
21 |
+ * Targeted preemption latency for CPU-bound tasks: |
|
22 |
+ * (default: 6ms * (1 + ilog(ncpus)), units: nanoseconds) |
|
23 |
+@@ -4360,7 +4364,9 @@ |
|
24 |
+ /* Used instead of source_load when we know the type == 0 */ |
|
25 |
+ static unsigned long weighted_cpuload(const int cpu) |
|
26 |
+ { |
|
27 |
+- return cfs_rq_runnable_load_avg(&cpu_rq(cpu)->cfs); |
|
28 |
++ if (sysctl_sched_weighted_cpuload_uses_rla) |
|
29 |
++ return cfs_rq_runnable_load_avg(&cpu_rq(cpu)->cfs); |
|
30 |
++ return cpu_rq(cpu)->load.weight; |
|
31 |
+ } |
|
32 |
+ |
|
33 |
+ #ifdef CONFIG_NO_HZ_COMMON |
|
34 |
+diff -Naur a/kernel/sysctl.c b/kernel/sysctl.c |
|
35 |
+--- a/kernel/sysctl.c 2016-08-20 09:09:38.000000000 -0700 |
|
36 |
+@@ -350,6 +350,13 @@ |
|
37 |
+ .mode = 0644, |
|
38 |
+ .proc_handler = proc_dointvec, |
|
39 |
+ }, |
|
40 |
++ { |
|
41 |
++ .procname = "sched_weighted_cpuload_uses_rla", |
|
42 |
++ .data = &sysctl_sched_weighted_cpuload_uses_rla, |
|
43 |
++ .maxlen = sizeof(unsigned int), |
|
44 |
++ .mode = 0644, |
|
45 |
++ .proc_handler = proc_dointvec, |
|
46 |
++ }, |
|
47 |
+ #ifdef CONFIG_SCHEDSTATS |
|
48 |
+ { |
|
49 |
+ .procname = "sched_schedstats", |
0 | 50 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,179 @@ |
0 |
+diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c |
|
1 |
+index 628a059..a964013 100644 |
|
2 |
+--- a/arch/x86/kernel/cpu/vmware.c |
|
3 |
+@@ -26,16 +26,20 @@ |
|
4 |
+ #include <asm/div64.h> |
|
5 |
+ #include <asm/x86_init.h> |
|
6 |
+ #include <asm/hypervisor.h> |
|
7 |
++#include <linux/kmsg_dump.h> |
|
8 |
+ |
|
9 |
+-#define CPUID_VMWARE_INFO_LEAF 0x40000000 |
|
10 |
+-#define VMWARE_HYPERVISOR_MAGIC 0x564D5868 |
|
11 |
+-#define VMWARE_HYPERVISOR_PORT 0x5658 |
|
12 |
++#define CPUID_VMWARE_INFO_LEAF 0x40000000 |
|
13 |
++#define VMWARE_HYPERVISOR_MAGIC 0x564D5868 |
|
14 |
++#define VMWARE_HYPERVISOR_PORT 0x5658 |
|
15 |
++#define VMWARE_HYPERVISOR_HB_PORT 0x5659 |
|
16 |
+ |
|
17 |
+ #define VMWARE_PORT_CMD_GETVERSION 10 |
|
18 |
+ #define VMWARE_PORT_CMD_GETHZ 45 |
|
19 |
+ #define VMWARE_PORT_CMD_GETVCPU_INFO 68 |
|
20 |
+ #define VMWARE_PORT_CMD_LEGACY_X2APIC 3 |
|
21 |
+ #define VMWARE_PORT_CMD_VCPU_RESERVED 31 |
|
22 |
++#define VMWARE_PORT_CMD_MESSAGE 30 |
|
23 |
++#define VMWARE_HB_PORT_CMD_MESSAGE 0 |
|
24 |
+ |
|
25 |
+ #define VMWARE_PORT(cmd, eax, ebx, ecx, edx) \ |
|
26 |
+ __asm__("inl (%%dx)" : \ |
|
27 |
+@@ -75,6 +79,13 @@ static unsigned long vmware_get_tsc_khz(void) |
|
28 |
+ return tsc_hz; |
|
29 |
+ } |
|
30 |
+ |
|
31 |
++static void kmsg_dumper_vmware_log(struct kmsg_dumper *dumper, |
|
32 |
++ enum kmsg_dump_reason reason); |
|
33 |
++ |
|
34 |
++static struct kmsg_dumper kmsg_dumper = { |
|
35 |
++ .dump = kmsg_dumper_vmware_log |
|
36 |
++}; |
|
37 |
++ |
|
38 |
+ static void __init vmware_platform_setup(void) |
|
39 |
+ { |
|
40 |
+ uint32_t eax, ebx, ecx, edx; |
|
41 |
+@@ -86,6 +97,8 @@ static void __init vmware_platform_setup(void) |
|
42 |
+ x86_platform.calibrate_tsc = vmware_get_tsc_khz; |
|
43 |
+ else |
|
44 |
+ pr_warn("Failed to get TSC freq from the hypervisor\n"); |
|
45 |
++ |
|
46 |
++ kmsg_dump_register(&kmsg_dumper); |
|
47 |
+ } |
|
48 |
+ |
|
49 |
+ /* |
|
50 |
+@@ -145,3 +158,127 @@ const __refconst struct hypervisor_x86 x86_hyper_vmware = { |
|
51 |
+ .x2apic_available = vmware_legacy_x2apic_available, |
|
52 |
+ }; |
|
53 |
+ EXPORT_SYMBOL(x86_hyper_vmware); |
|
54 |
++ |
|
55 |
++#define MESSAGE_STATUS_SUCCESS (0x01 << 16) |
|
56 |
++#define MESSAGE_STATUS_CPT (0x10 << 16) |
|
57 |
++#define MESSAGE_STATUS_HB (0x80 << 16) |
|
58 |
++ |
|
59 |
++#define RPCI_PROTOCOL_NUM 0x49435052 /* 'RPCI' */ |
|
60 |
++#define GUESTMSG_FLAG_COOKIE 0x80000000 |
|
61 |
++ |
|
62 |
++#define MESSAGE_TYPE_OPEN (0 << 16) |
|
63 |
++#define MESSAGE_TYPE_SENDSIZE (1 << 16) |
|
64 |
++#define MESSAGE_TYPE_CLOSE (6 << 16) |
|
65 |
++ |
|
66 |
++typedef struct { |
|
67 |
++ uint32_t id; |
|
68 |
++ uint32_t cookieHigh; |
|
69 |
++ uint32_t cookieLow; |
|
70 |
++} vmw_msg; |
|
71 |
++ |
|
72 |
++static int |
|
73 |
++vmware_log_open(vmw_msg *msg) { |
|
74 |
++ uint32_t result, info, dx, si, di; |
|
75 |
++ __asm__ __volatile__ ("inl (%%dx)" |
|
76 |
++ : "=a" (result), |
|
77 |
++ "=c" (info), |
|
78 |
++ "=d" (dx), |
|
79 |
++ "=S" (si), |
|
80 |
++ "=D" (di) |
|
81 |
++ : "a" (VMWARE_HYPERVISOR_MAGIC), |
|
82 |
++ "c" (VMWARE_PORT_CMD_MESSAGE | MESSAGE_TYPE_OPEN), |
|
83 |
++ "d" (VMWARE_HYPERVISOR_PORT), |
|
84 |
++ "b" (RPCI_PROTOCOL_NUM | GUESTMSG_FLAG_COOKIE)); |
|
85 |
++ |
|
86 |
++ if ((info & MESSAGE_STATUS_SUCCESS) == 0) |
|
87 |
++ return 1; |
|
88 |
++ |
|
89 |
++ msg->id = dx & 0xffff0000; |
|
90 |
++ msg->cookieHigh = si; |
|
91 |
++ msg->cookieLow = di; |
|
92 |
++ return 0; |
|
93 |
++} |
|
94 |
++ |
|
95 |
++static int |
|
96 |
++vmware_log_close(vmw_msg *msg) { |
|
97 |
++ uint32_t result, info; |
|
98 |
++ __asm__ __volatile__ ("inl (%%dx)" |
|
99 |
++ : "=a" (result), |
|
100 |
++ "=c" (info) |
|
101 |
++ : "a" (VMWARE_HYPERVISOR_MAGIC), |
|
102 |
++ "c" (VMWARE_PORT_CMD_MESSAGE | MESSAGE_TYPE_CLOSE), |
|
103 |
++ "d" (VMWARE_HYPERVISOR_PORT | msg->id), |
|
104 |
++ "b" (0), |
|
105 |
++ "S" (msg->cookieHigh), |
|
106 |
++ "D" (msg->cookieLow)); |
|
107 |
++ |
|
108 |
++ if ((info & MESSAGE_STATUS_SUCCESS) == 0) |
|
109 |
++ return 1; |
|
110 |
++ return 0; |
|
111 |
++} |
|
112 |
++ |
|
113 |
++static int |
|
114 |
++vmware_log_send(vmw_msg *msg, const char *string) { |
|
115 |
++ uint32_t result, info; |
|
116 |
++ uint32_t len = strlen(string); |
|
117 |
++ |
|
118 |
++retry: |
|
119 |
++ __asm__ __volatile__ ("inl (%%dx)" |
|
120 |
++ : "=a" (result), |
|
121 |
++ "=c" (info) |
|
122 |
++ : "a" (VMWARE_HYPERVISOR_MAGIC), |
|
123 |
++ "c" (VMWARE_PORT_CMD_MESSAGE | MESSAGE_TYPE_SENDSIZE), |
|
124 |
++ "d" (VMWARE_HYPERVISOR_PORT | msg->id), |
|
125 |
++ "b" (len), |
|
126 |
++ "S" (msg->cookieHigh), |
|
127 |
++ "D" (msg->cookieLow)); |
|
128 |
++ |
|
129 |
++ if ((info & MESSAGE_STATUS_SUCCESS) == 0 || |
|
130 |
++ (info & MESSAGE_STATUS_HB) == 0) |
|
131 |
++ /* Expected success + high-bandwidth. Give up. */ |
|
132 |
++ return 1; |
|
133 |
++ |
|
134 |
++ __asm__ __volatile__ ("pushq %%rbp\n\t" |
|
135 |
++ "movl %[rbp], %%ebp\n\t" |
|
136 |
++ "cld\n\t" |
|
137 |
++ "rep; outsb\n\t" |
|
138 |
++ "popq %%rbp\n\t" |
|
139 |
++ : "=a" (result), |
|
140 |
++ "=b" (info) |
|
141 |
++ : "a" (VMWARE_HYPERVISOR_MAGIC), |
|
142 |
++ "c" (len), |
|
143 |
++ "d" (VMWARE_HYPERVISOR_HB_PORT | msg->id), |
|
144 |
++ "b" (VMWARE_HB_PORT_CMD_MESSAGE | MESSAGE_STATUS_SUCCESS), |
|
145 |
++ "S" (string), |
|
146 |
++ [rbp] "r" (msg->cookieHigh), |
|
147 |
++ "D" (msg->cookieLow)); |
|
148 |
++ |
|
149 |
++ if ((info & MESSAGE_STATUS_SUCCESS) == 0) { |
|
150 |
++ if (info & MESSAGE_STATUS_CPT) |
|
151 |
++ /* A checkpoint occurred. Retry. */ |
|
152 |
++ goto retry; |
|
153 |
++ return 1; |
|
154 |
++ } |
|
155 |
++ return 0; |
|
156 |
++} |
|
157 |
++ |
|
158 |
++static void kmsg_dumper_vmware_log(struct kmsg_dumper *dumper, |
|
159 |
++ enum kmsg_dump_reason reason) |
|
160 |
++{ |
|
161 |
++ vmw_msg msg; |
|
162 |
++ static char line[1024]; |
|
163 |
++ size_t len = 0; |
|
164 |
++ |
|
165 |
++ line[0] = 'l'; |
|
166 |
++ line[1] = 'o'; |
|
167 |
++ line[2] = 'g'; |
|
168 |
++ line[3] = ' '; |
|
169 |
++ |
|
170 |
++ while (kmsg_dump_get_line(dumper, true, line + 4, sizeof(line) - 4, &len)) { |
|
171 |
++ line[len + 4] = '\0'; |
|
172 |
++ if (vmware_log_open(&msg) || |
|
173 |
++ vmware_log_send(&msg, line) || |
|
174 |
++ vmware_log_close(&msg)) |
|
175 |
++ break; |
|
176 |
++ } |
|
177 |
++} |
0 | 178 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,75 @@ |
0 |
+From: Dave Jones <davej@redhat.com> |
|
1 |
+Date: Tue, 24 Jun 2014 08:43:34 -0400 |
|
2 |
+Subject: [PATCH] watchdog: Disable watchdog on virtual machines. |
|
3 |
+ |
|
4 |
+For various reasons, VMs seem to trigger the soft lockup detector a lot, |
|
5 |
+in cases where it's just not possible for a lockup to occur. |
|
6 |
+(Example: https://bugzilla.redhat.com/show_bug.cgi?id=971139) |
|
7 |
+ |
|
8 |
+In some cases it seems that the host just never scheduled the app running |
|
9 |
+the VM for a very long time (Could be the host was under heavy load). |
|
10 |
+ |
|
11 |
+Just disable the detector on VMs. |
|
12 |
+ |
|
13 |
+Bugzilla: 971139 |
|
14 |
+Upstream-status: Fedora mustard for now |
|
15 |
+ |
|
16 |
+Signed-off-by: Dave Jones <davej@redhat.com> |
|
17 |
+--- |
|
18 |
+ kernel/watchdog.c | 29 +++++++++++++++++++++++++++++ |
|
19 |
+ 1 file changed, 29 insertions(+) |
|
20 |
+ |
|
21 |
+diff --git a/kernel/watchdog.c b/kernel/watchdog.c |
|
22 |
+index a6ffa43f2993..b378b762844a 100644 |
|
23 |
+--- a/kernel/watchdog.c |
|
24 |
+@@ -21,6 +21,7 @@ |
|
25 |
+ #include <linux/sched/rt.h> |
|
26 |
+ #include <linux/tick.h> |
|
27 |
+ #include <linux/workqueue.h> |
|
28 |
++#include <linux/dmi.h> |
|
29 |
+ |
|
30 |
+ #include <asm/irq_regs.h> |
|
31 |
+ #include <linux/kvm_para.h> |
|
32 |
+@@ -185,6 +186,32 @@ static int __init softlockup_all_cpu_backtrace_setup(char *str) |
|
33 |
+ __setup("hardlockup_all_cpu_backtrace=", hardlockup_all_cpu_backtrace_setup); |
|
34 |
+ #endif |
|
35 |
+ |
|
36 |
++static int disable_watchdog(const struct dmi_system_id *d) |
|
37 |
++{ |
|
38 |
++ printk(KERN_INFO "watchdog: disabled (inside virtual machine)\n"); |
|
39 |
++ watchdog_user_enabled = 0; |
|
40 |
++ return 0; |
|
41 |
++} |
|
42 |
++ |
|
43 |
++static const struct dmi_system_id watchdog_virt_dmi_table[] = { |
|
44 |
++ { |
|
45 |
++ .callback = disable_watchdog, |
|
46 |
++ .ident = "VMware", |
|
47 |
++ .matches = { |
|
48 |
++ DMI_MATCH(DMI_SYS_VENDOR, "VMware, Inc."), |
|
49 |
++ }, |
|
50 |
++ }, |
|
51 |
++ { |
|
52 |
++ .callback = disable_watchdog, |
|
53 |
++ .ident = "Bochs", |
|
54 |
++ .matches = { |
|
55 |
++ DMI_MATCH(DMI_SYS_VENDOR, "Bochs"), |
|
56 |
++ }, |
|
57 |
++ }, |
|
58 |
++ {} |
|
59 |
++}; |
|
60 |
++ |
|
61 |
++ |
|
62 |
+ /* |
|
63 |
+ * Hard-lockup warnings should be triggered after just a few seconds. Soft- |
|
64 |
+ * lockups can have false positives under extreme conditions. So we generally |
|
65 |
+@@ -1037,6 +1064,8 @@ int proc_watchdog_cpumask(struct ctl_table *table, int write, |
|
66 |
+ |
|
67 |
+ void __init lockup_detector_init(void) |
|
68 |
+ { |
|
69 |
++ dmi_check_system(watchdog_virt_dmi_table); |
|
70 |
++ |
|
71 |
+ set_sample_period(); |
|
72 |
+ |
|
73 |
+ #ifdef CONFIG_NO_HZ_FULL |
0 | 74 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,142 @@ |
0 |
+%global security_hardening none |
|
1 |
+Summary: Kernel |
|
2 |
+Name: linux-sec |
|
3 |
+Version: 4.8.0 |
|
4 |
+Release: 1%{?dist} |
|
5 |
+License: GPLv2 |
|
6 |
+URL: http://www.kernel.org/ |
|
7 |
+Group: System Environment/Kernel |
|
8 |
+Vendor: VMware, Inc. |
|
9 |
+Distribution: Photon |
|
10 |
+#Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{version}.tar.xz |
|
11 |
+Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.8.tar.xz |
|
12 |
+%define sha1 linux=e375f93600a7b96191498af39e5a2416b6666e59 |
|
13 |
+Source1: config-sec-%{version} |
|
14 |
+Patch0: 0001-NOWRITEEXEC-and-PAX-features-EMUTRAMP-MPROTECT.patch |
|
15 |
+Patch1: 0002-Added-rap_plugin.-Func-signature-fixing-is-still-req.patch |
|
16 |
+Patch2: double-tcp_mem-limits.patch |
|
17 |
+Patch3: linux-4.8-sysctl-sched_weighted_cpuload_uses_rla.patch |
|
18 |
+Patch4: linux-4.8-watchdog-Disable-watchdog-on-virtual-machines.patch |
|
19 |
+Patch5: SUNRPC-Do-not-reuse-srcport-for-TIME_WAIT-socket.patch |
|
20 |
+Patch6: 06-sunrpc.patch |
|
21 |
+Patch7: linux-4.8-vmware-log-kmsg-dump-on-panic.patch |
|
22 |
+#Patch8: linux-4.8-REVERT-sched-fair-Beef-up-wake_wide.patch |
|
23 |
+BuildRequires: bc |
|
24 |
+BuildRequires: kbd |
|
25 |
+BuildRequires: kmod |
|
26 |
+BuildRequires: glib-devel |
|
27 |
+BuildRequires: xerces-c-devel |
|
28 |
+BuildRequires: xml-security-c-devel |
|
29 |
+BuildRequires: libdnet |
|
30 |
+BuildRequires: libmspack |
|
31 |
+BuildRequires: Linux-PAM |
|
32 |
+BuildRequires: openssl-devel |
|
33 |
+BuildRequires: procps-ng-devel |
|
34 |
+Requires: filesystem kmod coreutils |
|
35 |
+ |
|
36 |
+%description |
|
37 |
+Security hardened Linux kernel. |
|
38 |
+ |
|
39 |
+%package devel |
|
40 |
+Summary: Kernel Dev |
|
41 |
+Group: System Environment/Kernel |
|
42 |
+Requires: python2 |
|
43 |
+Requires: %{name} = %{version}-%{release} |
|
44 |
+%description devel |
|
45 |
+The Linux package contains the Linux kernel dev files |
|
46 |
+ |
|
47 |
+%package docs |
|
48 |
+Summary: Kernel docs |
|
49 |
+Group: System Environment/Kernel |
|
50 |
+Requires: python2 |
|
51 |
+Requires: %{name} = %{version}-%{release} |
|
52 |
+%description docs |
|
53 |
+The Linux package contains the Linux kernel doc files |
|
54 |
+ |
|
55 |
+%prep |
|
56 |
+#%setup -q -n linux-%{version} |
|
57 |
+%setup -q -n linux-4.8 |
|
58 |
+%patch0 -p1 |
|
59 |
+%patch1 -p1 |
|
60 |
+%patch2 -p1 |
|
61 |
+%patch3 -p1 |
|
62 |
+%patch4 -p1 |
|
63 |
+%patch5 -p1 |
|
64 |
+%patch6 -p1 |
|
65 |
+%patch7 -p1 |
|
66 |
+#%patch8 -p1 |
|
67 |
+ |
|
68 |
+%build |
|
69 |
+# patch vmw_balloon driver |
|
70 |
+sed -i 's/module_init/late_initcall/' drivers/misc/vmw_balloon.c |
|
71 |
+ |
|
72 |
+make mrproper |
|
73 |
+cp %{SOURCE1} .config |
|
74 |
+make LC_ALL= oldconfig |
|
75 |
+make VERBOSE=1 KBUILD_BUILD_VERSION="1-photon" KBUILD_BUILD_HOST="photon" ARCH="x86_64" %{?_smp_mflags} |
|
76 |
+ |
|
77 |
+%install |
|
78 |
+install -vdm 755 %{buildroot}/etc |
|
79 |
+install -vdm 755 %{buildroot}/boot |
|
80 |
+install -vdm 755 %{buildroot}%{_defaultdocdir}/linux-sec-%{version} |
|
81 |
+install -vdm 755 %{buildroot}/etc/modprobe.d |
|
82 |
+install -vdm 755 %{buildroot}/usr/src/%{name}-headers-%{version}-%{release} |
|
83 |
+make INSTALL_MOD_PATH=%{buildroot} modules_install |
|
84 |
+cp -v arch/x86/boot/bzImage %{buildroot}/boot/vmlinuz-sec-%{version}-%{release} |
|
85 |
+cp -v System.map %{buildroot}/boot/system.map-sec-%{version}-%{release} |
|
86 |
+cp -v .config %{buildroot}/boot/config-sec-%{version}-%{release} |
|
87 |
+cp -r Documentation/* %{buildroot}%{_defaultdocdir}/linux-sec-%{version} |
|
88 |
+install -vdm 755 %{buildroot}/usr/lib/debug/lib/modules/%{version}-sec |
|
89 |
+cp -v vmlinux %{buildroot}/usr/lib/debug/lib/modules/%{version}-sec/vmlinux-sec-%{version}-%{release} |
|
90 |
+ |
|
91 |
+# TODO: noacpi acpi=off noapic pci=conf1,nodomains pcie_acpm=off pnpacpi=off |
|
92 |
+cat > %{buildroot}/boot/%{name}-%{version}-%{release}.cfg << "EOF" |
|
93 |
+# GRUB Environment Block |
|
94 |
+photon_cmdline=init=/lib/systemd/systemd rcupdate.rcu_expedited=1 rw systemd.show_status=0 quiet noreplace-smp cpu_init_udelay=0 plymouth.enable=0 |
|
95 |
+photon_linux=vmlinuz-sec-%{version}-%{release} |
|
96 |
+EOF |
|
97 |
+ |
|
98 |
+# cleanup dangling symlinks |
|
99 |
+rm -f %{buildroot}/lib/modules/%{version}-sec/source |
|
100 |
+rm -f %{buildroot}/lib/modules/%{version}-sec/build |
|
101 |
+ |
|
102 |
+# create /use/src/linux-sec-headers-*/ content |
|
103 |
+find . -name Makefile* -o -name Kconfig* -o -name *.pl | xargs sh -c 'cp --parents "$@" %{buildroot}/usr/src/%{name}-headers-%{version}-%{release}' copy |
|
104 |
+find arch/x86/include include scripts -type f | xargs sh -c 'cp --parents "$@" %{buildroot}/usr/src/%{name}-headers-%{version}-%{release}' copy |
|
105 |
+find $(find arch/x86 -name include -o -name scripts -type d) -type f | xargs sh -c 'cp --parents "$@" %{buildroot}/usr/src/%{name}-headers-%{version}-%{release}' copy |
|
106 |
+find arch/x86/include Module.symvers include scripts -type f | xargs sh -c 'cp --parents "$@" %{buildroot}/usr/src/%{name}-headers-%{version}-%{release}' copy |
|
107 |
+ |
|
108 |
+# copy .config manually to be where it's expected to be |
|
109 |
+cp .config %{buildroot}/usr/src/%{name}-headers-%{version}-%{release} |
|
110 |
+# symling to the build folder |
|
111 |
+ln -sf /usr/src/%{name}-headers-%{version}-%{release} %{buildroot}/lib/modules/%{version}-sec/build |
|
112 |
+find %{buildroot}/lib/modules -name '*.ko' -print0 | xargs -0 chmod u+x |
|
113 |
+ |
|
114 |
+%post |
|
115 |
+/sbin/depmod -aq %{version}-sec |
|
116 |
+ln -sf %{name}-%{version}-%{release}.cfg /boot/photon.cfg |
|
117 |
+ |
|
118 |
+%files |
|
119 |
+%defattr(-,root,root) |
|
120 |
+/boot/system.map-sec-%{version}-%{release} |
|
121 |
+/boot/config-sec-%{version}-%{release} |
|
122 |
+/boot/vmlinuz-sec-%{version}-%{release} |
|
123 |
+%config(noreplace) /boot/%{name}-%{version}-%{release}.cfg |
|
124 |
+/lib/firmware/* |
|
125 |
+/lib/modules/* |
|
126 |
+%exclude /lib/modules/%{version}-sec/build |
|
127 |
+%exclude /usr/src |
|
128 |
+ |
|
129 |
+%files docs |
|
130 |
+%defattr(-,root,root) |
|
131 |
+%{_defaultdocdir}/linux-sec-%{version}/* |
|
132 |
+ |
|
133 |
+%files devel |
|
134 |
+%defattr(-,root,root) |
|
135 |
+/lib/modules/%{version}-sec/build |
|
136 |
+/usr/src/%{name}-headers-%{version}-%{release} |
|
137 |
+ |
|
138 |
+%changelog |
|
139 |
+* Mon Oct 17 2016 Alexey Makhalov <amakhalov@vmware.com> 4.8.0-1 |
|
140 |
+ Initial commit. |
|
141 |
+ |