Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp1913251imm; Thu, 11 Oct 2018 01:46:41 -0700 (PDT) X-Google-Smtp-Source: ACcGV63uJAcvwpIMvZRLyJmraaN8EhEZVtJ3wm7OWVb/yjrqyXfLQEOYtFKdtRSzkwF/ZfCpeW5a X-Received: by 2002:a63:164d:: with SMTP id 13-v6mr599910pgw.103.1539247601422; Thu, 11 Oct 2018 01:46:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539247601; cv=none; d=google.com; s=arc-20160816; b=DTqrbDlqIKRRTvhnZWPgzDS9szLEXEr7FEFhptZAHTrO31fW9BMeJ6rLBd4jhkrSvN 61/rYx6VCwQ94YhH9eSLwok7zlQjO4dqFrSsZ3bGwqJ6ikvrUOclsOyHe0lTIAJa4iB/ fXPpcW+t3e1FcgWXTdJN+IaeqKUt4RBSqQgGnjJPnji/h7vHxDl1wXoRwhOkA62H0Rhn NMt7csKgNTH/umroZFIm/SEbfNvub2rWFkUsqh78S2AjJrs2gCO2kCAr98g7Ctt6+I15 AYcUGhlhNf4WEDfWgNBFUgSXYIDg+XnQdH5keZW2qCQD3a9aUCh6a+V41IOtR2cbvlLa n7Qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:mail-followup-to:message-id:subject:cc:to:from:date :dkim-signature; bh=wYwW+VEExLl8Bgdtp71uT2YwZWVLLMO4u7FAv/lySMc=; b=a9IqzY1UV7x4nBL6+xzXH1qYNv+Fh/ijrvxPBwJiBLKzThZDT5Q+a5fM7LhWMG5Qdq W9eeTGkueIQ4RZASbcuvn4q/ROX6+LVWLItQS6xhtz8t4u76hRUwna0D0J/H+EAmSSz4 vtgjryLZExaUZja/PFQ1eBRuliuXwfz9w6ZoaaviacuGp4Mpj4irhBeD8VYls9jKN3ZC aE77ryUNrYyVnzAU/stflM8G8J6YoIG266haGAK44F0gW05vweu5H+VsQ31VRtI5getm /5Radpbot460UlcJeVVNS/lBxaoqnUpnl5P7oYvUq9qEgb6kp7ckLC7Nuljw+yNLOI4b v7TA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=QzLZPCJx; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z6-v6si26846647pln.287.2018.10.11.01.46.26; Thu, 11 Oct 2018 01:46:41 -0700 (PDT) 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=fail header.i=@ffwll.ch header.s=google header.b=QzLZPCJx; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727396AbeJKQGh (ORCPT + 99 others); Thu, 11 Oct 2018 12:06:37 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:33829 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726070AbeJKQGg (ORCPT ); Thu, 11 Oct 2018 12:06:36 -0400 Received: by mail-ed1-f68.google.com with SMTP id w19-v6so7473391eds.1 for ; Thu, 11 Oct 2018 01:40:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=wYwW+VEExLl8Bgdtp71uT2YwZWVLLMO4u7FAv/lySMc=; b=QzLZPCJxp+FSbT50Nn4O0KfO5LHzVNSfZFwYVO5VM2YWVZLP+ZH5KBAg9CSymINpOr gAi3y3mXKzWUp7NgCsgy+eIeEevI7mack1SzqCmehjhEwhmzV16yRUZAA+Vae21asABc czylGQqxlDN6gsp0dymxxnnjZx6OqyIOQ8gsA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=wYwW+VEExLl8Bgdtp71uT2YwZWVLLMO4u7FAv/lySMc=; b=YOxSgsDm6ApEkZ76EKM7m8b/2rfxL6X8ekGQf7eEBQvl9uMLMkh/KePgL8PUdAZs5r uVtlk3gNUn/IdbJxEyBVem69dlYMXi0xMFsMsuAM551MeaKpJ8MyKVDXh4nLxW0cKNEJ EyOXMTuqnFYC5HySIrxPsd46ijmsJ0Uqi3VXEr4YxyNzm+ejJAV8uWeBUvFOzRFNILsu XYz5GsqCYSeNnhY9LPnaThg1NKEE+NTtBY9JmZ7JmemrB7313pzOdQp5r/1HrmX6Wib+ LvYNahjZzwg1NEss4eJK5brIiq15Mq4oHiZ6phNPqihG1X5Eh1wbTUj6jmMV7iz5jheQ jjPw== X-Gm-Message-State: ABuFfojnNG08aDn4HAAyGD8hjRvTNBb+to93Y1FDuTFA3FFm1D5n5UN9 N4xZ6sycpA9yBYrac08V/4Hrtw== X-Received: by 2002:a50:c109:: with SMTP id l9-v6mr1424225edf.221.1539247218889; Thu, 11 Oct 2018 01:40:18 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id k20-v6sm4654336ejb.28.2018.10.11.01.40.17 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 11 Oct 2018 01:40:17 -0700 (PDT) Date: Thu, 11 Oct 2018 10:40:15 +0200 From: Daniel Vetter To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: Lyude Paul , intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, David Airlie , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Sean Paul , Daniel Vetter Subject: Re: [PATCH v7 1/5] drm/atomic_helper: Disallow new modesets on unregistered connectors Message-ID: <20181011084015.GX31561@phenom.ffwll.local> Mail-Followup-To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , Lyude Paul , intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, David Airlie , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Sean Paul References: <20181008232437.5571-1-lyude@redhat.com> <20181008232437.5571-2-lyude@redhat.com> <20181009172027.GK9144@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20181009172027.GK9144@intel.com> X-Operating-System: Linux phenom 4.14.0-1-amd64 User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 09, 2018 at 08:20:27PM +0300, Ville Syrj?l? wrote: > On Mon, Oct 08, 2018 at 07:24:30PM -0400, Lyude Paul wrote: > > With the exception of modesets which would switch the DPMS state of a > > connector from on to off, we want to make sure that we disallow all > > modesets which would result in enabling a new monitor or a new mode > > configuration on a monitor if the connector for the display in question > > is no longer registered. This allows us to stop userspace from trying to > > enable new displays on connectors for an MST topology that were just > > removed from the system, without preventing userspace from disabling > > DPMS on those connectors. > > > > Changes since v5: > > - Fix typo in comment, nothing else > > > > Signed-off-by: Lyude Paul > > Reviewed-by: Daniel Vetter > > Cc: stable@vger.kernel.org > > --- > > drivers/gpu/drm/drm_atomic_helper.c | 21 ++++++++++++++++++++- > > 1 file changed, 20 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > > index 6f66777dca4b..e6a2cf72de5e 100644 > > --- a/drivers/gpu/drm/drm_atomic_helper.c > > +++ b/drivers/gpu/drm/drm_atomic_helper.c > > @@ -319,6 +319,26 @@ update_connector_routing(struct drm_atomic_state *state, > > return 0; > > } > > > > + crtc_state = drm_atomic_get_new_crtc_state(state, > > + new_connector_state->crtc); > > + /* > > + * For compatibility with legacy users, we want to make sure that > > + * we allow DPMS On->Off modesets on unregistered connectors. Modesets > > + * which would result in anything else must be considered invalid, to > > + * avoid turning on new displays on dead connectors. > > + * > > + * Since the connector can be unregistered at any point during an > > + * atomic check or commit, this is racy. But that's OK: all we care > > + * about is ensuring that userspace can't do anything but shut off the > > + * display on a connector that was destroyed after its been notified, > > + * not before. > > + */ > > + if (!READ_ONCE(connector->registered) && crtc_state->active) { > > + DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] is not registered\n", > > + connector->base.id, connector->name); > > + return -EINVAL; > > + } > > This broke my ilk (and presumably snb-bdw as well). > > [ 25.593121] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] Updating routing for [CONNECTOR:55:eDP-1] > [ 25.593131] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CONNECTOR:55:eDP-1] is not registered > [ 25.593133] ------------[ cut here ]------------ > [ 25.593134] Could not determine valid watermarks for inherited state > [ 25.593212] WARNING: CPU: 0 PID: 3060 at ../drivers/gpu/drm/i915/intel_display.c:14983 intel_modeset_init+0x12cf/0x1980 [i915] > > Also I can't see that any of the repostings of this has undergone the > full CI run (just BAT results are visible). Not sure why that is. > Not that the full run would have caught this because we unwisely > load the module before the tests start. Which means any failures > during initial readout/takeover will not be flagged :( Ugh, so we need a special bool for "unplugged", to differentiate it from the "it's real, but not yet registered because the driver isn't fully loaded yet" case. -Daniel > > > + > > funcs = connector->helper_private; > > > > if (funcs->atomic_best_encoder) > > @@ -363,7 +383,6 @@ update_connector_routing(struct drm_atomic_state *state, > > > > set_best_encoder(state, new_connector_state, new_encoder); > > > > - crtc_state = drm_atomic_get_new_crtc_state(state, new_connector_state->crtc); > > crtc_state->connectors_changed = true; > > > > DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] using [ENCODER:%d:%s] on [CRTC:%d:%s]\n", > > -- > > 2.17.1 > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Ville Syrj?l? > Intel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch