Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp5147244imm; Tue, 9 Oct 2018 10:21:11 -0700 (PDT) X-Google-Smtp-Source: ACcGV627Rh8IejdgJZp3DIlx7TDN0HYGbiFVsPR+srqR+31IycmNlvkHtUqzqpVn+CXAQ2HQtmGq X-Received: by 2002:a63:5509:: with SMTP id j9-v6mr25968664pgb.208.1539105671572; Tue, 09 Oct 2018 10:21:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539105671; cv=none; d=google.com; s=arc-20160816; b=eHie4knnzWo6T9SQe6DO42ZKUr+bUf8Qt7D1OmvTucAB5nFZsUAcoGOqcyueuVpIId RfeeMSDvXJO6DpLXO7LNqKHqlHWA7/XDToDNQ3yEo+BUGnzOFVE8l4XUXigYYGEeORhX L3A6kEC+VlsZKkfIq7h10ThG0ouF6qE/dDSQP6zOBTZAfD+hrL9K+Gb87O54q33CVJNs RJviKbtCiCyaDByTk67ZpnA13qwms9V69t3b0EZ5BpDUPxP1IIwHxYyuygyd8xApzPIO kkQl7b9xZEYikd24ya1hjyDFsUtNwb0W0IrZXjuUoM4+cQnHiXRRH5aTOIsXzKzY1SFX GqCg== 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:message-id:subject:cc:to:from:date; bh=wlEtTBN5csV08hsFU5RQSr8K//V6/aHWagH/C4rT/mQ=; b=qM593IyKvLlV/vLeStiSWh4YoVf5760+0aYC/ujHGxSyBGB5n9E+rRv0wTLuqy/GhV LTKGNu3Z5huOyGbPMbE1Artn81Uu+37ndyXX3xcFLLvrMw8dzHw/kk54ipF4WPXlPMyS AWxlRzQcr+pnEpZ5b6yKn7bL/TdtAo615jqNLXjT+7IV2SdQ+tC1syFhYr8lcXm4MO5Z Q5RnDiCnquZXJusjegM7WRYjiEzGkcEJLnuAyrxJxr/BD1PNabLTR04gaGJK3CS2wpIs ffjCMjo0mfeKmTUt/1mzlJnwe5TyjIqqp6ktnXYzE6Z8VbU5jua+BSo+IB/GdQnJsv/x rKkA== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 2-v6si22602742pfs.7.2018.10.09.10.20.57; Tue, 09 Oct 2018 10:21:11 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726827AbeJJAic (ORCPT + 99 others); Tue, 9 Oct 2018 20:38:32 -0400 Received: from mga11.intel.com ([192.55.52.93]:62790 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726434AbeJJAic (ORCPT ); Tue, 9 Oct 2018 20:38:32 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Oct 2018 10:20:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,361,1534834800"; d="scan'208";a="79802155" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga007.jf.intel.com with SMTP; 09 Oct 2018 10:20:28 -0700 Received: by stinkbox (sSMTP sendmail emulation); Tue, 09 Oct 2018 20:20:27 +0300 Date: Tue, 9 Oct 2018 20:20:27 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Lyude Paul Cc: 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: <20181009172027.GK9144@intel.com> References: <20181008232437.5571-1-lyude@redhat.com> <20181008232437.5571-2-lyude@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20181008232437.5571-2-lyude@redhat.com> 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 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 :( > + > 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