summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhigang Lu <zlu@ezchip.com>2015-07-09 16:25:12 +0800
committerThomas Monjalon <thomas.monjalon@6wind.com>2015-07-13 16:15:46 +0200
commitd67b8d7bd88123af2802c14a9815ecbac0567cfa (patch)
treeb4d1a0df74f65eec6bbd59beb963db6915d16ae3
parent67ea75ffc6bcaed5001e3b6f3e93debbfb0df500 (diff)
downloaddpdk-d67b8d7bd88123af2802c14a9815ecbac0567cfa.zip
dpdk-d67b8d7bd88123af2802c14a9815ecbac0567cfa.tar.gz
dpdk-d67b8d7bd88123af2802c14a9815ecbac0567cfa.tar.xz
eal: allow empty compile time cpu flags
When RTE_COMPILE_TIME_CPUFLAGS is empty, the rte_cpu_check_supported() code breaks with a "comparison is always false due to limited range of data type". This is because the compile_time_flags[] array is empty. Assigning the array dimension to a local variable apparently solves this. Signed-off-by: Cyril Chemparathy <cchemparathy@ezchip.com> Signed-off-by: Zhigang Lu <zlu@ezchip.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
-rw-r--r--lib/librte_eal/common/eal_common_cpuflags.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/librte_eal/common/eal_common_cpuflags.c b/lib/librte_eal/common/eal_common_cpuflags.c
index 6fd360c..8ba7b30 100644
--- a/lib/librte_eal/common/eal_common_cpuflags.c
+++ b/lib/librte_eal/common/eal_common_cpuflags.c
@@ -30,6 +30,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <rte_common.h>
#include <rte_cpuflags.h>
/*
@@ -62,10 +63,10 @@ rte_cpu_check_supported(void)
static const enum rte_cpu_flag_t compile_time_flags[] = {
RTE_COMPILE_TIME_CPUFLAGS
};
- unsigned i;
+ unsigned count = RTE_DIM(compile_time_flags), i;
int ret;
- for (i = 0; i < sizeof(compile_time_flags)/sizeof(compile_time_flags[0]); i++) {
+ for (i = 0; i < count; i++) {
ret = rte_cpu_get_flag_enabled(compile_time_flags[i]);
if (ret < 0) {