History

mm: convert __get_unmapped_area() to use vma_flags_t

Update __get_unmapped_area() to be parameterised by vma_flags_t rather than vm_flags_t as part of the effort to move VMA flags from a system word to a bitmap. We cascade the changes up to arch_get_unmapped_area_topdown() and arch_get_unmapped_area(), where, for now, we use vma_flags_to_legacy() in order to propagate the VMA flags. No functional change intended.

Lorenzo Stoakes committed 4 months ago

Commit 2ec74811 parent 1944a016 files · +40 −36Browse files

Showing the changes to include (3 of 6 files). Show all

Unified · Split

3 files
  1. include/linux/huge_mm.h +5 −5
  2. include/linux/mm.h +4 −2
  3. include/linux/sched/mm.h +3 −6
include/linux/huge_mm.h+5−5
@@ -391,9 +391,9 @@ static inline bool thp_disabled_by_hw(void) · 390 unmodified lines
391 391
392unsigned long thp_get_unmapped_area(struct file *filp, unsigned long addr,392unsigned long thp_get_unmapped_area(struct file *filp, unsigned long addr,
393 unsigned long len, unsigned long pgoff, unsigned long flags);393 unsigned long len, unsigned long pgoff, unsigned long flags);
394unsigned long thp_get_unmapped_area_vmflags(struct file *filp, unsigned long addr,394unsigned long thp_get_unmapped_area_vmaflags(struct file *filp, unsigned long addr,
395 unsigned long len, unsigned long pgoff, unsigned long flags,395 unsigned long len, unsigned long pgoff, unsigned long flags,
396 vm_flags_t vm_flags);396 vma_flags_t vma_flags);
397 397
398enum split_type {398enum split_type {
399 SPLIT_TYPE_UNIFORM,399 SPLIT_TYPE_UNIFORM,
@@ -617,9 +617,9 @@ static inline unsigned long thp_vma_allowable_orders(struct vm_area_struct *vma, · 217 unmodified lines
617#define thp_get_unmapped_area NULL617#define thp_get_unmapped_area NULL
618 618
619static inline unsigned long619static inline unsigned long
620thp_get_unmapped_area_vmflags(struct file *filp, unsigned long addr,620thp_get_unmapped_area_vmaflags(struct file *filp, unsigned long addr,
621 unsigned long len, unsigned long pgoff,621 unsigned long len, unsigned long pgoff,
622 unsigned long flags, vm_flags_t vm_flags)622 unsigned long flags, vma_flags_t vma_flags)
623{623{
624 return 0;624 return 0;
625}625}
include/linux/mm.h+4−2
@@ -4191,13 +4191,15 @@ unsigned long randomize_page(unsigned long start, unsigned long range); · 4190 unmodified lines
4191 4191
4192unsigned long4192unsigned long
4193__get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,4193__get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
4194 unsigned long pgoff, unsigned long flags, vm_flags_t vm_flags);4194 unsigned long pgoff, unsigned long flags,
4195 vma_flags_t vma_flags);
4195 4196
4196static inline unsigned long4197static inline unsigned long
4197get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,4198get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
4198 unsigned long pgoff, unsigned long flags)4199 unsigned long pgoff, unsigned long flags)
4199{4200{
4200 return __get_unmapped_area(file, addr, len, pgoff, flags, 0);4201 return __get_unmapped_area(file, addr, len, pgoff, flags,
4202 EMPTY_VMA_FLAGS);
4201}4203}
4202 4204
4203unsigned long do_mmap(struct file *file, unsigned long addr,4205unsigned long do_mmap(struct file *file, unsigned long addr,
include/linux/sched/mm.h+3−6
@@ -193,12 +193,9 @@ unsigned long mm_get_unmapped_area(struct file *filp, unsigned long addr, · 192 unmodified lines
193 unsigned long len, unsigned long pgoff,193 unsigned long len, unsigned long pgoff,
194 unsigned long flags);194 unsigned long flags);
195 195
196unsigned long mm_get_unmapped_area_vmflags(struct file *filp,196unsigned long mm_get_unmapped_area_vmaflags(struct file *filp,
197 unsigned long addr,197 unsigned long addr, unsigned long len, unsigned long pgoff,
198 unsigned long len,198 unsigned long flags, vma_flags_t vma_flags);
199 unsigned long pgoff,
200 unsigned long flags,
201 vm_flags_t vm_flags);
202 199
203unsigned long200unsigned long
204generic_get_unmapped_area(struct file *filp, unsigned long addr,201generic_get_unmapped_area(struct file *filp, unsigned long addr,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t