From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,T_DKIMWL_WL_HIGH,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 30E9BC072B1 for ; Thu, 30 May 2019 04:37:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EFBC12239E for ; Thu, 30 May 2019 04:37:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559191071; bh=fns1pVq9d67hj/hkIfcf2UGwYJ5F0hzaw5B4zZq6Ao0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=pWPPHfCWzrP0WZbaGJMwezNY14yg7jNmTLO/XjJvs/QElQX4k+Rn3mKh76H58wUQD c9YVOtm4Fi38BgLYHGCyPFrHjhvnhCXkRYO8DqV+hWMO09SyKAVigKRJmgg+J+aLGq tg2sCqer/Z8XVLJgnfJrnYCWHyoQeqNAQCPF15wE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727869AbfE3DMu (ORCPT ); Wed, 29 May 2019 23:12:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:56414 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729241AbfE3DMs (ORCPT ); Wed, 29 May 2019 23:12:48 -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 4070B23E29; Thu, 30 May 2019 03:12:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1559185968; bh=fns1pVq9d67hj/hkIfcf2UGwYJ5F0hzaw5B4zZq6Ao0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qmKFloeomPlUzF+OlmCUVeJeQsEZxiJG5Tqwq7qQllIOvfxUOUYUumtZfoRaO+tny NFVLsIR9yRSlUhjpcynWE+UNjivh5qeapgyENHzuQTTUqcl+QI03UYx8LEJKtL0huF RVfEhuWJoB0Y7RXM65Td1uyDin2Xp3vhnepc12JU= 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 5.1 398/405] drm: Wake up next in drm_read() chain if we are forced to putback the event Date: Wed, 29 May 2019 20:06:36 -0700 Message-Id: <20190530030600.705718843@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190530030540.291644921@linuxfoundation.org> References: <20190530030540.291644921@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@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 7caa3c7ed9789..9701469a6e933 100644 --- a/drivers/gpu/drm/drm_file.c +++ b/drivers/gpu/drm/drm_file.c @@ -577,6 +577,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