27 Sep, 2022

1 commit

  • This is the 5.15.70 stable release

    * tag 'v5.15.70': (2444 commits)
    Linux 5.15.70
    ALSA: hda/sigmatel: Fix unused variable warning for beep power change
    cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    arch/arm/boot/dts/imx6ul.dtsi
    arch/arm/mm/mmu.c
    arch/arm64/boot/dts/freescale/imx8mp-evk.dts
    drivers/gpu/drm/imx/dcss/dcss-kms.c
    drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
    drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h
    drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
    drivers/soc/fsl/Kconfig
    drivers/soc/imx/gpcv2.c
    drivers/usb/dwc3/host.c
    net/dsa/slave.c
    sound/soc/fsl/imx-card.c

    Jason Liu
     

05 Sep, 2022

1 commit

  • commit 9e9fa6a9198b767b00f48160800128e83a038f9f upstream.

    If the DMA mask is not set explicitly, the following warning occurs
    when the userspace tries to access the dma-buf via the CPU as
    reported by syzbot here:

    WARNING: CPU: 1 PID: 3595 at kernel/dma/mapping.c:188
    __dma_map_sg_attrs+0x181/0x1f0 kernel/dma/mapping.c:188
    Modules linked in:
    CPU: 0 PID: 3595 Comm: syz-executor249 Not tainted
    5.17.0-rc2-syzkaller-00316-g0457e5153e0e #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
    Google 01/01/2011
    RIP: 0010:__dma_map_sg_attrs+0x181/0x1f0 kernel/dma/mapping.c:188
    Code: 00 00 00 00 00 fc ff df 48 c1 e8 03 80 3c 10 00 75 71 4c 8b 3d c0
    83 b5 0d e9 db fe ff ff e8 b6 0f 13 00 0f 0b e8 af 0f 13 00 0b 45
    31 e4 e9 54 ff ff ff e8 a0 0f 13 00 49 8d 7f 50 48 b8 00
    RSP: 0018:ffffc90002a07d68 EFLAGS: 00010293
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
    RDX: ffff88807e25e2c0 RSI: ffffffff81649e91 RDI: ffff88801b848408
    RBP: ffff88801b848000 R08: 0000000000000002 R09: ffff88801d86c74f
    R10: ffffffff81649d72 R11: 0000000000000001 R12: 0000000000000002
    R13: ffff88801d86c680 R14: 0000000000000001 R15: 0000000000000000
    FS: 0000555556e30300(0000) GS:ffff8880b9d00000(0000)
    knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000200000cc CR3: 000000001d74a000 CR4: 00000000003506e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:

    dma_map_sgtable+0x70/0xf0 kernel/dma/mapping.c:264
    get_sg_table.isra.0+0xe0/0x160 drivers/dma-buf/udmabuf.c:72
    begin_cpu_udmabuf+0x130/0x1d0 drivers/dma-buf/udmabuf.c:126
    dma_buf_begin_cpu_access+0xfd/0x1d0 drivers/dma-buf/dma-buf.c:1164
    dma_buf_ioctl+0x259/0x2b0 drivers/dma-buf/dma-buf.c:363
    vfs_ioctl fs/ioctl.c:51 [inline]
    __do_sys_ioctl fs/ioctl.c:874 [inline]
    __se_sys_ioctl fs/ioctl.c:860 [inline]
    __x64_sys_ioctl+0x193/0x200 fs/ioctl.c:860
    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
    do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
    entry_SYSCALL_64_after_hwframe+0x44/0xae
    RIP: 0033:0x7f62fcf530f9
    Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 00 00 00 00 48 89 f8 48 89
    f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 3d 01
    f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007ffe3edab9b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f62fcf530f9
    RDX: 0000000020000200 RSI: 0000000040086200 RDI: 0000000000000006
    RBP: 00007f62fcf170e0 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00007f62fcf17170
    R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000

    v2: Dont't forget to deregister if DMA mask setup fails.

    Reported-by: syzbot+10e27961f4da37c443b2@syzkaller.appspotmail.com
    Cc: Gerd Hoffmann
    Signed-off-by: Vivek Kasireddy
    Link: http://patchwork.freedesktop.org/patch/msgid/20220520205235.3687336-1-vivek.kasireddy@intel.com
    Signed-off-by: Gerd Hoffmann
    Signed-off-by: Greg Kroah-Hartman

    Vivek Kasireddy
     

12 Jul, 2022

