Skip to content

Commit 4806364

Browse files
committed
Merge tag 'mm-hotfixes-stable-2023-07-18-12-28' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull hotfixes from Andrew Morton: "Seven hotfixes, six of which are cc:stable and one of which addresses a post-6.5 issue" * tag 'mm-hotfixes-stable-2023-07-18-12-28' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: maple_tree: fix node allocation testing on 32 bit maple_tree: fix 32 bit mas_next testing selftests/mm: mkdirty: fix incorrect position of #endif maple_tree: set the node limit when creating a new root node mm/mlock: fix vma iterator conversion of apply_vma_lock_flags() prctl: move PR_GET_AUXV out of PR_MCE_KILL selftests/mm: give scripts execute permission
2 parents 74f1456 + ef5c3de commit 4806364

14 files changed

+20
-15
lines changed

kernel/sys.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2535,11 +2535,6 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
25352535
else
25362536
return -EINVAL;
25372537
break;
2538-
case PR_GET_AUXV:
2539-
if (arg4 || arg5)
2540-
return -EINVAL;
2541-
error = prctl_get_auxv((void __user *)arg2, arg3);
2542-
break;
25432538
default:
25442539
return -EINVAL;
25452540
}
@@ -2694,6 +2689,11 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
26942689
case PR_SET_VMA:
26952690
error = prctl_set_vma(arg2, arg3, arg4, arg5);
26962691
break;
2692+
case PR_GET_AUXV:
2693+
if (arg4 || arg5)
2694+
return -EINVAL;
2695+
error = prctl_get_auxv((void __user *)arg2, arg3);
2696+
break;
26972697
#ifdef CONFIG_KSM
26982698
case PR_SET_MEMORY_MERGE:
26992699
if (arg3 || arg4 || arg5)

lib/maple_tree.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3692,7 +3692,8 @@ static inline int mas_root_expand(struct ma_state *mas, void *entry)
36923692
mas->offset = slot;
36933693
pivots[slot] = mas->last;
36943694
if (mas->last != ULONG_MAX)
3695-
slot++;
3695+
pivots[++slot] = ULONG_MAX;
3696+
36963697
mas->depth = 1;
36973698
mas_set_height(mas);
36983699
ma_set_meta(node, maple_leaf_64, 0, slot);

lib/test_maple_tree.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1898,13 +1898,16 @@ static noinline void __init next_prev_test(struct maple_tree *mt)
18981898
725};
18991899
static const unsigned long level2_32[] = { 1747, 2000, 1750, 1755,
19001900
1760, 1765};
1901+
unsigned long last_index;
19011902

19021903
if (MAPLE_32BIT) {
19031904
nr_entries = 500;
19041905
level2 = level2_32;
1906+
last_index = 0x138e;
19051907
} else {
19061908
nr_entries = 200;
19071909
level2 = level2_64;
1910+
last_index = 0x7d6;
19081911
}
19091912

19101913
for (i = 0; i <= nr_entries; i++)
@@ -2011,7 +2014,7 @@ static noinline void __init next_prev_test(struct maple_tree *mt)
20112014

20122015
val = mas_next(&mas, ULONG_MAX);
20132016
MT_BUG_ON(mt, val != NULL);
2014-
MT_BUG_ON(mt, mas.index != 0x7d6);
2017+
MT_BUG_ON(mt, mas.index != last_index);
20152018
MT_BUG_ON(mt, mas.last != ULONG_MAX);
20162019

20172020
val = mas_prev(&mas, 0);

mm/mlock.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,6 @@ static int apply_vma_lock_flags(unsigned long start, size_t len,
477477
{
478478
unsigned long nstart, end, tmp;
479479
struct vm_area_struct *vma, *prev;
480-
int error;
481480
VMA_ITERATOR(vmi, current->mm, start);
482481

483482
VM_BUG_ON(offset_in_page(start));
@@ -498,6 +497,7 @@ static int apply_vma_lock_flags(unsigned long start, size_t len,
498497
nstart = start;
499498
tmp = vma->vm_start;
500499
for_each_vma_range(vmi, vma, end) {
500+
int error;
501501
vm_flags_t newflags;
502502

503503
if (vma->vm_start != tmp)
@@ -511,14 +511,15 @@ static int apply_vma_lock_flags(unsigned long start, size_t len,
511511
tmp = end;
512512
error = mlock_fixup(&vmi, vma, &prev, nstart, tmp, newflags);
513513
if (error)
514-
break;
514+
return error;
515+
tmp = vma_iter_end(&vmi);
515516
nstart = tmp;
516517
}
517518

518-
if (vma_iter_end(&vmi) < end)
519+
if (tmp < end)
519520
return -ENOMEM;
520521

521-
return error;
522+
return 0;
522523
}
523524

524525
/*

tools/testing/radix-tree/maple.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,9 @@ static noinline void __init check_new_node(struct maple_tree *mt)
206206
e = i - 1;
207207
} else {
208208
if (i >= 4)
209-
e = i - 4;
210-
else if (i == 3)
211-
e = i - 2;
209+
e = i - 3;
210+
else if (i >= 1)
211+
e = i - 1;
212212
else
213213
e = 0;
214214
}

tools/testing/selftests/mm/charge_reserved_hugetlb.sh

100644100755
File mode changed.

tools/testing/selftests/mm/check_config.sh

100644100755
File mode changed.

tools/testing/selftests/mm/hugetlb_reparenting_test.sh

100644100755
File mode changed.

tools/testing/selftests/mm/mkdirty.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,8 +321,8 @@ static void test_uffdio_copy(void)
321321
munmap:
322322
munmap(dst, pagesize);
323323
free(src);
324-
#endif /* __NR_userfaultfd */
325324
}
325+
#endif /* __NR_userfaultfd */
326326

327327
int main(void)
328328
{

tools/testing/selftests/mm/run_vmtests.sh

100644100755
File mode changed.

0 commit comments

Comments
 (0)