25 Jan, 2021

1 commit


20 Jan, 2021

1 commit

  • This is the 5.10.7 stable release

    * tag 'v5.10.7': (144 commits)
    Linux 5.10.7
    scsi: target: Fix XCOPY NAA identifier lookup
    rtlwifi: rise completion at the last step of firmware callback
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     

18 Jan, 2021

1 commit


13 Jan, 2021

1 commit

  • commit 05cd84691eafcd7959a1e120d5e72c0dd98c5d91 upstream.

    It is observed 'use-after-free' on the dmabuf's file->f_inode with the
    race between closing the dmabuf file and reading the dmabuf's debug
    info.

    Consider the below scenario where P1 is closing the dma_buf file
    and P2 is reading the dma_buf's debug info in the system:

    P1 P2
    dma_buf_debug_show()
    dma_buf_put()
    __fput()
    file->f_op->release()
    dput()
    ....
    dentry_unlink_inode()
    iput(dentry->d_inode)
    (where the inode is freed)
    mutex_lock(&db_list.lock)
    read 'dma_buf->file->f_inode'
    (the same inode is freed by P1)
    mutex_unlock(&db_list.lock)
    dentry->d_op->d_release()-->
    dma_buf_release()
    .....
    mutex_lock(&db_list.lock)
    removes the dmabuf from the list
    mutex_unlock(&db_list.lock)

    In the above scenario, when dma_buf_put() is called on a dma_buf, it
    first frees the dma_buf's file->f_inode(=dentry->d_inode) and then
    removes this dma_buf from the system db_list. In between P2 traversing
    the db_list tries to access this dma_buf's file->f_inode that was freed
    by P1 which is a use-after-free case.

    Since, __fput() calls f_op->release first and then later calls the
    d_op->d_release, move the dma_buf's db_list removal from d_release() to
    f_op->release(). This ensures that dma_buf's file->f_inode is not
    accessed after it is released.

    Cc: # 5.4.x-
    Fixes: 4ab59c3c638c ("dma-buf: Move dma_buf_release() from fops to dentry_ops")
    Acked-by: Christian König
    Signed-off-by: Charan Teja Reddy
    Signed-off-by: Sumit Semwal
    Signed-off-by: Thomas Zimmermann
    Link: https://patchwork.freedesktop.org/patch/msgid/1609857399-31549-1-git-send-email-charante@codeaurora.org
    Signed-off-by: Greg Kroah-Hartman

    Charan Teja Reddy
     

14 Dec, 2020

2 commits


27 Sep, 2020

1 commit


21 Sep, 2020

1 commit

  • NULL pointer dereference is observed while exporting the dmabuf but
    failed to allocate the 'struct file' which results into the dropping of
    the allocated dentry corresponding to this file in the dmabuf fs, which
    is ending up in dma_buf_release() and accessing the uninitialzed
    dentry->d_fsdata.

    Call stack on 5.4 is below:
    dma_buf_release+0x2c/0x254 drivers/dma-buf/dma-buf.c:88
    __dentry_kill+0x294/0x31c fs/dcache.c:584
    dentry_kill fs/dcache.c:673 [inline]
    dput+0x250/0x380 fs/dcache.c:859
    path_put+0x24/0x40 fs/namei.c:485
    alloc_file_pseudo+0x1a4/0x200 fs/file_table.c:235
    dma_buf_getfile drivers/dma-buf/dma-buf.c:473 [inline]
    dma_buf_export+0x25c/0x3ec drivers/dma-buf/dma-buf.c:585

    Fix this by checking for the valid pointer in the dentry->d_fsdata.

    Fixes: 4ab59c3c638c ("dma-buf: Move dma_buf_release() from fops to dentry_ops")
    Cc: [5.7+]
    Signed-off-by: Charan Teja Reddy
    Reviewed-by: Christian König
    Link: https://patchwork.freedesktop.org/patch/391319/
    Signed-off-by: Christian König

    Charan Teja Reddy
     

14 Sep, 2020

1 commit


03 Sep, 2020

