On Thu, 2020-11-05 at 14:45 +0000, Lee Jones wrote: > The stack is too full. > > Fixes the following W=1 kernel build warning(s): > > drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c: In function > ‘sideband_msg_req_encode_decode’: > drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c:161:1: warning: the frame > size of 1176 bytes is larger than 1024 bytes [-Wframe-larger-than=] > > Cc: David Airlie <airlied@xxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: Lyude Paul <lyude@xxxxxxxxxx> > Cc: David Francis <David.Francis@xxxxxxx> > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx> > --- > .../drm/selftests/test-drm_dp_mst_helper.c | 29 ++++++++++++------- > 1 file changed, 18 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c > b/drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c > index 1d696ec001cff..0a539456f6864 100644 > --- a/drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c > +++ b/drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c > @@ -120,44 +120,51 @@ sideband_msg_req_equal(const struct > drm_dp_sideband_msg_req_body *in, > static bool > sideband_msg_req_encode_decode(struct drm_dp_sideband_msg_req_body *in) > { > - struct drm_dp_sideband_msg_req_body out = {0}; > + struct drm_dp_sideband_msg_req_body *out; > struct drm_printer p = drm_err_printer(PREFIX_STR); > struct drm_dp_sideband_msg_tx txmsg; > int i, ret; > + bool result = true; > + > + out = kzalloc(sizeof(*out), GFP_KERNEL); > You're missing a NULL check here > > drm_dp_encode_sideband_req(in, &txmsg); > - ret = drm_dp_decode_sideband_req(&txmsg, &out); > + ret = drm_dp_decode_sideband_req(&txmsg, out); > if (ret < 0) { > drm_printf(&p, "Failed to decode sideband request: %d\n", > ret); > - return false; > + result = false; > + goto out; > } > > - if (!sideband_msg_req_equal(in, &out)) { > + if (!sideband_msg_req_equal(in, out)) { > drm_printf(&p, "Encode/decode failed, expected:\n"); > drm_dp_dump_sideband_msg_req_body(in, 1, &p); > drm_printf(&p, "Got:\n"); > - drm_dp_dump_sideband_msg_req_body(&out, 1, &p); > - return false; > + drm_dp_dump_sideband_msg_req_body(out, 1, &p); > + result = false; > + goto out; > } > > switch (in->req_type) { > case DP_REMOTE_DPCD_WRITE: > - kfree(out.u.dpcd_write.bytes); > + kfree(out->u.dpcd_write.bytes); > break; > case DP_REMOTE_I2C_READ: > - for (i = 0; i < out.u.i2c_read.num_transactions; i++) > - kfree(out.u.i2c_read.transactions[i].bytes); > + for (i = 0; i < out->u.i2c_read.num_transactions; i++) > + kfree(out->u.i2c_read.transactions[i].bytes); > break; > case DP_REMOTE_I2C_WRITE: > - kfree(out.u.i2c_write.bytes); > + kfree(out->u.i2c_write.bytes); > break; > } > > /* Clear everything but the req_type for the input */ > memset(&in->u, 0, sizeof(in->u)); > > - return true; > +out: > + kfree(out); > + return result; > } > > int igt_dp_mst_sideband_msg_req_decode(void *unused) -- Sincerely, Lyude Paul (she/her) Software Engineer at Red Hat Note: I deal with a lot of emails and have a lot of bugs on my plate. If you've asked me a question, are waiting for a review/merge on a patch, etc. and I haven't responded in a while, please feel free to send me another email to check on my status. I don't bite! _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel