diff options
-rw-r--r-- | fs/proc/task_mmu.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index a11720767abc..107d026f5d6e 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c | |||
@@ -868,7 +868,7 @@ typedef struct { | |||
868 | } pagemap_entry_t; | 868 | } pagemap_entry_t; |
869 | 869 | ||
870 | struct pagemapread { | 870 | struct pagemapread { |
871 | int pos, len; | 871 | int pos, len; /* units: PM_ENTRY_BYTES, not bytes */ |
872 | pagemap_entry_t *buffer; | 872 | pagemap_entry_t *buffer; |
873 | bool v2; | 873 | bool v2; |
874 | }; | 874 | }; |
@@ -876,7 +876,7 @@ struct pagemapread { | |||
876 | #define PAGEMAP_WALK_SIZE (PMD_SIZE) | 876 | #define PAGEMAP_WALK_SIZE (PMD_SIZE) |
877 | #define PAGEMAP_WALK_MASK (PMD_MASK) | 877 | #define PAGEMAP_WALK_MASK (PMD_MASK) |
878 | 878 | ||
879 | #define PM_ENTRY_BYTES sizeof(u64) | 879 | #define PM_ENTRY_BYTES sizeof(pagemap_entry_t) |
880 | #define PM_STATUS_BITS 3 | 880 | #define PM_STATUS_BITS 3 |
881 | #define PM_STATUS_OFFSET (64 - PM_STATUS_BITS) | 881 | #define PM_STATUS_OFFSET (64 - PM_STATUS_BITS) |
882 | #define PM_STATUS_MASK (((1LL << PM_STATUS_BITS) - 1) << PM_STATUS_OFFSET) | 882 | #define PM_STATUS_MASK (((1LL << PM_STATUS_BITS) - 1) << PM_STATUS_OFFSET) |
@@ -1127,8 +1127,8 @@ static ssize_t pagemap_read(struct file *file, char __user *buf, | |||
1127 | goto out_task; | 1127 | goto out_task; |
1128 | 1128 | ||
1129 | pm.v2 = soft_dirty_cleared; | 1129 | pm.v2 = soft_dirty_cleared; |
1130 | pm.len = PM_ENTRY_BYTES * (PAGEMAP_WALK_SIZE >> PAGE_SHIFT); | 1130 | pm.len = (PAGEMAP_WALK_SIZE >> PAGE_SHIFT); |
1131 | pm.buffer = kmalloc(pm.len, GFP_TEMPORARY); | 1131 | pm.buffer = kmalloc(pm.len * PM_ENTRY_BYTES, GFP_TEMPORARY); |
1132 | ret = -ENOMEM; | 1132 | ret = -ENOMEM; |
1133 | if (!pm.buffer) | 1133 | if (!pm.buffer) |
1134 | goto out_task; | 1134 | goto out_task; |