diff --git a/src/backends/neon/workloads/NeonLogSoftmaxWorkload.cpp b/src/backends/neon/workloads/NeonLogSoftmaxWorkload.cpp
index 39ff279..ba5c900 100644
--- a/src/backends/neon/workloads/NeonLogSoftmaxWorkload.cpp
+++ b/src/backends/neon/workloads/NeonLogSoftmaxWorkload.cpp
@@ -23,12 +23,11 @@
     const arm_compute::TensorInfo aclInputInfo = armcomputetensorutils::BuildArmComputeTensorInfo(input);
     const arm_compute::TensorInfo aclOutputInfo = armcomputetensorutils::BuildArmComputeTensorInfo(output);
 
-    int aclAxis_int = ComputeAclAxis(descriptor.m_Axis, input);
-    unsigned int aclAxis = ComputePositiveAxis(aclAxis_int, input);
+    int aclAxis = ComputeAclAxis(descriptor.m_Axis, input);
     return arm_compute::NELogSoftmaxLayer::validate(&aclInputInfo,
                                                     &aclOutputInfo,
                                                     descriptor.m_Beta,
-                                                    static_cast<int>(aclAxis));
+                                                    aclAxis);
 }
 
 NeonLogSoftmaxWorkload::NeonLogSoftmaxWorkload(const LogSoftmaxQueueDescriptor& descriptor,
@@ -42,9 +41,8 @@
     arm_compute::ITensor& output = PolymorphicDowncast<IAclTensorHandle*>(m_Data.m_Outputs[0])->GetTensor();
 
     auto layer = std::make_unique<arm_compute::NELogSoftmaxLayer>(memoryManager);
-    int aclAxis_int = ComputeAclAxis(m_Data.m_Parameters.m_Axis, info.m_InputTensorInfos[0]);
-    unsigned int aclAxis = ComputePositiveAxis(aclAxis_int, info.m_InputTensorInfos[0]);
-    layer->configure(&input, &output, m_Data.m_Parameters.m_Beta, static_cast<int>(aclAxis));
+    int aclAxis = ComputeAclAxis(m_Data.m_Parameters.m_Axis, info.m_InputTensorInfos[0]);
+    layer->configure(&input, &output, m_Data.m_Parameters.m_Beta, aclAxis);
     m_LogSoftmaxLayer.reset(layer.release());
 }
 