1 commit

  • Fix W=1 compile warnings (invalid kerneldoc):

    drivers/dma-buf/dma-buf.c:328: warning: Function parameter or member 'dmabuf' not described in 'dma_buf_set_name'

    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/20200819175134.19261-1-krzk@kernel.org

    Krzysztof Kozlowski
     

07 Aug, 2020

1 commit


24 Jul, 2020

1 commit


20 Jul, 2020

1 commit


10 Jul, 2020

1 commit

  • There exists a sleep-while-atomic bug while accessing the dmabuf->name
    under mutex in the dmabuffs_dname(). This is caused from the SELinux
    permissions checks on a process where it tries to validate the inherited
    files from fork() by traversing them through iterate_fd() (which
    traverse files under spin_lock) and call
    match_file(security/selinux/hooks.c) where the permission checks happen.
    This audit information is logged using dump_common_audit_data() where it
    calls d_path() to get the file path name. If the file check happen on
    the dmabuf's fd, then it ends up in ->dmabuffs_dname() and use mutex to
    access dmabuf->name. The flow will be like below:
    flush_unauthorized_files()
    iterate_fd()
    spin_lock() --> Start of the atomic section.
    match_file()
    file_has_perm()
    avc_has_perm()
    avc_audit()
    slow_avc_audit()
    common_lsm_audit()
    dump_common_audit_data()
    audit_log_d_path()
    d_path()
    dmabuffs_dname()
    mutex_lock()--> Sleep while atomic.

    Call trace captured (on 4.19 kernels) is below:
    ___might_sleep+0x204/0x208
    __might_sleep+0x50/0x88
    __mutex_lock_common+0x5c/0x1068
    __mutex_lock_common+0x5c/0x1068
    mutex_lock_nested+0x40/0x50
    dmabuffs_dname+0xa0/0x170
    d_path+0x84/0x290
    audit_log_d_path+0x74/0x130
    common_lsm_audit+0x334/0x6e8
    slow_avc_audit+0xb8/0xf8
    avc_has_perm+0x154/0x218
    file_has_perm+0x70/0x180
    match_file+0x60/0x78
    iterate_fd+0x128/0x168
    selinux_bprm_committing_creds+0x178/0x248
    security_bprm_committing_creds+0x30/0x48
    install_exec_creds+0x1c/0x68
    load_elf_binary+0x3a4/0x14e0
    search_binary_handler+0xb0/0x1e0

    So, use spinlock to access dmabuf->name to avoid sleep-while-atomic.

    Cc: [5.3+]
    Signed-off-by: Charan Teja Kalla
    Reviewed-by: Michael J. Ruhl
    Acked-by: Christian König
    [sumits: added comment to spinlock_t definition to avoid warning]
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/a83e7f0d-4e54-9848-4b58-e1acdbe06735@codeaurora.org

    Charan Teja Kalla
     

06 Jul, 2020

1 commit


30 Jun, 2020

1 commit

  • drm-misc-next for v5.9:

    Cross-subsystem Changes:
    - Improve dma-buf docs.

    Core Changes:
    - Add NV15, Q410, Q401 yuv formats.
    - Add uncompressed AFBC modifier.
    - Add DP helepr for reading Ignore MSA from DPCD.
    - Add missing panel type for some panels
    - Optimize drm/mm hole handling.
    - Constify connector to infoframe functions.
    - Add debugfs for VRR monitor range.

    Driver Changes:
    - Assorted small bugfixes in panfrost, malidp, panel/otm8009a.
    - Convert tfp410 dt bindings to yaml, and rework time calculations.
    - Add support for a few more simple panels.
    - Cleanups and optimizations for ast.
    - Allow adv7511 and simple-bridge to be used without connector creation.
    - Cleanups to dw-hdmi function prototypes.
    - Remove enabled bool from tiny/repaper and mipi-dbi, atomic handles it.
    - Remove unused header file from dw-mipi-dsi
    - Begin removing ttm_bo->offset.

    Signed-off-by: Dave Airlie

    From: Maarten Lankhorst
    Link: https://patchwork.freedesktop.org/patch/msgid/b1e53620-7937-895c-bfcf-ed208be59c7c@linux.intel.com

    Dave Airlie
     

25 Jun, 2020

