diff options
author | Daniel Hillenbrand <daniel.hillenbrand@codeworkx.de> | 2012-07-18 22:46:02 +0200 |
---|---|---|
committer | Daniel Hillenbrand <daniel.hillenbrand@codeworkx.de> | 2012-07-18 22:46:02 +0200 |
commit | 387fb3de82e56e2f7f79d9ee8f456f7f9cde5090 (patch) | |
tree | a4e713e361953a42657d53d66029dc4aa90f3caa | |
parent | d8d9c6139a8ce0ceb590155fe01e72199b48eb40 (diff) | |
download | kernel_samsung_espresso10-387fb3de82e56e2f7f79d9ee8f456f7f9cde5090.tar.gz kernel_samsung_espresso10-387fb3de82e56e2f7f79d9ee8f456f7f9cde5090.tar.bz2 kernel_samsung_espresso10-387fb3de82e56e2f7f79d9ee8f456f7f9cde5090.zip |
gcc compat
-rw-r--r-- | include/linux/mm.h | 13 | ||||
-rw-r--r-- | include/linux/mm_types.h | 73 | ||||
-rw-r--r-- | security/smc/Makefile | 4 |
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 |