From 5f2fb59054aee2ec190d72accdb45f852caf4b87 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Tue, 10 Nov 2020 16:42:30 +0000 Subject: COMPMID-3792: Graph examples crash on bare-metal Restricts check of empty windows to 1D splits. This avoids out-of-bounds access when the GEMM2D Interleaved kernel is picked where the split dimension specified is MAX_UINT32. Signed-off-by: Georgios Pinitas Change-Id: I65f42a0cda7b2f1ae65f29c665c2734fbc825214 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4367 Tested-by: Arm Jenkins Comments-Addressed: Arm Jenkins Reviewed-by: Sang-Hoon Park --- src/runtime/CPP/SingleThreadScheduler.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/runtime/CPP/SingleThreadScheduler.cpp b/src/runtime/CPP/SingleThreadScheduler.cpp index 6f67bc005f..96265ac757 100644 --- a/src/runtime/CPP/SingleThreadScheduler.cpp +++ b/src/runtime/CPP/SingleThreadScheduler.cpp @@ -37,11 +37,15 @@ void SingleThreadScheduler::set_num_threads(unsigned int num_threads) void SingleThreadScheduler::schedule(ICPPKernel *kernel, const Hints &hints) { - const Window &max_window = kernel->window(); - const unsigned int num_iterations = max_window.num_iterations(hints.split_dimension()); - if(num_iterations < 1) + const Window &max_window = kernel->window(); + + if(hints.split_dimension() != IScheduler::split_dimensions_all) { - return; + const unsigned int num_iterations = max_window.num_iterations(hints.split_dimension()); + if(num_iterations < 1) + { + return; + } } ThreadInfo info; -- cgit v1.2.1