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:
|
default:
|
||||||
case MADV_MERGEABLE:
|
case MADV_MERGEABLE:
|
||||||
case MADV_UNMERGEABLE:
|
case MADV_UNMERGEABLE:
|
||||||
case MADV_NOHUGEPAGE:
|
|
||||||
error = -EINVAL;
|
error = -EINVAL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MADV_HUGEPAGE:
|
case MADV_HUGEPAGE:
|
||||||
|
case MADV_NOHUGEPAGE:
|
||||||
case MADV_NORMAL:
|
case MADV_NORMAL:
|
||||||
case MADV_RANDOM:
|
case MADV_RANDOM:
|
||||||
case MADV_SEQUENTIAL:
|
case MADV_SEQUENTIAL:
|
||||||
@ -4869,6 +4869,13 @@ SYSCALL_DECLARE(madvise)
|
|||||||
goto out;
|
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;
|
s = start;
|
||||||
if (s < range->start) {
|
if (s < range->start) {
|
||||||
s = range->start;
|
s = range->start;
|
||||||
|
|||||||
Reference in New Issue
Block a user