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 X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49B05C432C0 for ; Tue, 3 Dec 2019 07:10:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0EED62084F for ; Tue, 3 Dec 2019 07:10:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="XA+IIVQ5" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727453AbfLCHKx (ORCPT ); Tue, 3 Dec 2019 02:10:53 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:16605 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727414AbfLCHKu (ORCPT ); Tue, 3 Dec 2019 02:10:50 -0500 X-UUID: a4025ef16e0946d8a2414beb4e97ddba-20191203 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=Fph9XXbAQAeiXeIpfN6pksMELJ8OSpAJ1DcbjNsN8zU=; b=XA+IIVQ5JFXIQr0CedbqkJ8RPF6c1nBxfUND62wQSvdwI9j9BwiPBtJ6tDVGgTToOX2OKcHcsZi4KBWNy19+dEOewwtZ+joLCZ1lSROqf2+WLWDqcewCch5Z19r4KvZ+1KC0BFCmLocAM45kvBMQnh+QqtYjbgkrTXbzvJdPtVM=; X-UUID: a4025ef16e0946d8a2414beb4e97ddba-20191203 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1271858402; Tue, 03 Dec 2019 15:10:40 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 3 Dec 2019 15:09:58 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Tue, 3 Dec 2019 15:10:20 +0800 From: Bibby Hsieh To: David Airlie , Matthias Brugger , Daniel Vetter , , CC: Philipp Zabel , YT Shen , Thierry Reding , CK Hu , , , , , , Bibby Hsieh , Yongqiang Niu Subject: [PATCH v2 6/6] drm/mediatek: apply CMDQ control flow Date: Tue, 3 Dec 2019 15:10:36 +0800 Message-ID: <20191203071036.14158-7-bibby.hsieh@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20191203071036.14158-1-bibby.hsieh@mediatek.com> References: <20191203071036.14158-1-bibby.hsieh@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 560FAB5E0D7D0CB653ED640285D9EFC0442629B88FD93FB206BA002BF261928F2000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org VW5saWtlIG90aGVyIFNvQ3MsIE1UODE4MyBkb2VzIG5vdCBoYXZlICJzaGFkb3ciDQpyZWdpc3Rl cnMgZm9yIHBlcmZvcm1haW5nIGFuIGF0b21pYyB2aWRlbyBtb2RlDQpzZXQgb3IgcGFnZSBmbGlw IGF0IHZibGFuay92c3luYy4NCg0KVGhlIENNRFEgKENvbW1lbmQgUXVldWUpIGluIE1UODE4MyBp cyB1c2VkIHRvIGhlbHANCnVwZGF0ZSBhbGwgcmVsZXZhbnQgZGlzcGxheSBjb250cm9sbGVyIHJl Z2lzdGVycw0Kd2l0aCBjcml0aWNhbCB0aW1lIGxpbWF0aW9uLg0KDQpTaWduZWQtb2ZmLWJ5OiBZ VCBTaGVuIDx5dC5zaGVuQG1lZGlhdGVrLmNvbT4NClNpZ25lZC1vZmYtYnk6IENLIEh1IDxjay5o dUBtZWRpYXRlay5jb20+DQpTaWduZWQtb2ZmLWJ5OiBQaGlsaXBwIFphYmVsIDxwLnphYmVsQHBl bmd1dHJvbml4LmRlPg0KU2lnbmVkLW9mZi1ieTogQmliYnkgSHNpZWggPGJpYmJ5LmhzaWVoQG1l ZGlhdGVrLmNvbT4NClNpZ25lZC1vZmYtYnk6IFlvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVA bWVkaWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0 Yy5jIHwgMTYzICsrKysrKysrKysrKysrKysrLS0tLS0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCAxMTgg aW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9jcnRjLmMNCmluZGV4IDliMmY3OTM1YmEyOC4uN2I0N2ZlOGNjZWU4IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5jDQorKysgYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCkBAIC0xMiw2ICsxMiw4IEBADQog I2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+DQogI2luY2x1ZGUgPGRybS9kcm1fcHJv YmVfaGVscGVyLmg+DQogI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5rLmg+DQorI2luY2x1ZGUgPGxp bnV4L29mX2FkZHJlc3MuaD4NCisjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1jbWRx Lmg+DQogDQogI2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiDQogI2luY2x1ZGUgIm10a19kcm1fY3J0 Yy5oIg0KQEAgLTQyLDExICs0NCwxNyBAQCBzdHJ1Y3QgbXRrX2RybV9jcnRjIHsNCiAJdW5zaWdu ZWQgaW50CQkJbGF5ZXJfbnI7DQogCWJvb2wJCQkJcGVuZGluZ19wbGFuZXM7DQogDQorCXN0cnVj dCBjbWRxX2NsaWVudAkJKmNtZHFfY2xpZW50Ow0KKwl1MzIJCQkJY21kcV9ldmVudDsNCisNCiAJ dm9pZCBfX2lvbWVtCQkJKmNvbmZpZ19yZWdzOw0KIAljb25zdCBzdHJ1Y3QgbXRrX21tc3lzX3Jl Z19kYXRhICptbXN5c19yZWdfZGF0YTsNCiAJc3RydWN0IG10a19kaXNwX211dGV4CQkqbXV0ZXg7 DQogCXVuc2lnbmVkIGludAkJCWRkcF9jb21wX25yOw0KIAlzdHJ1Y3QgbXRrX2RkcF9jb21wCQkq KmRkcF9jb21wOw0KKw0KKwkvKiBsb2NrIGZvciBjbWRxIGFjY2VzcyAqLw0KKwlzdHJ1Y3QgbXV0 ZXgJCQljaGFuX2xvY2s7DQogfTsNCiANCiBzdHJ1Y3QgbXRrX2NydGNfc3RhdGUgew0KQEAgLTU2 LDYgKzY0LDExIEBAIHN0cnVjdCBtdGtfY3J0Y19zdGF0ZSB7DQogCXVuc2lnbmVkIGludAkJCXBl bmRpbmdfd2lkdGg7DQogCXVuc2lnbmVkIGludAkJCXBlbmRpbmdfaGVpZ2h0Ow0KIAl1bnNpZ25l ZCBpbnQJCQlwZW5kaW5nX3ZyZWZyZXNoOw0KKwlzdHJ1Y3QgY21kcV9wa3QJCQkqY21kcV9oYW5k bGU7DQorfTsNCisNCitzdHJ1Y3QgbXRrX2NtZHFfY2JfZGF0YSB7DQorCXN0cnVjdCBjbWRxX3Br dAkJCSpjbWRxX2hhbmRsZTsNCiB9Ow0KIA0KIHN0YXRpYyBpbmxpbmUgc3RydWN0IG10a19kcm1f Y3J0YyAqdG9fbXRrX2NydGMoc3RydWN0IGRybV9jcnRjICpjKQ0KQEAgLTIyOSw2ICsyNDIsNTAg QEAgc3RydWN0IG10a19kZHBfY29tcCAqbXRrX2RybV9kZHBfY29tcF9mb3JfcGxhbmUoc3RydWN0 IGRybV9jcnRjICpjcnRjLA0KIAlyZXR1cm4gTlVMTDsNCiB9DQogDQorI2lmZGVmIENPTkZJR19N VEtfQ01EUQ0KK3N0YXRpYyB2b2lkIGRkcF9jbWRxX2NiKHN0cnVjdCBjbWRxX2NiX2RhdGEgZGF0 YSkNCit7DQorCXN0cnVjdCBtdGtfY21kcV9jYl9kYXRhICpjYl9kYXRhID0gZGF0YS5kYXRhOw0K Kw0KKwljbWRxX3BrdF9kZXN0cm95KGNiX2RhdGEtPmNtZHFfaGFuZGxlKTsNCisJa2ZyZWUoY2Jf ZGF0YSk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIG10a19jbWRxX2FjcXVpcmUoc3RydWN0IGRybV9j cnRjICpjcnRjKQ0KK3sNCisJc3RydWN0IG10a19jcnRjX3N0YXRlICptdGtfY3J0Y19zdGF0ZSA9 DQorCQkJdG9fbXRrX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOw0KKwlzdHJ1Y3QgbXRrX2RybV9j cnRjICptdGtfY3J0YyA9IHRvX210a19jcnRjKGNydGMpOw0KKw0KKwltdXRleF9sb2NrKCZtdGtf Y3J0Yy0+Y2hhbl9sb2NrKTsNCisJbXRrX2NydGNfc3RhdGUtPmNtZHFfaGFuZGxlID0NCisJCQlj bWRxX3BrdF9jcmVhdGUobXRrX2NydGMtPmNtZHFfY2xpZW50LA0KKwkJCQkJUEFHRV9TSVpFKTsN CisJY21kcV9wa3RfY2xlYXJfZXZlbnQobXRrX2NydGNfc3RhdGUtPmNtZHFfaGFuZGxlLA0KKwkJ CSAgICAgbXRrX2NydGMtPmNtZHFfZXZlbnQpOw0KKwljbWRxX3BrdF93ZmUobXRrX2NydGNfc3Rh dGUtPmNtZHFfaGFuZGxlLCBtdGtfY3J0Yy0+Y21kcV9ldmVudCk7DQorfQ0KKw0KK3N0YXRpYyB2 b2lkIG10a19jbWRxX3JlbGVhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KK3sNCisJc3RydWN0 IG10a19jcnRjX3N0YXRlICptdGtfY3J0Y19zdGF0ZSA9DQorCQkJdG9fbXRrX2NydGNfc3RhdGUo Y3J0Yy0+c3RhdGUpOw0KKwlzdHJ1Y3QgbXRrX2RybV9jcnRjICptdGtfY3J0YyA9IHRvX210a19j cnRjKGNydGMpOw0KKwlzdHJ1Y3QgbXRrX2NtZHFfY2JfZGF0YSAqY2JfZGF0YTsNCisNCisJY2Jf ZGF0YSA9IGttYWxsb2Moc2l6ZW9mKCpjYl9kYXRhKSwgR0ZQX0tFUk5FTCk7DQorCWlmICghY2Jf ZGF0YSkgew0KKwkJRFJNX0RFVl9FUlJPUihjcnRjLT5kZXYtPmRldiwgIkZhaWxlZCB0byBhbGxv YyBjYl9kYXRhXG4iKTsNCisJCXJldHVybjsNCisJfQ0KKw0KKwljYl9kYXRhLT5jbWRxX2hhbmRs ZSA9IG10a19jcnRjX3N0YXRlLT5jbWRxX2hhbmRsZTsNCisJY21kcV9wa3RfZmx1c2hfYXN5bmMo bXRrX2NydGNfc3RhdGUtPmNtZHFfaGFuZGxlLA0KKwkJCSAgICAgZGRwX2NtZHFfY2IsIGNiX2Rh dGEpOw0KKwltdXRleF91bmxvY2soJm10a19jcnRjLT5jaGFuX2xvY2spOw0KK30NCisjZW5kaWYN CisNCiBzdGF0aWMgaW50IG10a19jcnRjX2RkcF9od19pbml0KHN0cnVjdCBtdGtfZHJtX2NydGMg Km10a19jcnRjKQ0KIHsNCiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJm10a19jcnRjLT5iYXNl Ow0KQEAgLTM4Myw3ICs0NDAsOCBAQCBzdGF0aWMgdm9pZCBtdGtfY3J0Y19kZHBfY29uZmlnKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykNCiAJaWYgKHN0YXRlLT5wZW5kaW5nX2NvbmZpZykgew0KIAkJ bXRrX2RkcF9jb21wX2NvbmZpZyhjb21wLCBzdGF0ZS0+cGVuZGluZ193aWR0aCwNCiAJCQkJICAg IHN0YXRlLT5wZW5kaW5nX2hlaWdodCwNCi0JCQkJICAgIHN0YXRlLT5wZW5kaW5nX3ZyZWZyZXNo LCAwLCBOVUxMKTsNCisJCQkJICAgIHN0YXRlLT5wZW5kaW5nX3ZyZWZyZXNoLCAwLA0KKwkJCQkg ICAgc3RhdGUtPmNtZHFfaGFuZGxlKTsNCiANCiAJCXN0YXRlLT5wZW5kaW5nX2NvbmZpZyA9IGZh bHNlOw0KIAl9DQpAQCAtNDAzLDEzICs0NjEsNTQgQEAgc3RhdGljIHZvaWQgbXRrX2NydGNfZGRw X2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQogDQogCQkJaWYgKGNvbXApDQogCQkJCW10 a19kZHBfY29tcF9sYXllcl9jb25maWcoY29tcCwgbG9jYWxfbGF5ZXIsDQotCQkJCQkJCSAgcGxh bmVfc3RhdGUsIE5VTEwpOw0KKwkJCQkJCQkgIHBsYW5lX3N0YXRlLA0KKwkJCQkJCQkgIHN0YXRl LT5jbWRxX2hhbmRsZSk7DQogCQkJcGxhbmVfc3RhdGUtPnBlbmRpbmcuY29uZmlnID0gZmFsc2U7 DQogCQl9DQogCQltdGtfY3J0Yy0+cGVuZGluZ19wbGFuZXMgPSBmYWxzZTsNCiAJfQ0KIH0NCiAN CitzdGF0aWMgdm9pZCBtdGtfZHJtX2NydGNfaHdfY29uZmlnKHN0cnVjdCBtdGtfZHJtX2NydGMg Km10a19jcnRjKQ0KK3sNCisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJm10a19jcnRjLT5iYXNl Ow0KKwlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpwcml2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0 ZTsNCisJdW5zaWduZWQgaW50IHBlbmRpbmdfcGxhbmVzID0gMDsNCisJaW50IGk7DQorDQorCWZv ciAoaSA9IDA7IGkgPCBtdGtfY3J0Yy0+bGF5ZXJfbnI7IGkrKykgew0KKwkJc3RydWN0IGRybV9w bGFuZSAqcGxhbmUgPSAmbXRrX2NydGMtPnBsYW5lc1tpXTsNCisJCXN0cnVjdCBtdGtfcGxhbmVf c3RhdGUgKnBsYW5lX3N0YXRlOw0KKw0KKwkJcGxhbmVfc3RhdGUgPSB0b19tdGtfcGxhbmVfc3Rh dGUocGxhbmUtPnN0YXRlKTsNCisJCWlmIChwbGFuZV9zdGF0ZS0+cGVuZGluZy5kaXJ0eSkgew0K KwkJCXBsYW5lX3N0YXRlLT5wZW5kaW5nLmNvbmZpZyA9IHRydWU7DQorCQkJcGxhbmVfc3RhdGUt PnBlbmRpbmcuZGlydHkgPSBmYWxzZTsNCisJCQlwZW5kaW5nX3BsYW5lcyB8PSBCSVQoaSk7DQor CQl9IGVsc2UgaWYgKHBsYW5lX3N0YXRlLT5wZW5kaW5nLmFzeW5jX2RpcnR5KSB7DQorCQkJcGxh bmVfc3RhdGUtPnBlbmRpbmcuY29uZmlnID0gdHJ1ZTsNCisJCQlwbGFuZV9zdGF0ZS0+cGVuZGlu Zy5hc3luY191cGRhdGUgPSBmYWxzZTsNCisJCQlwbGFuZV9zdGF0ZS0+cGVuZGluZy5hc3luY19k aXJ0eSA9IGZhbHNlOw0KKwkJCXBlbmRpbmdfcGxhbmVzIHw9IEJJVChpKTsNCisJCX0NCisJfQ0K KwlpZiAocGVuZGluZ19wbGFuZXMpDQorCQltdGtfY3J0Yy0+cGVuZGluZ19wbGFuZXMgPSB0cnVl Ow0KKw0KKwlpZiAocHJpdi0+ZGF0YS0+c2hhZG93X3JlZ2lzdGVyKSB7DQorCQltdGtfZGlzcF9t dXRleF9hY3F1aXJlKG10a19jcnRjLT5tdXRleCk7DQorCQltdGtfY3J0Y19kZHBfY29uZmlnKGNy dGMpOw0KKwkJbXRrX2Rpc3BfbXV0ZXhfcmVsZWFzZShtdGtfY3J0Yy0+bXV0ZXgpOw0KKwl9DQor I2lmZGVmIENPTkZJR19NVEtfQ01EUQ0KKwlpZiAobXRrX2NydGMtPmNtZHFfY2xpZW50KSB7DQor CQltdGtfY21kcV9hY3F1aXJlKGNydGMpOw0KKwkJbXRrX2NydGNfZGRwX2NvbmZpZyhjcnRjKTsN CisJCW10a19jbWRxX3JlbGVhc2UoY3J0Yyk7DQorCX0NCisjZW5kaWYNCit9DQorDQogaW50IG10 a19kcm1fY3J0Y19wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLA0KIAkJCSAgICAgc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqc3RhdGUpDQog ew0KQEAgLTQyNSwzNCArNTI0LDE1IEBAIGludCBtdGtfZHJtX2NydGNfcGxhbmVfY2hlY2soc3Ry dWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwNCiB2b2lkIG10a19k cm1fY3J0Y19hc3luY191cGRhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwNCiAJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3N0YXRl KQ0KIHsNCi0Jc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdiA9IGNydGMtPmRldi0+ZGV2X3By aXZhdGU7DQogCXN0cnVjdCBtdGtfZHJtX2NydGMgKm10a19jcnRjID0gdG9fbXRrX2NydGMoY3J0 Yyk7DQogCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzICpwbGFuZV9oZWxwZXJf ZnVuY3MgPQ0KIAkJCXBsYW5lLT5oZWxwZXJfcHJpdmF0ZTsNCi0JaW50IGk7DQogDQogCWlmICgh bXRrX2NydGMtPmVuYWJsZWQpDQogCQlyZXR1cm47DQogDQogCXBsYW5lX2hlbHBlcl9mdW5jcy0+ YXRvbWljX3VwZGF0ZShwbGFuZSwgbmV3X3N0YXRlKTsNCi0NCi0JZm9yIChpID0gMDsgaSA8IG10 a19jcnRjLT5sYXllcl9ucjsgaSsrKSB7DQotCQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9ICZt dGtfY3J0Yy0+cGxhbmVzW2ldOw0KLQkJc3RydWN0IG10a19wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGU7DQotDQotCQlwbGFuZV9zdGF0ZSA9IHRvX210a19wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUp Ow0KLQkJaWYgKHBsYW5lX3N0YXRlLT5wZW5kaW5nLmFzeW5jX2RpcnR5KSB7DQotCQkJcGxhbmVf c3RhdGUtPnBlbmRpbmcuY29uZmlnID0gdHJ1ZTsNCi0JCQlwbGFuZV9zdGF0ZS0+cGVuZGluZy5h c3luY191cGRhdGUgPSBmYWxzZTsNCi0JCQlwbGFuZV9zdGF0ZS0+cGVuZGluZy5hc3luY19kaXJ0 eSA9IGZhbHNlOw0KLQkJfQ0KLQl9DQotCW10a19jcnRjLT5wZW5kaW5nX3BsYW5lcyA9IHRydWU7 DQotCWlmIChwcml2LT5kYXRhLT5zaGFkb3dfcmVnaXN0ZXIpIHsNCi0JCW10a19kaXNwX211dGV4 X2FjcXVpcmUobXRrX2NydGMtPm11dGV4KTsNCi0JCW10a19jcnRjX2RkcF9jb25maWcoY3J0Yyk7 DQotCQltdGtfZGlzcF9tdXRleF9yZWxlYXNlKG10a19jcnRjLT5tdXRleCk7DQotCX0NCisJbXRr X2RybV9jcnRjX2h3X2NvbmZpZyhtdGtfY3J0Yyk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIG10a19k cm1fY3J0Y19hdG9taWNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCkBAIC01MzYsMzQg KzYxNiwxNCBAQCBzdGF0aWMgdm9pZCBtdGtfZHJtX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywNCiAJCQkJICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSkNCiB7DQogCXN0cnVjdCBtdGtfZHJtX2NydGMgKm10a19jcnRjID0gdG9fbXRrX2Ny dGMoY3J0Yyk7DQotCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXYgPSBjcnRjLT5kZXYtPmRl dl9wcml2YXRlOw0KLQl1bnNpZ25lZCBpbnQgcGVuZGluZ19wbGFuZXMgPSAwOw0KIAlpbnQgaTsN CiANCiAJaWYgKG10a19jcnRjLT5ldmVudCkNCiAJCW10a19jcnRjLT5wZW5kaW5nX25lZWRzX3Zi bGFuayA9IHRydWU7DQotCWZvciAoaSA9IDA7IGkgPCBtdGtfY3J0Yy0+bGF5ZXJfbnI7IGkrKykg ew0KLQkJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSAmbXRrX2NydGMtPnBsYW5lc1tpXTsNCi0J CXN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOw0KLQ0KLQkJcGxhbmVfc3RhdGUg PSB0b19tdGtfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsNCi0JCWlmIChwbGFuZV9zdGF0ZS0+ cGVuZGluZy5kaXJ0eSkgew0KLQkJCXBsYW5lX3N0YXRlLT5wZW5kaW5nLmNvbmZpZyA9IHRydWU7 DQotCQkJcGxhbmVfc3RhdGUtPnBlbmRpbmcuZGlydHkgPSBmYWxzZTsNCi0JCQlwZW5kaW5nX3Bs YW5lcyB8PSBCSVQoaSk7DQotCQl9DQotCX0NCi0JaWYgKHBlbmRpbmdfcGxhbmVzKQ0KLQkJbXRr X2NydGMtPnBlbmRpbmdfcGxhbmVzID0gdHJ1ZTsNCiAJaWYgKGNydGMtPnN0YXRlLT5jb2xvcl9t Z210X2NoYW5nZWQpDQogCQlmb3IgKGkgPSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25yOyBp KyspDQogCQkJbXRrX2RkcF9nYW1tYV9zZXQobXRrX2NydGMtPmRkcF9jb21wW2ldLCBjcnRjLT5z dGF0ZSk7DQotDQotCWlmIChwcml2LT5kYXRhLT5zaGFkb3dfcmVnaXN0ZXIpIHsNCi0JCW10a19k aXNwX211dGV4X2FjcXVpcmUobXRrX2NydGMtPm11dGV4KTsNCi0JCW10a19jcnRjX2RkcF9jb25m aWcoY3J0Yyk7DQotCQltdGtfZGlzcF9tdXRleF9yZWxlYXNlKG10a19jcnRjLT5tdXRleCk7DQot CX0NCisJbXRrX2RybV9jcnRjX2h3X2NvbmZpZyhtdGtfY3J0Yyk7DQogfQ0KIA0KIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgbXRrX2NydGNfZnVuY3MgPSB7DQpAQCAtNjEzLDcg KzY3Myw3IEBAIHZvaWQgbXRrX2NydGNfZGRwX2lycShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0 cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApDQogCXN0cnVjdCBtdGtfZHJtX2NydGMgKm10a19jcnRj ID0gdG9fbXRrX2NydGMoY3J0Yyk7DQogCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXYgPSBj cnRjLT5kZXYtPmRldl9wcml2YXRlOw0KIA0KLQlpZiAoIXByaXYtPmRhdGEtPnNoYWRvd19yZWdp c3RlcikNCisJaWYgKCFwcml2LT5kYXRhLT5zaGFkb3dfcmVnaXN0ZXIgJiYgIW10a19jcnRjLT5j bWRxX2NsaWVudCkNCiAJCW10a19jcnRjX2RkcF9jb25maWcoY3J0Yyk7DQogDQogCW10a19kcm1f ZmluaXNoX3BhZ2VfZmxpcChtdGtfY3J0Yyk7DQpAQCAtNzU1LDYgKzgxNSwxOSBAQCBpbnQgbXRr X2RybV9jcnRjX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwNCiAJZHJtX21vZGVf Y3J0Y19zZXRfZ2FtbWFfc2l6ZSgmbXRrX2NydGMtPmJhc2UsIE1US19MVVRfU0laRSk7DQogCWRy bV9jcnRjX2VuYWJsZV9jb2xvcl9tZ210KCZtdGtfY3J0Yy0+YmFzZSwgMCwgZmFsc2UsIE1US19M VVRfU0laRSk7DQogCXByaXYtPm51bV9waXBlcysrOw0KLQ0KKyNpZmRlZiBDT05GSUdfTVRLX0NN RFENCisJbXRrX2NydGMtPmNtZHFfY2xpZW50ID0NCisJCQljbWRxX21ib3hfY3JlYXRlKGRldiwg ZHJtX2NydGNfaW5kZXgoJm10a19jcnRjLT5iYXNlKSwNCisJCQkJCSAyMDAwKTsNCisJb2ZfcHJv cGVydHlfcmVhZF91MzJfaW5kZXgoZGV2LT5vZl9ub2RlLCAibWVkaWF0ZWssZ2NlLWV2ZW50cyIs DQorCQkJCSAgIGRybV9jcnRjX2luZGV4KCZtdGtfY3J0Yy0+YmFzZSksDQorCQkJCSAgICZtdGtf Y3J0Yy0+Y21kcV9ldmVudCk7DQorCWlmIChJU19FUlIobXRrX2NydGMtPmNtZHFfY2xpZW50KSkg ew0KKwkJZGV2X2RiZyhkZXYsICJtdGtfY3J0YyAlZCBmYWlsZWQgdG8gY3JlYXRlIG1haWxib3gg Y2xpZW50LCB3cml0aW5nIHJlZ2lzdGVyIGJ5IENQVSBub3dcbiIsDQorCQkJZHJtX2NydGNfaW5k ZXgoJm10a19jcnRjLT5iYXNlKSk7DQorCQltdGtfY3J0Yy0+Y21kcV9jbGllbnQgPSBOVUxMOw0K Kwl9DQorCW11dGV4X2luaXQoJm10a19jcnRjLT5jaGFuX2xvY2spOw0KKyNlbmRpZg0KIAlyZXR1 cm4gMDsNCiB9DQotLSANCjIuMTguMA0K