From patchwork Mon Aug 3 15:24:11 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 6930441 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 52086C05AC for ; Mon, 3 Aug 2015 15:24:39 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C8CC520634 for ; Mon, 3 Aug 2015 15:24:35 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 154502062A for ; Mon, 3 Aug 2015 15:24:32 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0A3F26E4D0; Mon, 3 Aug 2015 08:24:30 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com [209.85.212.180]) by gabe.freedesktop.org (Postfix) with ESMTPS id D242B6E567 for ; Mon, 3 Aug 2015 08:24:27 -0700 (PDT) Received: by wibxm9 with SMTP id xm9so126647590wib.0 for ; Mon, 03 Aug 2015 08:24:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=X3q6wGqr4BsNNjiic47N0ku/n+ClcFuyBBlkBHE/FqY=; b=P8PgJV22rOpER3GkZhFMP38NODxeYy5aWXwmPVFrhWDJo7QyrKNpOoZ51GVTsyxI82 z40IGKtcshKeHIuqxJFn1/ya5cqWQVnYEKnHGjBL/D1lujHvF0lD0kKjxiKjAviB0JQh vuOLQA6b9OMK8B+0pdySStCdj67YsS7eaZ50s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=X3q6wGqr4BsNNjiic47N0ku/n+ClcFuyBBlkBHE/FqY=; b=gGTMNMSdG9pUMOFt98avUvQIdjGzXHFbijMvyQlcJcVPlz9lIXSsfNydPbMpAXE6Za PAW17Kp6SwUbDs8b4M2G1r2BvcAJw+FOqRCblu+ggtxHDUS0WXOcLsBsv6Hj5ayqMH6x 30ME8GLfm6tqxxeVE4BrUxatL6UXfBUeRDaee6zCemWO0nhiYApGRpb1Xrmt5zKVnr2i Of6OWsWQ7oZ3M2dr2cU1c5eYUmscHd3aQ3QqB/Dmuy3pUkuMb7Ob1FcO35ZD22hLl4zi ehtX/x6t7FMqVp65qG3/dEGNBv/iQQZx1Q83ib6tYfe7TSuNWRhb3yEi0fyDAryPsyHz Vl5A== X-Gm-Message-State: ALoCoQkL0IMmlvTgrh7Hcs+yzMagB3KcZ4q0l95Jdwi9oVx2YMXN/scnHCmJnff2ScsNvjmQIWO3 X-Received: by 10.194.2.51 with SMTP id 19mr37447007wjr.40.1438615466601; Mon, 03 Aug 2015 08:24:26 -0700 (PDT) Received: from phenom.ffwll.local (212-51-149-109.fiber7.init7.net. [212.51.149.109]) by smtp.gmail.com with ESMTPSA id ez4sm14102677wid.14.2015.08.03.08.24.25 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Aug 2015 08:24:26 -0700 (PDT) From: Daniel Vetter To: DRI Development , Intel Graphics Development Date: Mon, 3 Aug 2015 17:24:11 +0200 Message-Id: <1438615451-856-4-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1438615451-856-1-git-send-email-daniel.vetter@ffwll.ch> References: <1438615451-856-1-git-send-email-daniel.vetter@ffwll.ch> Cc: Daniel Vetter , Linus Torvalds , Theodore Ts'o , Daniel Vetter Subject: [Intel-gfx] [PATCH 4/4] drm/atomic-helpers: Make encoder picking more robust X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP We've had a few issues with atomic where subtle bugs in the encoder picking logic lead to accidental self-stealing of the encoder, resulting in a NULL connector_state->crtc in update_connector_routing and subsequent. Linus applied some duct-tape for an mst regression in commit 27667f4744fc5a0f3e50910e78740bac5670d18b Author: Linus Torvalds Date: Wed Jul 29 22:18:16 2015 -0700 i915: temporary fix for DP MST docking station NULL pointer dereference But that was incomplete (the code will still oops when debuggin is enabled) and mangled the state even further. So instead WARN and bail out as the more future-proof option. Cc: Theodore Ts'o Cc: Linus Torvalds Signed-off-by: Daniel Vetter Reviewed-by: Ander Conselvan de Oliveira Reviewed-by: Thierry Reding --- drivers/gpu/drm/drm_atomic_helper.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 8694ca9beee3..9dcc7280e572 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -234,13 +234,14 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx) } } + if (WARN_ON(!connector_state->crtc)) + return -EINVAL; + connector_state->best_encoder = new_encoder; - if (connector_state->crtc) { - idx = drm_crtc_index(connector_state->crtc); + idx = drm_crtc_index(connector_state->crtc); - crtc_state = state->crtc_states[idx]; - crtc_state->mode_changed = true; - } + crtc_state = state->crtc_states[idx]; + crtc_state->mode_changed = true; DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] using [ENCODER:%d:%s] on [CRTC:%d]\n", connector->base.id,