1 commit

  • [ Upstream commit ff2d23843f7fb4f13055be5a4a9a20ddd04e6e9c ]

    This makes sure we don't hit the

    BUG_ON(dmabuf->cb_in.active || dmabuf->cb_out.active);

    in dma_buf_release, which could be triggered by user space closing the
    dma-buf file description while there are outstanding fence callbacks
    from dma_buf_poll.

    Cc: stable@vger.kernel.org
    Signed-off-by: Michel Dänzer
    Reviewed-by: Christian König
    Link: https://patchwork.freedesktop.org/patch/msgid/20210723075857.4065-1-michel@daenzer.net
    Signed-off-by: Christian König
    Signed-off-by: Sasha Levin

    Michel Dänzer
     

30 Jun, 2022

3 commits

  • This is the 5.15.51 stable release

    * tag 'v5.15.51': (136 commits)
    Linux 5.15.51
    powerpc/pseries: wire up rng during setup_arch()
    kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt)
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     
  • This is the 5.15.50 stable release

    * tag 'v5.15.50': (1395 commits)
    Linux 5.15.50
    arm64: mm: Don't invalidate FROM_DEVICE buffers at start of DMA transfer
    serial: core: Initialize rs485 RTS polarity already on probe
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    drivers/bus/fsl-mc/fsl-mc-bus.c
    drivers/crypto/caam/ctrl.c
    drivers/pci/controller/dwc/pci-imx6.c
    drivers/spi/spi-fsl-qspi.c
    drivers/tty/serial/fsl_lpuart.c
    include/uapi/linux/dma-buf.h

    Jason Liu
     
  • This is the 5.15.41 stable release

    * tag 'v5.15.41': (1977 commits)
    Linux 5.15.41
    usb: gadget: uvc: allow for application to cleanly shutdown
    usb: gadget: uvc: rename function to be more consistent
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
    arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
    arch/arm64/configs/defconfig
    drivers/clk/imx/clk-imx8qxp-lpcg.c
    drivers/dma/imx-sdma.c
    drivers/gpu/drm/bridge/nwl-dsi.c
    drivers/mailbox/imx-mailbox.c
    drivers/net/phy/at803x.c
    drivers/tty/serial/fsl_lpuart.c
    security/keys/trusted-keys/trusted_core.c

    Jason Liu
     

29 Jun, 2022

1 commit

  • [ Upstream commit 05b252cccb2e5c3f56119d25de684b4f810ba40a ]

    Check vm_fault->pgoff before using it. When we removed the warning, we
    also removed the check.

    Fixes: 7b26e4e2119d ("udmabuf: drop WARN_ON() check.")
    Reported-by: zdi-disclosures@trendmicro.com
    Suggested-by: Linus Torvalds
    Signed-off-by: Gerd Hoffmann
    Signed-off-by: Linus Torvalds
    Signed-off-by: Sasha Levin

    Gerd Hoffmann
     

25 May, 2022

