aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Hillenbrand <daniel.hillenbrand@codeworkx.de>2012-07-18 22:46:02 +0200
committerDaniel Hillenbrand <daniel.hillenbrand@codeworkx.de>2012-07-18 22:46:02 +0200
commit387fb3de82e56e2f7f79d9ee8f456f7f9cde5090 (patch)
treea4e713e361953a42657d53d66029dc4aa90f3caa
parentd8d9c6139a8ce0ceb590155fe01e72199b48eb40 (diff)
downloadkernel_samsung_espresso10-387fb3de82e56e2f7f79d9ee8f456f7f9cde5090.tar.gz
kernel_samsung_espresso10-387fb3de82e56e2f7f79d9ee8f456f7f9cde5090.tar.bz2
kernel_samsung_espresso10-387fb3de82e56e2f7f79d9ee8f456f7f9cde5090.zip
gcc compat
-rw-r--r--include/linux/mm.h13
-rw-r--r--include/linux/mm_types.h73
-rw-r--r--security/smc/Makefile4
3 files changed, 34 insertions, 56 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index b1a8c01dee6..f7f727c4cd0 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -375,6 +375,17 @@ static inline int page_count(struct page *page)
return atomic_read(&compound_head(page)->_count);
}
+static inline void get_huge_page_tail(struct page *page)
+{
+ /*
+ * __split_huge_page_refcount() cannot run
+ * from under us.
+ */
+ VM_BUG_ON(page_mapcount(page) < 0);
+ VM_BUG_ON(atomic_read(&page->_count) != 0);
+ atomic_inc(&page->_mapcount);
+}
+
extern bool __get_page_tail(struct page *page);
static inline void get_page(struct page *page)
@@ -1458,7 +1469,7 @@ int write_one_page(struct page *page, int wait);
void task_dirty_inc(struct task_struct *tsk);
/* readahead.c */
-#define VM_MAX_READAHEAD 128 /* kbytes */
+#define VM_MAX_READAHEAD 1024 /* kbytes */
#define VM_MIN_READAHEAD 16 /* kbytes (includes current page) */
int force_page_cache_readahead(struct address_space *mapping, struct file *filp,
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index f33b5a01213..059839c7000 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -35,62 +35,25 @@ struct page {
unsigned long flags; /* Atomic flags, some possibly
* updated asynchronously */
atomic_t _count; /* Usage count, see below. */
- struct address_space *mapping; /* If low bit clear, points to
- * inode address_space, or NULL.
- * If page mapped as anonymous
- * memory, low bit is set, and
- * it points to anon_vma object:
- * see PAGE_MAPPING_ANON below.
- */
- /* Second double word */
- struct {
- union {
- pgoff_t index; /* Our offset within mapping. */
- void *freelist; /* slub first free object */
- };
-
- union {
- /* Used for cmpxchg_double in slub */
- unsigned long counters;
-
- struct {
-
- union {
- /*
- * Count of ptes mapped in
- * mms, to show when page is
- * mapped & limit reverse map
- * searches.
- *
- * Used also for tail pages
- * refcounting instead of
- * _count. Tail pages cannot
- * be mapped and keeping the
- * tail page _count zero at
- * all times guarantees
- * get_page_unless_zero() will
- * never succeed on tail
- * pages.
- */
- atomic_t _mapcount;
-
- struct {
- unsigned inuse:16;
- unsigned objects:15;
- unsigned frozen:1;
- };
- };
- atomic_t _count; /* Usage count, see below. */
- };
- };
- };
-
- /* Third double word block */
union {
- atomic_t _mapcount; /* Count of ptes mapped in mms,
- * to show when page is mapped
- * & limit reverse map searches.
- */
+ /*
+ * Count of ptes mapped in
+ * mms, to show when page is
+ * mapped & limit reverse map
+ * searches.
+ *
+ * Used also for tail pages
+ * refcounting instead of
+ * _count. Tail pages cannot
+ * be mapped and keeping the
+ * tail page _count zero at
+ * all times guarantees
+ * get_page_unless_zero() will
+ * never succeed on tail
+ * pages.
+ */
+ atomic_t _mapcount;
+
struct { /* SLUB */
u16 inuse;
u16 objects;
diff --git a/security/smc/Makefile b/security/smc/Makefile
index cf79de8663a..1b1578cf76c 100644
--- a/security/smc/Makefile
+++ b/security/smc/Makefile
@@ -22,6 +22,8 @@ ifdef S_VERSION_BUILD
EXTRA_CFLAGS += -DS_VERSION_BUILD=$(S_VERSION_BUILD)
endif
+plus_sec := $(call as-instr,.arch_extension sec,+sec)
+
EXTRA_CFLAGS += -Iarch/arm/mach-omap2
EXTRA_CFLAGS += -Iarch/arm/plat-omap/include/plat
EXTRA_CFLAGS += -DCONFIG_TF_TEEC
@@ -41,6 +43,8 @@ tf_driver-objs += tf_device_mshield.o
tf_driver-objs += bridge_pub2sec.o
tf_driver-objs += tf_teec.o
+AFLAGS_bridge_pub2sec.o +=-Wa,-march=armv7-a$(plus_sec)
+
ifeq ($(CONFIG_TF_DRIVER_CRYPTO_FIPS),y)
tf_driver-objs += tf_crypto_hmac.o
tf_driver-objs += tf_self_test_device.o