madvise: MADV_HUGEPAGE, MADV_NOHUGEPAGE: Fix error check
* Returns -EINVAL except for hugeobj and shmobj * Fixes ostest-madvise.012 and ostest-madvise.013 Change-Id: Id1f1d6cc0c81edd204228ce5f75b641985e70cee
This commit is contained in:
@ -4781,11 +4781,11 @@ SYSCALL_DECLARE(madvise)
|
||||
default:
|
||||
case MADV_MERGEABLE:
|
||||
case MADV_UNMERGEABLE:
|
||||
case MADV_NOHUGEPAGE:
|
||||
error = -EINVAL;
|
||||
break;
|
||||
|
||||
case MADV_HUGEPAGE:
|
||||
case MADV_NOHUGEPAGE:
|
||||
case MADV_NORMAL:
|
||||
case MADV_RANDOM:
|
||||
case MADV_SEQUENTIAL:
|
||||
@ -4869,6 +4869,13 @@ SYSCALL_DECLARE(madvise)
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* only hugetlbfs and shm map support hugepage */
|
||||
if ((advice == MADV_HUGEPAGE || advice == MADV_NOHUGEPAGE)
|
||||
&& !(range->memobj->flags & (MF_HUGETLBFS | MF_SHM))) {
|
||||
error = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
s = start;
|
||||
if (s < range->start) {
|
||||
s = range->start;
|
||||
|
||||
Reference in New Issue
Block a user