1 commit

  • commit 370704e707a5f2d3c9a1d4ed8bd8cd67507d7bb5 upstream.

    The dmabuf file uses get_next_ino()(through dma_buf_getfile() ->
    alloc_anon_inode()) to get an inode number and uses the same as a
    directory name under /sys/kernel/dmabuf/buffers/. This directory is
    used to collect the dmabuf stats and it is created through
    dma_buf_stats_setup(). At current, failure to create this directory
    entry can make the dma_buf_export() to fail.

    Now, as the get_next_ino() can definitely give a repetitive inode no
    causing the directory entry creation to fail with -EEXIST. This is a
    problem on the systems where dmabuf stats functionality is enabled on
    the production builds can make the dma_buf_export(), though the dmabuf
    memory is allocated successfully, to fail just because it couldn't
    create stats entry.

    This issue we are able to see on the snapdragon system within 13 days
    where there already exists a directory with inode no "122602" so
    dma_buf_stats_setup() failed with -EEXIST as it is trying to create
    the same directory entry.

    To make the dentry name as unique, use the dmabuf fs specific inode
    which is based on the simple atomic variable increment. There is tmpfs
    subsystem too which relies on its own inode generation rather than
    relying on the get_next_ino() for the same reason of avoiding the
    duplicate inodes[1].

    [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/?id=e809d5f0b5c912fe981dce738f3283b2010665f0

    Signed-off-by: Charan Teja Kalla
    Cc: # 5.15.x+
    Reviewed-by: Greg Kroah-Hartman
    Reviewed-by: Christian König
    Link: https://patchwork.freedesktop.org/patch/msgid/1652441296-1986-1-git-send-email-quic_charante@quicinc.com
    Signed-off-by: Christian König
    Signed-off-by: Greg Kroah-Hartman

    Charan Teja Kalla
     

18 May, 2022

1 commit

  • commit ef3a6b70507a2add2cd2e01f5eb9b54d561bacb9 upstream.

    When dma_buf_stats_setup() fails, it closes the dmabuf file which
    results into the calling of dma_buf_file_release() where it does
    list_del(&dmabuf->list_node) with out first adding it to the proper
    list. This is resulting into panic in the below path:
    __list_del_entry_valid+0x38/0xac
    dma_buf_file_release+0x74/0x158
    __fput+0xf4/0x428
    ____fput+0x14/0x24
    task_work_run+0x178/0x24c
    do_notify_resume+0x194/0x264
    work_pending+0xc/0x5f0

    Fix it by moving the dma_buf_stats_setup() after dmabuf is added to the
    list.

    Fixes: bdb8d06dfefd ("dmabuf: Add the capability to expose DMA-BUF stats in sysfs")
    Signed-off-by: Charan Teja Reddy
    Tested-by: T.J. Mercier
    Acked-by: T.J. Mercier
    Cc: # 5.15.x+
    Reviewed-by: Christian König
    Signed-off-by: Christian König
    Link: https://patchwork.freedesktop.org/patch/msgid/1652125797-2043-1-git-send-email-quic_charante@quicinc.com
    Signed-off-by: Greg Kroah-Hartman

    Charan Teja Reddy
     

08 Apr, 2022

1 commit

  • [ Upstream commit 2b6dd600dd72573c23ea180b5b0b2f1813405882 ]

    Syzbot has reported GPF in sg_alloc_append_table_from_pages(). The
    problem was in ubuf->pages == ZERO_PTR.

    ubuf->pagecount is calculated from arguments passed from user-space. If
    user creates udmabuf with list.size == 0 then ubuf->pagecount will be
    also equal to zero; it causes kmalloc_array() to return ZERO_PTR.

    Fix it by validating ubuf->pagecount before passing it to
    kmalloc_array().

    Fixes: fbb0de795078 ("Add udmabuf misc device")
    Reported-and-tested-by: syzbot+2c56b725ec547fa9cb29@syzkaller.appspotmail.com
    Signed-off-by: Pavel Skripkin
    Link: http://patchwork.freedesktop.org/patch/msgid/20211230142649.23022-1-paskripkin@gmail.com
    Signed-off-by: Gerd Hoffmann
    Signed-off-by: Sasha Levin

    Pavel Skripkin
     

11 Mar, 2022

1 commit

  • This is the 5.15.27 stable release

    * tag 'v5.15.27': (3069 commits)
    Linux 5.15.27
    hamradio: fix macro redefine warning
    KVM: x86/mmu: Passing up the error state of mmu_alloc_shadow_roots()
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    arch/arm/boot/dts/imx7ulp.dtsi
    arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
    arch/arm64/boot/dts/freescale/imx8mq.dtsi
    drivers/dma-buf/heaps/cma_heap.c
    drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
    drivers/gpu/drm/mxsfb/mxsfb_kms.c
    drivers/mmc/host/sdhci-esdhc-imx.c
    drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
    drivers/rpmsg/rpmsg_char.c
    drivers/soc/imx/gpcv2.c
    drivers/thermal/imx_thermal.c

    Jason Liu
     

09 Mar, 2022

1 commit

  • [ Upstream commit 54329e6f7beea6af56c1230da293acc97d6a6ee7 ]

    Fix cma_heap_buffer mutex locking critical section to protect vmap_cnt
    and vaddr.

    Fixes: a5d2d29e24be ("dma-buf: heaps: Move heap-helper logic into the cma_heap implementation")
    Signed-off-by: Weizhao Ouyang
    Acked-by: John Stultz
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/20220104073545.124244-1-o451686892@gmail.com
    Signed-off-by: Sasha Levin

    Weizhao Ouyang
     

09 Feb, 2022

1 commit

  • commit 92c4cfaee6872038563c5b6f2e8e613f9d84d47d upstream.

    It appears like nr could be a Spectre v1 gadget as it's supplied by a
    user and used as an array index. Prevent the contents
    of kernel memory from being leaked to userspace via speculative
    execution by using array_index_nospec.

    Signed-off-by: Jordy Zomer
    Fixes: c02a81fba74f ("dma-buf: Add dma-buf heaps framework")
    Cc: # v5.6+
    Acked-by: John Stultz
    Signed-off-by: Sumit Semwal
    [sumits: added fixes and cc: stable tags]
    Link: https://patchwork.freedesktop.org/patch/msgid/20220129150604.3461652-1-jordy@pwning.systems
    Signed-off-by: Greg Kroah-Hartman

    Jordy Zomer
     

27 Jan, 2022

1 commit

  • commit 95d35838880fb040ccb9fe4a48816bd0c8b62df5 upstream.

    If a dma_fence_array is reported signaled by a call to
    dma_fence_is_signaled(), it may leak the PENDING_ERROR status.

    Fix this by clearing the PENDING_ERROR status if we return true in
    dma_fence_array_signaled().

    v2:
    - Update Cc list, and add R-b.

    Fixes: 1f70b8b812f3 ("dma-fence: Propagate errors to dma-fence-array container")
    Cc: Chris Wilson
    Cc: Sumit Semwal
    Cc: Gustavo Padovan
    Cc: Christian König
    Cc: "Christian König"
    Cc: linux-media@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Cc: linaro-mm-sig@lists.linaro.org
    Cc: # v5.4+
    Signed-off-by: Thomas Hellström
    Reviewed-by: Christian König
    Link: https://patchwork.freedesktop.org/patch/msgid/20211129152727.448908-1-thomas.hellstrom@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman

    Thomas Hellström
     

08 Dec, 2021

1 commit

  • commit 679d94cd7d900871e5bc9cf780bd5b73af35ab42 upstream.

    For previous version, it uses 'sg_table.nent's to traverse sg_table in pages
    free flow.
    However, 'sg_table.nents' is reassigned in 'dma_map_sg', it means the number of
    created entries in the DMA adderess space.
    So, use 'sg_table.nents' in pages free flow will case some pages can't be freed.

    Here we should use sg_table.orig_nents to free pages memory, but use the
    sgtable helper 'for each_sgtable_sg'(, instead of the previous rather common
    helper 'for_each_sg' which maybe cause memory leak) is much better.

    Fixes: d963ab0f15fb0 ("dma-buf: system_heap: Allocate higher order pages if available")
    Signed-off-by: Guangming
    Reviewed-by: Robin Murphy
    Cc: # 5.11.*
    Reviewed-by: Christian König
    Reviewed-by: John Stultz
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/20211126074904.88388-1-guangming.cao@mediatek.com
    Signed-off-by: Greg Kroah-Hartman

    Guangming
     

01 Dec, 2021

1 commit

  • This is the 5.15.5 stable release

    * tag 'v5.15.5': (1261 commits)
    Linux 5.15.5
    ALSA: hda: hdac_stream: fix potential locking issue in snd_hdac_stream_assign()
    ALSA: hda: hdac_ext_stream: fix potential locking issues
    ...

    Conflicts:
    arch/powerpc/platforms/85xx/Makefile
    drivers/crypto/caam/caampkc.c
    drivers/gpu/drm/bridge/nwl-dsi.c
    drivers/gpu/drm/imx/imx-drm-core.c
    drivers/remoteproc/imx_rproc.c
    drivers/soc/imx/gpcv2.c
    include/linux/rpmsg.h

    Jason Liu
     

30 Nov, 2021

2 commits

  • * misc/next: (6 commits)
    Revert "staging: android: allow to compile ION unconditionally"
    LF-2567-5 dma-buf: inlcude new headfile linux/dma-map-ops.h
    Documentation: mfd: Add DT bindings for i.MX Mix
    mfd: Add i.MX generic mix support
    MA-11994 Add get phys address ioctl to dma-buf.
    ...

    Dong Aisheng
     
  • * audio/next: (159 commits)
    LF-4822-1 ASoC: SOF: make DSP stall in suspend
    LF-4972: ASoC: fsl_rpmsg: allocate a smaller buffer size for capture
    LF-4738 ASoC: soc-core: filter use of 'ignore_machine' field
    MLK-25695 ASoC: SOF: compress: Implement get_caps and get_codec_caps
    ASoC: fsl_ssi: add sdma_audio_config support
    ...

    Dong Aisheng
     

19 Nov, 2021

2 commits

  • [ Upstream commit f492283b157053e9555787262f058ae33096f568 ]

    It is expected from the clients to follow the below steps on an imported
    dmabuf fd:
    a) dmabuf = dma_buf_get(fd) // Get the dmabuf from fd
    b) dma_buf_attach(dmabuf); // Clients attach to the dmabuf
    o Here the kernel does some slab allocations, say for
    dma_buf_attachment and may be some other slab allocation in the
    dmabuf->ops->attach().
    c) Client may need to do dma_buf_map_attachment().
    d) Accordingly dma_buf_unmap_attachment() should be called.
    e) dma_buf_detach () // Clients detach to the dmabuf.
    o Here the slab allocations made in b) are freed.
    f) dma_buf_put(dmabuf) // Can free the dmabuf if it is the last
    reference.

    Now say an erroneous client failed at step c) above thus it directly
    called dma_buf_put(), step f) above. Considering that it may be the last
    reference to the dmabuf, buffer will be freed with pending attachments
    left to the dmabuf which can show up as the 'memory leak'. This should
    at least be reported as the WARN().

    Signed-off-by: Charan Teja Reddy
    Reviewed-by: Christian König
    Link: https://patchwork.freedesktop.org/patch/msgid/1627043468-16381-1-git-send-email-charante@codeaurora.org
    Signed-off-by: Christian König
    Signed-off-by: Sasha Levin

    Charan Teja Reddy
     
  • commit 6b51b02a3a0ac49dfe302818d0746a799545e4e9 upstream.

    Daniel pointed me towards this function and there are multiple obvious problems
    in the implementation.

    First of all the retry loop is not working as intended. In general the retry
    makes only sense if you grab the reference first and then check the sequence
    values.

    Then we should always also wait for the exclusive fence.

    It's also good practice to keep the reference around when installing callbacks
    to fences you don't own.

    And last the whole implementation was unnecessary complex and rather hard to
    understand which could lead to probably unexpected behavior of the IOCTL.

    Fix all this by reworking the implementation from scratch. Dropping the
    whole RCU approach and taking the lock instead.

    Only mildly tested and needs a thoughtful review of the code.

    Pushing through drm-misc-next to avoid merge conflicts and give the code
    another round of testing.

    v2: fix the reference counting as well
    v3: keep the excl fence handling as is for stable
    v4: back to testing all fences, drop RCU
    v5: handle in and out separately
    v6: add missing clear of events
    v7: change coding style as suggested by Michel, drop unused variables

    Signed-off-by: Christian König
    Reviewed-by: Daniel Vetter
    Tested-by: Michel Dänzer
    CC: stable@vger.kernel.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20210720131110.88512-1-christian.koenig@amd.com
    Signed-off-by: Greg Kroah-Hartman

    Christian König
     

