All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Airlie <airlied@gmail.com>
To: dri-devel@lists.freedesktop.org
Subject: [PATCH 01/12] drm/nouveau: add kconfig option to turn off nouveau legacy contexts. (v2)
Date: Tue, 23 Apr 2019 12:00:30 +1000	[thread overview]
Message-ID: <20190423020041.32702-2-airlied@gmail.com> (raw)
In-Reply-To: <20190423020041.32702-1-airlied@gmail.com>

From: Dave Airlie <airlied@redhat.com>

There was a nouveau DDX that relied on legacy context ioctls to work,
but we fixed it years ago, give distros that have a modern DDX the
option to break the uAPI and close the mess of holes that legacy
context support is.

Full context of the story:

commit 0e975980d435d58df2d430d688b8c18778b42218
Author: Peter Antoine <peter.antoine@intel.com>
Date:   Tue Jun 23 08:18:49 2015 +0100

    drm: Turn off Legacy Context Functions

    The context functions are not used by the i915 driver and should not
    be used by modeset drivers. These driver functions contain several bugs
    and security holes. This change makes these functions optional can be
    turned on by a setting, they are turned off by default for modeset
    driver with the exception of the nouvea driver that may require them with
    an old version of libdrm.

    The previous attempt was

    commit 7c510133d93dd6f15ca040733ba7b2891ed61fd1
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Thu Aug 8 15:41:21 2013 +0200

        drm: mark context support as a legacy subsystem

    but this had to be reverted

    commit c21eb21cb50d58e7cbdcb8b9e7ff68b85cfa5095
    Author: Dave Airlie <airlied@redhat.com>
    Date:   Fri Sep 20 08:32:59 2013 +1000

        Revert "drm: mark context support as a legacy subsystem"

    v2: remove returns from void function, and formatting (Daniel Vetter)

    v3:
    - s/Nova/nouveau/ in the commit message, and add references to the
      previous attempts
    - drop the part touching the drm hw lock, that should be a separate
      patch.

    Signed-off-by: Peter Antoine <peter.antoine@intel.com> (v2)
    Cc: Peter Antoine <peter.antoine@intel.com> (v2)
    Reviewed-by: Peter Antoine <peter.antoine@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

v2: move DRM_VM dependency into legacy config.

Cc: stable@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/nouveau/Kconfig       | 12 +++++++++++-
 drivers/gpu/drm/nouveau/nouveau_drm.c |  7 +++++--
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig
index 00cd9ab8948d..3ae7a4cfc6bb 100644
--- a/drivers/gpu/drm/nouveau/Kconfig
+++ b/drivers/gpu/drm/nouveau/Kconfig
@@ -17,10 +17,20 @@ config DRM_NOUVEAU
 	select INPUT if ACPI && X86
 	select THERMAL if ACPI && X86
 	select ACPI_VIDEO if ACPI && X86
-	select DRM_VM
 	help
 	  Choose this option for open-source NVIDIA support.
 
+config NOUVEAU_LEGACY_CTX_SUPPORT
+	bool "Nouveau legacy context support"
+	select DRM_VM
+	default y
+	help
+	  There was a version of the nouveau DDX that relied on legacy
+	  ctx ioctls not erroring out. But that was back in time a long
+	  ways, so offer a way to disable it now. For uapi compat with
+	  old nouveau ddx this should be on by default, but modern distros
+	  should consider turning it off.
+
 config NOUVEAU_PLATFORM_DRIVER
 	bool "Nouveau (NVIDIA) SoC GPUs"
 	depends on DRM_NOUVEAU && ARCH_TEGRA
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 5020265bfbd9..6ab9033f49da 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -1094,8 +1094,11 @@ nouveau_driver_fops = {
 static struct drm_driver
 driver_stub = {
 	.driver_features =
-		DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER |
-		DRIVER_KMS_LEGACY_CONTEXT,
+		DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER
+#if defined(CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT)
+		| DRIVER_KMS_LEGACY_CONTEXT
+#endif
+		,
 
 	.open = nouveau_drm_open,
 	.postclose = nouveau_drm_postclose,
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-04-23  2:00 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-23  2:00 drm: make legacy support code optional Dave Airlie
2019-04-23  2:00 ` Dave Airlie [this message]
2019-04-23  2:00 ` [PATCH 02/12] drm/legacy: move drm_legacy_master_rmmaps to non-driver legacy header Dave Airlie
2019-04-23  2:00 ` [PATCH 03/12] drm/legacy: move map cleanups into drm_bufs.c Dave Airlie
2019-04-23  2:00 ` [PATCH 04/12] drm/radeon: drop unused ati pcigart include Dave Airlie
2019-04-23 13:07   ` Christian König
2019-04-23  2:00 ` [PATCH 05/12] drm/legacy: move lock cleanup for master into lock file Dave Airlie
2019-04-23 18:44   ` Daniel Vetter
2019-04-23  2:00 ` [PATCH 06/12] drm/legacy: move map_hash create/destroy into inlines Dave Airlie
2019-04-23 18:45   ` Daniel Vetter
2019-04-23 18:58     ` Daniel Vetter
2019-04-23 19:48   ` Sam Ravnborg
2019-04-23  2:00 ` [PATCH 07/12] drm/legacy: move init/destroy of struct members " Dave Airlie
2019-04-23 18:46   ` Daniel Vetter
2019-04-23 19:52   ` Sam Ravnborg
2019-04-23  2:00 ` [PATCH 08/12] drm/legacy: move legacy dev reinit into an inline Dave Airlie
2019-04-23 18:47   ` Daniel Vetter
2019-04-23 19:55   ` Sam Ravnborg
2019-04-23  2:00 ` [PATCH 09/12] drm/legacy: don't include any of ati_pcigart in legacy Dave Airlie
2019-04-23 18:50   ` Daniel Vetter
2019-04-23 19:58     ` Sam Ravnborg
2019-04-23  2:00 ` [PATCH 10/12] drm: allow removal of legacy codepaths (v4) Dave Airlie
2019-04-23 18:53   ` Daniel Vetter
2019-04-23  2:00 ` [PATCH 11/12] drm/legacy: place all drm legacy members under DRM_LEGACY Dave Airlie
2019-04-23 18:55   ` Daniel Vetter
2019-04-23  2:00 ` [PATCH 12/12] drm/legacy: remove some legacy lock struct members Dave Airlie
2019-04-23 18:57   ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190423020041.32702-2-airlied@gmail.com \
    --to=airlied@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.