Re: [PATCH v2 1/5] Introduce Xe Uncorrectable Error Handling

kernel test robot
2026-03-18T19:35:42Z

Hi Mallesh,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-xe/drm-xe-next]
[also build test WARNING on drm-misc/drm-misc-next drm/drm-next next-20260318]
[cannot apply to linus/master v7.0-rc4]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Mallesh-Koujalagi/Introduce-Xe-Uncorrectable-Error-Handling/20260318-153303
base: https://gitlab.freedesktop.org/drm/xe/kernel.git drm-xe-next
patch link: https://lore.kernel.org/r/20260318064016.374656-8-mallesh.koujalagi%40intel.com
patch subject: [PATCH v2 1/5] Introduce Xe Uncorrectable Error Handling
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20260319/202603190311.jqPlioXj-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260319/202603190311.jqPlioXj-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603190311.jqPlioXj-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/xe/xe_ras.c:241:4: warning: variable 'action' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
241 | default:
| ^~~~~~~
drivers/gpu/drm/xe/xe_ras.c:250:8: note: uninitialized use occurs here
250 | if (action > final_action)
| ^~~~~~
drivers/gpu/drm/xe/xe_ras.c:227:4: note: variable 'action' is declared here
227 | enum xe_ras_recovery_action action;
| ^
1 warning generated.

vim +/action +241 drivers/gpu/drm/xe/xe_ras.c

177
178 /**
179 * xe_ras_process_errors - Process and contain hardware errors
180 * @xe: xe device instance
181 *
182 * Get error details from system controller and return recovery
183 * method. Called only from PCI error handling.
184 *
185 * Returns: recovery action to be taken
186 */
187 enum xe_ras_recovery_action xe_ras_process_errors(struct xe_device *xe)
188 {
189 struct xe_sysctrl_mailbox_command command = {0};
190 struct xe_ras_get_error_response response;
191 enum xe_ras_recovery_action final_action;
192 size_t rlen;
193 int ret;
194
195 /* Default action */
196 final_action = XE_RAS_RECOVERY_ACTION_RECOVERED;
197
198 if (!xe->info.has_sysctrl)
199 return XE_RAS_RECOVERY_ACTION_RESET;
200
201 xe_ras_prepare_sysctrl_command(&command, XE_SYSCTRL_CMD_GET_SOC_ERROR, NULL, 0,
202 &response, sizeof(response));
203
204 do {
205 memset(&response, 0, sizeof(response));
206 rlen = 0;
207
208 ret = xe_sysctrl_send_command(xe, &command, &rlen);
209 if (ret || !rlen) {
210 xe_err(xe, "[RAS]: Sysctrl error ret %d\n", ret);
211 goto err;
212 }
213
214 if (rlen != sizeof(response)) {
215 xe_err(xe, "[RAS]: Sysctrl response does not match len!!\n");
216 goto err;
217 }
218
219 if (response.num_errors > XE_RAS_NUM_ERROR_ARR) {
220 xe_err(xe, "[RAS]: Number of errors out of bound (%d)\n",
221 XE_RAS_NUM_ERROR_ARR);
222 goto err;
223 }
224
225 for (int i = 0; i < response.num_errors; i++) {
226 struct xe_ras_error_array arr = response.error_arr[i];
227 enum xe_ras_recovery_action action;
228 struct xe_ras_error_class error_class;
229 u8 component;
230
231 error_class = arr.error_class;
232 component = error_class.common.component;
233
234 switch (component) {
235 case XE_RAS_COMPONENT_CORE_COMPUTE:
236 action = handle_compute_errors(xe, &arr);
237 break;
238 case XE_RAS_COMPONENT_SOC_INTERNAL:
239 action = handle_soc_internal_errors(xe, &arr);
240 break;
> 241 default:
242 xe_err(xe, "[RAS]: Unknown error component %u\n", component);
243 break;
244 }
245
246 /*
247 * Retain the highest severity action. Process and log all errors
248 * and then take appropriate recovery action
249 */
250 if (action > final_action)
251 final_action = action;
252 }
253
254 } while (response.additional_errors);
255
256 return final_action;
257
258 err:
259 return XE_RAS_RECOVERY_ACTION_RESET;
260 }
261

--
0-DAY CI Kernel Test Service