1 commit

  • Charan Teja reported a 'use-after-free' in dmabuffs_dname [1], which
    happens if the dma_buf_release() is called while the userspace is
    accessing the dma_buf pseudo fs's dmabuffs_dname() in another process,
    and dma_buf_release() releases the dmabuf object when the last reference
    to the struct file goes away.

    I discussed with Arnd Bergmann, and he suggested that rather than tying
    the dma_buf_release() to the file_operations' release(), we can tie it to
    the dentry_operations' d_release(), which will be called when the last ref
    to the dentry is removed.

    The path exercised by __fput() calls f_op->release() first, and then calls
    dput, which eventually calls d_op->d_release().

    In the 'normal' case, when no userspace access is happening via dma_buf
    pseudo fs, there should be exactly one fd, file, dentry and inode, so
    closing the fd will kill of everything right away.

    In the presented case, the dentry's d_release() will be called only when
    the dentry's last ref is released.

    Therefore, lets move dma_buf_release() from fops->release() to
    d_ops->d_release()

    Many thanks to Arnd for his FS insights :)

    [1]: https://lore.kernel.org/patchwork/patch/1238278/

    Fixes: bb2bb9030425 ("dma-buf: add DMA_BUF_SET_NAME ioctls")
    Reported-by: syzbot+3643a18836bce555bff6@syzkaller.appspotmail.com
    Cc: [5.3+]
    Cc: Arnd Bergmann
    Reported-by: Charan Teja Reddy
    Reviewed-by: Arnd Bergmann
    Signed-off-by: Sumit Semwal
    Tested-by: Charan Teja Reddy
    Link: https://patchwork.freedesktop.org/patch/msgid/20200611114418.19852-1-sumit.semwal@linaro.org

    Sumit Semwal
     

24 Jun, 2020

1 commit

  • Just some tiny edits:
    - fix link to struct dma_fence
    - give slightly more meaningful title - the polling here is about
    implicit fences, explicit fences (in sync_file or drm_syncobj) also
    have their own polling

    v2: I misplaced the .rst include change corresponding to this patch.

    Reviewed-by: Thomas Hellstrom
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20200612070535.1778368-1-daniel.vetter@ffwll.ch

    Daniel Vetter
     

12 Jun, 2020

1 commit


03 Jun, 2020

