Gentoo Archives: gentoo-commits

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/hardened-patchset:master commit in: 4.5.2/
Date: Sat, 30 Apr 2016 12:13:10
Message-Id: 1462018391.7a7e6b22b7b5ed9528af9141b51b38c5e77449c4.blueness@gentoo
1 commit: 7a7e6b22b7b5ed9528af9141b51b38c5e77449c4
2 Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
3 AuthorDate: Sat Apr 30 12:13:11 2016 +0000
4 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
5 CommitDate: Sat Apr 30 12:13:11 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/hardened-patchset.git/commit/?id=7a7e6b22
7
8 grsecurity-3.1-4.5.2-201604290633
9
10 4.5.2/0000_README | 2 +-
11 ...> 4420_grsecurity-3.1-4.5.2-201604290633.patch} | 143 +++++++++++++--------
12 2 files changed, 90 insertions(+), 55 deletions(-)
13
14 diff --git a/4.5.2/0000_README b/4.5.2/0000_README
15 index 6857874..53f08f8 100644
16 --- a/4.5.2/0000_README
17 +++ b/4.5.2/0000_README
18 @@ -6,7 +6,7 @@ Patch: 1001_linux-4.5.2.patch
19 From: http://www.kernel.org
20 Desc: Linux 4.5.2
21
22 -Patch: 4420_grsecurity-3.1-4.5.2-201604282058.patch
23 +Patch: 4420_grsecurity-3.1-4.5.2-201604290633.patch
24 From: http://www.grsecurity.net
25 Desc: hardened-sources base patch from upstream grsecurity
26
27
28 diff --git a/4.5.2/4420_grsecurity-3.1-4.5.2-201604282058.patch b/4.5.2/4420_grsecurity-3.1-4.5.2-201604290633.patch
29 similarity index 99%
30 rename from 4.5.2/4420_grsecurity-3.1-4.5.2-201604282058.patch
31 rename to 4.5.2/4420_grsecurity-3.1-4.5.2-201604290633.patch
32 index 00a02a9..89fb9b5 100644
33 --- a/4.5.2/4420_grsecurity-3.1-4.5.2-201604282058.patch
34 +++ b/4.5.2/4420_grsecurity-3.1-4.5.2-201604290633.patch
35 @@ -15850,7 +15850,7 @@ index 1a4477c..0031513 100644
36 ) {
37
38 diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
39 -index bb3e376..567eb30 100644
40 +index bb3e376..c49752a 100644
41 --- a/arch/x86/entry/entry_32.S
42 +++ b/arch/x86/entry/entry_32.S
43 @@ -147,13 +147,157 @@
44 @@ -16231,7 +16231,7 @@ index bb3e376..567eb30 100644
45
46 ENTRY(simd_coprocessor_error)
47 ASM_CLAC
48 -@@ -540,7 +758,7 @@ ENTRY(simd_coprocessor_error)
49 +@@ -540,20 +758,20 @@ ENTRY(simd_coprocessor_error)
50 pushl $do_simd_coprocessor_error
51 #endif
52 jmp error_code
53 @@ -16240,7 +16240,13 @@ index bb3e376..567eb30 100644
54
55 ENTRY(device_not_available)
56 ASM_CLAC
57 -@@ -553,7 +771,7 @@ END(device_not_available)
58 + pushl $-1 # mark this as an int
59 + pushl $do_device_not_available
60 + jmp error_code
61 +-END(device_not_available)
62 ++ENDPROC(device_not_available)
63 +
64 + #ifdef CONFIG_PARAVIRT
65 ENTRY(native_iret)
66 iret
67 _ASM_EXTABLE(native_iret, iret_exc)
68 @@ -42998,10 +43004,17 @@ index eae5107..26e7a39 100644
69 }
70 EXPORT_SYMBOL_GPL(od_unregister_powersave_bias_handler);
71 diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
72 -index cd83d47..3ad4309 100644
73 +index cd83d47..3d6afab 100644
74 --- a/drivers/cpufreq/intel_pstate.c
75 +++ b/drivers/cpufreq/intel_pstate.c
76 -@@ -147,7 +147,7 @@ static inline int32_t get_target_pstate_use_performance(struct cpudata *cpu);
77 +@@ -141,13 +141,13 @@ struct pstate_funcs {
78 + struct cpu_defaults {
79 + struct pstate_adjust_policy pid_policy;
80 + struct pstate_funcs funcs;
81 +-};
82 ++} __do_const;
83 +
84 + static inline int32_t get_target_pstate_use_performance(struct cpudata *cpu);
85 static inline int32_t get_target_pstate_use_cpu_load(struct cpudata *cpu);
86
87 static struct pstate_adjust_policy pid_params;
88 @@ -45690,6 +45703,26 @@ index 813ef23..17928d6 100644
89 struct drm_display_mode *mode)
90 {
91 struct drm_device *dev = connector->dev;
92 +diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
93 +index 7cd87a0..be562ce 100644
94 +--- a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
95 ++++ b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
96 +@@ -120,9 +120,14 @@ static void dsi_set_pipe_plane_enable_state(struct drm_device *dev,
97 + u32 pipeconf_reg = PIPEACONF;
98 + u32 dspcntr_reg = DSPACNTR;
99 +
100 +- u32 dspcntr = dev_priv->dspcntr[pipe];
101 ++ u32 dspcntr;
102 + u32 mipi = MIPI_PORT_EN | PASS_FROM_SPHY_TO_AFE | SEL_FLOPPED_HSTX;
103 +
104 ++ if (pipe == -1)
105 ++ return;
106 ++
107 ++ dspcntr = dev_priv->dspcntr[pipe];
108 ++
109 + if (pipe) {
110 + pipeconf_reg = PIPECCONF;
111 + dspcntr_reg = DSPCCNTR;
112 diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_output.c b/drivers/gpu/drm/gma500/mdfld_dsi_output.c
113 index d758f4c..7828190 100644
114 --- a/drivers/gpu/drm/gma500/mdfld_dsi_output.c
115 @@ -65533,9 +65566,20 @@ index 1fc622b..8c48fc3 100644
116
117 extern struct oprofile_stat_struct oprofile_stats;
118 diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
119 -index b48ac630..df1b012 100644
120 +index b48ac630..0a69794 100644
121 --- a/drivers/oprofile/oprofilefs.c
122 +++ b/drivers/oprofile/oprofilefs.c
123 +@@ -176,8 +176,8 @@ int oprofilefs_create_ro_ulong(struct dentry *root,
124 +
125 + static ssize_t atomic_read_file(struct file *file, char __user *buf, size_t count, loff_t *offset)
126 + {
127 +- atomic_t *val = file->private_data;
128 +- return oprofilefs_ulong_to_user(atomic_read(val), buf, count, offset);
129 ++ atomic_unchecked_t *val = file->private_data;
130 ++ return oprofilefs_ulong_to_user(atomic_read_unchecked(val), buf, count, offset);
131 + }
132 +
133 +
134 @@ -189,7 +189,7 @@ static const struct file_operations atomic_ro_fops = {
135
136
137 @@ -66251,7 +66295,7 @@ index e9caa34..72ed655 100644
138 .ident = "Sony Vaio",
139 .matches = {
140 diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
141 -index a268a7a..67a0be4 100644
142 +index a268a7a..558ca4c 100644
143 --- a/drivers/platform/x86/thinkpad_acpi.c
144 +++ b/drivers/platform/x86/thinkpad_acpi.c
145 @@ -2461,10 +2461,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
146 @@ -66275,15 +66319,7 @@ index a268a7a..67a0be4 100644
147 {
148 int status;
149
150 -@@ -4221,6 +4221,7 @@ static const struct attribute_group bluetooth_attr_group = {
151 - .attrs = bluetooth_attributes,
152 - };
153 -
154 -+const struct tpacpi_rfk_ops bluetooth_tprfk_ops_;
155 - static const struct tpacpi_rfk_ops bluetooth_tprfk_ops = {
156 - .get_status = bluetooth_get_status,
157 - .set_status = bluetooth_set_status,
158 -@@ -4352,7 +4353,7 @@ static int wan_get_status(void)
159 +@@ -4352,7 +4352,7 @@ static int wan_get_status(void)
160 TPACPI_RFK_RADIO_ON : TPACPI_RFK_RADIO_OFF;
161 }
162
163 @@ -66292,7 +66328,7 @@ index a268a7a..67a0be4 100644
164 {
165 int status;
166
167 -@@ -4538,7 +4539,7 @@ static int uwb_get_status(void)
168 +@@ -4538,7 +4538,7 @@ static int uwb_get_status(void)
169 TPACPI_RFK_RADIO_ON : TPACPI_RFK_RADIO_OFF;
170 }
171
172 @@ -66301,7 +66337,7 @@ index a268a7a..67a0be4 100644
173 {
174 int status;
175
176 -@@ -9450,7 +9451,7 @@ static struct ibm_init_struct ibms_init[] __initdata = {
177 +@@ -9450,7 +9450,7 @@ static struct ibm_init_struct ibms_init[] __initdata = {
178 },
179 };
180
181 @@ -134194,19 +134230,20 @@ index 30f5362..8ed8ac9 100644
182 void *pmi_pal;
183 u8 *vbe_state_orig; /*
184 diff --git a/init/Kconfig b/init/Kconfig
185 -index 2232080..c5df76e 100644
186 +index 2232080..ae4d217 100644
187 --- a/init/Kconfig
188 +++ b/init/Kconfig
189 -@@ -286,6 +286,8 @@ config FHANDLE
190 +@@ -285,7 +285,8 @@ config FHANDLE
191 +
192 config USELIB
193 bool "uselib syscall"
194 - def_bool ALPHA || M68K || SPARC || X86_32 || IA32_EMULATION
195 +- def_bool ALPHA || M68K || SPARC || X86_32 || IA32_EMULATION
196 + default n
197 + depends on !GRKERNSEC
198 help
199 This option enables the uselib syscall, a system call used in the
200 dynamic linker from libc5 and earlier. glibc does not use this
201 -@@ -628,6 +630,7 @@ config RCU_FAST_NO_HZ
202 +@@ -628,6 +629,7 @@ config RCU_FAST_NO_HZ
203 config TREE_RCU_TRACE
204 def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU )
205 select DEBUG_FS
206 @@ -134214,7 +134251,7 @@ index 2232080..c5df76e 100644
207 help
208 This option provides tracing for the TREE_RCU and
209 PREEMPT_RCU implementations, permitting Makefile to
210 -@@ -1132,6 +1135,7 @@ endif # CGROUPS
211 +@@ -1132,6 +1134,7 @@ endif # CGROUPS
212 config CHECKPOINT_RESTORE
213 bool "Checkpoint/restore support" if EXPERT
214 select PROC_CHILDREN
215 @@ -134222,7 +134259,7 @@ index 2232080..c5df76e 100644
216 default n
217 help
218 Enables additional kernel features in a sake of checkpoint/restore.
219 -@@ -1676,7 +1680,7 @@ config SLUB_DEBUG
220 +@@ -1676,7 +1679,7 @@ config SLUB_DEBUG
221
222 config COMPAT_BRK
223 bool "Disable heap randomization"
224 @@ -137469,7 +137506,7 @@ index 0551c21..f753f95 100644
225 debug_mutex_free_waiter(&waiter);
226 mutex_release(&lock->dep_map, 1, ip);
227 diff --git a/kernel/module.c b/kernel/module.c
228 -index 794ebe8..70e7897 100644
229 +index 794ebe8..74c285e 100644
230 --- a/kernel/module.c
231 +++ b/kernel/module.c
232 @@ -59,6 +59,7 @@
233 @@ -137631,7 +137668,7 @@ index 794ebe8..70e7897 100644
234 + __mod_update_bounds_rx(mod->core_layout.base_rx, mod->core_layout.size_rx);
235 + __mod_update_bounds_rw(mod->core_layout.base_rw, mod->core_layout.size_rw);
236 + if (mod->init_layout.size_rx)
237 -+ __mod_update_bounds_rw(mod->init_layout.base_rx, mod->init_layout.size_rx);
238 ++ __mod_update_bounds_rx(mod->init_layout.base_rx, mod->init_layout.size_rx);
239 + if (mod->init_layout.size_rw)
240 + __mod_update_bounds_rw(mod->init_layout.base_rw, mod->init_layout.size_rw);
241 }
242 @@ -137992,7 +138029,7 @@ index 794ebe8..70e7897 100644
243 }
244
245 /*
246 -@@ -2509,7 +2593,11 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
247 +@@ -2509,7 +2593,9 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
248 Elf_Shdr *symsec = &info->sechdrs[info->index.sym];
249
250 /* Set up to point into init section. */
251 @@ -138000,12 +138037,10 @@ index 794ebe8..70e7897 100644
252 + mod->kallsyms = mod->init_layout.base_rx + info->mod_kallsyms_init_off;
253 +
254 + pax_open_kernel();
255 -+
256 -+ pax_open_kernel();
257
258 mod->kallsyms->symtab = (void *)symsec->sh_addr;
259 mod->kallsyms->num_symtab = symsec->sh_size / sizeof(Elf_Sym);
260 -@@ -2522,8 +2610,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
261 +@@ -2522,8 +2608,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
262 = elf_type(&mod->kallsyms->symtab[i], info);
263
264 /* Now populate the cut down core kallsyms for after init. */
265 @@ -138016,7 +138051,7 @@ index 794ebe8..70e7897 100644
266 src = mod->kallsyms->symtab;
267 for (ndst = i = 0; i < mod->kallsyms->num_symtab; i++) {
268 if (i == 0 ||
269 -@@ -2536,6 +2624,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
270 +@@ -2536,6 +2622,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
271 }
272 }
273 mod->core_kallsyms.num_symtab = ndst;
274 @@ -138025,7 +138060,7 @@ index 794ebe8..70e7897 100644
275 }
276 #else
277 static inline void layout_symtab(struct module *mod, struct load_info *info)
278 -@@ -2835,7 +2925,15 @@ static struct module *setup_load_info(struct load_info *info, int flags)
279 +@@ -2835,7 +2923,15 @@ static struct module *setup_load_info(struct load_info *info, int flags)
280 mod = (void *)info->sechdrs[info->index.mod].sh_addr;
281
282 if (info->index.sym == 0) {
283 @@ -138041,7 +138076,7 @@ index 794ebe8..70e7897 100644
284 return ERR_PTR(-ENOEXEC);
285 }
286
287 -@@ -2851,8 +2949,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
288 +@@ -2851,8 +2947,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
289 static int check_modinfo(struct module *mod, struct load_info *info, int flags)
290 {
291 const char *modmagic = get_modinfo(info, "vermagic");
292 @@ -138056,7 +138091,7 @@ index 794ebe8..70e7897 100644
293 if (flags & MODULE_INIT_IGNORE_VERMAGIC)
294 modmagic = NULL;
295
296 -@@ -2877,7 +2981,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
297 +@@ -2877,7 +2979,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
298 }
299
300 /* Set up license info based on the info section */
301 @@ -138065,7 +138100,7 @@ index 794ebe8..70e7897 100644
302
303 return 0;
304 }
305 -@@ -2974,7 +3078,7 @@ static int move_module(struct module *mod, struct load_info *info)
306 +@@ -2974,7 +3076,7 @@ static int move_module(struct module *mod, struct load_info *info)
307 void *ptr;
308
309 /* Do the allocs. */
310 @@ -138074,7 +138109,7 @@ index 794ebe8..70e7897 100644
311 /*
312 * The pointer to this block is stored in the module structure
313 * which is inside the block. Just mark it as not being a
314 -@@ -2984,11 +3088,11 @@ static int move_module(struct module *mod, struct load_info *info)
315 +@@ -2984,11 +3086,11 @@ static int move_module(struct module *mod, struct load_info *info)
316 if (!ptr)
317 return -ENOMEM;
318
319 @@ -138090,7 +138125,7 @@ index 794ebe8..70e7897 100644
320 /*
321 * The pointer to this block is stored in the module structure
322 * which is inside the block. This block doesn't need to be
323 -@@ -2997,13 +3101,45 @@ static int move_module(struct module *mod, struct load_info *info)
324 +@@ -2997,13 +3099,45 @@ static int move_module(struct module *mod, struct load_info *info)
325 */
326 kmemleak_ignore(ptr);
327 if (!ptr) {
328 @@ -138140,7 +138175,7 @@ index 794ebe8..70e7897 100644
329
330 /* Transfer each section which specifies SHF_ALLOC */
331 pr_debug("final section addresses:\n");
332 -@@ -3014,16 +3150,45 @@ static int move_module(struct module *mod, struct load_info *info)
333 +@@ -3014,16 +3148,45 @@ static int move_module(struct module *mod, struct load_info *info)
334 if (!(shdr->sh_flags & SHF_ALLOC))
335 continue;
336
337 @@ -138193,7 +138228,7 @@ index 794ebe8..70e7897 100644
338 pr_debug("\t0x%lx %s\n",
339 (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
340 }
341 -@@ -3080,12 +3245,12 @@ static void flush_module_icache(const struct module *mod)
342 +@@ -3080,12 +3243,12 @@ static void flush_module_icache(const struct module *mod)
343 * Do it before processing of module parameters, so the module
344 * can provide parameter accessor functions of its own.
345 */
346 @@ -138212,7 +138247,7 @@ index 794ebe8..70e7897 100644
347
348 set_fs(old_fs);
349 }
350 -@@ -3143,8 +3308,10 @@ static void module_deallocate(struct module *mod, struct load_info *info)
351 +@@ -3143,8 +3306,10 @@ static void module_deallocate(struct module *mod, struct load_info *info)
352 {
353 percpu_modfree(mod);
354 module_arch_freeing_init(mod);
355 @@ -138225,7 +138260,7 @@ index 794ebe8..70e7897 100644
356 }
357
358 int __weak module_finalize(const Elf_Ehdr *hdr,
359 -@@ -3157,7 +3324,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
360 +@@ -3157,7 +3322,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
361 static int post_relocation(struct module *mod, const struct load_info *info)
362 {
363 /* Sort exception table now relocations are done. */
364 @@ -138235,7 +138270,7 @@ index 794ebe8..70e7897 100644
365
366 /* Copy relocated percpu area over. */
367 percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr,
368 -@@ -3205,13 +3374,15 @@ static void do_mod_ctors(struct module *mod)
369 +@@ -3205,13 +3372,15 @@ static void do_mod_ctors(struct module *mod)
370 /* For freeing module_init on success, in case kallsyms traversing */
371 struct mod_initfree {
372 struct rcu_head rcu;
373 @@ -138253,7 +138288,7 @@ index 794ebe8..70e7897 100644
374 kfree(m);
375 }
376
377 -@@ -3231,7 +3402,8 @@ static noinline int do_init_module(struct module *mod)
378 +@@ -3231,7 +3400,8 @@ static noinline int do_init_module(struct module *mod)
379 ret = -ENOMEM;
380 goto fail;
381 }
382 @@ -138263,7 +138298,7 @@ index 794ebe8..70e7897 100644
383
384 /*
385 * We want to find out whether @mod uses async during init. Clear
386 -@@ -3290,10 +3462,10 @@ static noinline int do_init_module(struct module *mod)
387 +@@ -3290,10 +3460,10 @@ static noinline int do_init_module(struct module *mod)
388 mod_tree_remove_init(mod);
389 disable_ro_nx(&mod->init_layout);
390 module_arch_freeing_init(mod);
391 @@ -138278,7 +138313,7 @@ index 794ebe8..70e7897 100644
392 /*
393 * We want to free module_init, but be aware that kallsyms may be
394 * walking this with preempt disabled. In all the failure paths, we
395 -@@ -3481,9 +3653,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
396 +@@ -3481,9 +3651,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
397 if (err)
398 goto free_unload;
399
400 @@ -138317,7 +138352,7 @@ index 794ebe8..70e7897 100644
401 /* Fix up syms, so that st_value is a pointer to location. */
402 err = simplify_symbols(mod, info);
403 if (err < 0)
404 -@@ -3499,13 +3700,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
405 +@@ -3499,13 +3698,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
406
407 flush_module_icache(mod);
408
409 @@ -138331,7 +138366,7 @@ index 794ebe8..70e7897 100644
410 dynamic_debug_setup(info->debug, info->num_debug);
411
412 /* Ftrace init must be called in the MODULE_STATE_UNFORMED state */
413 -@@ -3557,11 +3751,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
414 +@@ -3557,11 +3749,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
415 ddebug_cleanup:
416 dynamic_debug_remove(info->debug);
417 synchronize_sched();
418 @@ -138344,7 +138379,7 @@ index 794ebe8..70e7897 100644
419 free_unload:
420 module_unload_free(mod);
421 unlink_mod:
422 -@@ -3581,7 +3774,8 @@ static int load_module(struct load_info *info, const char __user *uargs,
423 +@@ -3581,7 +3772,8 @@ static int load_module(struct load_info *info, const char __user *uargs,
424 */
425 ftrace_release_mod(mod);
426 /* Free lock-classes; relies on the preceding sync_rcu() */
427 @@ -138354,7 +138389,7 @@ index 794ebe8..70e7897 100644
428
429 module_deallocate(mod, info);
430 free_copy:
431 -@@ -3664,10 +3858,16 @@ static const char *get_ksymbol(struct module *mod,
432 +@@ -3664,10 +3856,16 @@ static const char *get_ksymbol(struct module *mod,
433 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms);
434
435 /* At worse, next value is at end of module */
436 @@ -138374,7 +138409,7 @@ index 794ebe8..70e7897 100644
437
438 /* Scan for closest preceding symbol, and next symbol. (ELF
439 starts real symbols at 1). */
440 -@@ -3920,7 +4120,7 @@ static int m_show(struct seq_file *m, void *p)
441 +@@ -3920,7 +4118,7 @@ static int m_show(struct seq_file *m, void *p)
442 return 0;
443
444 seq_printf(m, "%s %u",
445 @@ -138383,7 +138418,7 @@ index 794ebe8..70e7897 100644
446 print_unload_info(m, mod);
447
448 /* Informative for users. */
449 -@@ -3929,7 +4129,7 @@ static int m_show(struct seq_file *m, void *p)
450 +@@ -3929,7 +4127,7 @@ static int m_show(struct seq_file *m, void *p)
451 mod->state == MODULE_STATE_COMING ? "Loading" :
452 "Live");
453 /* Used by oprofile and other similar tools. */
454 @@ -138392,7 +138427,7 @@ index 794ebe8..70e7897 100644
455
456 /* Taints info */
457 if (mod->taints)
458 -@@ -3965,7 +4165,17 @@ static const struct file_operations proc_modules_operations = {
459 +@@ -3965,7 +4163,17 @@ static const struct file_operations proc_modules_operations = {
460
461 static int __init proc_modules_init(void)
462 {
463 @@ -138410,7 +138445,7 @@ index 794ebe8..70e7897 100644
464 return 0;
465 }
466 module_init(proc_modules_init);
467 -@@ -4026,7 +4236,8 @@ struct module *__module_address(unsigned long addr)
468 +@@ -4026,7 +4234,8 @@ struct module *__module_address(unsigned long addr)
469 {
470 struct module *mod;
471
472 @@ -138420,7 +138455,7 @@ index 794ebe8..70e7897 100644
473 return NULL;
474
475 module_assert_mutex_or_preempt();
476 -@@ -4069,11 +4280,21 @@ bool is_module_text_address(unsigned long addr)
477 +@@ -4069,11 +4278,21 @@ bool is_module_text_address(unsigned long addr)
478 */
479 struct module *__module_text_address(unsigned long addr)
480 {