Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp1602299imd; Sun, 4 Nov 2018 06:08:23 -0800 (PST) X-Google-Smtp-Source: AJdET5c54hZ8A2QtGpIP8juQhrayIHMrMPrrVi70C0muXHm0osyXVPzvfbbxVo8YGxy2v7JpPzaw X-Received: by 2002:a17:902:70c3:: with SMTP id l3-v6mr17766603plt.329.1541340503734; Sun, 04 Nov 2018 06:08:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541340503; cv=none; d=google.com; s=arc-20160816; b=0HO1XW9a1T+gU0051W3W3BTVW2ODu+PN6c0bAI+B0UiFhziEQa5/hUN2ufKojZsS4X bOrjJxjpeysrU/2p0UwdbDE9+mBBxnJpDHYeSrpLaj5EkbF0ZnhgSTYYUQajbMoPJbXM 932JK89DUsjizC4OUdxUDLOcpPL4i3EiIr6Km/Rgx69KKaGMcsfE2qQRtHgQgJP3/uiW h4Wrc/8Fl1I7kFU44Dp1/9TO8suq/U6/OdRrqqoLw+4Cx6m3+Bu0sz+06VKlEziiBb4n eDNATRoj9gHE79FvKE9y5Mc4dn6Wdt5B8h13DYRNzPjIfN9s5eMx1gg41Xr9rHxN9kZV tLbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=JWcMzUViSg9dCiGvLI1iccDZCK4PkiITUdkZQxThflU=; b=G2vRLmg80NtEzDNbrrV0wzvvC0ktnYXxzAXLU9O127O8AbKKQgKiHNWke0vNKmikFv BwWTi4unwR6GMg2aZfw1d/gt8s/XkUJumksbgJQsx2EUHDiJxqJuofWSdEnsbbWs8i/L 9Bjh6nGqrLivN/Ey2L6VVlZfqb/lSsaSB0ZpYDvSIHpr7Ngamie5FVeTdtnYqoD0l/22 46jPzevi6KsljCcTHYWyP1xCMiredfaA7Qxjf84SfXywYKIf0/SQJ+b6MK7oK0R1XQ3S kKJx3S8sFoLwY3L2rsDqI41BD75qiSlIdsfR2tJ0xnFmKLgr2oryKV9xIE2SSneDQ6u8 Rovg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=otuUBy14; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 33-v6si10089872pls.173.2018.11.04.06.08.08; Sun, 04 Nov 2018 06:08:23 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=otuUBy14; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730187AbeKDXHQ (ORCPT + 99 others); Sun, 4 Nov 2018 18:07:16 -0500 Received: from mail.kernel.org ([198.145.29.99]:44746 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730164AbeKDXHO (ORCPT ); Sun, 4 Nov 2018 18:07:14 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 30B6A20862; Sun, 4 Nov 2018 13:52:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541339531; bh=XHdzMikRKN9IDMhCVtzTplocA4T81y7G+d0OG/ow0zs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=otuUBy14iuO+wvo7MDHnSV2DCdYLg3IHVw3AZF3k0pQgJs7Bkt6roCj+D9xLlH3TF fKU1wBYoFyUUWHEI34bkp1LG7+8EgkuqPyxCVbhCMVGgBs5HRlO22ZRQhxgGC7QBB8 iUKLZMbKoHKtnX8Jc1DzysdBefjiaSivhLxDwvbo= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Stephen Boyd , Jeykumar Sankaran , Jordan Crouse , Sean Paul , Rob Clark , Sasha Levin Subject: [PATCH AUTOSEL 4.19 25/57] drm/msm/disp/dpu: Use proper define for drm_encoder_init() 'encoder_type' Date: Sun, 4 Nov 2018 08:51:12 -0500 Message-Id: <20181104135144.88324-25-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181104135144.88324-1-sashal@kernel.org> References: <20181104135144.88324-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Stephen Boyd [ Upstream commit 2c043eeffea4813b8f569e84b46035a08de5eb47 ] We got a bug report that this function oopses when trying to do a kasprintf(). PC is at string+0x2c/0x60 LR is at vsnprintf+0x28c/0x4ec pc : [] lr : [] pstate: a0c00049 sp : ffffff80095fb540 x29: ffffff80095fb540 x28: ffffff8008ad42bc x27: 00000000ffffffd8 x26: 0000000000000000 x25: ffffff8008c216c8 x24: 0000000000000000 x23: 0000000000000000 x22: ffffff80095fb720 x21: 0000000000000000 x20: ffffff80095fb720 x19: ffffff80095fb6f0 x18: 000000000000000a x17: 00000000b42ba473 x16: ffffff800805bbe8 x15: 00000000000a157d x14: 000000000000000c x13: 0000000000000000 x12: 0000ffff0000000f x11: 0000000000000003 x10: 0000000000000001 x9 : 0000000000000040 x8 : 000000000000001c x7 : ffffffffffffffff x6 : 0000000000000000 x5 : 0000000000000228 x4 : 0000000000000000 x3 : ffff0a00ffffff04 x2 : 0000000000007961 x1 : 0000000000000000 x0 : 0000000000000000 Process kworker/3:1 (pid: 61, stack limit = 0xffffff80095f8000) Call trace: Exception stack(0xffffff80095fb400 to 0xffffff80095fb540) b400: 0000000000000000 0000000000000000 0000000000007961 ffff0a00ffffff04 b420: 0000000000000000 0000000000000228 0000000000000000 ffffffffffffffff b440: 000000000000001c 0000000000000040 0000000000000001 0000000000000003 b460: 0000ffff0000000f 0000000000000000 000000000000000c 00000000000a157d b480: ffffff800805bbe8 00000000b42ba473 000000000000000a ffffff80095fb6f0 b4a0: ffffff80095fb720 0000000000000000 ffffff80095fb720 0000000000000000 b4c0: 0000000000000000 ffffff8008c216c8 0000000000000000 00000000ffffffd8 b4e0: ffffff8008ad42bc ffffff80095fb540 ffffff80088d5fc4 ffffff80095fb540 b500: ffffff80088d35d8 00000000a0c00049 ffffff80095fb550 ffffff80080d06a4 b520: ffffffffffffffff ffffff80088d5e0c ffffff80095fb540 ffffff80088d35d8 [] string+0x2c/0x60 [] vsnprintf+0x28c/0x4ec [] kvasprintf+0x68/0x100 [] kasprintf+0x60/0x80 [] drm_encoder_init+0x134/0x164 [] dpu_encoder_init+0x60/0x94 [] _dpu_kms_drm_obj_init+0xa0/0x424 [] dpu_kms_hw_init+0x61c/0x6bc [] msm_drm_bind+0x380/0x67c [] try_to_bring_up_master+0x228/0x264 [] component_master_add_with_match+0x90/0xc0 [] msm_pdev_probe+0x260/0x2c8 [] platform_drv_probe+0x58/0xa8 [] driver_probe_device+0x2d8/0x40c [] __device_attach_driver+0xd4/0x10c [] bus_for_each_drv+0xb4/0xd0 [] __device_attach+0xd0/0x160 [] device_initial_probe+0x24/0x30 [] bus_probe_device+0x38/0x98 [] deferred_probe_work_func+0x144/0x148 [] process_one_work+0x218/0x3bc [] process_scheduled_works+0x44/0x48 [] worker_thread+0x288/0x32c [] kthread+0x134/0x13c [] ret_from_fork+0x10/0x18 Code: 910003fd 2a0403e6 eb0400ff 54000060 (38646845) Looking at the code I see that drm_encoder_init() is called from the DPU code with 'DRM_MODE_CONNECTOR_DSI' passed in as the 'encoder_type' argument (follow from _dpu_kms_initialize_dsi()). That corresponds to the integer 16. That is then indexed into drm_encoder_enum_list in drm_encoder_init() to look up the name of the encoder. If you're still following along, that's an encoder not a connector! We really want to use DRM_MODE_ENCODER_DSI (integer 6) instead of DRM_MODE_CONNECTOR_DSI here, or we'll go out of bounds of the encoder array. Pass the right thing and everything is fine. Cc: Jeykumar Sankaran Cc: Jordan Crouse Cc: Sean Paul Fixes: 25fdd5933e4c (drm/msm: Add SDM845 DPU support) Tested-by: Sai Prakash Ranjan Reviewed-by: Jeykumar Sankaran Signed-off-by: Stephen Boyd Signed-off-by: Sean Paul Signed-off-by: Rob Clark Signed-off-by: Sasha Levin --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index 7dd6bd2d6d37..74cc204b07e8 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -450,7 +450,7 @@ static void _dpu_kms_initialize_dsi(struct drm_device *dev, int i, rc; /*TODO: Support two independent DSI connectors */ - encoder = dpu_encoder_init(dev, DRM_MODE_CONNECTOR_DSI); + encoder = dpu_encoder_init(dev, DRM_MODE_ENCODER_DSI); if (IS_ERR_OR_NULL(encoder)) { DPU_ERROR("encoder init failed for dsi display\n"); return; -- 2.17.1