File tree Expand file tree Collapse file tree 3 files changed +12
-11
lines changed Expand file tree Collapse file tree 3 files changed +12
-11
lines changed Original file line number Diff line number Diff line change @@ -53,16 +53,21 @@ extern unsigned long end_iomem;
53
53
#else
54
54
# define VMALLOC_END (FIXADDR_START-2*PAGE_SIZE)
55
55
#endif
56
+ #define MODULES_VADDR VMALLOC_START
57
+ #define MODULES_END VMALLOC_END
58
+ #define MODULES_LEN (MODULES_VADDR - MODULES_END)
56
59
57
60
#define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED | _PAGE_DIRTY)
58
61
#define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY)
59
62
#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY)
60
-
63
+ #define __PAGE_KERNEL_EXEC \
64
+ (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED)
61
65
#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
62
66
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED)
63
67
#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED)
64
68
#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED)
65
69
#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED)
70
+ #define PAGE_KERNEL_EXEC __pgprot(__PAGE_KERNEL_EXEC)
66
71
67
72
/*
68
73
* The i386 can't do page protection for execute, and considers that the same
Original file line number Diff line number Diff line change @@ -46,6 +46,10 @@ extern bool __vmalloc_start_set; /* set once high_memory is set */
46
46
# define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
47
47
#endif
48
48
49
+ #define MODULES_VADDR VMALLOC_START
50
+ #define MODULES_END VMALLOC_END
51
+ #define MODULES_LEN (MODULES_VADDR - MODULES_END)
52
+
49
53
#define MAXMEM (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE)
50
54
51
55
#endif /* _ASM_X86_PGTABLE_32_DEFS_H */
Original file line number Diff line number Diff line change 34
34
#define DEBUGP (fmt ...)
35
35
#endif
36
36
37
- #if defined(CONFIG_UML ) || defined(CONFIG_X86_32 )
38
- void * module_alloc (unsigned long size )
39
- {
40
- if (size == 0 )
41
- return NULL ;
42
- return vmalloc_exec (size );
43
- }
44
- #else /*X86_64*/
45
37
void * module_alloc (unsigned long size )
46
38
{
47
39
struct vm_struct * area ;
@@ -56,9 +48,9 @@ void *module_alloc(unsigned long size)
56
48
if (!area )
57
49
return NULL ;
58
50
59
- return __vmalloc_area (area , GFP_KERNEL , PAGE_KERNEL_EXEC );
51
+ return __vmalloc_area (area , GFP_KERNEL | __GFP_HIGHMEM ,
52
+ PAGE_KERNEL_EXEC );
60
53
}
61
- #endif
62
54
63
55
/* Free memory returned from module_alloc */
64
56
void module_free (struct module * mod , void * module_region )
You can’t perform that action at this time.
0 commit comments