Received: by 2002:a05:6602:2086:0:0:0:0 with SMTP id a6csp4398135ioa; Wed, 27 Apr 2022 03:01:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxq+fgvT+2JOU7gF2CaoimYOEzkT1AN3TXV4JtjSoDz2r/HSv3te2rNEQn2EXzCPknUXo9g X-Received: by 2002:a05:6a00:1903:b0:4fa:fa9e:42e6 with SMTP id y3-20020a056a00190300b004fafa9e42e6mr28974904pfi.1.1651053673895; Wed, 27 Apr 2022 03:01:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651053673; cv=none; d=google.com; s=arc-20160816; b=BwdS3y83uxZAGYoHy4giOea7XuhzemScpJLM888FtxG6nAuXM+zMNY45c+D0rsIbbJ 3YX1lnj9OJ0wYf9Lkm17sYlI29GDZP1I+J9YJLquAlaYIFTmK9duB+c4oHNFSXxhO6gD M9LRdGiol46/M6mlp+8etO2ee/aeGIhDZ5sA/ECVpE/cuFUf5MqogWkTtDkszfRVMKNx mGnkbhY368/bRquGIDSnqeBL71Vv10EiRmPn5MqRdg3qqiMsGpzgxB8yZfvN2wuHLZxj o7AvoKlulCealI+YANAzqaOOBb0aZBJ0LJP7lnaZX+uv9vuDCPzeleLlmlOm3B8u2fdq RpIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:user-agent:from :references:in-reply-to:mime-version:dkim-signature; bh=pjo5mXaYQ8tuJfJZuu4TdSNcsnRgj5B9DLZVepdghWQ=; b=rgd50IBfUQMKPpfZjKpLcoCgMjU5WE/VqWfgKT2dKFyjZcwWHhRfC19LZZQRtGrVQD xLTRwU/PDryzNrxKoafEZgP4AVWXTX4C3DaCE6x/u7t8FNougAlzjHMAo29YaxgHUg7q tZkrT2BTaKO0h0xIRHEjxzfxnWchOEXgP/RfNHxkmIm6dAy/WrXlpCogLJGy5XxBCZZb 4+wlutiGnKePipdEIFeArcdZmzls3xEaSYsdn9gdpzHp6taeQk7OK9y/wHR+VDmTbC4g d3ANtPNmJ8NYbsfvXXjM4HLv5UiLh9xmrFE1tigAQOW5jH7vzNL0cGKGr6WQrqY41G0/ uFsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=CQiwaHLv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id ik12-20020a170902ab0c00b0015d2e44c194si1011833plb.556.2022.04.27.03.01.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Apr 2022 03:01:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=CQiwaHLv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 880012D5E47; Wed, 27 Apr 2022 02:28:23 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355558AbiDZVx4 (ORCPT + 99 others); Tue, 26 Apr 2022 17:53:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60068 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355565AbiDZVxx (ORCPT ); Tue, 26 Apr 2022 17:53:53 -0400 Received: from mail-oi1-x22d.google.com (mail-oi1-x22d.google.com [IPv6:2607:f8b0:4864:20::22d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 530253B556 for ; Tue, 26 Apr 2022 14:50:44 -0700 (PDT) Received: by mail-oi1-x22d.google.com with SMTP id q129so108255oif.4 for ; Tue, 26 Apr 2022 14:50:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:in-reply-to:references:from:user-agent:date:message-id :subject:to:cc; bh=pjo5mXaYQ8tuJfJZuu4TdSNcsnRgj5B9DLZVepdghWQ=; b=CQiwaHLvsuJ+ikXqofBkW8jrqC5ybJyYGda2ADk6TuRwRak/ZZrAWQr+Oc3GoIyUxL jAiQC84FRkg0/xIgPZYwLmYHAR/MiaTGiJk7wDC3ByWcpz0mVRL0o5yr3i5GeTh9YxTq TczVSgufsKZt2Yp2vNv7WM6j9VMoK+ZRTN5VI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:in-reply-to:references:from :user-agent:date:message-id:subject:to:cc; bh=pjo5mXaYQ8tuJfJZuu4TdSNcsnRgj5B9DLZVepdghWQ=; b=f4Fps14LujqkKzJ14CB95PmF8ZKamAHoF72CNy6ZXtEvJZ+lPMMpiCv18a8th2V8On 6Niunc7015T0kc2JcguKiliT0VWWE+knUtEhBo7eHrgJ1Me+PYY+EN5zZCkNRkhNPHiB HHf3HIaP+NOXPwH1T6q6ibCgwq5pA8OCviILGiHXfsuZ+JW6JSAnBcTgd6afXUhnwElV /STFNooxuBDKKp5WNQ4UrNgTKeZLozPNLR/R4PVSmmXqTWrS/CutJ8ri+i0o9yWxJCyW isP/tJd1rBA0irojYK1p3aUPyrCALq+diT2+NRqoLtlZThBhe3GQyNGiSyPTxQ9A4tio QVZA== X-Gm-Message-State: AOAM5302VsNuLtUovWtmAvQSywzIY64PrjZ1wnvcW3DHTzEEexEVkDs+ x1X/SZSSNBM/mempCbDxAYqA2qv7QNg9gfkv7BHPqQ== X-Received: by 2002:aca:bd41:0:b0:2ec:ff42:814f with SMTP id n62-20020acabd41000000b002ecff42814fmr11888453oif.63.1651009843704; Tue, 26 Apr 2022 14:50:43 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Tue, 26 Apr 2022 14:50:43 -0700 MIME-Version: 1.0 In-Reply-To: <1650952931-31988-1-git-send-email-quic_vpolimer@quicinc.com> References: <1650952931-31988-1-git-send-email-quic_vpolimer@quicinc.com> From: Stephen Boyd User-Agent: alot/0.10 Date: Tue, 26 Apr 2022 14:50:43 -0700 Message-ID: Subject: Re: [PATCH] drm/msm/disp/dpu1: avoid clearing hw interrupts if hw_intr is null during drm uninit To: Vinod Polimera , devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Cc: linux-kernel@vger.kernel.org, robdclark@gmail.com, dmitry.baryshkov@linaro.org, dianders@chromium.org, quic_kalyant@quicinc.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.5 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 autolearn=unavailable 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 Quoting Vinod Polimera (2022-04-25 23:02:11) > Avoid clearing irqs and derefernce hw_intr when hw_intr is null. Presumably this is only the case when the display driver doesn't fully probe and something probe defers? Can you clarify how this situation happens? > > BUG: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 > > Call trace: > dpu_core_irq_uninstall+0x50/0xb0 > dpu_irq_uninstall+0x18/0x24 > msm_drm_uninit+0xd8/0x16c > msm_drm_bind+0x580/0x5fc > try_to_bring_up_master+0x168/0x1c0 > __component_add+0xb4/0x178 > component_add+0x1c/0x28 > dp_display_probe+0x38c/0x400 > platform_probe+0xb0/0xd0 > really_probe+0xcc/0x2c8 > __driver_probe_device+0xbc/0xe8 > driver_probe_device+0x48/0xf0 > __device_attach_driver+0xa0/0xc8 > bus_for_each_drv+0x8c/0xd8 > __device_attach+0xc4/0x150 > device_initial_probe+0x1c/0x28 > > Fixes: a73033619ea ("drm/msm/dpu: squash dpu_core_irq into dpu_hw_interrupts") The fixes tag looks odd. In dpu_core_irq_uninstall() at that commit it is dealing with 'irq_obj' which isn't a pointer. After commit f25f656608e3 ("drm/msm/dpu: merge struct dpu_irq into struct dpu_hw_intr") dpu_core_irq_uninstall() starts using 'hw_intr' which is allocated on the heap. If we backported this patch to a place that had a73033619ea without f25f656608e3 it wouldn't make any sense. > Signed-off-by: Vinod Polimera > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c > index c515b7c..ab28577 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c > @@ -599,6 +599,9 @@ void dpu_core_irq_uninstall(struct dpu_kms *dpu_kms) > { > int i; > > + if (!dpu_kms->hw_intr) > + return; > + > pm_runtime_get_sync(&dpu_kms->pdev->dev); > for (i = 0; i < dpu_kms->hw_intr->total_irqs; i++)