[llvm] [offload] fix invalid symbol handling in l0 plugin (PR #189442)

Ɓukasz Plewa via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 1 09:13:08 PDT 2026


https://github.com/lplewa updated https://github.com/llvm/llvm-project/pull/189442

>From ecc5de93880c971ab979ce7256f6645d00e43069 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Plewa?= <lukasz.plewa at intel.com>
Date: Mon, 30 Mar 2026 19:59:20 +0200
Subject: [PATCH] [offload] fix invalid symbol handling in l0 plugin

---
 offload/plugins-nextgen/level_zero/src/L0Kernel.cpp  | 4 ++++
 offload/plugins-nextgen/level_zero/src/L0Program.cpp | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/offload/plugins-nextgen/level_zero/src/L0Kernel.cpp b/offload/plugins-nextgen/level_zero/src/L0Kernel.cpp
index 8cccb5e116399..e30e55bba8f1b 100644
--- a/offload/plugins-nextgen/level_zero/src/L0Kernel.cpp
+++ b/offload/plugins-nextgen/level_zero/src/L0Kernel.cpp
@@ -71,6 +71,10 @@ Error L0KernelTy::buildKernel(L0ProgramTy &Program) {
   const auto *KernelName = getName();
 
   auto Module = Program.findModuleFromKernelName(KernelName);
+  if (!Module)
+    return Plugin::error(ErrorCode::NOT_FOUND,
+                         "kernel '%s' not found in the program", KernelName);
+
   ze_kernel_desc_t KernelDesc = {ZE_STRUCTURE_TYPE_KERNEL_DESC, nullptr, 0,
                                  KernelName};
   CALL_ZE_RET_ERROR(zeKernelCreate, Module, &KernelDesc, &zeKernel);
diff --git a/offload/plugins-nextgen/level_zero/src/L0Program.cpp b/offload/plugins-nextgen/level_zero/src/L0Program.cpp
index 6d4fac3be873b..5052ea75fb2aa 100644
--- a/offload/plugins-nextgen/level_zero/src/L0Program.cpp
+++ b/offload/plugins-nextgen/level_zero/src/L0Program.cpp
@@ -556,8 +556,8 @@ Expected<void *> L0ProgramTy::getSymbolDeviceAddr(const char *CName) const {
     if (RC == ZE_RESULT_SUCCESS && DevicePtr)
       return DevicePtr;
   }
-  return Plugin::error(ErrorCode::INVALID_ARGUMENT,
-                       "Symbol '%s' not found on device", CName);
+  return Plugin::error(ErrorCode::NOT_FOUND, "symbol '%s' not found on device",
+                       CName);
 }
 
 Error L0ProgramTy::readGlobalVariable(const char *Name, size_t Size,



More information about the llvm-commits mailing list