From patchwork Thu Jul 2 07:23:49 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 6708051 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 72E6F9F380 for ; Thu, 2 Jul 2015 07:21:10 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8B91D20701 for ; Thu, 2 Jul 2015 07:21:08 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id BD4BC206F2 for ; Thu, 2 Jul 2015 07:21:07 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 95BA46EC4C; Thu, 2 Jul 2015 00:21:06 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wg0-f48.google.com (mail-wg0-f48.google.com [74.125.82.48]) by gabe.freedesktop.org (Postfix) with ESMTPS id 20BF76EC4E for ; Thu, 2 Jul 2015 00:21:05 -0700 (PDT) Received: by wgjx7 with SMTP id x7so54947228wgj.2 for ; Thu, 02 Jul 2015 00:21:03 -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; bh=AabrTak1ecWcLuKICFCwzabngD+8SCWR0vgzI1GWpFk=; b=NepkkPfSkM8/g5GRrij8wjK5OrdQzJMbcB7widDRLZbKNmRRNplNJT5exf/iypufGZ clUVNDeBo8AKGpJnr53nbEmFBvuWNIJq36idv+3VldjH6fgqtatupfJnjc+MoOvGfles HFgreIteRsxqGXs+SPoNTFNAvzeSqETVaR1C0= 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; bh=AabrTak1ecWcLuKICFCwzabngD+8SCWR0vgzI1GWpFk=; b=M5lg6VDOJfKD5TSuypLmZTnLkFs+YCrFlQU4d3XV/EHSuFrpUDuy8WJB+U0omi9iBa qV8af0FVrPHTzdoXeMv6OuUDwK8EZGwk27KfGgpxLBqvdzrpevjJN6YwWQ/qMduDCeVO kbtnuquc0riBLYCfYkS5SXsEprVTpFJ523OywgiU8a9wP4AdHTSFO2aXgB9jg/yi7WIp GkFuU0Cb/+HD+XJsJa0A4V9C14IIMyYOSAnOLTR03VH1KUClfDu8cJGAxnUJfydnmzVB rL0euN2Cw1mLu9dRyeZv4Un2m+wIwO0izehsQj6Ox9KO6pGdEiko/2oum7Wn5ZSWv5Ko /XLQ== X-Gm-Message-State: ALoCoQlvm7hUdq3IFpRrKmjG4+befM2mCV6RWl+g0vhTwo6IX64gu3fdBbZRFHreYQk+79Cq1bEj X-Received: by 10.194.234.40 with SMTP id ub8mr56632854wjc.21.1435821663271; Thu, 02 Jul 2015 00:21:03 -0700 (PDT) Received: from phenom.ffwll.local (212-51-149-109.fiber7.init7.net. [212.51.149.109]) by mx.google.com with ESMTPSA id k16sm6512579wjr.7.2015.07.02.00.21.01 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 02 Jul 2015 00:21:02 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH] drm/crtc-helper: Fixup error handling in drm_helper_crtc_mode_set Date: Thu, 2 Jul 2015 09:23:49 +0200 Message-Id: <1435821829-11107-1-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.1.4 Cc: Daniel Stone , Daniel Vetter , Intel Graphics Development , Daniel Vetter , John Hunter X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.7 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 In commit 9f658b7b62e7aefc1ee067136126eca3f58cabfd Author: Daniel Stone Date: Fri May 22 13:34:45 2015 +0100 drm/crtc_helper: Replace open-coded CRTC state helpers error handling code was broken, resulting in the first path not being checked correctly. Fix this by using the same pattern as in the transitional plane helper function drm_plane_helper_update. Cc: Daniel Stone CC: Sean Paul Cc: John Hunter Signed-off-by: Daniel Vetter Reviewed-by: Daniel Stone --- drivers/gpu/drm/drm_crtc_helper.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index 393114df88a3..0035c3395b30 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c @@ -927,15 +927,13 @@ int drm_helper_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mod if (crtc->funcs->atomic_duplicate_state) crtc_state = crtc->funcs->atomic_duplicate_state(crtc); - else { + else if (crtc->state) + crtc_state = drm_atomic_helper_crtc_duplicate_state(crtc); + else crtc_state = kzalloc(sizeof(*crtc_state), GFP_KERNEL); - if (!crtc_state) - return -ENOMEM; - if (crtc->state) - __drm_atomic_helper_crtc_duplicate_state(crtc, crtc_state); - else - crtc_state->crtc = crtc; - } + + if (!crtc_state) + return -ENOMEM; crtc_state->planes_changed = true; crtc_state->mode_changed = true;