Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp240977ybi; Wed, 29 May 2019 20:27:35 -0700 (PDT) X-Google-Smtp-Source: APXvYqxhx0NFdvccMATm5nb1JXxpm5DsZkYNs/GyTcvzK8c+0Tsmd0GTAF3Fdo+kTVdIkA4PuDpi X-Received: by 2002:a65:6559:: with SMTP id a25mr1677811pgw.33.1559186855250; Wed, 29 May 2019 20:27:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559186855; cv=none; d=google.com; s=arc-20160816; b=f2Vzymfs8qdNOJHFoV8ruUb/A5pY4ErP9yxOPr6hxeQy0af8vQKHuph1nYTVPdNOGl rxExbPdfew+HOP4co5JfBxYzLbd+L77jiZKrrOwyB/Rck7ZoksmiYMhmHdu7Sp/w13Xz mrylN+aQ9eyN+s4qMAaxHzeVlIMET4S/ekIGy2hrhNPMkv7ML76dQ/EzPZladLNwrT2U CtzYeUdwAo7KDXAKAMgt5bg73QaZb2YjqGxyiYnw+Y9h898ZJtH/fG4xgJ0J0wi7QFGS m9QVUI8uRXvaSyx5j9+bk6yXXSnlZWnLQLu0FG85V3CPgrNdUFvYqImePCfGPNEITfH4 NG7Q== 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=a1LphX1e0N6550AZrXqtC8il36Nw+MJdmrYpc8GsWLA=; b=l+wSQR6eqLny7iYr7rzVdp5kfOHK7R1bKP9+eZdvOgpQ9saLO4bQ+CedliMMK635vG 3uRncfOdntRy+AspfV2GT8PDc54pZNMsEqI5w4zn2Zj/P6iGpehOHvmuEfhCbhSlIXvv aYTiTzVN8r8dkyLFo9fzTNDZEYOMnXo5ymrsROK5+vDmx0KCqfKNUIVJHmTHMS40duwF EZB+1jk4x/rTYGE8LBcd5ARcwWZ3i6Liw9CBGjw1vWuEHJ6pymORMsPV5yasD/wIE3+k 2yAZw9Bi6lVQjT7dMfAtBG8cyJVCQ64vqu4Eq02TGwHyGvHyEcsWzNwCOPH9STC7i5Mq pFyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hCogC67f; 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 x26si2080024pfm.241.2019.05.29.20.27.19; Wed, 29 May 2019 20:27:35 -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=hCogC67f; 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 S1733057AbfE3DZZ (ORCPT + 99 others); Wed, 29 May 2019 23:25:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:51336 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731549AbfE3DS2 (ORCPT ); Wed, 29 May 2019 23:18:28 -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 42419247C9; Thu, 30 May 2019 03:18:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559186307; bh=0Yf7YGQ/sEpb1kMylafb/6YPgn3HoZ7N3cN3eq1HrTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hCogC67faGCcET/7J7GXCV7w3Em/aNIANPz9LUCqtK3s1MA6DuSvcQCUri5B7aSW7 wmubR0gxjag0sdFSRNPQbx3fjX3JEh63SE3CXtCrsjDKn6JY3YtpWI9vE6qjarT+ND Zbh7uOwCtzoG7hLg4/iheBFyNG5MBGiYJgCW6lig= 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.19 272/276] drm: Wake up next in drm_read() chain if we are forced to putback the event Date: Wed, 29 May 2019 20:07:10 -0700 Message-Id: <20190530030542.215922846@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190530030523.133519668@linuxfoundation.org> References: <20190530030523.133519668@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 e4ccb52c67ea4..334addaca9c54 100644 --- a/drivers/gpu/drm/drm_file.c +++ b/drivers/gpu/drm/drm_file.c @@ -567,6 +567,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