drm/xe: Fix uninitialized variables
authorMichał Winiarski <michal.winiarski@intel.com>
Tue, 23 May 2023 13:50:19 +0000 (15:50 +0200)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 21 Dec 2023 16:34:42 +0000 (11:34 -0500)
Using uninitialized variables leads to undefined behavior.

Moreover, it causes the compiler to complain with:
../drivers/gpu/drm/xe/xe_vm.c:3265:40: error: variable 'vma' is uninitialized when used here [-Werror,-Wuninitialized]
../drivers/gpu/drm/xe/xe_rtp.c:118:36: error: variable 'i' is uninitialized when used here [-Werror,-Wuninitialized]
../drivers/gpu/drm/xe/xe_mocs.c:449:3: error: variable 'flags' is uninitialized when used here [-Werror,-Wuninitialized]

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://lore.kernel.org/r/20230523135020.345596-1-michal@hardline.pl
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_mocs.c
drivers/gpu/drm/xe/xe_rtp.c
drivers/gpu/drm/xe/xe_vm.c

index 86277ecb749bc2f91aa41cfe932187355690c4a9..ccc852500eda096d85d40bd0a40ce394c8df8b66 100644 (file)
@@ -373,7 +373,7 @@ static const struct xe_mocs_entry mtl_mocs_desc[] = {
 static unsigned int get_mocs_settings(struct xe_device *xe,
                                      struct xe_mocs_info *info)
 {
-       unsigned int flags;
+       unsigned int flags = 0;
 
        memset(info, 0, sizeof(struct xe_mocs_info));
 
index 956bd39fe1a0bedde459600a160e01b452ab8a88..8aae34df38018e4c66aec1e5157ea5060b2e2aa8 100644 (file)
@@ -136,7 +136,7 @@ static bool rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
        if (!rule_matches(xe, gt, hwe, entry->rules, entry->n_rules))
                return false;
 
-       for (action = &entry->actions[0]; i < entry->n_actions; action++, i++) {
+       for (i = 0, action = &entry->actions[0]; i < entry->n_actions; action++, i++) {
                if ((entry->flags & XE_RTP_ENTRY_FLAG_FOREACH_ENGINE) ||
                    (action->flags & XE_RTP_ACTION_FLAG_ENGINE_BASE))
                        mmio_base = hwe->mmio_base;
index eb2209d2d1cdb249c0d0c81875c77ecf1c0aea89..b8a0fe24d1d0c67d83cd33f9a472a5ef3d689000 100644 (file)
@@ -3297,7 +3297,7 @@ destroy_vmas:
                if (!vmas[i])
                        break;
 
-               list_for_each_entry_safe(vma, next, &vma->unbind_link,
+               list_for_each_entry_safe(vma, next, &vmas[i]->unbind_link,
                                         unbind_link) {
                        list_del_init(&vma->unbind_link);
                        if (!vma->destroyed) {