Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp3222963pxa; Tue, 25 Aug 2020 15:12:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxDl7C5agLPmHFi381xfxOxIW/9K8uYBybrrvNrrUx6BCwFdbeLHDqIM1A4WlphFB5v4TJ6 X-Received: by 2002:a50:abe3:: with SMTP id u90mr12506869edc.338.1598393536936; Tue, 25 Aug 2020 15:12:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598393536; cv=none; d=google.com; s=arc-20160816; b=03OsoL+GSKTqy/03VewghOVU5ria965Q1PXar+PUAzrsl+6g8t/J9yaG9XeckWxsiN BonilPHDmUVYsfziNX2S++hvcJtnuMnCeagrQM7bvXD08VBrddFBI3oF1mPpinN3ahvH TYudfsLNl2VUDzxXIqwX6DQBEid4IJgdZKu2kAeJZE3aUviVlyPzrBMHmz656OMdswuI 5D2sg8PSUWCfASo914QHVqOwCJ539q5UifOVlATQtEtC0TsEH5Naw1eyOLJcnLELG590 /pgkGow+S7TGTZLaBahDINe2o8qAbm7WpfEiDA1HEyBzthFuIz1JkZ+fHZoGM5gZKu1/ SP4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=hMfzJvb3bssyfQ37ul9l9iixA3MkT5QgL2oMa2TRSL0=; b=tsCI3UuvXJu5ZyDifE93RPsn85DVuQCSVT+9urtIKlWU0h3z/eLJU6vcK5vY+Gpq/h 1wY98/AbRJ1C5EJpWf0lDx4/YJ4UMyLqjJ/+K8zpiUeLqlAJuDvn3kLVGBSH/FNuXZfB VPgB0V9D1POBPe1P/2a+xANOu5Ii9YwlhTWqf8yxO5uR3kRuB/5Y/BCsZpXG5J+uPBsO RxsQvINkSEUxmPUCYnxvV4hEqHBUUwZKghYA2oGTADsQ5/33z8AeiMdVoRqQNp0jd0Bb 5/XDpL3Lh3fKhQwh/bIfPziATkdBBGutP0Lah2OUwThRTTBpo+Mijs3Yjly3GYQwNU9g Ifmg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vanguardiasur-com-ar.20150623.gappssmtp.com header.s=20150623 header.b=wOuZYuoG; 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 s21si255523ejx.227.2020.08.25.15.11.53; Tue, 25 Aug 2020 15:12:16 -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; dkim=pass header.i=@vanguardiasur-com-ar.20150623.gappssmtp.com header.s=20150623 header.b=wOuZYuoG; 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 S1726828AbgHYWLJ (ORCPT + 99 others); Tue, 25 Aug 2020 18:11:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726759AbgHYWLA (ORCPT ); Tue, 25 Aug 2020 18:11:00 -0400 Received: from mail-ej1-x642.google.com (mail-ej1-x642.google.com [IPv6:2a00:1450:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1F020C061755 for ; Tue, 25 Aug 2020 15:11:00 -0700 (PDT) Received: by mail-ej1-x642.google.com with SMTP id d26so180667ejr.1 for ; Tue, 25 Aug 2020 15:10:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vanguardiasur-com-ar.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hMfzJvb3bssyfQ37ul9l9iixA3MkT5QgL2oMa2TRSL0=; b=wOuZYuoGCNRPZWHbOUu2+fJA0720LZyvSQZAsvdzHmozYqvx9gqy+y56yhGetak1hY 0ZpH0AN34afF7sCXBNX1za3bo6VEv3zzifTgXX6NktsIb0KMECsyDGKURfkIGuHDYP7l 2vNjvK5GRzzMhw930qnNFvFLO4U+OoPZL5m094zS+p1VYWRjrDEHbGSxNNj51Zz6WO1s ZiyoZK6bgROAVt3z1Eypl5YBuBJKIuUzkS8dmSmAYl3uXYnqEPUbHwQEx6RaRV+0lQWl BFyqbd0cR+wbFcr/X9k1q9CCWjlO/In+tr2E/EZFQcMhKqrQoeKYsWdzeLcVrkf5mvdH KzRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hMfzJvb3bssyfQ37ul9l9iixA3MkT5QgL2oMa2TRSL0=; b=ZNMSufVLDW0y6ylBa+TlR9p6lQnF/asGKm3gS9qaXQ3J7dJaJMFII1Vq5WpDZ6Uxh4 61uRIEbX/2lFmQjRslTS55yDLxYiDFklutDU2pljHMLsmsax2KZ65ty6l3X6W+MZnmsI nxvF2eGh1zHDy3PlkLO8Eg+f6973cc8nASNmeEiLbPVY8ywYXcj6yyyWpo7EGOXvo7eZ YclsZg38D2lQQSeRSARkUtP6O712XY+AJAX96t+LQwNKMrW/Ph0dHBcuGWaU6epO5UVt 7oo1/j4+MXRA+hxt7vw2AyBSkrzEAwk5gWRWFr92yCREr+ulM2fkJLHGhmwaERjpCBN7 zThQ== X-Gm-Message-State: AOAM533Hhh9+l9uHwUTBoWixNY1ihQjDQtAr6tI8tpimmJdkyLAZZWgi UouUQ9IJ47S1/U+R1qLqJa5SfL76txAGAhG1tq//Rw== X-Received: by 2002:a17:906:813:: with SMTP id e19mr9245378ejd.141.1598393458608; Tue, 25 Aug 2020 15:10:58 -0700 (PDT) MIME-Version: 1.0 References: <20200825145556.637323-1-gnurou@gmail.com> In-Reply-To: <20200825145556.637323-1-gnurou@gmail.com> From: Ezequiel Garcia Date: Tue, 25 Aug 2020 19:10:47 -0300 Message-ID: Subject: Re: [PATCH 0/2] media: v4l2-mem2mem: fix poll() bug To: Alexandre Courbot Cc: Mauro Carvalho Chehab , Hans Verkuil , Nicolas Dufresne , linux-media , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Alex, Thanks for the patch. On Tue, Aug 25, 2020, 11:56 AM Alexandre Courbot wrote: > > This addresses a very corner case that probably nobody ever encounters, > but I have hit it when playing with vicoded so here is a tentative fix. > I'll try to make a more complete review soon, but meanwhile I was thinking if it was possible to include a little kselftest program for this issue, something CIs can pick-up and test corner cases like this, making sure we don't regress on the issue. (Or alternatively, v4l2-compliance?) Thanks! Ezequiel > Patch 1/2 addresses the issue that when the last buffer of a m2m device > has been dequeued, any attempt to poll with EPOLLOUT will result in only > EPOLLIN being returned, even if OUTPUT buffers are still pending. The > issue stems from the fact that the last buffer check if done first, and > returns immediately if true. > > Patch 2/2 builds on the first one to (hopefully) clean up the code a bit > and make the function flow easier to follow. Functionally speaking it is > supposed to be a no-op and it can safely be dropped if the former code > is preferred - the actual fix is in 1/2. > > Alexandre Courbot (2): > media: v4l2-mem2mem: consider OUTPUT queue first when polling > media: v4l2-mem2mem: simplify poll logic a bit > > drivers/media/v4l2-core/v4l2-mem2mem.c | 42 +++++++++++--------------- > 1 file changed, 18 insertions(+), 24 deletions(-) > > -- > 2.28.0 >