[bug report] drm/amd/display: Fix exception from AUX acquire failure
Koo, Anthony
Anthony.Koo at amd.com
Wed Oct 2 14:00:02 UTC 2019
Hi Dan,
Thanks for the heads!
I will work on a patch to address this issue.
Regards,
Anthony
-----Original Message-----
From: Dan Carpenter <dan.carpenter at oracle.com>
Sent: Wednesday, October 2, 2019 7:58 AM
To: Koo, Anthony <Anthony.Koo at amd.com>
Cc: amd-gfx at lists.freedesktop.org
Subject: [bug report] drm/amd/display: Fix exception from AUX acquire failure
Hello Anthony Koo,
The patch dcf1a988678e: "drm/amd/display: Fix exception from AUX acquire failure" from Feb 6, 2019, leads to the following static checker warning:
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.c:108 dm_dp_aux_transfer()
error: uninitialized symbol 'operation_result'.
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.c
82 static ssize_t dm_dp_aux_transfer(struct drm_dp_aux *aux,
83 struct drm_dp_aux_msg *msg)
84 {
85 ssize_t result = 0;
86 struct aux_payload payload;
87 enum aux_channel_operation_result operation_result;
88
89 if (WARN_ON(msg->size > 16))
90 return -E2BIG;
91
92 payload.address = msg->address;
93 payload.data = msg->buffer;
94 payload.length = msg->size;
95 payload.reply = &msg->reply;
96 payload.i2c_over_aux = (msg->request & DP_AUX_NATIVE_WRITE) == 0;
97 payload.write = (msg->request & DP_AUX_I2C_READ) == 0;
98 payload.mot = (msg->request & DP_AUX_I2C_MOT) != 0;
99 payload.defer_delay = 0;
100
101 result = dc_link_aux_transfer_raw(TO_DM_AUX(aux)->ddc_service, &payload,
102 &operation_result);
^^^^^^^^^^^^^^^^^ The patch adds a new return where "operation_result" isn't initialized.
103
104 if (payload.write)
105 result = msg->size;
106
107 if (result < 0)
108 switch (operation_result) {
^^^^^^^^^^^^^^^^
109 case AUX_CHANNEL_OPERATION_SUCCEEDED:
110 break;
111 case AUX_CHANNEL_OPERATION_FAILED_HPD_DISCON:
112 case AUX_CHANNEL_OPERATION_FAILED_REASON_UNKNOWN:
113 result = -EIO;
114 break;
115 case AUX_CHANNEL_OPERATION_FAILED_INVALID_REPLY:
116 result = -EBUSY;
117 break;
118 case AUX_CHANNEL_OPERATION_FAILED_TIMEOUT:
119 result = -ETIMEDOUT;
120 break;
121 }
122
123 return result;
124 }
regards,
dan carpenter
More information about the amd-gfx
mailing list