aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/kernel_iface.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/kernel_iface.c b/src/kernel_iface.c
index e446102..98449b0 100644
--- a/src/kernel_iface.c
+++ b/src/kernel_iface.c
@@ -86,6 +86,7 @@ int init_kernel_iface(void)
86{ 86{
87 int err = 0; 87 int err = 0;
88 long page_size = sysconf(_SC_PAGESIZE); 88 long page_size = sysconf(_SC_PAGESIZE);
89 void* mapped_at = NULL;
89 90
90 BUILD_BUG_ON(sizeof(union np_flag) != sizeof(uint64_t)); 91 BUILD_BUG_ON(sizeof(union np_flag) != sizeof(uint64_t));
91 92
@@ -98,7 +99,13 @@ int init_kernel_iface(void)
98 BUILD_BUG_ON(offsetof(struct control_page, irq_syscall_start) 99 BUILD_BUG_ON(offsetof(struct control_page, irq_syscall_start)
99 != LITMUS_CP_OFFSET_IRQ_SC_START); 100 != LITMUS_CP_OFFSET_IRQ_SC_START);
100 101
101 err = map_file(LITMUS_CTRL_DEVICE, (void**) &ctrl_page, CTRL_PAGES * page_size); 102 err = map_file(LITMUS_CTRL_DEVICE, &mapped_at, CTRL_PAGES * page_size);
103
104 /* Assign ctrl_page indirectly to avoid GCC warnings about aliasing
105 * related to type pruning.
106 */
107 ctrl_page = mapped_at;
108
102 if (err) { 109 if (err) {
103 fprintf(stderr, "%s: cannot open LITMUS^RT control page (%m)\n", 110 fprintf(stderr, "%s: cannot open LITMUS^RT control page (%m)\n",
104 __FUNCTION__); 111 __FUNCTION__);