Skip to content
Unverified Commit 9ec03d7f authored by Maxime Ripard's avatar Maxime Ripard
Browse files

drm/vc4: kms: Wait on previous FIFO users before a commit



If we're having two subsequent, non-blocking, commits on two different
CRTCs that share no resources, there's no guarantee on the order of
execution of both commits.

However, the second one will consider the first one as the old state,
and will be in charge of freeing it once that second commit is done.

If the first commit happens after that second commit, it might access
some resources related to its state that has been freed, resulting in a
use-after-free bug.

The standard DRM objects are protected against this, but our HVS private
state isn't so let's make sure we wait for all the previous FIFO users
to finish their commit before going with our own.

Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20201204151138.1739736-5-maxime@cerno.tech
parent d62a8ed7
  • mirror @mirror

    mentioned in commit 2d01bc8f

    ·

    mentioned in commit 2d01bc8f

    Toggle commit list
  • mirror @mirror

    mentioned in commit cda23575

    ·

    mentioned in commit cda23575

    Toggle commit list
  • mirror @mirror

    mentioned in commit c51fbd41

    ·

    mentioned in commit c51fbd41

    Toggle commit list
  • mirror @mirror

    mentioned in commit 73b69a1c

    ·

    mentioned in commit 73b69a1c

    Toggle commit list
  • mirror @mirror

    mentioned in commit 16f2bdd9

    ·

    mentioned in commit 16f2bdd9

    Toggle commit list
  • mirror @mirror

    mentioned in commit b455eebeafcd6da39d29e9a2f4d144a5d80db15d

    ·

    mentioned in commit b455eebeafcd6da39d29e9a2f4d144a5d80db15d

    Toggle commit list
  • mirror @mirror

    mentioned in commit 12880ef3202e965ecb7479f32584ebdf628c2fc7

    ·

    mentioned in commit 12880ef3202e965ecb7479f32584ebdf628c2fc7

    Toggle commit list
  • mirror @mirror

    mentioned in commit 61bf5715e284a3b482535752fe553337c1c06812

    ·

    mentioned in commit 61bf5715e284a3b482535752fe553337c1c06812

    Toggle commit list
  • mirror @mirror

    mentioned in commit bb7870b8108e40bd12056f390f25afa9cf3e5588

    ·

    mentioned in commit bb7870b8108e40bd12056f390f25afa9cf3e5588

    Toggle commit list
  • mirror @mirror

    mentioned in commit f06ef5ea7bb89b4c0c64ece08ba944c1409423d8

    ·

    mentioned in commit f06ef5ea7bb89b4c0c64ece08ba944c1409423d8

    Toggle commit list
  • mirror @mirror

    mentioned in commit 2e1712c516b805f8e8fb1b6e85629814cb3f534f

    ·

    mentioned in commit 2e1712c516b805f8e8fb1b6e85629814cb3f534f

    Toggle commit list
  • mirror @mirror

    mentioned in commit 26d5abdca5f63b4b0a183c214034142b091359d1

    ·

    mentioned in commit 26d5abdca5f63b4b0a183c214034142b091359d1

    Toggle commit list
  • mirror @mirror

    mentioned in commit 8c32c265a4f229215a3ffc532e2f82bd4a206a6e

    ·

    mentioned in commit 8c32c265a4f229215a3ffc532e2f82bd4a206a6e

    Toggle commit list
  • mirror @mirror

    mentioned in commit 3322212ec11ff4c97ba5581f32bf8e894dcb5822

    ·

    mentioned in commit 3322212ec11ff4c97ba5581f32bf8e894dcb5822

    Toggle commit list
  • mirror @mirror

    mentioned in commit 8758c63b7f03c60c3b8887bc6fa4d20b762d8e31

    ·

    mentioned in commit 8758c63b7f03c60c3b8887bc6fa4d20b762d8e31

    Toggle commit list
  • mirror @mirror

    mentioned in commit 4399474f25de3642eac6a500067e4f76afb111bc

    ·

    mentioned in commit 4399474f25de3642eac6a500067e4f76afb111bc

    Toggle commit list
  • mirror @mirror

    mentioned in commit 17034ddf94a398625317bbba5b0ef1d6228ab5e2

    ·

    mentioned in commit 17034ddf94a398625317bbba5b0ef1d6228ab5e2

    Toggle commit list
  • mirror @mirror

    mentioned in commit 8eee731962683dcbf6efb2f40208d1ec419605ef

    ·

    mentioned in commit 8eee731962683dcbf6efb2f40208d1ec419605ef

    Toggle commit list
  • mirror @mirror

    mentioned in commit fa5d1789782e865cd02669376822e411761b97e3

    ·

    mentioned in commit fa5d1789782e865cd02669376822e411761b97e3

    Toggle commit list
  • mirror @mirror

    mentioned in commit 209fc7c5f625d4b33cc27eaa65f163d3ede938b0

    ·

    mentioned in commit 209fc7c5f625d4b33cc27eaa65f163d3ede938b0

    Toggle commit list
  • mirror @mirror

    mentioned in commit 1adf064f5c8a44ae56bc609a7648f384363a3df4

    ·

    mentioned in commit 1adf064f5c8a44ae56bc609a7648f384363a3df4

    Toggle commit list
  • mirror @mirror

    mentioned in commit 34b3c67f34338cbdf08d927dbbedbb9074bb072d

    ·

    mentioned in commit 34b3c67f34338cbdf08d927dbbedbb9074bb072d

    Toggle commit list
  • mirror @mirror

    mentioned in commit dd7d827b5466f4820a477484c25a28a309d43b20

    ·

    mentioned in commit dd7d827b5466f4820a477484c25a28a309d43b20

    Toggle commit list
  • mirror @mirror

    mentioned in commit e77ab08dffd64552b5f22ec0ba2d9cf371475883

    ·

    mentioned in commit e77ab08dffd64552b5f22ec0ba2d9cf371475883

    Toggle commit list
  • mirror @mirror

    mentioned in commit ff06c5211fc9921c45ed2fe23f43ff2e8656c402

    ·

    mentioned in commit ff06c5211fc9921c45ed2fe23f43ff2e8656c402

    Toggle commit list
  • mirror @mirror

    mentioned in commit 677cb18f75e110440f6d6f88aa6999fdc2152402

    ·

    mentioned in commit 677cb18f75e110440f6d6f88aa6999fdc2152402

    Toggle commit list
  • mirror @mirror

    mentioned in commit 003d329d41315890910f8799f1eac67b2c54997e

    ·

    mentioned in commit 003d329d41315890910f8799f1eac67b2c54997e

    Toggle commit list
  • mirror @mirror

    mentioned in commit 90acff836d4bc3346b42718df51a2573a557a21a

    ·

    mentioned in commit 90acff836d4bc3346b42718df51a2573a557a21a

    Toggle commit list
  • mirror @mirror

    mentioned in commit fb1100e7404846746da04dc47f51d84e08312598

    ·

    mentioned in commit fb1100e7404846746da04dc47f51d84e08312598

    Toggle commit list
  • mirror @mirror

    mentioned in commit 0b568fbec010c25c3907551d71ddfbed61f66c57

    ·

    mentioned in commit 0b568fbec010c25c3907551d71ddfbed61f66c57

    Toggle commit list
  • mirror @mirror

    mentioned in commit 65a1bad976e86f8363c2035d3e8e60ba1c057320

    ·

    mentioned in commit 65a1bad976e86f8363c2035d3e8e60ba1c057320

    Toggle commit list
  • mirror @mirror

    mentioned in commit cc779661a20121729142a98c18bf4f61f389f96e

    ·

    mentioned in commit cc779661a20121729142a98c18bf4f61f389f96e

    Toggle commit list
  • mirror @mirror

    mentioned in commit b453c9d2a1f2857a308d32324bc22b9dbfcc717e

    ·

    mentioned in commit b453c9d2a1f2857a308d32324bc22b9dbfcc717e

    Toggle commit list
  • mirror @mirror

    mentioned in commit d06657939d60763c13f44b76c92aa08d3de13cc0

    ·

    mentioned in commit d06657939d60763c13f44b76c92aa08d3de13cc0

    Toggle commit list
  • mirror @mirror

    mentioned in commit 5f35261cab5764807f3e9449c7f82d07bacd4ed2

    ·

    mentioned in commit 5f35261cab5764807f3e9449c7f82d07bacd4ed2

    Toggle commit list
  • mirror @mirror

    mentioned in commit f7cfdc3976279db1fc27b89ccf3092f3fa1cbbf0

    ·

    mentioned in commit f7cfdc3976279db1fc27b89ccf3092f3fa1cbbf0

    Toggle commit list
  • mirror @mirror

    mentioned in commit a1e0f579d47d0f29698920fe3f4cc810deee732f

    ·

    mentioned in commit a1e0f579d47d0f29698920fe3f4cc810deee732f

    Toggle commit list
  • mirror @mirror

    mentioned in commit dc0593f6344f46dad30d8d35dccd1fdd4cda8332

    ·

    mentioned in commit dc0593f6344f46dad30d8d35dccd1fdd4cda8332

    Toggle commit list
  • mirror @mirror

    mentioned in commit c9da28c60db65e1f182eaddf926b07158fc42919

    ·

    mentioned in commit c9da28c60db65e1f182eaddf926b07158fc42919

    Toggle commit list
  • mirror @mirror

    mentioned in commit eb114d23e858979032750a0ad24edd4f4040014f

    ·

    mentioned in commit eb114d23e858979032750a0ad24edd4f4040014f

    Toggle commit list
  • mirror @mirror

    mentioned in commit 1c9ce44b4149ffe7ab3db8f5b3b9e59ded2e9920

    ·

    mentioned in commit 1c9ce44b4149ffe7ab3db8f5b3b9e59ded2e9920

    Toggle commit list
  • mirror @mirror

    mentioned in commit ede762c2667921a76a65c925ff692b47a9d76cff

    ·

    mentioned in commit ede762c2667921a76a65c925ff692b47a9d76cff

    Toggle commit list
  • mirror @mirror

    mentioned in commit d799d1620dbaa59d3b407a45ab801e662427b2fa

    ·

    mentioned in commit d799d1620dbaa59d3b407a45ab801e662427b2fa

    Toggle commit list
  • mirror @mirror

    mentioned in commit a7a1e319d6abca7deb52e5973213a7bb2788f8cc

    ·

    mentioned in commit a7a1e319d6abca7deb52e5973213a7bb2788f8cc

    Toggle commit list
  • mirror @mirror

    mentioned in commit 70cf5c3ddf13fed92f89a489ec30fe1ef75a7ffb

    ·

    mentioned in commit 70cf5c3ddf13fed92f89a489ec30fe1ef75a7ffb

    Toggle commit list
  • mirror @mirror

    mentioned in commit f83f1b15fd15250d1788b5783ede6d1328942630

    ·

    mentioned in commit f83f1b15fd15250d1788b5783ede6d1328942630

    Toggle commit list
  • mirror @mirror

    mentioned in commit 318f83907feb658bad37bd4082b92baa1312d2b7

    ·

    mentioned in commit 318f83907feb658bad37bd4082b92baa1312d2b7

    Toggle commit list
  • mirror @mirror

    mentioned in commit 8e8b4871f765fe3e30fbe5f3704542cd92130e32

    ·

    mentioned in commit 8e8b4871f765fe3e30fbe5f3704542cd92130e32

    Toggle commit list
  • mirror @mirror

    mentioned in commit d728fe9fa431623e1579af828197c74e894d52ae

    ·

    mentioned in commit d728fe9fa431623e1579af828197c74e894d52ae

    Toggle commit list
  • mirror @mirror

    mentioned in commit 42398b7a406a9c86684d7dccde4faa4621c0daad

    ·

    mentioned in commit 42398b7a406a9c86684d7dccde4faa4621c0daad

    Toggle commit list
  • mirror @mirror

    mentioned in commit 9c53d16fbd9e6304b9ad75af05be14585d94496d

    ·

    mentioned in commit 9c53d16fbd9e6304b9ad75af05be14585d94496d

    Toggle commit list
  • mirror @mirror

    mentioned in commit 3366deb3

    ·

    mentioned in commit 3366deb3

    Toggle commit list
  • mirror @mirror

    mentioned in commit 6c192f1e30f55cfb0724479cfd5531095dd6ed3b

    ·

    mentioned in commit 6c192f1e30f55cfb0724479cfd5531095dd6ed3b

    Toggle commit list
  • mirror @mirror

    mentioned in commit 535dcfda12a6224d0d34d165ef02b9635081d96d

    ·

    mentioned in commit 535dcfda12a6224d0d34d165ef02b9635081d96d

    Toggle commit list
  • mirror @mirror

    mentioned in commit c3e2b462f994c7daef2ed649e6fea92bcf40f498

    ·

    mentioned in commit c3e2b462f994c7daef2ed649e6fea92bcf40f498

    Toggle commit list
  • mirror @mirror

    mentioned in commit 2cafc20180eafbec74c762c9e684449f69978ef2

    ·

    mentioned in commit 2cafc20180eafbec74c762c9e684449f69978ef2

    Toggle commit list
  • mirror @mirror

    mentioned in commit b08da1a07983309b3f6e3df5cb6ac0d9e8af68d1

    ·

    mentioned in commit b08da1a07983309b3f6e3df5cb6ac0d9e8af68d1

    Toggle commit list
  • mirror @mirror

    mentioned in commit 79737ad7c2198c6609fd57e2c984597ba9a6fd5b

    ·

    mentioned in commit 79737ad7c2198c6609fd57e2c984597ba9a6fd5b

    Toggle commit list
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment