mars/pre-patches/vanilla-3.9/0001-mars-generic-pre-patch...

125 lines
3.7 KiB
Diff

From 0fb124ed5a51403b043d22b4a6c2824a804cb311 Mon Sep 17 00:00:00 2001
From: Thomas Schoebel-Theuer <schoebel@bell.site>
Date: Wed, 26 Jun 2013 14:45:07 +0200
Subject: [PATCH] mars: generic pre-patch for mars
Mostly introduces missing EXPORT_SYMBOL().
Should have exactly zero impact onto the kernel.
This is the generic version which exports all sys_*() system
calls. This should not introduce any additional maintenance pain
because that interfaces has to be stable anyway due to POSIX etc.
---
fs/open.c | 1 -
fs/utimes.c | 2 ++
include/linux/syscalls.h | 4 ++++
include/uapi/linux/major.h | 1 +
mm/page_alloc.c | 2 ++
mm/swap_state.c | 1 +
6 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/fs/open.c b/fs/open.c
index 6835446..9434a7e 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -1065,7 +1065,6 @@ SYSCALL_DEFINE1(close, unsigned int, fd)
return retval;
}
-EXPORT_SYMBOL(sys_close);
/*
* This routine simulates a hangup on the tty, to arrange that users
diff --git a/fs/utimes.c b/fs/utimes.c
index f4fb7ec..6afbba8 100644
--- a/fs/utimes.c
+++ b/fs/utimes.c
@@ -1,3 +1,4 @@
+#include <linux/module.h>
#include <linux/compiler.h>
#include <linux/file.h>
#include <linux/fs.h>
@@ -174,6 +175,7 @@ retry:
out:
return error;
}
+EXPORT_SYMBOL(do_utimes);
SYSCALL_DEFINE4(utimensat, int, dfd, const char __user *, filename,
struct timespec __user *, utimes, int, flags)
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 313a8e0..80d2ed9 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -74,6 +74,7 @@ struct sigaltstack;
#include <linux/sem.h>
#include <asm/siginfo.h>
#include <linux/unistd.h>
+#include <linux/export.h>
#include <linux/quota.h>
#include <linux/key.h>
#include <trace/syscall.h>
@@ -242,12 +243,15 @@ extern struct trace_event_functions exit_syscall_print_funcs;
return (long) SYSC##name(__SC_CAST##x(__VA_ARGS__)); \
} \
SYSCALL_ALIAS(sys##name, SyS##name); \
+ EXPORT_SYMBOL(sys##name); \
static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__))
#else /* CONFIG_HAVE_SYSCALL_WRAPPERS */
#define SYSCALL_DEFINE(name) asmlinkage long sys_##name
#define __SYSCALL_DEFINEx(x, name, ...) \
+ asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__)); \
+ EXPORT_SYMBOL(sys##name); \
asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__))
#endif /* CONFIG_HAVE_SYSCALL_WRAPPERS */
diff --git a/include/uapi/linux/major.h b/include/uapi/linux/major.h
index 6a8ca98..faf6692 100644
--- a/include/uapi/linux/major.h
+++ b/include/uapi/linux/major.h
@@ -146,6 +146,7 @@
#define UNIX98_PTY_SLAVE_MAJOR (UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT)
#define DRBD_MAJOR 147
+#define MARS_MAJOR 148
#define RTF_MAJOR 150
#define RAW_MAJOR 162
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index ab62b75..eaee209 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -196,6 +196,7 @@ static char * const zone_names[MAX_NR_ZONES] = {
};
int min_free_kbytes = 1024;
+EXPORT_SYMBOL(min_free_kbytes);
static unsigned long __meminitdata nr_kernel_pages;
static unsigned long __meminitdata nr_all_pages;
@@ -5305,6 +5306,7 @@ static void __setup_per_zone_wmarks(void)
/* update totalreserve_pages */
calculate_totalreserve_pages();
}
+EXPORT_SYMBOL(setup_per_zone_wmarks);
/**
* setup_per_zone_wmarks - called when min_free_kbytes changes
diff --git a/mm/swap_state.c b/mm/swap_state.c
index 44574ce..2d8fefb 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -43,6 +43,7 @@ struct address_space swapper_spaces[MAX_SWAPFILES] = {
.backing_dev_info = &swap_backing_dev_info,
}
};
+EXPORT_SYMBOL(swapper_space);
#define INC_CACHE_INFO(x) do { swap_cache_info.x++; } while (0)
--
1.9.3