linux_dsm_epyc7002/drivers/gpu/drm
Thierry Reding 961e3beae3 drm/tegra: Make job submission 64-bit safe
Job submission currently relies on the fact that struct drm_tegra_reloc
and struct host1x_reloc are the same size and uses a simple call to the
copy_from_user() function to copy them to kernel space. This causes the
handle to be stored in the buffer object field, which then needs a cast
to a 32 bit integer to resolve it to a proper buffer object pointer and
store it back in the buffer object field.

On 64-bit architectures that will no longer work, since pointers are 64
bits wide whereas handles will remain 32 bits. This causes the sizes of
both structures to because different and copying will no longer work.

Fix this by adding a new function, host1x_reloc_get_user(), that copies
the structures field by field.

While at it, use substructures for the command and target buffers in
struct host1x_reloc for better readability. Also use unsized types to
make it more obvious that this isn't part of userspace ABI.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-08-04 10:07:36 +02:00
..
armada drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
ast drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
bochs drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
bridge drm: add register and unregister functions for connectors 2014-06-19 08:55:28 +02:00
cirrus drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
exynos drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
gma500 drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
i2c Merge branch 'tda998x-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox 2014-07-06 07:48:26 +10:00
i810 drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
i915 drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
mga drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
mgag200 drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
msm drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
nouveau drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
omapdrm drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
panel drm/panel: simple - Add AUO B133XTN01 panel support 2014-06-09 12:17:21 +02:00
qxl drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
r128 drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
radeon drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
rcar-du drm: add register and unregister functions for connectors 2014-06-19 08:55:28 +02:00
savage drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
shmobile drm: add register and unregister functions for connectors 2014-06-19 08:55:28 +02:00
sis drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
tdfx
tegra drm/tegra: Make job submission 64-bit safe 2014-08-04 10:07:36 +02:00
tilcdc drm/tilcdc: replace late_initcall with module_init 2014-07-08 11:25:37 +10:00
ttm ttm: use NULL instead of 0 for ttm_bo_reserve()'s pointer arg. 2014-07-08 11:28:28 +10:00
udl drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
via drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
vmwgfx drm/ttm: fix handling of TTM_PL_FLAG_TOPDOWN v2 2014-07-08 11:15:58 +10:00
ati_pcigart.c
drm_agpsupport.c
drm_auth.c
drm_buffer.c
drm_bufs.c
drm_cache.c
drm_context.c
drm_crtc_helper.c drm/crtc-helper: use drm_framebuffer flags 2014-07-08 11:18:47 +10:00
drm_crtc_internal.h
drm_crtc.c drm/debugfs: add an "edid_override" file per connector 2014-06-19 08:56:28 +02:00
drm_debugfs.c drm/debugfs: add an "edid_override" file per connector 2014-06-19 08:56:28 +02:00
drm_dma.c
drm_dp_helper.c
drm_drv.c drm: fix permissions on drm_drv.c 2014-07-03 07:54:26 +10:00
drm_edid_load.c
drm_edid.c drm/edid: Store all supported hdmi deep color modes in drm_display_info 2014-06-09 22:06:49 -04:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
drm_fb_helper.c drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
drm_flip_work.c
drm_fops.c
drm_gem_cma_helper.c
drm_gem.c drm/gem: remove misleading gfp parameter to get_pages() 2014-07-08 00:29:53 +02:00
drm_global.c
drm_hashtab.c
drm_info.c
drm_ioc32.c
drm_ioctl.c
drm_irq.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-06-12 11:32:30 -07:00
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c
drm_modes.c
drm_modeset_lock.c drm: fix uninitialized acquire_ctx fields (v2) 2014-06-19 10:30:36 +10:00
drm_panel.c
drm_pci.c
drm_plane_helper.c
drm_platform.c
drm_prime.c
drm_probe_helper.c drm/debugfs: add an "edid_override" file per connector 2014-06-19 08:56:28 +02:00
drm_rect.c
drm_scatter.c
drm_stub.c Merge branch 'drm-next' of git://people.freedesktop.org/~dvdhrm/linux into drm-next 2014-07-08 11:08:31 +10:00
drm_sysfs.c drm: add register and unregister functions for connectors 2014-06-19 08:55:28 +02:00
drm_trace_points.c
drm_trace.h
drm_usb.c
drm_vm.c
drm_vma_manager.c
Kconfig
Makefile
README.drm

************************************************************
* For the very latest on DRI development, please see:      *
*     http://dri.freedesktop.org/                          *
************************************************************

The Direct Rendering Manager (drm) is a device-independent kernel-level
device driver that provides support for the XFree86 Direct Rendering
Infrastructure (DRI).

The DRM supports the Direct Rendering Infrastructure (DRI) in four major
ways:

    1. The DRM provides synchronized access to the graphics hardware via
       the use of an optimized two-tiered lock.

    2. The DRM enforces the DRI security policy for access to the graphics
       hardware by only allowing authenticated X11 clients access to
       restricted regions of memory.

    3. The DRM provides a generic DMA engine, complete with multiple
       queues and the ability to detect the need for an OpenGL context
       switch.

    4. The DRM is extensible via the use of small device-specific modules
       that rely extensively on the API exported by the DRM module.


Documentation on the DRI is available from:
    http://dri.freedesktop.org/wiki/Documentation
    http://sourceforge.net/project/showfiles.php?group_id=387
    http://dri.sourceforge.net/doc/

For specific information about kernel-level support, see:

    The Direct Rendering Manager, Kernel Support for the Direct Rendering
    Infrastructure
    http://dri.sourceforge.net/doc/drm_low_level.html

    Hardware Locking for the Direct Rendering Infrastructure
    http://dri.sourceforge.net/doc/hardware_locking_low_level.html

    A Security Analysis of the Direct Rendering Infrastructure
    http://dri.sourceforge.net/doc/security_low_level.html