Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp260435ybi; Wed, 29 May 2019 20:52:23 -0700 (PDT) X-Google-Smtp-Source: APXvYqza+wVDAN6/JtSI2Dtfz+Plra+mJM3dh8jswtyunH1QASCOuKnHgQZTIJ5e/UEgCzpV2Rq1 X-Received: by 2002:a17:90a:25ca:: with SMTP id k68mr1800164pje.14.1559188342859; Wed, 29 May 2019 20:52:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559188342; cv=none; d=google.com; s=arc-20160816; b=fEBi7BhhlXOgQDU7XYl9QsXL+tHG1Q0B6vFuislu0yJLwSRdxlU9n+wARJMOQ2nyNh dzzGmUsynjCi38TF2p/zq3u6PggL2s0EXUxYuDZQBR6Gxp3rKSK+8rq4hNCy4d/zBG5m 0UcTwDL5ZwjcHAGrrs/wmQpnDcFkDQwT6eO4zsv3s4RabIVX5jPKv2OAWYS1CvhWsbeg mJZluhcgncZF79f5ec9amX8Gp1xbJDx30VYQBxLQVMVe7mTpJB6igzL6ba9w+0NOZGZM xiSZuw9CgUxb5WUc/WZmMAFqfMx5juZ2pN4w4nZR8u/y/7gga8e37kEP1mpHOSqKBS7I g8VA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=tnyuNRwPnwbNojXYV73IvCHcuIZPZ8S6hYQfe+AKOuw=; b=pg31EjSjvVrKyAN3jnSjqyAsiqxL1D959DewEwdnIHQqi95hGu1T/SDq40eZjTVWqt XEQVy+g2Kw0wE2PMySGhLm+7E1F7DpKEF95ZgPEf8YTpgburYxec5MiRKtNvc1hOJXW5 Y1C1Peh0wSSuhGEv+LWaZyd1L84Aj3sqAhE6Z4KsvSr89oN/K+6v1bU0rz8VVffdYP+c EI2OP21g7vH8dYc+5Ewk7W0WECgJMW5Ku1pWWmD2otHjW2D7JbbeHABJmbVg1A+FhRjG 5CBb0IfEuAtYdOWwUPtNBk8dmR/mf3q+B9D4JXHHYQqXOY2NijZoSF0NJa4eMFWmVJ5N 8N1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sge8uHlR; 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 y38si2026973pga.231.2019.05.29.20.52.06; Wed, 29 May 2019 20:52:22 -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=pass header.i=@kernel.org header.s=default header.b=sge8uHlR; 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 S2387564AbfE3Dsx (ORCPT + 99 others); Wed, 29 May 2019 23:48:53 -0400 Received: from mail.kernel.org ([198.145.29.99]:58046 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732143AbfE3DUR (ORCPT ); Wed, 29 May 2019 23:20:17 -0400 Received: from localhost (ip67-88-213-2.z213-88-67.customer.algx.net [67.88.213.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 31C2324913; Thu, 30 May 2019 03:20:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559186417; bh=D57ohe9MJE9ynAZ87YT9Yn/9+tuD5LBAyKgmV/j5pcY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sge8uHlRmtsLZrAV7q0Y6V56U8QgS05AZyC62euBSUL83OgqcGnyDkvEyJAfqpKup 7UGkiJ3SqC5Hne28rTwNsSnlpI7m2BpEJj8ZCJ2wFvXZIKABGEBuwQcmUU5L9WeDTr k1EoG3DXxlC9LAZUJ/O1ePXxsQU5IR3arHrRp5JM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chris Wilson , Daniel Vetter , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Sasha Levin Subject: [PATCH 4.14 191/193] drm: Wake up next in drm_read() chain if we are forced to putback the event Date: Wed, 29 May 2019 20:07:25 -0700 Message-Id: <20190530030513.324164890@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190530030446.953835040@linuxfoundation.org> References: <20190530030446.953835040@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 60b801999c48b6c1dd04e653a38e2e613664264e ] After an event is sent, we try to copy it into the user buffer of the first waiter in drm_read() and if the user buffer doesn't have enough room we put it back onto the list. However, we didn't wake up any subsequent waiter, so that event may sit on the list until either a new vblank event is sent or a new waiter appears. Rare, but in the worst case may lead to a stuck process. Testcase: igt/drm_read/short-buffer-wakeup Signed-off-by: Chris Wilson Cc: Daniel Vetter Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20170804082328.17173-1-chris@chris-wilson.co.uk Signed-off-by: Sasha Levin --- drivers/gpu/drm/drm_file.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c index 03244b3c985d7..3cf07f5063ff6 100644 --- a/drivers/gpu/drm/drm_file.c +++ b/drivers/gpu/drm/drm_file.c @@ -525,6 +525,7 @@ ssize_t drm_read(struct file *filp, char __user *buffer, file_priv->event_space -= length; list_add(&e->link, &file_priv->event_list); spin_unlock_irq(&dev->event_lock); + wake_up_interruptible(&file_priv->event_wait); break; } -- 2.20.1