Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp913172pxb; Wed, 6 Apr 2022 04:06:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy9XFMhqraD3oUzfxRo5EUc0vIrUViZz01V1e/EZou7VwRJaGc0mbjigHmI/oqKOwSf/nIo X-Received: by 2002:a17:90a:454a:b0:1ca:91c7:df66 with SMTP id r10-20020a17090a454a00b001ca91c7df66mr9182578pjm.186.1649243186587; Wed, 06 Apr 2022 04:06:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649243186; cv=none; d=google.com; s=arc-20160816; b=Cu/OEJbxrp/6plC84M+bAjhgyJD0ZP2X3pgVefX8DreP5rd+7DJdqPF349H/4uddO0 1rXjvGvk4HhSwwGk9L3mjDMRLhX03k++i8aaQTzbDZZfnK5633pY6sxIb3LKdUBTqV9Z RYui6iPK1S9d8LxFzyp4ObUtWAMilfIhjRsjnVGa/1m/vJoxui/IU6hSkwW+6TQotmrO nVaVCVIIbxzXMEzdguPLB+X4XtYC3GroX7AAVG8A5WdwSChbqAkQMkCltY0DeJdFk4JS CzDoQkfPNaU4UAh7xVWrIO93U4PVOkbogFaHyWaakA/gbmSb5DZo5p+BEQWMwlaIxMHu IduA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=mLbZjlWQgmZls7/qfAeNVCcyONkqR8DyZE0+zHUqj80=; b=HFqLbwAbRx9AtYXGzo8J5cumc8ONppFCLkgILTdpzw0eSFpacLkmbhXfKgNmhiAohW IfFWnVM9ZyVWtnTPr0eo1OtM+hjosMNVGQoKfjEytZ1I2L5jD15drRByB0RDnnHRq4eJ q2NgM2WApeGdGPD/Wk6tNQrOAYSRso8OtJcuMrjdVS3L6IuzUamJarcrEXOHLT2z2FBT 784c2o59NwsjtkDQDvSCx0N5ZNu8jkusdpuBmFQ3aPJSnuJwW4r//EOz4xX3GbKWOXou sgGGpdbxzmZ3YQ8Qj/jagSSBET6nFZijWzIB9JuygraiTQVGHfXRxlync2BflMTXafJc oUBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Jzva5Fov; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id p30-20020a635b1e000000b003816043f0a7si15685830pgb.668.2022.04.06.04.06.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 04:06:26 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Jzva5Fov; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E0A785C279C; Wed, 6 Apr 2022 02:28:20 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1574507AbiDEW4Z (ORCPT + 99 others); Tue, 5 Apr 2022 18:56:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48780 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358070AbiDEK15 (ORCPT ); Tue, 5 Apr 2022 06:27:57 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4201559A79; Tue, 5 Apr 2022 03:14:33 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id D32EBB81B7A; Tue, 5 Apr 2022 10:14:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4CDAAC385A1; Tue, 5 Apr 2022 10:14:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649153670; bh=ThlCVsXJkFp+URlGyDlaTdGefmxQN9AWHQIK7TJ1LVE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Jzva5FovJpMqoQLIUbrxoBpPlWsGgoSGfVPLs2NgNAkKAAWuukFW5mgQDVcc4+gzX OhycbQPqY6yT54LJNMF3qlZBnyoXUwq7eey4ZPFegcSTwR/THXDAVGWlAeqw50HYar hzxt+W+ejYRbJ/M+ckiFNl9ABDwxDZPyvkForSXw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bjorn Andersson , Stephen Boyd , Dmitry Baryshkov , Sasha Levin , Kuogee Hsieh Subject: [PATCH 5.10 305/599] drm/msm/dp: populate connector of struct dp_panel Date: Tue, 5 Apr 2022 09:29:59 +0200 Message-Id: <20220405070307.909912772@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070258.802373272@linuxfoundation.org> References: <20220405070258.802373272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kuogee Hsieh [ Upstream commit 5e602f5156910c7b19661699896cb6e3fb94fab9 ] DP CTS test case 4.2.2.6 has valid edid with bad checksum on purpose and expect DP source return correct checksum. During drm edid read, correct edid checksum is calculated and stored at connector::real_edid_checksum. The problem is struct dp_panel::connector never be assigned, instead the connector is stored in struct msm_dp::connector. When we run compliance testing test case 4.2.2.6 dp_panel_handle_sink_request() won't have a valid edid set in struct dp_panel::edid so we'll try to use the connectors real_edid_checksum and hit a NULL pointer dereference error because the connector pointer is never assigned. Changes in V2: -- populate panel connector at msm_dp_modeset_init() instead of at dp_panel_read_sink_caps() Changes in V3: -- remove unhelpful kernel crash trace commit text -- remove renaming dp_display parameter to dp Changes in V4: -- add more details to commit text Changes in v10: -- group into one series Changes in v11: -- drop drm/msm/dp: dp_link_parse_sink_count() return immediately if aux read Fixes: 7948fe12d47 ("drm/msm/dp: return correct edid checksum after corrupted edid checksum read") Signee-off-by: Kuogee Hsieh Reviewed-by: Bjorn Andersson Reviewed-by: Stephen Boyd Link: https://lore.kernel.org/r/1642531648-8448-3-git-send-email-quic_khsieh@quicinc.com Signed-off-by: Dmitry Baryshkov Signed-off-by: Sasha Levin --- drivers/gpu/drm/msm/dp/dp_display.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c index 66f2ea3d42fc..6cd6934c8c9f 100644 --- a/drivers/gpu/drm/msm/dp/dp_display.c +++ b/drivers/gpu/drm/msm/dp/dp_display.c @@ -1336,6 +1336,7 @@ int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, struct drm_encoder *encoder) { struct msm_drm_private *priv; + struct dp_display_private *dp_priv; int ret; if (WARN_ON(!encoder) || WARN_ON(!dp_display) || WARN_ON(!dev)) @@ -1344,6 +1345,8 @@ int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, priv = dev->dev_private; dp_display->drm_dev = dev; + dp_priv = container_of(dp_display, struct dp_display_private, dp_display); + ret = dp_display_request_irq(dp_display); if (ret) { DRM_ERROR("request_irq failed, ret=%d\n", ret); @@ -1361,6 +1364,8 @@ int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev, return ret; } + dp_priv->panel->connector = dp_display->connector; + priv->connectors[priv->num_connectors++] = dp_display->connector; return 0; } -- 2.34.1