X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fwindows%2Feal_hugepages.c;h=44dae985e5d333a3a24b26e1e8bbfa87de19fb1d;hb=0f9ac2afa62ebacd24f36a3b98272b7146be3edd;hp=61d0dcd3c5ed766fa0b3e672c840d9d1138661dd;hpb=c08bd191b13de001bf172e94ed22cb0805a658f2;p=dpdk.git diff --git a/lib/librte_eal/windows/eal_hugepages.c b/lib/librte_eal/windows/eal_hugepages.c index 61d0dcd3c5..44dae985e5 100644 --- a/lib/librte_eal/windows/eal_hugepages.c +++ b/lib/librte_eal/windows/eal_hugepages.c @@ -4,6 +4,7 @@ #include #include +#include "eal_private.h" #include "eal_filesystem.h" #include "eal_hugepages.h" #include "eal_internal_cfg.h" @@ -40,6 +41,10 @@ hugepage_claim_privilege(void) goto exit; } + /* AdjustTokenPrivileges() may succeed with ERROR_NOT_ALL_ASSIGNED. */ + if (GetLastError() != ERROR_SUCCESS) + goto exit; + ret = 0; exit: @@ -54,10 +59,12 @@ hugepage_info_init(void) struct hugepage_info *hpi; unsigned int socket_id; int ret = 0; + struct internal_config *internal_conf = + eal_get_internal_configuration(); /* Only one hugepage size available on Windows. */ - internal_config.num_hugepage_sizes = 1; - hpi = &internal_config.hugepage_info[0]; + internal_conf->num_hugepage_sizes = 1; + hpi = &internal_conf->hugepage_info[0]; hpi->hugepage_sz = GetLargePageMinimum(); if (hpi->hugepage_sz == 0) @@ -95,12 +102,13 @@ int eal_hugepage_info_init(void) { if (hugepage_claim_privilege() < 0) { - RTE_LOG(ERR, EAL, "Cannot claim hugepage privilege\n"); + RTE_LOG(ERR, EAL, "Cannot claim hugepage privilege\n" + "Verify that large-page support privilege is assigned to the current user\n"); return -1; } if (hugepage_info_init() < 0) { - RTE_LOG(ERR, EAL, "Cannot get hugepage information\n"); + RTE_LOG(ERR, EAL, "Cannot discover available hugepages\n"); return -1; }