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 C61D0C43458 for ; Mon, 13 Jul 2026 12:38:08 +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=QBV8FKF8DN10bcH9bZ9ItLV7rntSGqDDxwgP9ns6EMc=; b=OaCNgaynIWMLYQ id8al5n/XPACuRFoowBQA7LNh9hoEvJupS15X6unkk30IPjnZC6IcJ7KyOrDHHbxBfGR6GXxby72D QupIeo/Eo+umFQrWtAFPZvBYPl9Rphi7pZ+f73OVqvAfUiwWHTAjBsQWXjZM5DhYWCL9O7RPt7bvN weUch9f96TK3suiBpZOGU9LJl9p66sb8P80ChEcljGtl20ajtTeqs7AW9CEjwx7msCAL/ozceNCvA +OL1Jegf9OWrn76EuKfF+EufKVv0J0AxMcoQeGSokp0ib5WbVhwV6thy7nS1pFt9t+W/7TeKIFo8o zGMKWbVqlmLDQjq++D/Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjFvB-00000009DMF-1XRM; Mon, 13 Jul 2026 12:38:05 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjFvA-00000009DM4-0Dju for linux-amlogic@lists.infradead.org; Mon, 13 Jul 2026 12:38:04 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 9D46C41B15; Mon, 13 Jul 2026 12:38:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F7BE1F00A3A; Mon, 13 Jul 2026 12:38:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783946283; bh=cA1yaA6sEa8uFS7G+v67FepW2YBQwUnLfdEu2CTbOIU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=fpmLs3+qtmsd3LF4ThqmYXsxHX6+DsU1U/CZjEbX5tXap50NBDxpWyeF49ORsTJsk ROyRf6ovNpV+I9LiIJTAvKzci8S18hP32n9q1fH1Jvk39ls/HSKX8dPJoh4KGuZphU Vbq2DfsXkME4Ea4AWzpJODMbzuq9KYY/knlWmImBK7L7icYw1j4slg4WmMUlQ0xDTr 4Hd3Syhbg1eC3ywpQ/1UHPDLu+fm2/bpzNbo2t60RdJVg/klJKmXhnT18tKqZOijIw CoQTXtq3uahtHNSaw8PuDFi/OpzkqP3/LNrAoEVDBJKejE8GWt10/YqAqvyteheBXR DvZGCFTH49njQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 02/19] media: meson: vdec: Fix STREAMON / STREAMOFF race conditions and session teardown To: "Anand Moon" Cc: linux-amlogic@lists.infradead.org, neil.armstrong@linaro.org, dri-devel@lists.freedesktop.org In-Reply-To: <20260713120840.17427-3-linux.amoon@gmail.com> References: <20260713120840.17427-1-linux.amoon@gmail.com> <20260713120840.17427-3-linux.amoon@gmail.com> Date: Mon, 13 Jul 2026 12:38:02 +0000 Message-Id: <20260713123803.3F7BE1F00A3A@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 NSBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpOZXcgaXNzdWVzOgotIFtIaWdoXSBU aGUgdmRlY19yZWN5Y2xlX3RocmVhZCBpcyBjb25kaXRpb25hbGx5IHNraXBwZWQgZnJvbSBiZWlu ZyBzdG9wcGVkIGJ1dCBpdHMgcmVzb3VyY2VzIGFyZSB1bmNvbmRpdGlvbmFsbHkgZnJlZWQgZHVy aW5nIGEgcGFydGlhbCBTVFJFQU1PRkYsIGxlYWRpbmcgdG8gVXNlLUFmdGVyLUZyZWUgYW5kIGxp c3QgY29ycnVwdGlvbi4KLSBbSGlnaF0gRmFpbGluZyBzdGFydF9zdHJlYW1pbmcgd2l0aCAtRUJV U1kgcGVybWFuZW50bHkgbGVha3Mgc3RyZWFtb24gZmxhZ3MsIGNhdXNpbmcgc3RhdGUgaW5jb25z aXN0ZW5jeSBhbmQgY3Jvc3Mtc2Vzc2lvbiBoYXJkd2FyZSBjb3JydXB0aW9uLgoKUHJlLWV4aXN0 aW5nIGlzc3VlczoKLSBbSGlnaF0gVGhlIHJldHVybiB2YWx1ZSBvZiBga3RocmVhZF9ydW4oKWAg aXMgbm90IGNoZWNrZWQsIGxlYWRpbmcgdG8gYSBrZXJuZWwgY3Jhc2ggd2hlbiBga3RocmVhZF9z dG9wKClgIGlzIGNhbGxlZCBvbiBhbiBgRVJSX1BUUmAuCi0gW0hpZ2hdIHZkZWNfcmVzZXRfdGlt ZXN0YW1wcyBhY2Nlc3NlcyB0aGUgdGltZXN0YW1wcyBsaXN0IHdpdGhvdXQgaG9sZGluZyB0c19z cGlubG9jaywgbGVhZGluZyB0byBsaXN0IGNvcnJ1cHRpb24uCi0gW0hpZ2hdIE1pc3NpbmcgY2Fu Y2VsX3dvcmtfc3luYyBmb3IgZXNwYXJzZXJfcXVldWVfd29yayBjYXVzZXMgVUFGIGFuZCB1bmNs b2NrZWQgcmVnaXN0ZXIgYWNjZXNzLgotLQoKLS0tIFBhdGNoIFsyXTogW1BBVENIIHY3IDAyLzE5 XSBtZWRpYTogbWVzb246IHZkZWM6IEZpeCBTVFJFQU1PTiAvIFNUUkVBTU9GRiByYWNlIGNvbmRp dGlvbnMgYW5kIHNlc3Npb24gdGVhcmRvd24gLS0tCmNvbW1pdCBjOGY4YjI2ZTRhMTIwOTMzYjVi MWQzMjliM2NjNmU5N2VhMjE3NzhkCkF1dGhvcjogQW5hbmQgTW9vbiA8bGludXguYW1vb25AZ21h aWwuY29tPgpTdWJqZWN0OiBtZWRpYTogbWVzb246IHZkZWM6IEZpeCBTVFJFQU1PTiAvIFNUUkVB TU9GRiByYWNlIGNvbmRpdGlvbnMgYW5kIHNlc3Npb24gdGVhcmRvd24KClRoaXMgY29tbWl0IGFk ZHJlc3NlcyByYWNlIGNvbmRpdGlvbnMgZHVyaW5nIGNvbmN1cnJlbnQgU1RSRUFNT04gLyBTVFJF QU1PRkYKY2FsbHMgYW5kIGR5bmFtaWMgcmVzb2x1dGlvbiBjaGFuZ2VzLiBJdCByZXN0cnVjdHVy ZXMgaW5pdGlhbGl6YXRpb24gcGF0aHMsCmVycm9yIGhhbmRsaW5nLCBhbmQgc3RhdGUgdHJhY2tp bmcgdG8gcHJldmVudCBoYXJkd2FyZSBzdGF0ZSBjb3JydXB0aW9uLgoKQ2xvc2VzOiBodHRwczov L2xvcmUua2VybmVsLm9yZy9hbGwvMjAyNjA1MzAxMDA4NDEuOUNFQkExRjAwODkzQHNtdHAua2Vy bmVsLm9yZy8KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVj L3ZkZWMuYyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL3ZkZWMuYwo+IC0tLSBh L2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL3ZkZWMuYwo+ICsrKyBiL2RyaXZlcnMv c3RhZ2luZy9tZWRpYS9tZXNvbi92ZGVjL3ZkZWMuYwoKWyAuLi4gXQoKPiBAQCAtMzA4LDkgKzMw MywyOSBAQCBzdGF0aWMgaW50IHZkZWNfc3RhcnRfc3RyZWFtaW5nKHN0cnVjdCB2YjJfcXVldWUg KnEsIHVuc2lnbmVkIGludCBjb3VudCkKPiAgCX0KPiAgCj4gIAlpZiAoc2Vzcy0+c3RhdHVzID09 IFNUQVRVU19SVU5OSU5HIHx8Cj4gLQkgICAgc2Vzcy0+c3RhdHVzID09IFNUQVRVU19ORUVEU19S RVNVTUUgfHwKPiAtCSAgICBzZXNzLT5zdGF0dXMgPT0gU1RBVFVTX0lOSVQpCj4gKwkgICAgc2Vz cy0+c3RhdHVzID09IFNUQVRVU19ORUVEU19SRVNVTUUpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICsJ LyoKPiArCSAqIFNlY3VyZSB0aGUgY29yZSBoYXJkd2FyZSBsb2NrIGJlZm9yZSBjaGVja2luZyBh dmFpbGFiaWxpdHkKPiArCSAqIGFuZCB1cGRhdGluZyBzZXNzaW9uIHN0YXRlcyB0byBwcmV2ZW50 IFNUUkVBTU9OIHJhY2UgY29uZGl0aW9ucy4KPiArCSAqLwo+ICsJbXV0ZXhfbG9jaygmY29yZS0+ bG9jayk7Cj4gKwlpZiAoY29yZS0+Y3VyX3Nlc3MgJiYgY29yZS0+Y3VyX3Nlc3MgIT0gc2Vzcykg ewo+ICsJCXJldCA9IC1FQlVTWTsKPiArCQltdXRleF91bmxvY2soJmNvcmUtPmxvY2spOwo+ICsJ CWdvdG8gZXJyX3VubG9ja19ub19odzsKPiArCX0KCltTZXZlcml0eTogSGlnaF0KSWYgd2UganVt cCB0byBlcnJfdW5sb2NrX25vX2h3IGhlcmUsIGRvZXNuJ3QgaXQgYnlwYXNzIHRoZQplcnJfY2xl YW51cF9zZXNzaW9uIGxhYmVsIHRoYXQgY2xlYXJzIHRoZSBzdHJlYW1vbiBmbGFncz8KCklmIHNl c3Npb24gQiBjYWxscyBWSURJT0NfU1RSRUFNT04gb24gaXRzIE9VVFBVVCBxdWV1ZSBhbmQgaGl0 cyB0aGlzIHBhdGgsCnNlc3MtPnN0cmVhbW9uX291dCB3aWxsIHJlbWFpbiAxLgoKQ291bGQgYSBz dWJzZXF1ZW50IFZJRElPQ19RQlVGIGZyb20gc2Vzc2lvbiBCIGNhdXNlIHZkZWNfdmIyX2J1Zl9x dWV1ZSB0bwpzY2hlZHVsZSBlc3BhcnNlcl9xdWV1ZV93b3JrLCBwb3RlbnRpYWxseSBvdmVyd3Jp dGluZyB0aGUgYWN0aXZlIGhhcmR3YXJlCnJlZ2lzdGVycyBvZiB0aGUgY3VycmVudCBzZXNzaW9u PwoKWyAuLi4gXQoKPiAgCXNlc3MtPnNlcXVlbmNlX2NhcCA9IDA7Cj4gIAlzZXNzLT5zZXF1ZW5j ZV9vdXQgPSAwOwo+ICsKPiAgCWlmICh2ZGVjX2NvZGVjX25lZWRzX3JlY3ljbGUoc2VzcykpCj4g IAkJc2Vzcy0+cmVjeWNsZV90aHJlYWQgPSBrdGhyZWFkX3J1bih2ZGVjX3JlY3ljbGVfdGhyZWFk LCBzZXNzLAo+ICAJCQkJCQkgICAidmRlY19yZWN5Y2xlIik7CgpbU2V2ZXJpdHk6IEhpZ2hdClRo aXMgaXMgYSBwcmUtZXhpc3RpbmcgaXNzdWUsIGJ1dCBkb2VzIHRoaXMgY29kZSBwcm9wZXJseSBo YW5kbGUgdGhyZWFkCmNyZWF0aW9uIGZhaWx1cmU/CgpJZiBrdGhyZWFkX3J1biBmYWlscyBkdWUg dG8gbWVtb3J5IGNvbnN0cmFpbnRzLCBpdCByZXR1cm5zIGFuIEVSUl9QVFIuCkxhdGVyIGluIHZk ZWNfc3RvcF9zdHJlYW1pbmcsIHRoaXMgcG9pbnRlciBpcyBwYXNzZWQgdW5jb25kaXRpb25hbGx5 IHRvCmt0aHJlYWRfc3RvcC4KCkNvdWxkIHRoaXMgY2F1c2UgYSBrZXJuZWwgcGFuaWMgd2hlbiBr dGhyZWFkX3N0b3AgYXR0ZW1wdHMgdG8gZGVyZWZlcmVuY2UKdGhlIEVSUl9QVFI/Cgo+IC0Jc2Vz cy0+c3RhdHVzID0gU1RBVFVTX0lOSVQ7Cj4gLQljb3JlLT5jdXJfc2VzcyA9IHNlc3M7Cj4gIAlz Y2hlZHVsZV93b3JrKCZzZXNzLT5lc3BhcnNlcl9xdWV1ZV93b3JrKTsKPiAgCXJldHVybiAwOwoK W1NldmVyaXR5OiBIaWdoXQpUaGlzIGlzIGEgcHJlLWV4aXN0aW5nIGlzc3VlLCBidXQgZG9lcyBj bG9zaW5nIHRoZSBmaWxlIGRlc2NyaXB0b3Igc2FmZWx5CmNsZWFuIHVwIHRoZSB3b3JrcXVldWUg c2NoZWR1bGVkIGhlcmU/CgpXaGVuIHRoZSBjbGllbnQgcXVldWVzIGEgYnVmZmVyIGFuZCB0aGVu IGNsb3NlcyB0aGUgZmlsZSBkZXNjcmlwdG9yLAp2ZGVjX2Nsb3NlIGRlc3Ryb3lzIG11dGV4ZXMg YW5kIGZyZWVzIHRoZSBhbXZkZWNfc2Vzc2lvbiBtZW1vcnkgdmlhIGtmcmVlCndpdGhvdXQgY2Fu Y2VsbGluZyB0aGUgcGVuZGluZyBlc3BhcnNlcl9xdWV1ZV93b3JrLgoKV2hlbiB0aGUgd29ya3F1 ZXVlIGV4ZWN1dGVzIHZkZWNfZXNwYXJzZXJfcXVldWVfd29yaywgY291bGQgaXQgYWNjZXNzIHRo ZQpmcmVlZCBzZXNzaW9uIG1lbW9yeSBhbmQgYXR0ZW1wdCB0byB0YWtlIGEgZGVzdHJveWVkIG11 dGV4PwoKWyAuLi4gXQoKPiBAQCAtMzk5LDMwICs0MjQsMTMgQEAgc3RhdGljIHZvaWQgdmRlY19z dG9wX3N0cmVhbWluZyhzdHJ1Y3QgdmIyX3F1ZXVlICpxKQoKWyAuLi4gXQoKPiArCWlmIChmdWxs X2NsZWFudXApIHsKPiArCQlpZiAoKHEtPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBU VVJFX01QTEFORSB8fAo+ICsJCSAgICAgIXNlc3MtPnN0cmVhbW9uX291dCkgJiYgdmRlY19jb2Rl Y19uZWVkc19yZWN5Y2xlKHNlc3MpKSB7Cj4gKwkJCWt0aHJlYWRfc3RvcChzZXNzLT5yZWN5Y2xl X3RocmVhZCk7Cj4gKwkJfQo+ICsKPiArCQl2ZGVjX3Bvd2Vyb2ZmKHNlc3MpOwoKW1NldmVyaXR5 OiBIaWdoXQpJZiBhIHVzZXJzcGFjZSBjbGllbnQgc3RhcnRzIHN0cmVhbWluZyBvbiBib3RoIHF1 ZXVlcyBhbmQgdGhlbiBjYWxscwpWSURJT0NfU1RSRUFNT0ZGIG9uIHRoZSBDQVBUVVJFIHF1ZXVl LCB0aGUgbmV3bHkgYWRkZWQgY29uZGl0aW9uIGV2YWx1YXRpbmcKcS0+dHlwZSAhPSBWNEwyX0JV Rl9UWVBFX1ZJREVPX0NBUFRVUkVfTVBMQU5FIG9yICFzZXNzLT5zdHJlYW1vbl9vdXQKd2lsbCBl dmFsdWF0ZSB0byBmYWxzZSwgc2tpcHBpbmcga3RocmVhZF9zdG9wLgoKU2luY2UgZnVsbF9jbGVh bnVwIGlzIHRydWUsIHRoZSBjb2RlIHByb2NlZWRzIHRvIHRlYXIgZG93biByZXNvdXJjZXMgdmlh CnZkZWNfcmVzZXRfYnVmc19yZWN5Y2xlIGFuZCBrZnJlZSBvZiBzZXNzLT5wcml2LgoKQ291bGQg dGhpcyBsZWFkIHRvIGEgdXNlLWFmdGVyLWZyZWUgb3IgbGlzdCBjb3JydXB0aW9uIGlmIHRoZSBy ZWN5Y2xlIHRocmVhZApjb250aW51ZXMgZXhlY3V0aW5nIHdoaWxlIGl0cyBiYWNraW5nIHJlc291 cmNlcyBhcmUgZnJlZWQ/Cgo+ICsJCXZkZWNfZnJlZV9jYW52YXMoc2Vzcyk7Cj4gKwo+ICsJCWlm IChzZXNzLT52aWZpZm9fdmFkZHIpIHsKPiArCQkJZG1hX2ZyZWVfY29oZXJlbnQoc2Vzcy0+Y29y ZS0+ZGV2LCBzZXNzLT52aWZpZm9fc2l6ZSwKPiArCQkJCQkgIHNlc3MtPnZpZmlmb192YWRkciwg c2Vzcy0+dmlmaWZvX3BhZGRyKTsKPiArCQkJc2Vzcy0+dmlmaWZvX3ZhZGRyID0gTlVMTDsKPiAr CQkJc2Vzcy0+dmlmaWZvX3BhZGRyID0gMDsKPiArCQl9Cj4gKwo+ICsJCXZkZWNfcmVzZXRfdGlt ZXN0YW1wcyhzZXNzKTsKCltTZXZlcml0eTogSGlnaF0KVGhpcyBpcyBhIHByZS1leGlzdGluZyBp c3N1ZSwgYnV0IGRvZXMgdmRlY19yZXNldF90aW1lc3RhbXBzIHNhZmVseSBhY2Nlc3MKdGhlIHRp bWVzdGFtcHMgbGlzdCBoZXJlPwoKVGhlIGZ1bmN0aW9uIGl0ZXJhdGVzIGFuZCBmcmVlcyBlbGVt ZW50cyBvZiB0aGUgc2Vzcy0+dGltZXN0YW1wcyBsaXN0CndpdGhvdXQgaG9sZGluZyB0c19zcGlu bG9jay4KCklmIGEgY29uY3VycmVudCB0aHJlYWRlZCBJU1IgZXhlY3V0ZXMgYW12ZGVjX2RzdF9i dWZfZG9uZV9pZHggYW5kIGNhbGxzCmFtdmRlY19yZW1vdmVfdHMsIGl0IHdpbGwgYWNxdWlyZSB0 c19zcGlubG9jayBhbmQgYXR0ZW1wdCB0byByZW1vdmUgYW4KZWxlbWVudC4KCkNvdWxkIHRoaXMg cmFjZSBjb25kaXRpb24gbGVhZCB0byBsaW5rZWQgbGlzdCBjb3JydXB0aW9uIGFuZCB1c2UtYWZ0 ZXItZnJlZT8KCj4gKwkJdmRlY19yZXNldF9idWZzX3JlY3ljbGUoc2Vzcyk7Cj4gKwkJY29yZS0+ Y3VyX3Nlc3MgPSBOVUxMOwo+ICsKPiArCQlrZnJlZShzZXNzLT5wcml2KTsKPiArCQlzZXNzLT5w cml2ID0gTlVMTDsKPiArCX0gZWxzZSB7Cj4gKwkJaWYgKHNlc3MtPnN0YXR1cyA9PSBTVEFUVVNf TkVFRFNfUkVTVU1FKQo+ICsJCQlzZXNzLT5jaGFuZ2VkX2Zvcm1hdCA9IDA7Cj4gKwl9Cj4gKwlt dXRleF91bmxvY2soJmNvcmUtPmxvY2spOwo+ICB9CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcg aHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwNzEzMTIwODQwLjE3NDI3LTEtbGlu dXguYW1vb25AZ21haWwuY29tP3BhcnQ9MgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYW1sb2dpYyBtYWlsaW5nIGxpc3QKbGludXgtYW1sb2dp Y0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYW1sb2dpYwo= 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 5F3D2C43458 for ; Mon, 13 Jul 2026 12:38:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A902510E5B9; Mon, 13 Jul 2026 12:38:04 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="fpmLs3+q"; 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 C8D0B10E5B9 for ; Mon, 13 Jul 2026 12:38:03 +0000 (UTC) Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 9D46C41B15; Mon, 13 Jul 2026 12:38:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F7BE1F00A3A; Mon, 13 Jul 2026 12:38:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783946283; bh=cA1yaA6sEa8uFS7G+v67FepW2YBQwUnLfdEu2CTbOIU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=fpmLs3+qtmsd3LF4ThqmYXsxHX6+DsU1U/CZjEbX5tXap50NBDxpWyeF49ORsTJsk ROyRf6ovNpV+I9LiIJTAvKzci8S18hP32n9q1fH1Jvk39ls/HSKX8dPJoh4KGuZphU Vbq2DfsXkME4Ea4AWzpJODMbzuq9KYY/knlWmImBK7L7icYw1j4slg4WmMUlQ0xDTr 4Hd3Syhbg1eC3ywpQ/1UHPDLu+fm2/bpzNbo2t60RdJVg/klJKmXhnT18tKqZOijIw CoQTXtq3uahtHNSaw8PuDFi/OpzkqP3/LNrAoEVDBJKejE8GWt10/YqAqvyteheBXR DvZGCFTH49njQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v7 02/19] media: meson: vdec: Fix STREAMON / STREAMOFF race conditions and session teardown To: "Anand Moon" Cc: linux-amlogic@lists.infradead.org, neil.armstrong@linaro.org, dri-devel@lists.freedesktop.org In-Reply-To: <20260713120840.17427-3-linux.amoon@gmail.com> References: <20260713120840.17427-1-linux.amoon@gmail.com> <20260713120840.17427-3-linux.amoon@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 13 Jul 2026 12:38:02 +0000 Message-Id: <20260713123803.3F7BE1F00A3A@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: New issues: - [High] The vdec_recycle_thread is conditionally skipped from being stoppe= d but its resources are unconditionally freed during a partial STREAMOFF, l= eading to Use-After-Free and list corruption. - [High] Failing start_streaming with -EBUSY permanently leaks streamon fla= gs, causing state inconsistency and cross-session hardware corruption. Pre-existing issues: - [High] The return value of `kthread_run()` is not checked, leading to a k= ernel crash when `kthread_stop()` is called on an `ERR_PTR`. - [High] vdec_reset_timestamps accesses the timestamps list without holding= ts_spinlock, leading to list corruption. - [High] Missing cancel_work_sync for esparser_queue_work causes UAF and un= clocked register access. -- --- Patch [2]: [PATCH v7 02/19] media: meson: vdec: Fix STREAMON / STREAMOF= F race conditions and session teardown --- commit c8f8b26e4a120933b5b1d329b3cc6e97ea21778d Author: Anand Moon Subject: media: meson: vdec: Fix STREAMON / STREAMOFF race conditions and s= ession teardown This commit addresses race conditions during concurrent STREAMON / STREAMOFF calls and dynamic resolution changes. It restructures initialization paths, error handling, and state tracking to prevent hardware state corruption. Closes: https://lore.kernel.org/all/20260530100841.9CEBA1F00893@smtp.kernel= .org/ > diff --git a/drivers/staging/media/meson/vdec/vdec.c b/drivers/staging/me= dia/meson/vdec/vdec.c > --- a/drivers/staging/media/meson/vdec/vdec.c > +++ b/drivers/staging/media/meson/vdec/vdec.c [ ... ] > @@ -308,9 +303,29 @@ static int vdec_start_streaming(struct vb2_queue *q,= unsigned int count) > } > =20 > if (sess->status =3D=3D STATUS_RUNNING || > - sess->status =3D=3D STATUS_NEEDS_RESUME || > - sess->status =3D=3D STATUS_INIT) > + sess->status =3D=3D STATUS_NEEDS_RESUME) > return 0; > =20 > + /* > + * Secure the core hardware lock before checking availability > + * and updating session states to prevent STREAMON race conditions. > + */ > + mutex_lock(&core->lock); > + if (core->cur_sess && core->cur_sess !=3D sess) { > + ret =3D -EBUSY; > + mutex_unlock(&core->lock); > + goto err_unlock_no_hw; > + } [Severity: High] If we jump to err_unlock_no_hw here, doesn't it bypass the err_cleanup_session label that clears the streamon flags? If session B calls VIDIOC_STREAMON on its OUTPUT queue and hits this path, sess->streamon_out will remain 1. Could a subsequent VIDIOC_QBUF from session B cause vdec_vb2_buf_queue to schedule esparser_queue_work, potentially overwriting the active hardware registers of the current session? [ ... ] > sess->sequence_cap =3D 0; > sess->sequence_out =3D 0; > + > if (vdec_codec_needs_recycle(sess)) > sess->recycle_thread =3D kthread_run(vdec_recycle_thread, sess, > "vdec_recycle"); [Severity: High] This is a pre-existing issue, but does this code properly handle thread creation failure? If kthread_run fails due to memory constraints, it returns an ERR_PTR. Later in vdec_stop_streaming, this pointer is passed unconditionally to kthread_stop. Could this cause a kernel panic when kthread_stop attempts to dereference the ERR_PTR? > - sess->status =3D STATUS_INIT; > - core->cur_sess =3D sess; > schedule_work(&sess->esparser_queue_work); > return 0; [Severity: High] This is a pre-existing issue, but does closing the file descriptor safely clean up the workqueue scheduled here? When the client queues a buffer and then closes the file descriptor, vdec_close destroys mutexes and frees the amvdec_session memory via kfree without cancelling the pending esparser_queue_work. When the workqueue executes vdec_esparser_queue_work, could it access the freed session memory and attempt to take a destroyed mutex? [ ... ] > @@ -399,30 +424,13 @@ static void vdec_stop_streaming(struct vb2_queue *q) [ ... ] > + if (full_cleanup) { > + if ((q->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE || > + !sess->streamon_out) && vdec_codec_needs_recycle(sess)) { > + kthread_stop(sess->recycle_thread); > + } > + > + vdec_poweroff(sess); [Severity: High] If a userspace client starts streaming on both queues and then calls VIDIOC_STREAMOFF on the CAPTURE queue, the newly added condition evaluating q->type !=3D V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE or !sess->streamon_out will evaluate to false, skipping kthread_stop. Since full_cleanup is true, the code proceeds to tear down resources via vdec_reset_bufs_recycle and kfree of sess->priv. Could this lead to a use-after-free or list corruption if the recycle thread continues executing while its backing resources are freed? > + vdec_free_canvas(sess); > + > + if (sess->vififo_vaddr) { > + dma_free_coherent(sess->core->dev, sess->vififo_size, > + sess->vififo_vaddr, sess->vififo_paddr); > + sess->vififo_vaddr =3D NULL; > + sess->vififo_paddr =3D 0; > + } > + > + vdec_reset_timestamps(sess); [Severity: High] This is a pre-existing issue, but does vdec_reset_timestamps safely access the timestamps list here? The function iterates and frees elements of the sess->timestamps list without holding ts_spinlock. If a concurrent threaded ISR executes amvdec_dst_buf_done_idx and calls amvdec_remove_ts, it will acquire ts_spinlock and attempt to remove an element. Could this race condition lead to linked list corruption and use-after-free? > + vdec_reset_bufs_recycle(sess); > + core->cur_sess =3D NULL; > + > + kfree(sess->priv); > + sess->priv =3D NULL; > + } else { > + if (sess->status =3D=3D STATUS_NEEDS_RESUME) > + sess->changed_format =3D 0; > + } > + mutex_unlock(&core->lock); > } --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260713120840.1742= 7-1-linux.amoon@gmail.com?part=3D2