Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp379452ybi; Wed, 19 Jun 2019 00:51:29 -0700 (PDT) X-Google-Smtp-Source: APXvYqwhw9RNAY0tuYQ2SeXXhSyn5SI1rlXd+m/ElkxvhL+tpEtt5/NF5F7t8/2Oclv6Qr1NyeSk X-Received: by 2002:a17:90a:a505:: with SMTP id a5mr9877557pjq.27.1560930689087; Wed, 19 Jun 2019 00:51:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560930689; cv=none; d=google.com; s=arc-20160816; b=sH4nuUoQmvQAXnEsaQUL4XSJPvLeDdYQUnQvcJZeSeRL2RsrXa91fV25FWzYsC8JiZ yD3Xa7R5y5xHb/hpWGFuImEg/MQlfACSE4YtWO90dtJtkMmJbmxdT0PG02W3NcXuTSjR xi642QqSLkNNx36vwFkI9QyJzkfKzJDiD6LIrYyq9UYdWp8AfhAf3oQIcfmwOiCmcfbn TzcKy5FLSbESCG06BVtLZHTm2diEBC4CSea9dVbvFaHRsx7iihfGi8QP21D44/iRPhy5 eF095nrVZpanOknWlAUx88zMNman8Wu/RlWy9sa2J0j+ltBpIgSpvc/Z06JhNEGO0Y/f PeZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:mail-followup-to:message-id:subject:to:from:date :dkim-signature; bh=titOKqm2FtwiI20YuYIPgTzaXhqwWPUnBMtwVOPuEAE=; b=cspziKnXd1i0MOodsWffMeFFK0U2yBYSmKJd8L127bdIc2Rbt5Hr4xDQGKsLo+dLSO 5P77tO2at7ek/V0JdVO2xwE9RVa/UUnC3ycI3dpTV38DakHebxB4/MH1+FnU6PUOEuE5 imE298bK7A+AgEb7rVPk2CvXaaYVpb/ZKp5XESudgZXZ8ECxGT2v9NOVa4e3HH/TPI1J q3aVsG9jMYILKZ/b9ulRdFvmOtucTXTSleNKKA74ZDq+HtzekJM+MdkVoN38riMfp7XL CcFxyvYWwct3wxQCxZibeEDRlErHXbPVa8w0l/XQdj5LSHxHQ0GFC1K1xFFjJZdUfMtO EsPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=Of3BQPYq; 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 g22si2377520pgb.107.2019.06.19.00.51.13; Wed, 19 Jun 2019 00:51:29 -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=fail header.i=@ffwll.ch header.s=google header.b=Of3BQPYq; 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 S1731197AbfFSHvG (ORCPT + 99 others); Wed, 19 Jun 2019 03:51:06 -0400 Received: from mail-ed1-f65.google.com ([209.85.208.65]:36824 "EHLO mail-ed1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730826AbfFSHvF (ORCPT ); Wed, 19 Jun 2019 03:51:05 -0400 Received: by mail-ed1-f65.google.com with SMTP id k21so25762367edq.3 for ; Wed, 19 Jun 2019 00:51:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:subject:message-id:mail-followup-to:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=titOKqm2FtwiI20YuYIPgTzaXhqwWPUnBMtwVOPuEAE=; b=Of3BQPYqR3hobtFRHEZZ/8xZYZfh9nMj/b6fTp45wVJDr79tMqfenFBEiW8jq61Gsw q80CHAn1N4AaSrmMRS6GByo69wxYBqpqH3QWlLkKsCTktnQ+9VIyBtrjNqAM1B2IuzmJ lt8VtsjeIsaCoh9VWMnZQhyPkC166hnXKuzq8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:subject:message-id :mail-followup-to:references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=titOKqm2FtwiI20YuYIPgTzaXhqwWPUnBMtwVOPuEAE=; b=JdH88qlai55xnyUDA90uJscYVzS7fDC16/moy+g76HxGuyjPsXyRtR2/zhMP+ylPHe /rzqgV8sCmVCxf2lPnDystCzUQUJKwSaTjmB3Tw1g5cIHZPIuvRPmDagPvsxp/PpRyh1 GJ0xT1hEuoHOnIRlYO5mpVTXqm+2wft6SWEe9t1fYEbhlAYwoyfKINQYKdoemu3HT8bM XX/S3vhR53nfZJVFQkQ9pQk1NMVjjuQ3K8yePBNVxWNF0zPZim5m0ce/2nnSIslz/VNJ m0MeDnwuCJtfRSwTVrIHvjnyWJjjLbO1ZUzOPBrckzCqyhzRiUcECEOxudwNGWLmWENM 6JUg== X-Gm-Message-State: APjAAAU9FmhPS/M8CgaL3uXd77EkWnnB6+jNQOPJnyMgfquxsACOx5LZ wtdvkrkrrfU6lccWlXjARJBByg== X-Received: by 2002:a50:aeee:: with SMTP id f43mr57838085edd.221.1560930663798; Wed, 19 Jun 2019 00:51:03 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id w35sm2940089edd.32.2019.06.19.00.51.02 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Wed, 19 Jun 2019 00:51:03 -0700 (PDT) Date: Wed, 19 Jun 2019 09:50:59 +0200 From: Daniel Vetter To: Rodrigo Siqueira , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, intel-gfx@lists.freedesktop.org Subject: Re: [PATCH V4] drm/drm_vblank: Change EINVAL by the correct errno Message-ID: <20190619075059.GK12905@phenom.ffwll.local> Mail-Followup-To: Rodrigo Siqueira , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, intel-gfx@lists.freedesktop.org References: <20190619020750.swzerehjbvx6sbk2@smtp.gmail.com> <20190619074856.GJ12905@phenom.ffwll.local> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190619074856.GJ12905@phenom.ffwll.local> X-Operating-System: Linux phenom 4.19.0-5-amd64 User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 19, 2019 at 09:48:56AM +0200, Daniel Vetter wrote: > On Tue, Jun 18, 2019 at 11:07:50PM -0300, Rodrigo Siqueira wrote: > > For historical reason, the function drm_wait_vblank_ioctl always return > > -EINVAL if something gets wrong. This scenario limits the flexibility > > for the userspace make detailed verification of the problem and take > > some action. In particular, the validation of “if (!dev->irq_enabled)” > > in the drm_wait_vblank_ioctl is responsible for checking if the driver > > support vblank or not. If the driver does not support VBlank, the > > function drm_wait_vblank_ioctl returns EINVAL which does not represent > > the real issue; this patch changes this behavior by return EOPNOTSUPP. > > Additionally, some operations are unsupported by this function, and > > returns EINVAL; this patch also changes the return value to EOPNOTSUPP > > in this case. Lastly, the function drm_wait_vblank_ioctl is invoked by > > libdrm, which is used by many compositors; because of this, it is > > important to check if this change breaks any compositor. In this sense, > > the following projects were examined: > > > > * Drm-hwcomposer > > * Kwin > > * Sway > > * Wlroots > > * Wayland-core > > * Weston > > * Xorg (67 different drivers) > > > > For each repository the verification happened in three steps: > > > > * Update the main branch > > * Look for any occurrence "drmWaitVBlank" with the command: > > git grep -n "drmWaitVBlank" > > * Look in the git history of the project with the command: > > git log -SdrmWaitVBlank > > > > Finally, none of the above projects validate the use of EINVAL which > > make safe, at least for these projects, to change the return values. > > > > Change since V3: > > - Return EINVAL for _DRM_VBLANK_SIGNAL (Daniel) > > > > Change since V2: > > Daniel Vetter and Chris Wilson > > - Replace ENOTTY by EOPNOTSUPP > > - Return EINVAL if the parameters are wrong > > > > Reviewed-by: Daniel Vetter > > Apologies for the confusion on the last time around. btw if someone tells > you "r-b (or a-b) with these changes", then just apply the r-b/a-b tag > next time around. Otherwise people will re-review the same thing over and > over again. btw when resending patches it's good practice to add anyone who commented on it (or who commented on the igt test for the same patch and other way round) onto the explicit Cc: list of the patch. That way it's easier for them to follow the patch evolution and do a quick r-b once they're happy. If you don't do that then much bigger chances your patch gets ignored. -Daniel > > > Signed-off-by: Rodrigo Siqueira > > --- > > drivers/gpu/drm/drm_vblank.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c > > index 603ab105125d..bed233361614 100644 > > --- a/drivers/gpu/drm/drm_vblank.c > > +++ b/drivers/gpu/drm/drm_vblank.c > > @@ -1582,7 +1582,7 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, > > unsigned int flags, pipe, high_pipe; > > > > if (!dev->irq_enabled) > > - return -EINVAL; > > + return -EOPNOTSUPP; > > > > if (vblwait->request.type & _DRM_VBLANK_SIGNAL) > > return -EINVAL; > > -- > > 2.21.0 > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch