From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BFCCEC44501 for ; Mon, 13 Jul 2026 12:55:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BbhRwgUf9Y4czoTMFWoBQpMqOJhlt36CZnmFPPTchUc=; b=i7jyGI1A8tLGoe NpSBquXwZOnLCSdJ4thLyERvPmQxP7wevABJMHmMs8wjyGn2F/mZYQFin7Zuya6RL04Jdm9HjbkBx u7dQiu6IWZGAMWbHxrjXDZ6Z68riWLqwymPnhvh+am+WGXcV+eenAKEzMJ2CtvqJCNXlJG47Gc2mI Eo+5bA1OH80lzoU7LlnooBVdoPVkgf2gY5ixSbTy+iSFtYkihquMeKGeFz2oGt+w2W1hwfAxar3pb O1F9lFupJJiXuHeDEWZ54GuRpc18y4/vI1PXjgzMIkwSGS8gPyehHFehQ11F0ITUwWVkokL9pWLQ8 fXvDlAIKOj22ntLoY+rg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjGBj-00000009Fzc-49Ur; Mon, 13 Jul 2026 12:55:12 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjGBj-00000009FzF-0NhM for linux-amlogic@lists.infradead.org; Mon, 13 Jul 2026 12:55:11 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id C25DA43C30; Mon, 13 Jul 2026 12:55:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D4E91F000E9; Mon, 13 Jul 2026 12:55:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783947310; bh=6xBAIfGUbxPLmgHkxAU+wWWFPgYDU3FyB6AIPEj+xN4=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Zkp2yEE9mXfWj3kJbenz6aEZfWiXARsI6bltW83hym3SgfwbsNsbq8xlzEKivfkXq pfFcoNtJVmu+TYNZ6VmgfQ7S6RSqW9XnpWwlnsQ5oWEWDoMUHn9TixWZ54qzxvpPDN dNFNkqOrvfoooKPpxl2LZb6K4i3pP/3MybbQ9Pf5FZ/QrH5g+Co+ffZfc9yT5M2Tji xYYsC1wr8gZ9A0MgBW7rFv+kUEwwiyqYb50Bm5+RnA/iqjEzLFewRsXmtjxga928NV /z0Zv9Z+T2ueRpM5G5tIp+FNqU1S2gnBp/ak5tOBy8e+gtyLNNKIEWmFW605gIaoru HtTbtyO4auL9g== From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 13/19] media: meson: vdec: Fix race conditions in job abort sequence To: "Anand Moon" Cc: linux-amlogic@lists.infradead.org, dri-devel@lists.freedesktop.org, neil.armstrong@linaro.org In-Reply-To: <20260713120840.17427-14-linux.amoon@gmail.com> References: <20260713120840.17427-1-linux.amoon@gmail.com> <20260713120840.17427-14-linux.amoon@gmail.com> Date: Mon, 13 Jul 2026 12:55:09 +0000 Message-Id: <20260713125510.5D4E91F000E9@smtp.kernel.org> X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NSBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0NyaXRpY2FsXSBDbGVhcmluZyB0 aGUgYWN0aXZlIHNlc3Npb24gcG9pbnRlciB3aGlsZSB0aGUgaGFyZHdhcmUgaXMgc3RpbGwgcnVu bmluZyBjYXVzZXMgdW5hY2tub3dsZWRnZWQgaW50ZXJydXB0cyBhbmQgYSBDUFUtbG9ja2luZyBp bnRlcnJ1cHQgc3Rvcm0uCi0gW0hpZ2hdIFByZW1hdHVyZSBjbGVhcmluZyBvZiB0aGUgYWN0aXZl IHNlc3Npb24gcG9pbnRlciBpbiBqb2JfYWJvcnQgYnlwYXNzZXMgaGFyZHdhcmUgdGVhcmRvd24g YW5kIHJlc291cmNlIGNsZWFudXAsIGNhdXNpbmcgc2V2ZXJlIG1lbW9yeSBhbmQgcmVzb3VyY2Ug bGVha3MuCi0gW0hpZ2hdIEFCLUJBIGxvY2sgaW52ZXJzaW9uIGRlYWRsb2NrIGJldHdlZW4gVklE SU9DX1NUUkVBTU9GRiBhbmQgdGhlIGVzcGFyc2VyX3F1ZXVlX3dvcmsgd29ya2VyIHRocmVhZC4K LSBbSGlnaF0gUmVsZWFzaW5nIHNlc3Npb24gb3duZXJzaGlwIHdpdGhvdXQgc3RvcHBpbmcgdGhl IGhhcmR3YXJlIGFsbG93cyBjb25jdXJyZW50IERNQSBvdmVyd3JpdGVzIGFuZCBoYXJkd2FyZSBz dGF0ZSBjb3JydXB0aW9uLgotIFtIaWdoXSBJbmZpbml0ZSBsb29wIGluc2lkZSBlc3BhcnNlcl9x dWV1ZV9hbGxfc3JjKCkgY2F1c2luZyAxMDAlIENQVSBsb2NrdXAgd2hlbiB0aGUgcXVldWUgaXMg ZW1wdHkuCi0tCgotLS0gUGF0Y2ggWzEzXTogW1BBVENIIHY3IDEzLzE5XSBtZWRpYTogbWVzb246 IHZkZWM6IEZpeCByYWNlIGNvbmRpdGlvbnMgaW4gam9iIGFib3J0IHNlcXVlbmNlIC0tLQpjb21t aXQgYmMzMmYxMDFjNTQ4YWI2NDhlYjQ0YWU0NmY5Y2MyZWE3MmQ0YzMzOQpBdXRob3I6IEFuYW5k IE1vb24gPGxpbnV4LmFtb29uQGdtYWlsLmNvbT4KCm1lZGlhOiBtZXNvbjogdmRlYzogRml4IHJh Y2UgY29uZGl0aW9ucyBpbiBqb2IgYWJvcnQgc2VxdWVuY2UKCkltcGxlbWVudCBwcm9wZXIgY2xl YW51cCBpbnNpZGUgdmRlY19tMm1fam9iX2Fib3J0IHRvIHNhZmVseSBzdG9wCnRoZSBoYXJkd2Fy ZSBqb2Igc2VxdWVuY2UgZHVyaW5nIGEgc3RyZWFtaW5nIGFib3J0IG9yIHRlYXJkb3duLgoKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvdmRlYy5jIGIvZHJp dmVycy9zdGFnaW5nL21lZGlhL21lc29uL3ZkZWMvdmRlYy5jCj4gaW5kZXggYjNlMWQ5OWU4ODg5 Zi4uYWM4NmE5YzRmZWJmZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVz b24vdmRlYy92ZGVjLmMKPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy92 ZGVjLmMKPiBAQCAtMTY3LDYgKzE2NywxNyBAQCBzdGF0aWMgdm9pZCB2ZGVjX20ybV9kZXZpY2Vf cnVuKHZvaWQgKnByaXYpCj4gIHN0YXRpYyB2b2lkIHZkZWNfbTJtX2pvYl9hYm9ydCh2b2lkICpw cml2KQo+ICB7Cj4gIAlzdHJ1Y3QgYW12ZGVjX3Nlc3Npb24gKnNlc3MgPSBwcml2Owo+ICsJc3Ry dWN0IGFtdmRlY19jb3JlICpjb3JlID0gc2Vzcy0+Y29yZTsKPiArCj4gKwlXUklURV9PTkNFKHNl c3MtPnNob3VsZF9zdG9wLCAxKTsKPiArCj4gKwljYW5jZWxfd29ya19zeW5jKCZzZXNzLT5lc3Bh cnNlcl9xdWV1ZV93b3JrKTsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGludHJvZHVjZSBh biBBQi1CQSBkZWFkbG9jayB3aXRoIFZJRElPQ19TVFJFQU1PRkY/CgpUaGUgVjRMMiBjb3JlIGFj cXVpcmVzIHRoZSBxdWV1ZSBsb2NrIChzZXNzLT5sb2NrKSBkdXJpbmcgVklESU9DX1NUUkVBTU9G RgphbmQgY2FsbHMgdmRlY19tMm1fam9iX2Fib3J0KCksIHdoaWNoIGJsb2NrcyBoZXJlIGluZGVm aW5pdGVseSB3YWl0aW5nIGZvcgp0aGUgd29ya2VyLiAKCk1lYW53aGlsZSwgdGhlIHdvcmtlciB0 aHJlYWQgdW5jb25kaXRpb25hbGx5IGF0dGVtcHRzIHRvIGFjcXVpcmUgc2Vzcy0+bG9jawppbiBl c3BhcnNlcl9xdWV1ZV9hbGxfc3JjKCk6Cgpkcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRl Yy9lc3BhcnNlci5jOmVzcGFyc2VyX3F1ZXVlX2FsbF9zcmMoKSB7CiAgICAuLi4KICAgIHNjb3Bl ZF9ndWFyZChtdXRleCwgJnNlc3MtPmxvY2spIHsKICAgIC4uLgp9Cgo+ICsKPiArCW11dGV4X2xv Y2soJmNvcmUtPmxvY2spOwo+ICsJaWYgKGNvcmUtPmN1cl9zZXNzID09IHNlc3MpCj4gKwkJLyog U2FmZWx5IGNsZWFyIGhhcmR3YXJlIG93bmVyc2hpcCBzaW5jZSB3ZSB3ZXJlIGNvbmZpcm1lZCBh cyB0aGUgb3duZXIgKi8KPiArCQlzbXBfc3RvcmVfcmVsZWFzZSgmY29yZS0+Y3VyX3Nlc3MsIE5V TEwpOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIGNsZWFyaW5nIGN1cl9zZXNzIGhlcmUgcHJlbWF0 dXJlbHkgYnlwYXNzIGhhcmR3YXJlIHRlYXJkb3duPwoKRHVyaW5nIGEgbm9ybWFsIFZJRElPQ19T VFJFQU1PRkYsIHZkZWNfbTJtX2pvYl9hYm9ydCgpIGlzIGNhbGxlZCBiZWZvcmUKdGhlIHN0b3Bf c3RyZWFtaW5nIGhvb2suIElmIGN1cl9zZXNzIGlzIGNsZWFyZWQgaGVyZSwgdGhlIGxhdGVyIHRl YXJkb3duCmluIHZkZWNfc3RvcF9zdHJlYW1pbmcoKSB3aWxsIHNraXAgcG93ZXJpbmcgb2ZmIHRo ZSBoYXJkd2FyZSBhbmQgZnJlZWluZwp0aGUgRE1BIGJ1ZmZlciAodmlmaWZvX3NpemUpIGJlY2F1 c2UgY29yZS0+Y3VyX3Nlc3MgPT0gc2VzcyBldmFsdWF0ZXMgdG8KZmFsc2U6Cgpkcml2ZXJzL3N0 YWdpbmcvbWVkaWEvbWVzb24vdmRlYy92ZGVjLmM6dmRlY19zdG9wX3N0cmVhbWluZygpIHsKICAg IC4uLgogICAgaWYgKGNvcmUtPmN1cl9zZXNzID09IHNlc3MpIHsKICAgICAgICB2ZGVjX3Bvd2Vy b2ZmKHNlc3MpOwogICAgICAgIHZkZWNfZnJlZV9jYW52YXMoc2Vzcyk7CiAgICAuLi4KfQoKW1Nl dmVyaXR5OiBDcml0aWNhbF0KQ2FuIHRoaXMgY2F1c2UgYW4gaW50ZXJydXB0IHN0b3JtIGFuZCBD UFUgbG9ja3VwPwoKU2luY2UgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGlzbid0IHN0b3BwZWQsIGl0 IG1heSBjb21wbGV0ZSBpdHMgYWN0aXZlIHRhc2sKYW5kIGFzc2VydCBhIGxldmVsLXRyaWdnZXJl ZCBpbnRlcnJ1cHQuIAoKVGhlIElTUiBjaGVja3MgY3VyX3Nlc3MsIHJlYWRzIE5VTEwsIGFuZCBp bW1lZGlhdGVseSByZXR1cm5zIElSUV9IQU5ETEVECndpdGhvdXQgYWNrbm93bGVkZ2luZyBvciBj bGVhcmluZyB0aGUgaGFyZHdhcmUgcmVnaXN0ZXI6Cgpkcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVz b24vdmRlYy92ZGVjLmM6dmRlY19pc3IoKSB7CiAgICAuLi4KICAgIGlmICghc2VzcykKICAgICAg ICByZXR1cm4gSVJRX0hBTkRMRUQ7CiAgICAuLi4KfQoKV2lsbCB0aGlzIGNhdXNlIHRoZSB1bmFj a25vd2xlZGdlZCBpbnRlcnJ1cHQgdG8gaW1tZWRpYXRlbHkgZmlyZSBhZ2FpbiwKbG9ja2luZyB1 cCB0aGUgQ1BVPwoKW1NldmVyaXR5OiBIaWdoXQpDb3VsZCB0aGlzIGFsbG93IGNvbmN1cnJlbnQg RE1BIG92ZXJ3cml0ZXMgYW5kIGhhcmR3YXJlIHN0YXRlIGNvcnJ1cHRpb24/CgpCeSBjbGVhcmlu ZyBjb3JlLT5jdXJfc2VzcyBoZXJlLCB0aGUgVjRMMiBmcmFtZXdvcmsgY29uc2lkZXJzIHRoZSBo YXJkd2FyZQppZGxlIGFuZCBjYW4gc2NoZWR1bGUgYSBuZXcgc2Vzc2lvbi4gCgpTaW5jZSB0aGUg aGFyZHdhcmUgaXMgYWN0dWFsbHkgc3RpbGwgcnVubmluZywgYSBuZXdseSBzY2hlZHVsZWQgc2Vz c2lvbgptaWdodCBibGluZGx5IG92ZXJ3cml0ZSB0aGUgYWN0aXZlIGhhcmR3YXJlJ3MgcmVnaXN0 ZXJzIGluIGVzcGFyc2VyX3F1ZXVlKCksCmNvcnJ1cHRpbmcgdGhlIG9uZ29pbmcgRE1BIG9wZXJh dGlvbnM6Cgpkcml2ZXJzL3N0YWdpbmcvbWVkaWEvbWVzb24vdmRlYy9lc3BhcnNlci5jOmVzcGFy c2VyX3F1ZXVlKCkgewogICAgLi4uCiAgICBhbXZkZWNfd3JpdGVfcGFyc2VyKGNvcmUsIFBBUlNF Ul9WSURFT19TVEFSVF9QVFIsIHBheWxvYWRfcGFkZHIpOwogICAgLi4uCn0KCj4gKwltdXRleF91 bmxvY2soJmNvcmUtPmxvY2spOwo+ICAKPiAgCXY0bDJfbTJtX2pvYl9maW5pc2goc2Vzcy0+Y29y ZS0+bTJtX2Rldiwgc2Vzcy0+bTJtX2N0eCk7Cj4gIH0KCltTZXZlcml0eTogSGlnaF0KRG9lcyB0 aGUgZXNwYXJzZXJfcXVldWVfYWxsX3NyYygpIHdvcmtlciBoYXZlIGFuIGluZmluaXRlIGxvb3A/ CgpXaGVuIGxvb2tpbmcgaW50byB0aGUgaW50ZXJhY3Rpb24gd2l0aCBlc3BhcnNlcl9xdWV1ZV93 b3JrLCB0aGUgb3V0ZXIKbG9vcCBpbiBlc3BhcnNlcl9xdWV1ZV9hbGxfc3JjKCkgYXBwZWFycyB0 byBuZXZlciB0ZXJtaW5hdGUgd2hlbiB0aGUKcXVldWUgaXMgZW1wdHk6Cgpkcml2ZXJzL3N0YWdp bmcvbWVkaWEvbWVzb24vdmRlYy9lc3BhcnNlci5jOmVzcGFyc2VyX3F1ZXVlX2FsbF9zcmMoKSB7 CiAgICB3aGlsZSAoMSkgewogICAgICAgIHN0cnVjdCB2YjJfdjRsMl9idWZmZXIgKnZidWYgPSBO VUxMOwogICAgICAgIGJvb2wgcHJvY2Vzc2VkX2ZyYW1lID0gZmFsc2U7CiAgICAgICAgLi4uCiAg ICAgICAgc2NvcGVkX2d1YXJkKG11dGV4LCAmc2Vzcy0+bG9jaykgewogICAgICAgICAgICAuLi4K ICAgICAgICAgICAgdmJ1ZiA9IHY0bDJfbTJtX25leHRfc3JjX2J1ZihzZXNzLT5tMm1fY3R4KTsK ICAgICAgICAgICAgaWYgKCF2YnVmKQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg IC4uLgogICAgICAgIH0KICAgICAgICAuLi4KICAgIH0KfQoKU2luY2Ugc2NvcGVkX2d1YXJkIGlz IGltcGxlbWVudGVkIGFzIGEgaGlkZGVuIGZvci1sb29wLCB0aGUgYnJlYWsKc3RhdGVtZW50IG9u bHkgZXhpdHMgdGhlIHNjb3BlZF9ndWFyZCdzIGludGVybmFsIGxvb3AsIG5vdCB0aGUgb3V0ZXIK d2hpbGUoMSkgbG9vcC4gCgpCZWNhdXNlIHByb2Nlc3NlZF9mcmFtZSByZW1haW5zIGZhbHNlLCB0 aGUgY29kZSBjYWxscyBjb25kX3Jlc2NoZWQoKSBhbmQKc3BpbnMgaW5kZWZpbml0ZWx5LiBDb3Vs ZCB0aGlzIGNhdXNlIGEgMTAwJSBDUFUgbG9ja3VwPwoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3 IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MDcxMzEyMDg0MC4xNzQyNy0xLWxp bnV4LmFtb29uQGdtYWlsLmNvbT9wYXJ0PTEzCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxv Z2ljQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1hbWxvZ2ljCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 439BDC43458 for ; Mon, 13 Jul 2026 12:55:12 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A909110E5C0; Mon, 13 Jul 2026 12:55:11 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="Zkp2yEE9"; dkim-atps=neutral Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id DF63710E5C0 for ; Mon, 13 Jul 2026 12:55:10 +0000 (UTC) Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id C25DA43C30; Mon, 13 Jul 2026 12:55:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5D4E91F000E9; Mon, 13 Jul 2026 12:55:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783947310; bh=6xBAIfGUbxPLmgHkxAU+wWWFPgYDU3FyB6AIPEj+xN4=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Zkp2yEE9mXfWj3kJbenz6aEZfWiXARsI6bltW83hym3SgfwbsNsbq8xlzEKivfkXq pfFcoNtJVmu+TYNZ6VmgfQ7S6RSqW9XnpWwlnsQ5oWEWDoMUHn9TixWZ54qzxvpPDN dNFNkqOrvfoooKPpxl2LZb6K4i3pP/3MybbQ9Pf5FZ/QrH5g+Co+ffZfc9yT5M2Tji xYYsC1wr8gZ9A0MgBW7rFv+kUEwwiyqYb50Bm5+RnA/iqjEzLFewRsXmtjxga928NV /z0Zv9Z+T2ueRpM5G5tIp+FNqU1S2gnBp/ak5tOBy8e+gtyLNNKIEWmFW605gIaoru HtTbtyO4auL9g== From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 13/19] media: meson: vdec: Fix race conditions in job abort sequence To: "Anand Moon" Cc: linux-amlogic@lists.infradead.org, dri-devel@lists.freedesktop.org, neil.armstrong@linaro.org In-Reply-To: <20260713120840.17427-14-linux.amoon@gmail.com> References: <20260713120840.17427-1-linux.amoon@gmail.com> <20260713120840.17427-14-linux.amoon@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 13 Jul 2026 12:55:09 +0000 Message-Id: <20260713125510.5D4E91F000E9@smtp.kernel.org> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Thank you for your contribution! Sashiko AI review found 5 potential issue(= s) to consider: - [Critical] Clearing the active session pointer while the hardware is stil= l running causes unacknowledged interrupts and a CPU-locking interrupt stor= m. - [High] Premature clearing of the active session pointer in job_abort bypa= sses hardware teardown and resource cleanup, causing severe memory and reso= urce leaks. - [High] AB-BA lock inversion deadlock between VIDIOC_STREAMOFF and the esp= arser_queue_work worker thread. - [High] Releasing session ownership without stopping the hardware allows c= oncurrent DMA overwrites and hardware state corruption. - [High] Infinite loop inside esparser_queue_all_src() causing 100% CPU loc= kup when the queue is empty. -- --- Patch [13]: [PATCH v7 13/19] media: meson: vdec: Fix race conditions in= job abort sequence --- commit bc32f101c548ab648eb44ae46f9cc2ea72d4c339 Author: Anand Moon media: meson: vdec: Fix race conditions in job abort sequence Implement proper cleanup inside vdec_m2m_job_abort to safely stop the hardware job sequence during a streaming abort or teardown. > diff --git a/drivers/staging/media/meson/vdec/vdec.c b/drivers/staging/me= dia/meson/vdec/vdec.c > index b3e1d99e8889f..ac86a9c4febff 100644 > --- a/drivers/staging/media/meson/vdec/vdec.c > +++ b/drivers/staging/media/meson/vdec/vdec.c > @@ -167,6 +167,17 @@ static void vdec_m2m_device_run(void *priv) > static void vdec_m2m_job_abort(void *priv) > { > struct amvdec_session *sess =3D priv; > + struct amvdec_core *core =3D sess->core; > + > + WRITE_ONCE(sess->should_stop, 1); > + > + cancel_work_sync(&sess->esparser_queue_work); [Severity: High] Does this introduce an AB-BA deadlock with VIDIOC_STREAMOFF? The V4L2 core acquires the queue lock (sess->lock) during VIDIOC_STREAMOFF and calls vdec_m2m_job_abort(), which blocks here indefinitely waiting for the worker.=20 Meanwhile, the worker thread unconditionally attempts to acquire sess->lock in esparser_queue_all_src(): drivers/staging/media/meson/vdec/esparser.c:esparser_queue_all_src() { ... scoped_guard(mutex, &sess->lock) { ... } > + > + mutex_lock(&core->lock); > + if (core->cur_sess =3D=3D sess) > + /* Safely clear hardware ownership since we were confirmed as the owne= r */ > + smp_store_release(&core->cur_sess, NULL); [Severity: High] Does clearing cur_sess here prematurely bypass hardware teardown? During a normal VIDIOC_STREAMOFF, vdec_m2m_job_abort() is called before the stop_streaming hook. If cur_sess is cleared here, the later teardown in vdec_stop_streaming() will skip powering off the hardware and freeing the DMA buffer (vififo_size) because core->cur_sess =3D=3D sess evaluates to false: drivers/staging/media/meson/vdec/vdec.c:vdec_stop_streaming() { ... if (core->cur_sess =3D=3D sess) { vdec_poweroff(sess); vdec_free_canvas(sess); ... } [Severity: Critical] Can this cause an interrupt storm and CPU lockup? Since the physical hardware isn't stopped, it may complete its active task and assert a level-triggered interrupt.=20 The ISR checks cur_sess, reads NULL, and immediately returns IRQ_HANDLED without acknowledging or clearing the hardware register: drivers/staging/media/meson/vdec/vdec.c:vdec_isr() { ... if (!sess) return IRQ_HANDLED; ... } Will this cause the unacknowledged interrupt to immediately fire again, locking up the CPU? [Severity: High] Could this allow concurrent DMA overwrites and hardware state corruption? By clearing core->cur_sess here, the V4L2 framework considers the hardware idle and can schedule a new session.=20 Since the hardware is actually still running, a newly scheduled session might blindly overwrite the active hardware's registers in esparser_queue(), corrupting the ongoing DMA operations: drivers/staging/media/meson/vdec/esparser.c:esparser_queue() { ... amvdec_write_parser(core, PARSER_VIDEO_START_PTR, payload_paddr); ... } > + mutex_unlock(&core->lock); > =20 > v4l2_m2m_job_finish(sess->core->m2m_dev, sess->m2m_ctx); > } [Severity: High] Does the esparser_queue_all_src() worker have an infinite loop? When looking into the interaction with esparser_queue_work, the outer loop in esparser_queue_all_src() appears to never terminate when the queue is empty: drivers/staging/media/meson/vdec/esparser.c:esparser_queue_all_src() { while (1) { struct vb2_v4l2_buffer *vbuf =3D NULL; bool processed_frame =3D false; ... scoped_guard(mutex, &sess->lock) { ... vbuf =3D v4l2_m2m_next_src_buf(sess->m2m_ctx); if (!vbuf) break; ... } ... } } Since scoped_guard is implemented as a hidden for-loop, the break statement only exits the scoped_guard's internal loop, not the outer while(1) loop.=20 Because processed_frame remains false, the code calls cond_resched() and spins indefinitely. Could this cause a 100% CPU lockup? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260713120840.1742= 7-1-linux.amoon@gmail.com?part=3D13