From patchwork Mon Aug 15 14:41:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Bragg X-Patchwork-Id: 9281143 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7A154607FD for ; Mon, 15 Aug 2016 14:41:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6C8A328CF7 for ; Mon, 15 Aug 2016 14:41:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 615C828D0B; Mon, 15 Aug 2016 14:41:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 258E228CF7 for ; Mon, 15 Aug 2016 14:41:42 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7B6886E55A; Mon, 15 Aug 2016 14:41:40 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id EDE1D6E558; Mon, 15 Aug 2016 14:41:38 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id q128so11476694wma.1; Mon, 15 Aug 2016 07:41:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=1cvK8TRHnSjqFmSA9AVA+kY0GsrtkSHzsDSp/bYa9ws=; b=kJ00ND8fOX3wcJxE2/BcTiNYvK5MDnKEptwCRvCCPay0mNC/4N7f7KPdLQeruhTZ73 f+JK8JO3WTulGtuWY6j3LYEIW9MLifaLMZRMG/4RHe/jZMSdVVqIpogUMmtwC9zBRW6M YHHAs80XY25aciPStxkHyJ4I2BCn9PXQWP+iVRS+7DI0I+/dhnWOlr5vGimW7x61TnGS onPXDBCufmIktDDLWfHmT3Kn7JCeQ2YJMwDq8uyEkaEwGW5pm7w/Ci6qfKpjZIgnT1rY I5Fj5/VvvfshG+Ooxw4dRPaOzb20vJ2LnaXwFeLgpbSVzWMlXWKDpCF5wg7N8d+VWsa+ fcyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=1cvK8TRHnSjqFmSA9AVA+kY0GsrtkSHzsDSp/bYa9ws=; b=N5MdBd/Aboy5BWhKSwGDJDlS5ZdcVFeC2kvQdVc5PND++3BGrQnIkX+t7yprZZFbEt f1styHeqEBzVjuYbzD7PvTDYxGKE+VrGPIpjI6vxPEmWhIO94PD5x4U22B8wa0kRHaD+ V+5esYJNNqMPhzriASv8NK+lZ2z2GAexHa7pld+sU/6CB62vck+CwHNUqCmvFLZZ6ssW vmVGi/9Hra0qq5h+Pu5PNnyuyVKSxscYcj/C5fnlMzHkiIbb5wc3nK5qzmNrRXnboN8Z IDDryJJ555hL7uKB36gomGj2nvizpL2dRsxUTuFw0RmV7Ne4BcyC7Aks6oc1L5WgUAl8 2Mow== X-Gm-Message-State: AEkoouu5jrGdOpd+8ZDw1pj/k22RNUZxbhTeiygCj5tWsMI0bbHbdJ7JapNiFnvJ17sbRw== X-Received: by 10.194.58.112 with SMTP id p16mr32054362wjq.24.1471272097292; Mon, 15 Aug 2016 07:41:37 -0700 (PDT) Received: from sixbynine.org ([192.198.151.62]) by smtp.gmail.com with ESMTPSA id p4sm21831440wjq.27.2016.08.15.07.41.36 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 15 Aug 2016 07:41:36 -0700 (PDT) From: Robert Bragg To: intel-gfx@lists.freedesktop.org Subject: [PATCH v3 03/11] drm/i915: return EACCES for check_cmd() failures Date: Mon, 15 Aug 2016 15:41:20 +0100 Message-Id: <20160815144128.7847-4-robert@sixbynine.org> X-Mailer: git-send-email 2.9.2 In-Reply-To: <20160815144128.7847-1-robert@sixbynine.org> References: <20160815144128.7847-1-robert@sixbynine.org> Cc: dri-devel@lists.freedesktop.org, Sourab Gupta , Daniel Vetter , Robert Bragg X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP check_cmd() is checking whether a command adheres to certain restrictions that ensure it's safe to execute within a privileged batch buffer. Returning false implies a privilege problem, not that the command is invalid. The distinction makes the difference between allowing the buffer to be executed as an unprivileged batch buffer or returning an EINVAL error to userspace without executing anything. In a case where userspace may want to test whether it can successfully write to a register that needs privileges the distinction may be important and an EINVAL error may be considered fatal. In particular this is currently true for Mesa, which includes a test for whether OACONTROL can be written too, but Mesa treats any error when flushing a batch buffer as fatal, calling exit(1). As it is currently Mesa can gracefully handle a failure to write to OACONTROL if the command parser is disabled, but if we were to remove OACONTROL from the parser's whitelist then the returned EINVAL would break Mesa applications as they attempt an OACONTROL write. Signed-off-by: Robert Bragg --- drivers/gpu/drm/i915/i915_cmd_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c b/drivers/gpu/drm/i915/i915_cmd_parser.c index cfe3e7a..71e778b 100644 --- a/drivers/gpu/drm/i915/i915_cmd_parser.c +++ b/drivers/gpu/drm/i915/i915_cmd_parser.c @@ -1261,7 +1261,7 @@ int intel_engine_cmd_parser(struct intel_engine_cs *engine, if (!check_cmd(engine, desc, cmd, length, is_master, &oacontrol_set)) { - ret = -EINVAL; + ret = -EACCES; break; }