02 Nov, 2021

5 commits

  • New headfile introduced from:
    0a0f0d8be76d ("dma-mapping: split ")

    Signed-off-by: Dong Aisheng

    Dong Aisheng
     
  • Add structure dma_buf_phys to store physical address.
    Add DMA_BUF_IOCTL_PHYS to export physical address.

    Change-Id: Ib2f24b33462d603f2cbeef975689aaf82447d088
    Signed-off-by: ivan.liu
    [ Aisheng: update ioctl NR to 2 due to the original 1 is used in upstream ]
    [ Aisheng: update ioctl NR to 10 according to GPU team's request ]
    Signed-off-by: Dong Aisheng

    ivan.liu
     
  • The dsp heap is to use the reserved buffer for devicetree
    for dsp usage. Currently only mmap function supported.

    Signed-off-by: Shengjiu Wang
    Reviewed-by: Peng Zhang
    Signed-off-by: Shengjiu Wang

    Shengjiu Wang
     
  • This adds a heap that allocates CMA buffers that are
    marked as writecombined, so they are not cached by the CPU.

    Cc: Sumit Semwal
    Cc: Liam Mark
    Cc: Laura Abbott
    Cc: Brian Starkey
    Cc: Hridya Valsaraju
    Cc: Suren Baghdasaryan
    Cc: Sandeep Patil
    Cc: Daniel Mentz
    Cc: Chris Goldsworthy
    Cc: Ørjan Eide
    Cc: Robin Murphy
    Cc: Ezequiel Garcia
    Cc: Simon Ser
    Cc: James Jones
    Cc: linux-media@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Signed-off-by: Bing Song
    Signed-off-by: John Stultz
    Reviewed-by: Dong Aisheng

    Bing Song
     
  • Keep track of the heap device struct.

    This will be useful for special DMA allocations
    and actions.

    Cc: Sumit Semwal
    Cc: Liam Mark
    Cc: Laura Abbott
    Cc: Brian Starkey
    Cc: Hridya Valsaraju
    Cc: Suren Baghdasaryan
    Cc: Sandeep Patil
    Cc: Daniel Mentz
    Cc: Chris Goldsworthy
    Cc: Ørjan Eide
    Cc: Robin Murphy
    Cc: Ezequiel Garcia
    Cc: Simon Ser
    Cc: James Jones
    Cc: Bing Song
    Cc: linux-media@vger.kernel.org
    Cc: dri-devel@lists.freedesktop.org
    Signed-off-by: John Stultz

    John Stultz
     

07 Sep, 2021

2 commits

  • DMA-BUF sysfs statistics are an option of DMA-BUF. It does not make
    much sense to bother the user with a question about DMA-BUF sysfs
    statistics if DMA-BUF itself is not enabled. Worse, enabling the
    statistics enables the feature.

    Fixes: bdb8d06dfefd666d ("dmabuf: Add the capability to expose DMA-BUF stats in sysfs")
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/20210902124913.2698760-4-geert@linux-m68k.org

    Geert Uytterhoeven
     
  • DMA-BUF debug checks are an option of DMA-BUF. Enabling DMABUF_DEBUG
    without DMA_SHARED_BUFFER does not have any impact, as drivers/dma-buf/
    is not entered during the build when DMA_SHARED_BUFFER is disabled.

    Fixes: 84335675f2223cbd ("dma-buf: Add debug option")
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Sumit Semwal
    Link: https://patchwork.freedesktop.org/patch/msgid/20210902124913.2698760-3-geert@linux-m68k.org

    Geert Uytterhoeven
     

02 Sep, 2021

1 commit

  • Move notify between drivers is an option of DMA-BUF. Enabling
    DMABUF_MOVE_NOTIFY without DMA_SHARED_BUFFER does not have any impact,
    as drivers/dma-buf/ is not entered during the build when
    DMA_SHARED_BUFFER is disabled.

    Fixes: bb42df4662a44765 ("dma-buf: add dynamic DMA-buf handling v15")
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20210902124913.2698760-2-geert@linux-m68k.org

    Geert Uytterhoeven
     

12 Aug, 2021

1 commit

  • Syzbot reported general protection fault in udmabuf_create. The problem
    was in wrong error handling.

    In commit 16c243e99d33 ("udmabuf: Add support for mapping hugepages (v4)")
    shmem_read_mapping_page() call was replaced with find_get_page_flags(),
    but find_get_page_flags() returns NULL on failure instead PTR_ERR().

    Wrong error checking was causing GPF in get_page(), since passed page
    was equal to NULL. Fix it by changing if (IS_ER(!hpage)) to if (!hpage)

    Reported-by: syzbot+e9cd3122a37c5d6c51e8@syzkaller.appspotmail.com
    Fixes: 16c243e99d33 ("udmabuf: Add support for mapping hugepages (v4)")
    Signed-off-by: Pavel Skripkin
    Link: http://patchwork.freedesktop.org/patch/msgid/20210811175052.21254-1-paskripkin@gmail.com
    Signed-off-by: Gerd Hoffmann

    Pavel Skripkin
     

23 Jul, 2021

1 commit

  • drm-misc-next for v5.15-rc1:

    UAPI Changes:
    - Remove sysfs stats for dma-buf attachments, as it causes a performance regression.
    Previous merge is not in a rc kernel yet, so no userspace regression possible.

    Cross-subsystem Changes:
    - Sanitize user input in kyro's viewport ioctl.
    - Use refcount_t in fb_info->count
    - Assorted fixes to dma-buf.
    - Extend x86 efifb handling to all archs.
    - Fix neofb divide by 0.
    - Document corpro,gm7123 bridge dt bindings.

    Core Changes:
    - Slightly rework drm master handling.
    - Cleanup vgaarb handling.
    - Assorted fixes.

    Driver Changes:
    - Add support for ws2401 panel.
    - Assorted fixes to stm, ast, bochs.
    - Demidlayer ingenic irq.

    Signed-off-by: Dave Airlie

    From: Maarten Lankhorst
    Link: https://patchwork.freedesktop.org/patch/msgid/2d0d2fe8-01fc-e216-c3fd-38db9e69944e@linux.intel.com

    Dave Airlie
     

21 Jul, 2021

1 commit

  • drm-misc-next for v5.15:

    UAPI Changes:

    Cross-subsystem Changes:
    - udmabuf: Add support for mapping hugepages
    - Add dma-buf stats to sysfs.
    - Assorted fixes to fbdev/omap2.
    - dma-buf: Document DMA_BUF_IOCTL_SYNC
    - Improve dma-buf non-dynamic exporter expectations better.
    - Add module parameters for dma-buf size and list limit.
    - Add HDMI codec support to vc4, to replace vc4's own codec.
    - Document dma-buf implicit fencing rules.
    - dma_resv_test_signaled test_all handling.

    Core Changes:
    - Extract i915's eDP backlight code into DRM helpers.
    - Assorted docbook updates.
    - Rework drm_dp_aux documentation.
    - Add support for the DP aux bus.
    - Shrink dma-fence-chain slightly.
    - Add alloc/free helpers for dma-fence-chain.
    - Assorted fixes to TTM., drm/of, bridge
    - drm_gem_plane_helper_prepare/cleanup_fb is now the default for gem drivers.
    - Small fix for scheduler completion.
    - Remove use of drm_device.irq_enabled.
    - Print the driver name to dmesg when registering framebuffer.
    - Export drm/gem's shadow plane handling, and use it in vkms.
    - Assorted small fixes.

    Driver Changes:
    - Add eDP backlight to nouveau.
    - Assorted fixes and cleanups to nouveau, panfrost, vmwgfx, anx7625,
    amdgpu, gma500, radeon, mgag200, vgem, vc4, vkms, omapdrm.
    - Add support for Samsung DB7430, Samsung ATNA33XC20, EDT ETMV570G2DHU,
    EDT ETM0350G0DH6, Innolux EJ030NA panels.
    - Fix some simple pannels missing bus_format and connector types.
    - Add mks-guest-stats instrumentation support to vmwgfx.
    - Merge i915-ttm topic branch.
    - Make s6e63m0 panel use Mipi-DBI helpers.
    - Add detect() supoprt for AST.
    - Use interrupts for hotplug on vc4.
    - vmwgfx is now moved to drm-misc-next, as sroland is no longer a maintainer for now.
    - vmwgfx now uses copies of vmware's internal device headers.
    - Slowly convert ti-sn65dsi83 over to atomic.
    - Rework amdgpu dma-resv handling.
    - Fix virtio fencing for planes.
    - Ensure amdgpu can always evict to SYSTEM.
    - Many drivers fixed for implicit fencing rules.
    - Set default prepare/cleanup fb for tiny, vram and simple helpers too.
    - Rework panfrost gpu reset and related serialization.
    - Update VKMS todo list.
    - Make bochs a tiny gpu driver, and use vram helper.
    - Use linux irq interfaces instead of drm_irq in some drivers.
    - Add support for Raspberry Pi Pico to GUD.

    Signed-off-by: Dave Airlie

    # gpg: Signature made Fri 16 Jul 2021 21:06:04 AEST
    # gpg: using RSA key B97BD6A80CAC4981091AE547FE558C72A67013C3
    # gpg: Good signature from "Maarten Lankhorst " [expired]
    # gpg: aka "Maarten Lankhorst " [expired]
    # gpg: aka "Maarten Lankhorst " [expired]
    # gpg: Note: This key has expired!
    # Primary key fingerprint: B97B D6A8 0CAC 4981 091A E547 FE55 8C72 A670 13C3
    From: Maarten Lankhorst
    Link: https://patchwork.freedesktop.org/patch/msgid/444811c3-cbec-e9d5-9a6b-9632eda7962a@linux.intel.com

    Dave Airlie
     

20 Jul, 2021

2 commits

  • Dmabuf sysfs stat is used for dmabuf info track.
    But these file maybe still in use after buffer released,
    should clear it before buffer release.

    Signed-off-by: Guangming Cao
    Reviewed-by: Christian König
    Link: https://patchwork.freedesktop.org/patch/msgid/20210720103158.83439-1-guangming.cao@mediatek.com
    Signed-off-by: Christian König

    Guangming Cao
     
  • The DMA-BUF attachment statistics form a subset of the DMA-BUF
    sysfs statistics that recently merged to the drm-misc tree. They are not
    UABI yet since they have not merged to the upstream Linux kernel.

    Since there has been a reported a performance regression due to the
    overhead of sysfs directory creation/teardown during
    dma_buf_attach()/dma_buf_detach(), this patch deletes the DMA-BUF
    attachment statistics from sysfs.

    Fixes: bdb8d06dfefd ("dmabuf: Add the capability to expose DMA-BUF stats in sysfs")
    Signed-off-by: Hridya Valsaraju
    Reviewed-by: Christian König
    Reviewed-by: Greg Kroah-Hartman
    Link: https://patchwork.freedesktop.org/patch/msgid/20210713040742.2680135-1-hridya@google.com
    Signed-off-by: Christian König

    Hridya Valsaraju
     

13 Jul, 2021

1 commit


12 Jul, 2021

1 commit

  • Each add_fence() call does a dma_fence_get() on the relevant fence. In
    the error path, we weren't calling dma_fence_put() so all those fences
    got leaked. Also, in the krealloc_array failure case, we weren't
    freeing the fences array. Instead, ensure that i and fences are always
    zero-initialized and dma_fence_put() all the fences and kfree(fences) on
    every error path.

    Signed-off-by: Jason Ekstrand
    Reviewed-by: Christian König
    Fixes: a02b9dc90d84 ("dma-buf/sync_file: refactor fence storage in struct sync_file")
    Cc: Gustavo Padovan
    Cc: Christian König
    Link: https://patchwork.freedesktop.org/patch/msgid/20210624174732.1754546-1-jason@jlekstrand.net
    Signed-off-by: Christian König

    Jason Ekstrand
     

08 Jul, 2021

1 commit

  • As the name implies if testing all fences is requested we
    should indeed test all fences and not skip the exclusive
    one because we see shared ones.

    v2: fix logic once more

    Signed-off-by: Christian König
    Reviewed-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20210702111642.17259-3-christian.koenig@amd.com

    Christian König
     

23 Jun, 2021

2 commits

  • Default list_limit and size_limit_mb are not big enough to cover all
    possible use cases. For example, list_limit could be well over its default,
    1024 if only one or several pages are chained in all individual list entries
    when creating dmabuf backed by >4MB buffer. list_limit and size_limit_mb are
    now defined as module parameters so that those can be optionally configured
    by root with proper values to remove these constraints.

    Cc: Gerd Hoffmann
    Signed-off-by: Dongwon Kim
    Link: http://patchwork.freedesktop.org/patch/msgid/20210611212107.9876-1-dongwon.kim@intel.com
    Signed-off-by: Gerd Hoffmann

    Dongwon Kim
     
  • Christian and me realized we have a pretty massive disconnect about
    different interpretations of what dma_resv is used for by different
    drivers. The discussion is much, much bigger than this change here,
    but this is an important one:

    Non-dynamic exporters must guarantee that the memory they return is
    ready for use. They cannot expect importers to wait for the exclusive
    fence. Only dynamic importers are required to obey the dma_resv fences
    strictly (and more patches are needed to define exactly what this
    means).

    Christian has patches to update nouvea, radeon and amdgpu. The only
    other driver using both ttm and supporting dma-buf export is qxl,
    which only uses synchronous ttm_bo_move.

    v2: To hammer this in document that dynamic importers _must_ wait for
    the exclusive fence after having called dma_buf_map_attachment.

    Reviewed-by: Christian König
    Cc: Christian König
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20210621151758.2347474-1-daniel.vetter@ffwll.ch

    Daniel Vetter
     

15 Jun, 2021

2 commits

  • Overview
    ========
    The patch adds DMA-BUF statistics to /sys/kernel/dmabuf/buffers. It
    allows statistics to be enabled for each DMA-BUF in sysfs by enabling
    the config CONFIG_DMABUF_SYSFS_STATS.

    The following stats will be exposed by the interface:

    /sys/kernel/dmabuf/buffers//exporter_name
    /sys/kernel/dmabuf/buffers//size
    /sys/kernel/dmabuf/buffers//attachments//device
    /sys/kernel/dmabuf/buffers//attachments//map_counter

    The inode_number is unique for each DMA-BUF and was added earlier [1]
    in order to allow userspace to track DMA-BUF usage across different
    processes.

    Use Cases
    =========
    The interface provides a way to gather DMA-BUF per-buffer statistics
    from production devices. These statistics will be used to derive DMA-BUF
    per-exporter stats and per-device usage stats for Android Bug reports.
    The corresponding userspace changes can be found at [2].
    Telemetry tools will also capture this information(along with other
    memory metrics) periodically as well as on important events like a
    foreground app kill (which might have been triggered by Low Memory
    Killer). It will also contribute to provide a snapshot of the system
    memory usage on other events such as OOM kills and Application Not
    Responding events.

    Background
    ==========
    Currently, there are two existing interfaces that provide information
    about DMA-BUFs.
    1) /sys/kernel/debug/dma_buf/bufinfo
    debugfs is however unsuitable to be mounted in production systems and
    cannot be considered as an alternative to the sysfs interface being
    proposed.
    2) proc//fdinfo/
    The proc//fdinfo/ files expose information about DMA-BUF fds.
    However, the existing procfs interfaces can only provide information
    about the buffers for which processes hold fds or have the buffers
    mmapped into their address space. Since the procfs interfaces alone
    cannot provide a full picture of all DMA-BUFs in the system, there is
    the need for an alternate interface to provide this information on
    production systems.

    The patch contains the following major improvements over v1:
    1) Each attachment is represented by its own directory to allow creating
    a symlink to the importing device and to also provide room for future
    expansion.
    2) The number of distinct mappings of each attachment is exposed in a
    separate file.
    3) The per-buffer statistics are now in /sys/kernel/dmabuf/buffers
    inorder to make the interface expandable in future.

    All of the improvements above are based on suggestions/feedback from
    Daniel Vetter and Christian König.

    A shell script that can be run on a classic Linux environment to read
    out the DMA-BUF statistics can be found at [3](suggested by John
    Stultz).

    [1]: https://lore.kernel.org/patchwork/patch/1088791/
    [2]: https://android-review.googlesource.com/q/topic:%22dmabuf-sysfs%22+(status:open%20OR%20status:merged)
    [3]: https://android-review.googlesource.com/c/platform/system/memory/libmeminfo/+/1549734

    Reviewed-by: Greg Kroah-Hartman
    Signed-off-by: Hridya Valsaraju
    Reported-by: kernel test robot
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20210603214758.2955251-1-hridya@google.com

    Hridya Valsaraju
     
  • Add a common allocation helper. Cleaning up the mix of kzalloc/kmalloc
    and some unused code in the selftest.

    v2: polish kernel doc a bit
    v3: polish kernel doc even a bit more

    Signed-off-by: Christian König
    Reviewed-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20210611120301.10595-3-christian.koenig@amd.com

    Christian König