Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2338697ybz; Thu, 23 Apr 2020 16:18:22 -0700 (PDT) X-Google-Smtp-Source: APiQypKnLjBow9MJdr+Krigznf8YD3+BmDUeBxJg6Q/cuvCZxpHtEVUBP+ZDzX14Soaxg0/6VLgM X-Received: by 2002:a05:6402:319c:: with SMTP id di28mr5146370edb.185.1587683902154; Thu, 23 Apr 2020 16:18:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587683902; cv=none; d=google.com; s=arc-20160816; b=Yum/2AZ7P5FK7HtHLj12PpIGMipCclWO98ltQom/wvflDLpzqY+V2UF7xZWrTtlge2 6D7cVNSdqXZmFkkeu/F8qdQPYLP/kngoWsEqMP4k0QztR/SeTUvSTAyOlwnisi7SwNrL fGliokZ7Il/dvEOwjMm48FvpA/KJi+f6gA17g0v1japhwHqH0n/t3YABGZ4WYLuIv7Uz y3sCC7EVsLDvCkqhhBNslA9Jb427T8ssp+1Fjc90tES1Pz2DLrxlpabTdjZgX0P/2KeX YoGzc4457VxRZVlhep863S7uZa6BGqnY2Hqh5ptTjTT111GM2xm/kgTMudmD+aWyTVAF 3k3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=FwGHMudY4KFqclqGUGidbq0my7e3Wnf4iPADJp1ioRU=; b=TzlPFj/JBd98y62sjHjKyv78h5R55MPQnfjQadMOsowgHA1sHDSBH9oTMOnhbeS4lO fQBtdiOHijFUfOoc4xiTCZEMgYcdVbeeZFU/QZg4Z3URsxhZzT3pAvSOtEBHqtEoH9L+ Ki4dC3qBmlR0i4XVmAO1YEWT5wZvCYNus+SoslLSlSQVHtOZhYjDO0y217V4KPrgII+Y xWV+7NJuXXXFrAiWxoDV0yzYWh8IN+URXcx3/9alMyjZ8GPfp4JvGNjmwCi5KvIaVdpr 2yMVc2roDHgoZ6HYr5Jq+Ts2bSH6yF7lb88CbF6JyobBV6Eu45IyZy/cVOyEvMoOhx1P fnVQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m16si2118862edj.564.2020.04.23.16.17.58; Thu, 23 Apr 2020 16:18:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728833AbgDWXNW (ORCPT + 99 others); Thu, 23 Apr 2020 19:13:22 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:49982 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728482AbgDWXGu (ORCPT ); Thu, 23 Apr 2020 19:06:50 -0400 Received: from [192.168.4.242] (helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1jRkvY-0004ms-FA; Fri, 24 Apr 2020 00:06:40 +0100 Received: from ben by deadeye with local (Exim 4.93) (envelope-from ) id 1jRkvU-00E6vO-QT; Fri, 24 Apr 2020 00:06:36 +0100 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, Denis Kirjanov , "Marcel Holtmann" , "Jiri Kosina" Date: Fri, 24 Apr 2020 00:06:37 +0100 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 170/245] HID: hidraw: Fix returning EPOLLOUT from hidraw_poll In-Reply-To: X-SA-Exim-Connect-IP: 192.168.4.242 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.83-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Marcel Holtmann commit 9f3b61dc1dd7b81e99e7ed23776bb64a35f39e1a upstream. When polling a connected /dev/hidrawX device, it is useful to get the EPOLLOUT when writing is possible. Since writing is possible as soon as the device is connected, always return it. Right now EPOLLOUT is only returned when there are also input reports are available. This works if devices start sending reports when connected, but some HID devices might need an output report first before sending any input reports. This change will allow using EPOLLOUT here as well. Fixes: 378b80370aa1 ("hidraw: Return EPOLLOUT from hidraw_poll") Signed-off-by: Marcel Holtmann Signed-off-by: Jiri Kosina [bwh: Backported to 3.16: s/EPOLL/POLL/g] Signed-off-by: Ben Hutchings --- drivers/hid/hidraw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/drivers/hid/hidraw.c +++ b/drivers/hid/hidraw.c @@ -265,10 +265,10 @@ static unsigned int hidraw_poll(struct f poll_wait(file, &list->hidraw->wait, wait); if (list->head != list->tail) - return POLLIN | POLLRDNORM | POLLOUT; + return POLLIN | POLLRDNORM; if (!list->hidraw->exist) return POLLERR | POLLHUP; - return 0; + return POLLOUT | POLLWRNORM; } static int hidraw_open(struct inode *inode, struct file *file)