Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp5682798rdb; Wed, 13 Dec 2023 16:44:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IGdwB7//uO53xhQrI/Yfnzgft6Ug3iVf7O2MxrZyhZgsJUQAjYifK9PEOPmgtPIw+3kxML7 X-Received: by 2002:a9d:6c56:0:b0:6d9:e15c:79bc with SMTP id g22-20020a9d6c56000000b006d9e15c79bcmr9099915otq.68.1702514657952; Wed, 13 Dec 2023 16:44:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702514657; cv=none; d=google.com; s=arc-20160816; b=LhcmmY+a/Z4a5ff0wlKtGeaq3ha4ku7bLqNRH5ftn3p7dEgbd1j/fcShDpOHE5UQI0 N/TDPH8N2zEuYCOczbjsVj/EO/L5rXOoA06zyt4zhS5IZuDAvZn7LGjuYAxKPSEkMpBq FPNHpMVTlujYXcaf3CPtvr+ghdnNcMQyx3+1JD0XGCuf9Jf+jkZHQeECgWWIlrYMiMlk 4qfbXNHmmUE6EHJlmbOjyzdtVoAbs/F1ML79LBeppZVjFHAq2UkBX4F9nbDtft2zpt72 43e5A+gvh73VuZQV2F2uj382tiYHeIlwRr7qtxJx0TJOiJ+6lAmLTQgW3unPZEcsi+2r V1xA== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=ii5VSQ2/GUc2f4RzgYEeamHIhipYsVSJSGoA0nxmpuk=; fh=9+KDVmhnzgqJWwIZjQqfZa3is7x6gIhjOO587alaSTc=; b=C4QUdaLqSUJ84Rjivb6oD0sXoX8okeJ5tvuOdp7JqtryEDVUVCSM5ymrivoyZPtmsK z0lTE5VuXyUQv5FLgCuICwSG92bOii7h6lSJbBCfJH95gHsQQ654xkjFB4GyELuO1VSa 2t3Q0p6g3VmaANK1hLSRSxTR6+IcE59CGCREGu+IMC+BFC2qunOOYdfZDNO0RXX3NN+1 mN6ur7MxM4GnDu01iG2iXnHGFgLBfzeH0UptkCAnrlNSXxbSUYoPVrO2YBLb5s2DE+6e dScZYLQz/GpwvWj09fSchvlBM82y0+/pQjozKKCGsdbmkOgWre1HulFoe1iqQRFl795e 6UQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=i36+cYiw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id s16-20020a056a00195000b006ce96e33eb8si10227444pfk.112.2023.12.13.16.44.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Dec 2023 16:44:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=i36+cYiw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 378D08027490; Wed, 13 Dec 2023 16:44:14 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1442805AbjLNAoA (ORCPT + 99 others); Wed, 13 Dec 2023 19:44:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39332 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229739AbjLNAn7 (ORCPT ); Wed, 13 Dec 2023 19:43:59 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B5922AC for ; Wed, 13 Dec 2023 16:44:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1702514645; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=ii5VSQ2/GUc2f4RzgYEeamHIhipYsVSJSGoA0nxmpuk=; b=i36+cYiwZ9FyH9gm784PGyMVuwb5fpJgqizLzVB6oYSjdmU/SmXkf3Tv0boXgWnBYYXRSw mXb2bMQcXYJppckskMTjb6/gtAJGkgaCdyc9i5rsTwXBw0rXQM3DhHhCumgjWeCTchdBeI I7NwJxfcJMCvUiTFG+dVLslTQ8jxaZ0= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-187-SeqMwaiINUeZe-0k0ms05A-1; Wed, 13 Dec 2023 19:44:03 -0500 X-MC-Unique: SeqMwaiINUeZe-0k0ms05A-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4D50E88CC40; Thu, 14 Dec 2023 00:44:03 +0000 (UTC) Received: from emerald.lyude.net (unknown [10.22.8.118]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3EB49492BE6; Thu, 14 Dec 2023 00:44:02 +0000 (UTC) From: Lyude Paul To: dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org Cc: Borislav Petkov , Karol Herbst , Danilo Krummrich , David Airlie , Daniel Vetter , Ben Skeggs , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] drm/nouveau/kms/nv50-: Don't allow inheritance of headless iors Date: Wed, 13 Dec 2023 19:43:57 -0500 Message-ID: <20231214004359.1028109-1-lyude@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.10 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Wed, 13 Dec 2023 16:44:14 -0800 (PST) Turns out we made a silly mistake when coming up with OR inheritance on nouveau. On pre-DCB 4.1, iors are statically routed to output paths via the DCB. On later generations iors are only routed to an output path if they're actually being used. Unfortunately, it appears with NVIF_OUTP_INHERIT_V0 we make the mistake of assuming the later is true on all generations, which is currently leading us to return bogus ior -> head assignments through nvif, which causes WARN_ON(). So - fix this by verifying that we actually know that there's a head assigned to an ior before allowing it to be inherited through nvif. This -should- hopefully fix the WARN_ON on GT218 reported by Borislav. Signed-off-by: Lyude Paul Cc: Borislav Petkov --- drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c index e4279f1772a1b..377d0e0cef848 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c @@ -385,7 +385,7 @@ nvkm_uoutp_mthd_inherit(struct nvkm_outp *outp, void *argv, u32 argc) /* Ensure an ior is hooked up to this outp already */ ior = outp->func->inherit(outp); - if (!ior) + if (!ior || !ior->arm.head) return -ENODEV; /* With iors, there will be a separate output path for each type of connector - and all of -- 2.43.0