1 commit

  • Pull drm updates from Dave Airlie:
    "Highlights:

    - Core DRM had a lot of refactoring around managed drm resources to
    make drivers simpler.

    - Intel Tigerlake support is on by default

    - amdgpu now support p2p PCI buffer sharing and encrypted GPU memory

    Details:

    core:
    - uapi: error out EBUSY when existing master
    - uapi: rework SET/DROP MASTER permission handling
    - remove drm_pci.h
    - drm_pci* are now legacy
    - introduced managed DRM resources
    - subclassing support for drm_framebuffer
    - simple encoder helper
    - edid improvements
    - vblank + writeback documentation improved
    - drm/mm - optimise tree searches
    - port drivers to use devm_drm_dev_alloc

    dma-buf:
    - add flag for p2p buffer support

    mst:
    - ACT timeout improvements
    - remove drm_dp_mst_has_audio
    - don't use 2nd TX slot - spec recommends against it

    bridge:
    - dw-hdmi various improvements
    - chrontel ch7033 support
    - fix stack issues with old gcc

    hdmi:
    - add unpack function for drm infoframe

    fbdev:
    - misc fbdev driver fixes

    i915:
    - uapi: global sseu pinning
    - uapi: OA buffer polling
    - uapi: remove generated perf code
    - uapi: per-engine default property values in sysfs
    - Tigerlake GEN12 enabled.
    - Lots of gem refactoring
    - Tigerlake enablement patches
    - move to drm_device logging
    - Icelake gamma HW readout
    - push MST link retrain to hotplug work
    - bandwidth atomic helpers
    - ICL fixes
    - RPS/GT refactoring
    - Cherryview full-ppgtt support
    - i915 locking guidelines documented
    - require linear fb stride to be 512 multiple on gen9
    - Tigerlake SAGV support

    amdgpu:
    - uapi: encrypted GPU memory handling
    - uapi: add MEM_SYNC IB flag
    - p2p dma-buf support
    - export VRAM dma-bufs
    - FRU chip access support
    - RAS/SR-IOV updates
    - Powerplay locking fixes
    - VCN DPG (powergating) enablement
    - GFX10 clockgating fixes
    - DC fixes
    - GPU reset fixes
    - navi SDMA fix
    - expose FP16 for modesetting
    - DP 1.4 compliance fixes
    - gfx10 soft recovery
    - Improved Critical Thermal Faults handling
    - resizable BAR on gmc10

    amdkfd:
    - uapi: GWS resource management
    - track GPU memory per process
    - report PCI domain in topology

    radeon:
    - safe reg list generator fixes

    nouveau:
    - HD audio fixes on recent systems
    - vGPU detection (fail probe if we're on one, for now)
    - Interlaced mode fixes (mostly avoidance on Turing, which doesn't support it)
    - SVM improvements/fixes
    - NVIDIA format modifier support
    - Misc other fixes.

    adv7511:
    - HDMI SPDIF support

    ast:
    - allocate crtc state size
    - fix double assignment
    - fix suspend

    bochs:
    - drop connector register

    cirrus:
    - move to tiny drivers.

    exynos:
    - fix imported dma-buf mapping
    - enable runtime PM
    - fixes and cleanups

    mediatek:
    - DPI pin mode swap
    - config mipi_tx current/impedance

    lima:
    - devfreq + cooling device support
    - task handling improvements
    - runtime PM support

    pl111:
    - vexpress init improvements
    - fix module auto-load

    rcar-du:
    - DT bindings conversion to YAML
    - Planes zpos sanity check and fix
    - MAINTAINERS entry for LVDS panel driver

    mcde:
    - fix return value

    mgag200:
    - use managed config init

    stm:
    - read endpoints from DT

    vboxvideo:
    - use PCI managed functions
    - drop WC mtrr

    vkms:
    - enable cursor by default

    rockchip:
    - afbc support

    virtio:
    - various cleanups

    qxl:
    - fix cursor notify port

    hisilicon:
    - 128-byte stride alignment fix

    sun4i:
    - improved format handling"

    * tag 'drm-next-2020-06-02' of git://anongit.freedesktop.org/drm/drm: (1401 commits)
    drm/amd/display: Fix potential integer wraparound resulting in a hang
    drm/amd/display: drop cursor position check in atomic test
    drm/amdgpu: fix device attribute node create failed with multi gpu
    drm/nouveau: use correct conflicting framebuffer API
    drm/vblank: Fix -Wformat compile warnings on some arches
    drm/amdgpu: Sync with VM root BO when switching VM to CPU update mode
    drm/amd/display: Handle GPU reset for DC block
    drm/amdgpu: add apu flags (v2)
    drm/amd/powerpay: Disable gfxoff when setting manual mode on picasso and raven
    drm/amdgpu: fix pm sysfs node handling (v2)
    drm/amdgpu: move gpu_info parsing after common early init
    drm/amdgpu: move discovery gfx config fetching
    drm/nouveau/dispnv50: fix runtime pm imbalance on error
    drm/nouveau: fix runtime pm imbalance on error
    drm/nouveau: fix runtime pm imbalance on error
    drm/nouveau/debugfs: fix runtime pm imbalance on error
    drm/nouveau/nouveau/hmm: fix migrate zero page to GPU
    drm/nouveau/nouveau/hmm: fix nouveau_dmem_chunk allocations
    drm/nouveau/kms/nv50-: Share DP SST mode_valid() handling with MST
    drm/nouveau/kms/nv50-: Move 8BPC limit for MST into nv50_mstc_get_modes()
    ...

    Linus Torvalds
     

04 May, 2020

1 commit


30 Apr, 2020

1 commit

  • Fix documentation warnings in dma-buf.[hc]:

    ../drivers/dma-buf/dma-buf.c:678: warning: Function parameter or member 'importer_ops' not described in 'dma_buf_dynamic_attach'
    ../drivers/dma-buf/dma-buf.c:678: warning: Function parameter or member 'importer_priv' not described in 'dma_buf_dynamic_attach'
    ../include/linux/dma-buf.h:339: warning: Incorrect use of kernel-doc format: * @move_notify

    Signed-off-by: Randy Dunlap
    Cc: Sumit Semwal
    Cc: linux-media@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Cc: linaro-mm-sig@lists.linaro.org
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/7bcbe6fe-0b4b-87da-d003-b68a26eb4cf0@infradead.org

    Randy Dunlap
     

27 Apr, 2020

1 commit

  • The uapi is the same on 32 and 64 bit, but the number isn't. Everyone
    who botched this please re-read:

    https://www.kernel.org/doc/html/v5.4-preprc-cpu/ioctl/botching-up-ioctls.html

    Also, the type argument for the ioctl macros is for the type the void
    __user *arg pointer points at, which in this case would be the
    variable-sized char[] of a 0 terminated string. So this was botched in
    more than just the usual ways.

    Cc: Sumit Semwal
    Cc: Chenbo Feng
    Cc: Greg Hackmann
    Cc: Daniel Vetter
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Cc: minchan@kernel.org
    Cc: surenb@google.com
    Cc: jenhaochen@google.com
    Cc: Martin Liu
    Signed-off-by: Daniel Vetter
    Tested-by: Martin Liu
    Reviewed-by: Martin Liu
    Signed-off-by: Sumit Semwal
    [sumits: updated some checkpatch fixes, corrected author email]
    Link: https://patchwork.freedesktop.org/patch/msgid/20200407133002.3486387-1-daniel.vetter@ffwll.ch

    Daniel Vetter
     

17 Apr, 2020

1 commit

  • This change adds a new dma-buf operation that allows dma-bufs to be used
    by virtio drivers to share exported objects. The new operation allows
    the importing driver to query the exporting driver for the UUID which
    identifies the underlying exported object.

    Signed-off-by: David Stevens

    BUG=b:136269340
    TEST=boot ARCVM and launch play store

    Signed-off-by: Keiichi Watanabe
    Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2059086
    Reviewed-by: Sean Paul
    Reviewed-by: Gurchetan Singh
    Tested-by: David Stevens
    Commit-Queue: David Stevens
    Bug: 153580313
    Link: https://lore.kernel.org/lkml/20200311112004.47138-2-stevensd@chromium.org/
    Change-Id: Ifb429e36ebbba9feead6fd1792fbefa9ca097f0c
    Signed-off-by: Lingfeng Yang

    David Stevens
     

06 Apr, 2020

1 commit


01 Apr, 2020

1 commit

  • Add a peer2peer flag noting that the importer can deal with device
    resources which are not backed by pages.

    Signed-off-by: Christian König
    Acked-by: Daniel Vetter
    Acked-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/359286/

    Christian König
     

12 Mar, 2020

1 commit

  • drm-misc-next for 5.7:

    UAPI Changes:

    Cross-subsystem Changes:

    Core Changes:

    Driver Changes:
    - fb-helper: Remove drm_fb_helper_{add,add_all,remove}_one_connector
    - fbdev: some cleanups and dead-code removal
    - Conversions to simple-encoder
    - zero-length array removal
    - Panel: panel-dpi support in panel-simple, Novatek NT35510, Elida
    KD35T133,

    Signed-off-by: Dave Airlie

    From: Maxime Ripard
    Link: https://patchwork.freedesktop.org/patch/msgid/20200309135439.dicfnbo4ikj4tkz7@gilmour

    Dave Airlie
     

09 Mar, 2020

1 commit


27 Feb, 2020

4 commits

  • This makes the move_notify callback mandatory when the importer_ops are
    provided. Since amdgpu is now migrated it doesn't make much sense
    anymore to allow this.

    Signed-off-by: Christian König
    Reviewed-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/353995/?series=73646&rev=1

    Christian König
     
  • Instead use the pin() callback to detect dynamic DMA-buf handling.
    Since amdgpu is now migrated it doesn't make much sense to keep
    the extra flag.

    Signed-off-by: Christian König
    Reviewed-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/353997/?series=73646&rev=1

    Christian König
     
  • On the exporter side we add optional explicit pinning callbacks. Which are
    called when the importer doesn't implement dynamic handling, move notification
    or need the DMA-buf locked in place for its use case.

    On the importer side we add an optional move_notify callback. This callback is
    used by the exporter to inform the importers that their mappings should be
    destroyed as soon as possible.

    This allows the exporter to provide the mappings without the need to pin
    the backing store.

    v2: don't try to invalidate mappings when the callback is NULL,
    lock the reservation obj while using the attachments,
    add helper to set the callback
    v3: move flag for invalidation support into the DMA-buf,
    use new attach_info structure to set the callback
    v4: use importer_priv field instead of mangling exporter priv.
    v5: drop invalidation_supported flag
    v6: squash together with pin/unpin changes
    v7: pin/unpin takes an attachment now
    v8: nuke dma_buf_attachment_(map|unmap)_locked,
    everything is now handled backward compatible
    v9: always cache when export/importer don't agree on dynamic handling
    v10: minimal style cleanup
    v11: drop automatically re-entry avoidance
    v12: rename callback to move_notify
    v13: add might_lock in appropriate places
    v14: rebase on separated locking change
    v15: add EXPERIMENTAL flag, some more code comments

    Signed-off-by: Christian König
    Reviewed-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/353993/?series=73646&rev=1

    Christian König
     
  • dma-buf name can be set via DMA_BUF_SET_NAME ioctl, but once set
    it never gets freed.

    Free it in dma_buf_release().

    Fixes: bb2bb9030425 ("dma-buf: add DMA_BUF_SET_NAME ioctls")
    Reported-by: syzbot+b2098bc44728a4efb3e9@syzkaller.appspotmail.com
    Cc: Greg Hackmann
    Cc: Chenbo Feng
    Cc: Sumit Semwal
    Signed-off-by: Cong Wang
    Acked-by: Chenbo Feng
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/20191227063204.5813-1-xiyou.wangcong@gmail.com

    Cong Wang
     

07 Feb, 2020

1 commit


17 Dec, 2019

1 commit

  • drm-misc-next for v5.6:

    UAPI Changes:
    - Add support for DMA-BUF HEAPS.

    Cross-subsystem Changes:
    - mipi dsi definition updates, pulled into drm-intel as well.
    - Add lockdep annotations for dma_resv vs mmap_sem and fs_reclaim.
    - Remove support for dma-buf kmap/kunmap.
    - Constify fb_ops in all fbdev drivers, including drm drivers and drm-core, and media as well.

    Core Changes:
    - Small cleanups to ttm.
    - Fix SCDC definition.
    - Assorted cleanups to core.
    - Add todo to remove load/unload hooks, and use generic fbdev emulation.
    - Assorted documentation updates.
    - Use blocking ww lock in ttm fault handler.
    - Remove drm_fb_helper_fbdev_setup/teardown.
    - Warning fixes with W=1 for atomic.
    - Use drm_debug_enabled() instead of drm_debug flag testing in various drivers.
    - Fallback to nontiled mode in fbdev emulation when not all tiles are present. (Later on reverted)
    - Various kconfig indentation fixes in core and drivers.
    - Fix freeing transactions in dp-mst correctly.
    - Sean Paul is steping down as core maintainer. :-(
    - Add lockdep annotations for atomic locks vs dma-resv.
    - Prevent use-after-free for a bad job in drm_scheduler.
    - Fill out all block sizes in the P01x and P210 definitions.
    - Avoid division by zero in drm/rect, and fix bounds.
    - Add drm/rect selftests.
    - Add aspect ratio and alternate clocks for HDMI 4k modes.
    - Add todo for drm_framebuffer_funcs and fb_create cleanup.
    - Drop DRM_AUTH for prime import/export ioctls.
    - Clear DP-MST payload id tables downstream when initializating.
    - Fix for DSC throughput definition.
    - Add extra FEC definitions.
    - Fix fake offset in drm_gem_object_funs.mmap.
    - Stop using encoder->bridge in core directly
    - Handle bridge chaining slightly better.
    - Add backlight support to drm/panel, and use it in many panel drivers.
    - Increase max number of y420 modes from 128 to 256, as preparation to add the new modes.

    Driver Changes:
    - Small fixes all over.
    - Fix documentation in vkms.
    - Fix mmap_sem vs dma_resv in nouveau.
    - Small cleanup in komeda.
    - Add page flip support in gma500 for psb/cdv.
    - Add ddc symlink in the connector sysfs directory for many drivers.
    - Add support for analogic an6345, and fix small bugs in it.
    - Add atomic modesetting support to ast.
    - Fix radeon fault handler VMA race.
    - Switch udl to use generic shmem helpers.
    - Unconditional vblank handling for mcde.
    - Miscellaneous fixes to mcde.
    - Tweak debug output from komeda using debugfs.
    - Add gamma and color transform support to komeda for DOU-IPS.
    - Add support for sony acx424AKP panel.
    - Various small cleanups to gma500.
    - Use generic fbdev emulation in udl, and replace udl_framebuffer with generic implementation.
    - Add support for Logic PD Type 28 panel.
    - Use drm_panel_* wrapper functions in exynos/tegra/msm.
    - Add devicetree bindings for generic DSI panels.
    - Don't include drm_pci.h directly in many drivers.
    - Add support for begin/end_cpu_access in udmabuf.
    - Stop using drm_get_pci_dev in gma500 and mga200.
    - Fixes to UDL damage handling, and use dma_buf_begin/end_cpu_access.
    - Add devfreq thermal support to panfrost.
    - Fix hotplug with daisy chained monitors by removing VCPI when disabling topology manager.
    - meson: Add support for OSD1 plane AFBC commit.
    - Stop displaying garbage when toggling ast primary plane on/off.
    - More cleanups and fixes to UDL.
    - Add D32 suport to komeda.
    - Remove globle copy of drm_dev in gma500.
    - Add support for Boe Himax8279d MIPI-DSI LCD panel.
    - Add support for ingenic JZ4770 panel.
    - Small null pointer deference fix in ingenic.
    - Remove support for the special tfp420 driver, as there is a generic way to do it.

    Signed-off-by: Daniel Vetter

    From: Maarten Lankhorst
    Link: https://patchwork.freedesktop.org/patch/msgid/ba73535a-9334-5302-2e1f-5208bd7390bd@linux.intel.com

    Daniel Vetter
     

09 Dec, 2019

1 commit


02 Dec, 2019

1 commit

  • Pull removal of most of fs/compat_ioctl.c from Arnd Bergmann:
    "As part of the cleanup of some remaining y2038 issues, I came to
    fs/compat_ioctl.c, which still has a couple of commands that need
    support for time64_t.

    In completely unrelated work, I spent time on cleaning up parts of
    this file in the past, moving things out into drivers instead.

    After Al Viro reviewed an earlier version of this series and did a lot
    more of that cleanup, I decided to try to completely eliminate the
    rest of it and move it all into drivers.

    This series incorporates some of Al's work and many patches of my own,
    but in the end stops short of actually removing the last part, which
    is the scsi ioctl handlers. I have patches for those as well, but they
    need more testing or possibly a rewrite"

    * tag 'compat-ioctl-5.5' of git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground: (42 commits)
    scsi: sd: enable compat ioctls for sed-opal
    pktcdvd: add compat_ioctl handler
    compat_ioctl: move SG_GET_REQUEST_TABLE handling
    compat_ioctl: ppp: move simple commands into ppp_generic.c
    compat_ioctl: handle PPPIOCGIDLE for 64-bit time_t
    compat_ioctl: move PPPIOCSCOMPRESS to ppp_generic
    compat_ioctl: unify copy-in of ppp filters
    tty: handle compat PPP ioctls
    compat_ioctl: move SIOCOUTQ out of compat_ioctl.c
    compat_ioctl: handle SIOCOUTQNSD
    af_unix: add compat_ioctl support
    compat_ioctl: reimplement SG_IO handling
    compat_ioctl: move WDIOC handling into wdt drivers
    fs: compat_ioctl: move FITRIM emulation into file systems
    gfs2: add compat_ioctl support
    compat_ioctl: remove unused convert_in_user macro
    compat_ioctl: remove last RAID handling code
    compat_ioctl: remove /dev/raw ioctl translation
    compat_ioctl: remove PCI ioctl translation
    compat_ioctl: remove joystick ioctl translation
    ...

    Linus Torvalds
     

26 Nov, 2019

1 commit

  • It's unused.

    10 years ago, back when 32bit was still fairly common and trying to
    not exhaust vmalloc space sounded like a worthwhile goal, adding these
    to dma_buf made sense.

    Reality is that they simply never caught on, and nowadays everyone who
    needs plenty of buffers will run in 64bit mode anyway.

    Also update the docs in this area to adjust them to reality.

    The actual hooks in dma_buf_ops will be removed once all the
    implementations are gone.

    Acked-by: Sumit Semwal
    Signed-off-by: Daniel Vetter
    Cc: Sumit Semwal
    Cc: linux-media@vger.kernel.org
    Cc: linaro-mm-sig@lists.linaro.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20191118103536.17675-10-daniel.vetter@ffwll.ch

    Daniel Vetter
     

24 Oct, 2019

2 commits

  • The attachment list is now protected by the dma_resv object.

    Stop holding the dma_buf->lock while calling ->attach/->detach,
    this allows for concurrent attach/detach operations.

    v2: cleanup commit message and locking in _debug_show()

    Signed-off-by: Christian König
    Reviewed-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/336790

    Christian König
     
  • This patch is a stripped down version of the locking changes
    necessary to support dynamic DMA-buf handling.

    It adds a dynamic flag for both importers as well as exporters
    so that drivers can choose if they want the reservation object
    locked or unlocked during mapping of attachments.

    For compatibility between drivers we cache the DMA-buf mapping
    during attaching an importer as soon as exporter/importer
    disagree on the dynamic handling.

    Issues and solutions we considered:

    - We can't change all existing drivers, and existing improters have
    strong opinions about which locks they're holding while calling
    dma_buf_attachment_map/unmap. Exporters also have strong opinions about
    which locks they can acquire in their ->map/unmap callbacks, levaing no
    room for change. The solution to avoid this was to move the
    actual map/unmap out from this call, into the attach/detach callbacks,
    and cache the mapping. This works because drivers don't call
    attach/detach from deep within their code callchains (like deep in
    memory management code called from cs/execbuf ioctl), but directly from
    the fd2handle implementation.

    - The caching has some troubles on some soc drivers, which set other modes
    than DMA_BIDIRECTIONAL. We can't have 2 incompatible mappings, and we
    can't re-create the mapping at _map time due to the above locking fun.
    We very carefuly step around that by only caching at attach time if the
    dynamic mode between importer/expoert mismatches.

    - There's been quite some discussion on dma-buf mappings which need active
    cache management, which would all break down when caching, plus we don't
    have explicit flush operations on the attachment side. The solution to
    this was to shrug and keep the current discrepancy between what the
    dma-buf docs claim and what implementations do, with the hope that the
    begin/end_cpu_access hooks are good enough and that all necessary
    flushing to keep device mappings consistent will be done there.

    v2: cleanup set_name merge, improve kerneldoc
    v3: update commit message, kerneldoc and cleanup _debug_show()

    Signed-off-by: Christian König
    Reviewed-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/336788/

    Christian König
     

23 Oct, 2019

1 commit

  • The .ioctl and .compat_ioctl file operations have the same prototype so
    they can both point to the same function, which works great almost all
    the time when all the commands are compatible.

    One exception is the s390 architecture, where a compat pointer is only
    31 bit wide, and converting it into a 64-bit pointer requires calling
    compat_ptr(). Most drivers here will never run in s390, but since we now
    have a generic helper for it, it's easy enough to use it consistently.

    I double-checked all these drivers to ensure that all ioctl arguments
    are used as pointers or are ignored, but are not interpreted as integer
    values.

    Acked-by: Jason Gunthorpe
    Acked-by: Daniel Vetter
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Greg Kroah-Hartman
    Acked-by: David Sterba
    Acked-by: Darren Hart (VMware)
    Acked-by: Jonathan Cameron
    Acked-by: Bjorn Andersson
    Acked-by: Dan Williams
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann