Merge branch 'hwpoison' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6
* 'hwpoison' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (34 commits) HWPOISON: Remove stray phrase in a comment HWPOISON: Try to allocate migration page on the same node HWPOISON: Don't do early filtering if filter is disabled HWPOISON: Add a madvise() injector for soft page offlining HWPOISON: Add soft page offline support HWPOISON: Undefine short-hand macros after use to avoid namespace conflict HWPOISON: Use new shake_page in memory_failure HWPOISON: Use correct name for MADV_HWPOISON in documentation HWPOISON: mention HWPoison in Kconfig entry HWPOISON: Use get_user_page_fast in hwpoison madvise HWPOISON: add an interface to switch off/on all the page filters HWPOISON: add memory cgroup filter memcg: add accessor to mem_cgroup.css memcg: rename and export try_get_mem_cgroup_from_page() HWPOISON: add page flags filter mm: export stable page flags HWPOISON: limit hwpoison injector to known page types HWPOISON: add fs/device filters HWPOISON: return 0 to indicate success reliably HWPOISON: make semantics of IGNORED/DELAYED clear ...
This commit is contained in:
commit
d4220f987c
19 changed files with 923 additions and 127 deletions
|
@ -8,6 +8,7 @@
|
|||
#include <linux/proc_fs.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/hugetlb.h>
|
||||
#include <linux/kernel-page-flags.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include "internal.h"
|
||||
|
||||
|
@ -71,52 +72,12 @@ static const struct file_operations proc_kpagecount_operations = {
|
|||
* physical page flags.
|
||||
*/
|
||||
|
||||
/* These macros are used to decouple internal flags from exported ones */
|
||||
|
||||
#define KPF_LOCKED 0
|
||||
#define KPF_ERROR 1
|
||||
#define KPF_REFERENCED 2
|
||||
#define KPF_UPTODATE 3
|
||||
#define KPF_DIRTY 4
|
||||
#define KPF_LRU 5
|
||||
#define KPF_ACTIVE 6
|
||||
#define KPF_SLAB 7
|
||||
#define KPF_WRITEBACK 8
|
||||
#define KPF_RECLAIM 9
|
||||
#define KPF_BUDDY 10
|
||||
|
||||
/* 11-20: new additions in 2.6.31 */
|
||||
#define KPF_MMAP 11
|
||||
#define KPF_ANON 12
|
||||
#define KPF_SWAPCACHE 13
|
||||
#define KPF_SWAPBACKED 14
|
||||
#define KPF_COMPOUND_HEAD 15
|
||||
#define KPF_COMPOUND_TAIL 16
|
||||
#define KPF_HUGE 17
|
||||
#define KPF_UNEVICTABLE 18
|
||||
#define KPF_HWPOISON 19
|
||||
#define KPF_NOPAGE 20
|
||||
|
||||
#define KPF_KSM 21
|
||||
|
||||
/* kernel hacking assistances
|
||||
* WARNING: subject to change, never rely on them!
|
||||
*/
|
||||
#define KPF_RESERVED 32
|
||||
#define KPF_MLOCKED 33
|
||||
#define KPF_MAPPEDTODISK 34
|
||||
#define KPF_PRIVATE 35
|
||||
#define KPF_PRIVATE_2 36
|
||||
#define KPF_OWNER_PRIVATE 37
|
||||
#define KPF_ARCH 38
|
||||
#define KPF_UNCACHED 39
|
||||
|
||||
static inline u64 kpf_copy_bit(u64 kflags, int ubit, int kbit)
|
||||
{
|
||||
return ((kflags >> kbit) & 1) << ubit;
|
||||
}
|
||||
|
||||
static u64 get_uflags(struct page *page)
|
||||
u64 stable_page_flags(struct page *page)
|
||||
{
|
||||
u64 k;
|
||||
u64 u;
|
||||
|
@ -219,7 +180,7 @@ static ssize_t kpageflags_read(struct file *file, char __user *buf,
|
|||
else
|
||||
ppage = NULL;
|
||||
|
||||
if (put_user(get_uflags(ppage), out)) {
|
||||
if (put_user(stable_page_flags(ppage), out)) {
|
||||
ret = -EFAULT;
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue