From patchwork Mon Dec 17 15:59:00 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 1887871 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id B847BDF266 for ; Mon, 17 Dec 2012 16:04:20 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 69D82E61AF for ; Mon, 17 Dec 2012 08:04:20 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wg0-f45.google.com (mail-wg0-f45.google.com [74.125.82.45]) by gabe.freedesktop.org (Postfix) with ESMTP id 92121E5C72 for ; Mon, 17 Dec 2012 07:59:11 -0800 (PST) Received: by mail-wg0-f45.google.com with SMTP id dq12so2641313wgb.12 for ; Mon, 17 Dec 2012 07:59:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=gqgnEucrXr2OrYXrLSF8Y6VtHBj2F/32WULDZxM2uKo=; b=E2F20ZZ2iQbam58hyOrELHGHwnhkRt28F2ZjkCEy6Gfv1pCa8yJfg+l9u1cRekbGFU iFw8yLFFjDefq02VvcRjv7whv3RQL01mgI8oEbHgeh8GcZpg6RGZ+/tRa6hnRjKd/oKt 3af+EAnqkbt5H0a82iDH6JzF8iAsAU2//Bgyk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=gqgnEucrXr2OrYXrLSF8Y6VtHBj2F/32WULDZxM2uKo=; b=QISLuhkNiI00+4GevezeXkBca+BdIvoFyxGIhRcEUBv59AyxtUH1v8YXq1mDtj3C8P K8d06KaK1s0hekSLKfsMkRjv32gysr19oWNove4nXTzLE09daZ082z8Jja2wJFyOl3Pc UV/gAYVER9vmu7UdTjES8P4YSN5Y/4kOCteieZJKICgAHx5swnaHE6aCj3AXyKUK4zVl GkyG+Ct+lK3upmbspYrY3Ul2U+C5lfKedzH3OXm6BYuV0FkzYgyk/E2Gw6+I4c6E17f2 o/gJx2f0UypLaMGC4iyp7J3Fdo2xHzwHepIqwlLnu6GyyZ3uwzZWU7e5iFCbN+4Xvy5G lM7Q== Received: by 10.194.236.68 with SMTP id us4mr18176376wjc.11.1355759950944; Mon, 17 Dec 2012 07:59:10 -0800 (PST) Received: from biers.ffwll.local (178-83-130-250.dynamic.hispeed.ch. [178.83.130.250]) by mx.google.com with ESMTPS id l5sm13116389wia.10.2012.12.17.07.59.10 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 17 Dec 2012 07:59:10 -0800 (PST) From: Daniel Vetter To: DRI Development Subject: [PATCH 2/2] drm/i915: wake up all pageflip waiters Date: Mon, 17 Dec 2012 16:59:00 +0100 Message-Id: <1355759940-7464-3-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1355759940-7464-1-git-send-email-daniel.vetter@ffwll.ch> References: <1355759940-7464-1-git-send-email-daniel.vetter@ffwll.ch> X-Gm-Message-State: ALoCoQm21kbAQ584bKrTYyeiJnTncS70dOx78f9L48Jzy6TRUOrZsK6A9y5XeZbEzEgL0rPk6Yt9 Cc: Daniel Vetter , Intel Graphics Development X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Otherwise it seems like we can get stuck with concurrent waiters. Right now this /shouldn't/ be a problem, since all pending pageflip waiters are serialized by the one mode_config.mutex, so there's at most on waiter. But better paranoid than sorry, since this is tricky code. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/i915/intel_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 6056972..f49fd2a 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -6788,7 +6788,7 @@ static void do_intel_finish_page_flip(struct drm_device *dev, obj = work->old_fb_obj; - wake_up(&dev_priv->pending_flip_queue); + wake_up_all(&dev_priv->pending_flip_queue); queue_work(dev_priv->wq, &work->work);