Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2892785pxa; Tue, 18 Aug 2020 00:16:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxHK9sJO7lcZZukH/Ks+zU/43js6db2K8iXJWwaoO/SS197nBxs+vupJysM8nmGVLtijV7/ X-Received: by 2002:a17:906:74d0:: with SMTP id z16mr18247824ejl.51.1597735003290; Tue, 18 Aug 2020 00:16:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597735003; cv=none; d=google.com; s=arc-20160816; b=BzOvOu9AuwQJnJnC5ScDdZCOJ6PkSTQWCB9cb81Jihpz04H40ttkVmOWWuTNtHwgNl abjiz7fjcYlV03IbwxxrnG2nar4diuSGSE9PqJg3/QKsODAd0AQi5dz3yNOzg9BLc95Y 4JlleEQkRKXjCY7Ug0PgotyO5ywk/Mwt4/kwf3Yw4VvtOIroix++aofpnXhf1JBO9tze JqhqH4b69MkAX3TJgASNf8JhQhwQAnJHTM+K13dwG+0gK0VuNpsYj73zV1ypVZaupx9/ uqy1x66nOp6YxCHDybQzaHikQD2djHZQfog1JVNyLle8AHdh1aydHq2IC9s9KkMf84Eh +fZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=FmFBz7J4GxQt1czcQ4tTLZK4LlpwruRc1sPGAK/2PFc=; b=bXty2gsvt0R01xls+erGoB1HWTerYXtaLx3Om55q3z2xv01ODWaJ0qFwFQbo7XDDNd YKW7pfRI4j4ZDfXwgLTSMP+NPXM7gploQA1P+WbnMnLOFeXsgCXufpESchF94fO/k9Qr f3r0OclbOGTo/VgmjPAIGsLb6xiLdBiH7e0toWK7AtbAgl3M7bWDyhBtIMkouPsPXdBy BWJqBw7JRLN9XUkxw7vglFUlfcEb5QWQ+VBmIWFgeUrArK46WjD3w2XUCsj1qUiUwSxZ VzHHcXIRgPW9QjbQdaQNFl3kaTwdv0EtK6ORDl0a54fpMXBrgMUt6LUnI3G03+z1hiAV jOLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=OA218WSD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b2si13194996edy.370.2020.08.18.00.16.19; Tue, 18 Aug 2020 00:16:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=OA218WSD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726753AbgHRHOx (ORCPT + 99 others); Tue, 18 Aug 2020 03:14:53 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:55374 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726694AbgHRHOu (ORCPT ); Tue, 18 Aug 2020 03:14:50 -0400 X-UUID: bbf1499bf7f34e28892498aee8411796-20200818 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=FmFBz7J4GxQt1czcQ4tTLZK4LlpwruRc1sPGAK/2PFc=; b=OA218WSDaO3VF5vCXtBtMP0Cb2d2nJ8NRTb9PpXy9ijWCB8D2a4M4KVyTaG//4E0VcGhVnht1LPg8uL0nbYPjhgNJ9D6BgaNZKjTKBYMz6E0FxeCJZrp6ycQX3rplaXM7zCjZjZStMHEY0vK8rNt/m+Vh+GLjlQu70G4PmzRYro=; X-UUID: bbf1499bf7f34e28892498aee8411796-20200818 Received: from mtkcas11.mediatek.inc [(172.21.101.40)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 455585660; Tue, 18 Aug 2020 15:14:38 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 18 Aug 2020 15:14:35 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 18 Aug 2020 15:14:36 +0800 From: Landen Chao To: , , , , , CC: , , , , , , , , , Landen Chao Subject: [PATCH net-next v2 3/7] net: dsa: mt7530: Extend device data ready for adding a new hardware Date: Tue, 18 Aug 2020 15:14:08 +0800 Message-ID: X-Mailer: git-send-email 2.18.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain 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 QWRkIGEgc3RydWN0dXJlIGhvbGRpbmcgcmVxdWlyZWQgb3BlcmF0aW9ucyBmb3IgZWFjaCBkZXZp Y2Ugc3VjaCBhcyBkZXZpY2UNCmluaXRpYWxpemF0aW9uLCBQSFkgcG9ydCByZWFkIG9yIHdyaXRl LCBhIGNoZWNrZXIgd2hldGhlciBQSFkgaW50ZXJmYWNlIGlzDQpzdXBwb3J0ZWQgb24gYSBjZXJ0 YWluIHBvcnQsIE1BQyBwb3J0IHNldHVwIGZvciBlaXRoZXIgYnVzIHBhZCBvciBhDQpzcGVjaWZp YyBQSFkgaW50ZXJmYWNlLg0KDQpUaGUgcGF0Y2ggaXMgZG9uZSBmb3IgcmVhZHkgYWRkaW5nIGEg bmV3IGhhcmR3YXJlIE1UNzUzMS4NCg0KU2lnbmVkLW9mZi1ieTogTGFuZGVuIENoYW8gPGxhbmRl bi5jaGFvQG1lZGlhdGVrLmNvbT4NClNpZ25lZC1vZmYtYnk6IFNlYW4gV2FuZyA8c2Vhbi53YW5n QG1lZGlhdGVrLmNvbT4NCi0tLQ0KIGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYyB8IDI3MiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0NCiBkcml2ZXJzL25ldC9kc2EvbXQ3 NTMwLmggfCAgMzcgKysrKystDQogMiBmaWxlcyBjaGFuZ2VkLCAyNDAgaW5zZXJ0aW9ucygrKSwg NjkgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMg Yi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMNCmluZGV4IDBmZDUwNzk4YWE0Mi4uZDMwYjQxNzI1 YjRkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jDQorKysgYi9kcml2ZXJz L25ldC9kc2EvbXQ3NTMwLmMNCkBAIC0zNzIsOCArMzcyLDkgQEAgbXQ3NTMwX2ZkYl93cml0ZShz dHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYsIHUxNiB2aWQsDQogCQltdDc1MzBfd3JpdGUocHJpdiwg TVQ3NTMwX0FUQTEgKyAoaSAqIDQpLCByZWdbaV0pOw0KIH0NCiANCisvKiBTZXR1cCBUWCBjaXJj dWl0IGluY2x1aW5nIHJlbGV2YW50IFBBRCBhbmQgZHJpdmluZyAqLw0KIHN0YXRpYyBpbnQNCi1t dDc1MzBfcGFkX2Nsa19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBtb2RlKQ0KK210 NzUzMF9wYWRfY2xrX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgcGh5X2ludGVyZmFjZV90 IGludGVyZmFjZSkNCiB7DQogCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0K IAl1MzIgbmNwbzEsIHNzY19kZWx0YSwgdHJnaW50LCBpLCB4dGFsOw0KQEAgLTM4Nyw3ICszODgs NyBAQCBtdDc1MzBfcGFkX2Nsa19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBtb2Rl KQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCi0Jc3dpdGNoIChtb2RlKSB7DQorCXN3aXRj aCAoaW50ZXJmYWNlKSB7DQogCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOg0KIAkJdHJn aW50ID0gMDsNCiAJCS8qIFBMTCBmcmVxdWVuY3k6IDEyNU1IeiAqLw0KQEAgLTQwOSw3ICs0MTAs OCBAQCBtdDc1MzBfcGFkX2Nsa19zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBtb2Rl KQ0KIAkJfQ0KIAkJYnJlYWs7DQogCWRlZmF1bHQ6DQotCQlkZXZfZXJyKHByaXYtPmRldiwgInhN SUkgbW9kZSAlZCBub3Qgc3VwcG9ydGVkXG4iLCBtb2RlKTsNCisJCWRldl9lcnIocHJpdi0+ZGV2 LCAieE1JSSBpbnRlcmZhY2UgJWQgbm90IHN1cHBvcnRlZFxuIiwNCisJCQlpbnRlcmZhY2UpOw0K IAkJcmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCkBAIC0xMzQ5LDEyICsxMzUxLDExIEBAIG10NzUz MF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpDQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0 aWMgdm9pZCBtdDc1MzBfcGh5bGlua19tYWNfY29uZmlnKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywg aW50IHBvcnQsDQotCQkJCSAgICAgIHVuc2lnbmVkIGludCBtb2RlLA0KLQkJCQkgICAgICBjb25z dCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkNCitzdGF0aWMgYm9vbA0KK210NzUz MF9waHlfbW9kZV9zdXBwb3J0ZWQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwNCisJ CQkgIGNvbnN0IHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKQ0KIHsNCiAJc3RydWN0 IG10NzUzMF9wcml2ICpwcml2ID0gZHMtPnByaXY7DQotCXUzMiBtY3JfY3VyLCBtY3JfbmV3Ow0K IA0KIAlzd2l0Y2ggKHBvcnQpIHsNCiAJY2FzZSAwOiAvKiBJbnRlcm5hbCBwaHkgKi8NCkBAIC0x MzYzLDMzICsxMzY0LDExNCBAQCBzdGF0aWMgdm9pZCBtdDc1MzBfcGh5bGlua19tYWNfY29uZmln KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsDQogCWNhc2UgMzoNCiAJY2FzZSA0Og0K IAkJaWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUkpDQotCQkJ cmV0dXJuOw0KKwkJCWdvdG8gdW5zdXBwb3J0ZWQ7DQogCQlicmVhazsNCiAJY2FzZSA1OiAvKiAy bmQgY3B1IHBvcnQgd2l0aCBwaHkgb2YgcG9ydCAwIG9yIDQgLyBleHRlcm5hbCBwaHkgKi8NCi0J CWlmIChwcml2LT5wNV9pbnRlcmZhY2UgPT0gc3RhdGUtPmludGVyZmFjZSkNCi0JCQlicmVhazsN CiAJCWlmICghcGh5X2ludGVyZmFjZV9tb2RlX2lzX3JnbWlpKHN0YXRlLT5pbnRlcmZhY2UpICYm DQogCQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfTUlJICYmDQog CQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfR01JSSkNCi0JCQly ZXR1cm47DQorCQkJZ290byB1bnN1cHBvcnRlZDsNCisJCWJyZWFrOw0KKwljYXNlIDY6IC8qIDFz dCBjcHUgcG9ydCAqLw0KKwkJaWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9N T0RFX1JHTUlJICYmDQorCQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01P REVfVFJHTUlJKQ0KKwkJCWdvdG8gdW5zdXBwb3J0ZWQ7DQorCQlicmVhazsNCisJZGVmYXVsdDoN CisJCWRldl9lcnIocHJpdi0+ZGV2LCAiJXM6IHVuc3VwcG9ydGVkIHBvcnQ6ICVpXG4iLCBfX2Z1 bmNfXywNCisJCQlwb3J0KTsNCisJCWdvdG8gdW5zdXBwb3J0ZWQ7DQorCX0NCisNCisJcmV0dXJu IHRydWU7DQorDQordW5zdXBwb3J0ZWQ6DQorCXJldHVybiBmYWxzZTsNCit9DQorDQorc3RhdGlj IGJvb2wNCittdDc1M3hfcGh5X21vZGVfc3VwcG9ydGVkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywg aW50IHBvcnQsDQorCQkJICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkN Cit7DQorCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KKw0KKwlyZXR1cm4g cHJpdi0+aW5mby0+cGh5X21vZGVfc3VwcG9ydGVkKGRzLCBwb3J0LCBzdGF0ZSk7DQorfQ0KKw0K K3N0YXRpYyBpbnQNCittdDc1M3hfcGFkX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgY29u c3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpDQorew0KKwlzdHJ1Y3QgbXQ3NTMw X3ByaXYgKnByaXYgPSBkcy0+cHJpdjsNCisNCisJcmV0dXJuIHByaXYtPmluZm8tPnBhZF9zZXR1 cChkcywgc3RhdGUtPmludGVyZmFjZSk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCittdDc1MzBfbWFj X2NvbmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9k ZSwNCisJCSAgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSkNCit7DQorCXN0cnVjdCBtdDc1MzBf cHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KKw0KKwkvKiBPbmx5IG5lZWQgdG8gc2V0dXAgcG9ydDUu ICovDQorCWlmIChwb3J0ICE9IDUpDQorCQlyZXR1cm4gMDsNCisNCisJbXQ3NTMwX3NldHVwX3Bv cnQ1KHByaXYtPmRzLCBpbnRlcmZhY2UpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGlj IGludA0KK210NzUzeF9tYWNfY29uZmlnKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQs IHVuc2lnbmVkIGludCBtb2RlLA0KKwkJICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRl ICpzdGF0ZSkNCit7DQorCXN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KKw0K KwlyZXR1cm4gcHJpdi0+aW5mby0+bWFjX3BvcnRfY29uZmlnKGRzLCBwb3J0LCBtb2RlLCBzdGF0 ZS0+aW50ZXJmYWNlKTsNCit9DQorDQorc3RhdGljIHZvaWQNCittdDc1M3hfcGh5bGlua19tYWNf Y29uZmlnKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIHVuc2lnbmVkIGludCBtb2Rl LA0KKwkJCSAgY29uc3Qgc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpDQorew0KKwlz dHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsNCisJdTMyIG1jcl9jdXIsIG1jcl9u ZXc7DQorDQorCWlmICghbXQ3NTN4X3BoeV9tb2RlX3N1cHBvcnRlZChkcywgcG9ydCwgc3RhdGUp KQ0KKwkJZ290byB1bnN1cHBvcnRlZDsNCisNCisJc3dpdGNoIChwb3J0KSB7DQorCWNhc2UgMDog LyogSW50ZXJuYWwgcGh5ICovDQorCWNhc2UgMToNCisJY2FzZSAyOg0KKwljYXNlIDM6DQorCWNh c2UgNDoNCisJCWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJ KQ0KKwkJCWdvdG8gdW5zdXBwb3J0ZWQ7DQorCQlicmVhazsNCisJY2FzZSA1OiAvKiAybmQgY3B1 IHBvcnQgd2l0aCBwaHkgb2YgcG9ydCAwIG9yIDQgLyBleHRlcm5hbCBwaHkgKi8NCisJCWlmIChw cml2LT5wNV9pbnRlcmZhY2UgPT0gc3RhdGUtPmludGVyZmFjZSkNCisJCQlicmVhazsNCisNCisJ CWlmIChtdDc1M3hfbWFjX2NvbmZpZyhkcywgcG9ydCwgbW9kZSwgc3RhdGUpIDwgMCkNCisJCQln b3RvIHVuc3VwcG9ydGVkOw0KIA0KLQkJbXQ3NTMwX3NldHVwX3BvcnQ1KGRzLCBzdGF0ZS0+aW50 ZXJmYWNlKTsNCiAJCWJyZWFrOw0KIAljYXNlIDY6IC8qIDFzdCBjcHUgcG9ydCAqLw0KIAkJaWYg KHByaXYtPnA2X2ludGVyZmFjZSA9PSBzdGF0ZS0+aW50ZXJmYWNlKQ0KIAkJCWJyZWFrOw0KIA0K LQkJaWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJICYmDQot CQkgICAgc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKQ0KLQkJ CXJldHVybjsNCisJCW10NzUzeF9wYWRfc2V0dXAoZHMsIHN0YXRlKTsNCiANCi0JCS8qIFNldHVw IFRYIGNpcmN1aXQgaW5jbHVpbmcgcmVsZXZhbnQgUEFEIGFuZCBkcml2aW5nICovDQotCQltdDc1 MzBfcGFkX2Nsa19zZXR1cChkcywgc3RhdGUtPmludGVyZmFjZSk7DQorCQlpZiAobXQ3NTN4X21h Y19jb25maWcoZHMsIHBvcnQsIG1vZGUsIHN0YXRlKSA8IDApDQorCQkJZ290byB1bnN1cHBvcnRl ZDsNCiANCiAJCXByaXYtPnA2X2ludGVyZmFjZSA9IHN0YXRlLT5pbnRlcmZhY2U7DQogCQlicmVh azsNCiAJZGVmYXVsdDoNCi0JCWRldl9lcnIoZHMtPmRldiwgIiVzOiB1bnN1cHBvcnRlZCBwb3J0 OiAlaVxuIiwgX19mdW5jX18sIHBvcnQpOw0KK3Vuc3VwcG9ydGVkOg0KKwkJZGV2X2Vycihkcy0+ ZGV2LCAiJXM6IHVuc3VwcG9ydGVkICVzIHBvcnQ6ICVpXG4iLA0KKwkJCV9fZnVuY19fLCBwaHlf bW9kZXMoc3RhdGUtPmludGVyZmFjZSksIHBvcnQpOw0KIAkJcmV0dXJuOw0KIAl9DQogDQpAQCAt MTQ1Myw2MSArMTUzNSw0NCBAQCBzdGF0aWMgdm9pZCBtdDc1MzBfcGh5bGlua19tYWNfbGlua191 cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LA0KIAltdDc1MzBfc2V0KHByaXYsIE1U NzUzMF9QTUNSX1AocG9ydCksIG1jcik7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIG10NzUzMF9waHls aW5rX3ZhbGlkYXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsDQotCQkJCSAgICB1 bnNpZ25lZCBsb25nICpzdXBwb3J0ZWQsDQotCQkJCSAgICBzdHJ1Y3QgcGh5bGlua19saW5rX3N0 YXRlICpzdGF0ZSkNCitzdGF0aWMgdm9pZA0KK210NzUzMF9tYWNfcG9ydF92YWxpZGF0ZShzdHJ1 Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LA0KKwkJCSB1bnNpZ25lZCBsb25nICpzdXBwb3J0 ZWQpDQogew0KKwlpZiAocG9ydCA9PSA1KQ0KKwkJcGh5bGlua19zZXQoc3VwcG9ydGVkLCAxMDAw YmFzZVhfRnVsbCk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQorbXQ3NTN4X3BoeWxpbmtfdmFsaWRh dGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwNCisJCQl1bnNpZ25lZCBsb25nICpz dXBwb3J0ZWQsDQorCQkJc3RydWN0IHBoeWxpbmtfbGlua19zdGF0ZSAqc3RhdGUpDQorew0KKwlz dHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsNCiAJX19FVEhUT09MX0RFQ0xBUkVf TElOS19NT0RFX01BU0sobWFzaykgPSB7IDAsIH07DQogDQotCXN3aXRjaCAocG9ydCkgew0KLQlj YXNlIDA6IC8qIEludGVybmFsIHBoeSAqLw0KLQljYXNlIDE6DQotCWNhc2UgMjoNCi0JY2FzZSAz Og0KLQljYXNlIDQ6DQotCQlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01P REVfTkEgJiYNCi0JCSAgICBzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9H TUlJKQ0KLQkJCWdvdG8gdW5zdXBwb3J0ZWQ7DQotCQlicmVhazsNCi0JY2FzZSA1OiAvKiAybmQg Y3B1IHBvcnQgd2l0aCBwaHkgb2YgcG9ydCAwIG9yIDQgLyBleHRlcm5hbCBwaHkgKi8NCi0JCWlm IChzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQSAmJg0KLQkJICAgICFw aHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkoc3RhdGUtPmludGVyZmFjZSkgJiYNCi0JCSAgICBz dGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUkgJiYNCi0JCSAgICBzdGF0 ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9HTUlJKQ0KLQkJCWdvdG8gdW5zdXBw b3J0ZWQ7DQotCQlicmVhazsNCi0JY2FzZSA2OiAvKiAxc3QgY3B1IHBvcnQgKi8NCi0JCWlmIChz dGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQSAmJg0KLQkJICAgIHN0YXRl LT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJICYmDQotCQkgICAgc3RhdGUt PmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKQ0KLQkJCWdvdG8gdW5zdXBw b3J0ZWQ7DQotCQlicmVhazsNCi0JZGVmYXVsdDoNCi0JCWRldl9lcnIoZHMtPmRldiwgIiVzOiB1 bnN1cHBvcnRlZCBwb3J0OiAlaVxuIiwgX19mdW5jX18sIHBvcnQpOw0KLXVuc3VwcG9ydGVkOg0K KwlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfTkEgJiYNCisJICAg ICFtdDc1M3hfcGh5X21vZGVfc3VwcG9ydGVkKGRzLCBwb3J0LCBzdGF0ZSkpIHsNCiAJCWxpbmtt b2RlX3plcm8oc3VwcG9ydGVkKTsNCiAJCXJldHVybjsNCiAJfQ0KIA0KIAlwaHlsaW5rX3NldF9w b3J0X21vZGVzKG1hc2spOw0KLQlwaHlsaW5rX3NldChtYXNrLCBBdXRvbmVnKTsNCiANCi0JaWYg KHN0YXRlLT5pbnRlcmZhY2UgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1RSR01JSSkgew0KLQkJcGh5 bGlua19zZXQobWFzaywgMTAwMGJhc2VUX0Z1bGwpOw0KLQl9IGVsc2Ugew0KKwlpZiAoc3RhdGUt PmludGVyZmFjZSAhPSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKSB7DQogCQlwaHlsaW5rX3Nl dChtYXNrLCAxMGJhc2VUX0hhbGYpOw0KIAkJcGh5bGlua19zZXQobWFzaywgMTBiYXNlVF9GdWxs KTsNCiAJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMGJhc2VUX0hhbGYpOw0KIAkJcGh5bGlua19zZXQo bWFzaywgMTAwYmFzZVRfRnVsbCk7DQotDQotCQlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQSFlf SU5URVJGQUNFX01PREVfTUlJKSB7DQotCQkJLyogTVQ3NTMwIGFuZCBNVDc1MzEgb25seSBzdXBw b3J0IDFHIGZ1bGwtZHVwbGV4LiAqLw0KLQkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMDBiYXNlVF9G dWxsKTsNCi0JCQlpZiAocG9ydCA9PSA1KQ0KLQkJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFz ZVhfRnVsbCk7DQotCQl9DQorCQlwaHlsaW5rX3NldChtYXNrLCBBdXRvbmVnKTsNCiAJfQ0KIA0K KwkvKiBNVDc1MzAgYW5kIE1UNzUzMSBvbmx5IHN1cHBvcnQgMUcgZnVsbC1kdXBsZXguICovDQor CWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9IFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUkpDQorCQlwaHls aW5rX3NldChtYXNrLCAxMDAwYmFzZVRfRnVsbCk7DQorDQorCXByaXYtPmluZm8tPm1hY19wb3J0 X3ZhbGlkYXRlKGRzLCBwb3J0LCBtYXNrKTsNCisNCiAJcGh5bGlua19zZXQobWFzaywgUGF1c2Up Ow0KIAlwaHlsaW5rX3NldChtYXNrLCBBc3ltX1BhdXNlKTsNCiANCkBAIC0xNTU1LDEyICsxNjIw LDQ1IEBAIG10NzUzMF9waHlsaW5rX21hY19saW5rX3N0YXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpk cywgaW50IHBvcnQsDQogCXJldHVybiAxOw0KIH0NCiANCitzdGF0aWMgaW50DQorbXQ3NTN4X3Bo eWxpbmtfbWFjX2xpbmtfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwNCisJ CQkgICAgICBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSkNCit7DQorCXN0cnVjdCBt dDc1MzBfcHJpdiAqcHJpdiA9IGRzLT5wcml2Ow0KKw0KKwlyZXR1cm4gcHJpdi0+aW5mby0+bWFj X3BvcnRfZ2V0X3N0YXRlKGRzLCBwb3J0LCBzdGF0ZSk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCitt dDc1M3hfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKQ0KK3sNCisJc3RydWN0IG10NzUzMF9w cml2ICpwcml2ID0gZHMtPnByaXY7DQorDQorCXJldHVybiBwcml2LT5pbmZvLT5zd19zZXR1cChk cyk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCittdDc1M3hfcGh5X3JlYWQoc3RydWN0IGRzYV9zd2l0 Y2ggKmRzLCBpbnQgcG9ydCwgaW50IHJlZ251bSkNCit7DQorCXN0cnVjdCBtdDc1MzBfcHJpdiAq cHJpdiA9IGRzLT5wcml2Ow0KKw0KKwlyZXR1cm4gcHJpdi0+aW5mby0+cGh5X3JlYWQoZHMsIHBv cnQsIHJlZ251bSk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCittdDc1M3hfcGh5X3dyaXRlKHN0cnVj dCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCByZWdudW0sIHUxNiB2YWwpDQorew0KKwlz dHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYgPSBkcy0+cHJpdjsNCisNCisJcmV0dXJuIHByaXYtPmlu Zm8tPnBoeV93cml0ZShkcywgcG9ydCwgcmVnbnVtLCB2YWwpOw0KK30NCisNCiBzdGF0aWMgY29u c3Qgc3RydWN0IGRzYV9zd2l0Y2hfb3BzIG10NzUzMF9zd2l0Y2hfb3BzID0gew0KIAkuZ2V0X3Rh Z19wcm90b2NvbAk9IG10a19nZXRfdGFnX3Byb3RvY29sLA0KLQkuc2V0dXAJCQk9IG10NzUzMF9z ZXR1cCwNCisJLnNldHVwCQkJPSBtdDc1M3hfc2V0dXAsDQogCS5nZXRfc3RyaW5ncwkJPSBtdDc1 MzBfZ2V0X3N0cmluZ3MsDQotCS5waHlfcmVhZAkJPSBtdDc1MzBfcGh5X3JlYWQsDQotCS5waHlf d3JpdGUJCT0gbXQ3NTMwX3BoeV93cml0ZSwNCisJLnBoeV9yZWFkCQk9IG10NzUzeF9waHlfcmVh ZCwNCisJLnBoeV93cml0ZQkJPSBtdDc1M3hfcGh5X3dyaXRlLA0KIAkuZ2V0X2V0aHRvb2xfc3Rh dHMJPSBtdDc1MzBfZ2V0X2V0aHRvb2xfc3RhdHMsDQogCS5nZXRfc3NldF9jb3VudAkJPSBtdDc1 MzBfZ2V0X3NzZXRfY291bnQsDQogCS5wb3J0X2VuYWJsZQkJPSBtdDc1MzBfcG9ydF9lbmFibGUs DQpAQCAtMTU3NywxNiArMTY3NSw0MSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRzYV9zd2l0Y2hf b3BzIG10NzUzMF9zd2l0Y2hfb3BzID0gew0KIAkucG9ydF92bGFuX2RlbAkJPSBtdDc1MzBfcG9y dF92bGFuX2RlbCwNCiAJLnBvcnRfbWlycm9yX2FkZAk9IG10NzUzMF9wb3J0X21pcnJvcl9hZGQs DQogCS5wb3J0X21pcnJvcl9kZWwJPSBtdDc1MzBfcG9ydF9taXJyb3JfZGVsLA0KLQkucGh5bGlu a192YWxpZGF0ZQk9IG10NzUzMF9waHlsaW5rX3ZhbGlkYXRlLA0KLQkucGh5bGlua19tYWNfbGlu a19zdGF0ZSA9IG10NzUzMF9waHlsaW5rX21hY19saW5rX3N0YXRlLA0KLQkucGh5bGlua19tYWNf Y29uZmlnCT0gbXQ3NTMwX3BoeWxpbmtfbWFjX2NvbmZpZywNCisJLnBoeWxpbmtfdmFsaWRhdGUJ PSBtdDc1M3hfcGh5bGlua192YWxpZGF0ZSwNCisJLnBoeWxpbmtfbWFjX2xpbmtfc3RhdGUJPSBt dDc1M3hfcGh5bGlua19tYWNfbGlua19zdGF0ZSwNCisJLnBoeWxpbmtfbWFjX2NvbmZpZwk9IG10 NzUzeF9waHlsaW5rX21hY19jb25maWcsDQogCS5waHlsaW5rX21hY19saW5rX2Rvd24JPSBtdDc1 MzBfcGh5bGlua19tYWNfbGlua19kb3duLA0KIAkucGh5bGlua19tYWNfbGlua191cAk9IG10NzUz MF9waHlsaW5rX21hY19saW5rX3VwLA0KIH07DQogDQorc3RhdGljIGNvbnN0IHN0cnVjdCBtdDc1 M3hfaW5mbyBtdDc1M3hfdGFibGVbXSA9IHsNCisJW0lEX01UNzYyMV0gPSB7DQorCQkuaWQgPSBJ RF9NVDc2MjEsDQorCQkuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsDQorCQkucGh5X3JlYWQgPSBt dDc1MzBfcGh5X3JlYWQsDQorCQkucGh5X3dyaXRlID0gbXQ3NTMwX3BoeV93cml0ZSwNCisJCS5w YWRfc2V0dXAgPSBtdDc1MzBfcGFkX2Nsa19zZXR1cCwNCisJCS5waHlfbW9kZV9zdXBwb3J0ZWQg PSBtdDc1MzBfcGh5X21vZGVfc3VwcG9ydGVkLA0KKwkJLm1hY19wb3J0X3ZhbGlkYXRlID0gbXQ3 NTMwX21hY19wb3J0X3ZhbGlkYXRlLA0KKwkJLm1hY19wb3J0X2dldF9zdGF0ZSA9IG10NzUzMF9w aHlsaW5rX21hY19saW5rX3N0YXRlLA0KKwkJLm1hY19wb3J0X2NvbmZpZyA9IG10NzUzMF9tYWNf Y29uZmlnLA0KKwl9LA0KKwlbSURfTVQ3NTMwXSA9IHsNCisJCS5pZCA9IElEX01UNzUzMCwNCisJ CS5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCwNCisJCS5waHlfcmVhZCA9IG10NzUzMF9waHlfcmVh ZCwNCisJCS5waHlfd3JpdGUgPSBtdDc1MzBfcGh5X3dyaXRlLA0KKwkJLnBhZF9zZXR1cCA9IG10 NzUzMF9wYWRfY2xrX3NldHVwLA0KKwkJLnBoeV9tb2RlX3N1cHBvcnRlZCA9IG10NzUzMF9waHlf bW9kZV9zdXBwb3J0ZWQsDQorCQkubWFjX3BvcnRfdmFsaWRhdGUgPSBtdDc1MzBfbWFjX3BvcnRf dmFsaWRhdGUsDQorCQkubWFjX3BvcnRfZ2V0X3N0YXRlID0gbXQ3NTMwX3BoeWxpbmtfbWFjX2xp bmtfc3RhdGUsDQorCQkubWFjX3BvcnRfY29uZmlnID0gbXQ3NTMwX21hY19jb25maWcsDQorCX0s DQorfTsNCisNCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc1MzBfb2ZfbWF0 Y2hbXSA9IHsNCi0JeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDc2MjEiLCAuZGF0YSA9ICh2 b2lkICopSURfTVQ3NjIxLCB9LA0KLQl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10NzUzMCIs IC5kYXRhID0gKHZvaWQgKilJRF9NVDc1MzAsIH0sDQorCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0 ZWssbXQ3NjIxIiwgLmRhdGEgPSAmbXQ3NTN4X3RhYmxlW0lEX01UNzYyMV0sIH0sDQorCXsgLmNv bXBhdGlibGUgPSAibWVkaWF0ZWssbXQ3NTMwIiwgLmRhdGEgPSAmbXQ3NTN4X3RhYmxlW0lEX01U NzUzMF0sIH0sDQogCXsgLyogc2VudGluZWwgKi8gfSwNCiB9Ow0KIE1PRFVMRV9ERVZJQ0VfVEFC TEUob2YsIG10NzUzMF9vZl9tYXRjaCk7DQpAQCAtMTYyNyw4ICsxNzUwLDIxIEBAIG10NzUzMF9w cm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpDQogCS8qIEdldCB0aGUgaGFyZHdhcmUg aWRlbnRpZmllciBmcm9tIHRoZSBkZXZpY2V0cmVlIG5vZGUuDQogCSAqIFdlIHdpbGwgbmVlZCBp dCBmb3Igc29tZSBvZiB0aGUgY2xvY2sgYW5kIHJlZ3VsYXRvciBzZXR1cC4NCiAJICovDQotCXBy aXYtPmlkID0gKHVuc2lnbmVkIGludCkodW5zaWduZWQgbG9uZykNCi0JCW9mX2RldmljZV9nZXRf bWF0Y2hfZGF0YSgmbWRpb2Rldi0+ZGV2KTsNCisJcHJpdi0+aW5mbyA9IG9mX2RldmljZV9nZXRf bWF0Y2hfZGF0YSgmbWRpb2Rldi0+ZGV2KTsNCisJaWYgKCFwcml2LT5pbmZvKQ0KKwkJcmV0dXJu IC1FSU5WQUw7DQorDQorCS8qIFNhbml0eSBjaGVjayBpZiB0aGVzZSByZXF1aXJlZCBkZXZpY2Ug b3BlcmF0aW9ucyBhcmUgZmlsbGVkDQorCSAqIHByb3Blcmx5Lg0KKwkgKi8NCisJaWYgKCFwcml2 LT5pbmZvLT5zd19zZXR1cCB8fCAhcHJpdi0+aW5mby0+cGFkX3NldHVwIHx8DQorCSAgICAhcHJp di0+aW5mby0+cGh5X3JlYWQgfHwgIXByaXYtPmluZm8tPnBoeV93cml0ZSB8fA0KKwkgICAgIXBy aXYtPmluZm8tPnBoeV9tb2RlX3N1cHBvcnRlZCB8fA0KKwkgICAgIXByaXYtPmluZm8tPm1hY19w b3J0X3ZhbGlkYXRlIHx8DQorCSAgICAhcHJpdi0+aW5mby0+bWFjX3BvcnRfZ2V0X3N0YXRlIHx8 ICFwcml2LT5pbmZvLT5tYWNfcG9ydF9jb25maWcpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJ cHJpdi0+aWQgPSBwcml2LT5pbmZvLT5pZDsNCiANCiAJaWYgKHByaXYtPmlkID09IElEX01UNzUz MCkgew0KIAkJcHJpdi0+Y29yZV9wd3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoJm1kaW9kZXYtPmRl diwgImNvcmUiKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmggYi9kcml2 ZXJzL25ldC9kc2EvbXQ3NTMwLmgNCmluZGV4IDE0ZGU2MGQwYjljYS4uNDRhYzU1NDMzMDg5IDEw MDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oDQorKysgYi9kcml2ZXJzL25ldC9k c2EvbXQ3NTMwLmgNCkBAIC0xMSw3ICsxMSw3IEBADQogI2RlZmluZSBNVDc1MzBfTlVNX0ZEQl9S RUNPUkRTCQkyMDQ4DQogI2RlZmluZSBNVDc1MzBfQUxMX01FTUJFUlMJCTB4ZmYNCiANCi1lbnVt IHsNCitlbnVtIG10NzUzeF9pZCB7DQogCUlEX01UNzUzMCA9IDAsDQogCUlEX01UNzYyMSA9IDEs DQogfTsNCkBAIC00NDMsNiArNDQzLDQwIEBAIHN0YXRpYyBjb25zdCBjaGFyICpwNV9pbnRmX21v ZGVzKHVuc2lnbmVkIGludCBwNV9pbnRlcmZhY2UpDQogCX0NCiB9DQogDQorLyogc3RydWN0IG10 NzUzeF9pbmZvIC0JVGhpcyBpcyB0aGUgbWFpbiBkYXRhIHN0cnVjdHVyZSBmb3IgaG9sZGluZyB0 aGUgc3BlY2lmaWMNCisgKgkJCXBhcnQgZm9yIGVhY2ggc3VwcG9ydGVkIGRldmljZQ0KKyAqIEBz d19zZXR1cDoJCUhvbGRpbmcgdGhlIGhhbmRsZXIgdG8gYSBkZXZpY2UgaW5pdGlhbGl6YXRpb24N CisgKiBAcGh5X3JlYWQ6CQlIb2xkaW5nIHRoZSB3YXkgcmVhZGluZyBQSFkgcG9ydA0KKyAqIEBw aHlfd3JpdGU6CQlIb2xkaW5nIHRoZSB3YXkgd3JpdGluZyBQSFkgcG9ydA0KKyAqIEBwYWRfc2V0 dXA6CQlIb2xkaW5nIHRoZSB3YXkgc2V0dGluZyB1cCB0aGUgYnVzIHBhZCBmb3IgYSBjZXJ0YWlu DQorICoJCQlNQUMgcG9ydA0KKyAqIEBwaHlfbW9kZV9zdXBwb3J0ZWQ6CUNoZWNrIGlmIHRoZSBQ SFkgdHlwZSBpcyBiZWluZyBzdXBwb3J0ZWQgb24gYSBjZXJ0YWluDQorICoJCQlwb3J0DQorICog QG1hY19wb3J0X3ZhbGlkYXRlOglIb2xkaW5nIHRoZSB3YXkgdG8gc2V0IGFkZGl0aW9uIHZhbGlk YXRlIHR5cGUgZm9yIGENCisgKgkJCWNlcnRhbiBNQUMgcG9ydA0KKyAqIEBtYWNfcG9ydF9nZXRf c3RhdGU6IEhvbGRpbmcgdGhlIHdheSBnZXR0aW5nIHRoZSBNQUMvUENTIHN0YXRlIGZvciBhIGNl cnRhaW4NCisgKgkJCU1BQyBwb3J0DQorICogQG1hY19wb3J0X2NvbmZpZzoJSG9sZGluZyB0aGUg d2F5IHNldHRpbmcgdXAgdGhlIFBIWSBhdHRyaWJ1dGUgdG8gYQ0KKyAqCQkJY2VydGFpbiBNQUMg cG9ydA0KKyAqLw0KK3N0cnVjdCBtdDc1M3hfaW5mbyB7DQorCWVudW0gbXQ3NTN4X2lkIGlkOw0K Kw0KKwlpbnQgKCpzd19zZXR1cCkoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKTsNCisJaW50ICgqcGh5 X3JlYWQpKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCByZWdudW0pOw0KKwlp bnQgKCpwaHlfd3JpdGUpKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCByZWdu dW0sIHUxNiB2YWwpOw0KKwlpbnQgKCpwYWRfc2V0dXApKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywg cGh5X2ludGVyZmFjZV90IGludGVyZmFjZSk7DQorCWJvb2wgKCpwaHlfbW9kZV9zdXBwb3J0ZWQp KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsDQorCQkJCSAgIGNvbnN0IHN0cnVjdCBw aHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKTsNCisJdm9pZCAoKm1hY19wb3J0X3ZhbGlkYXRlKShz dHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LA0KKwkJCQkgIHVuc2lnbmVkIGxvbmcgKnN1 cHBvcnRlZCk7DQorCWludCAoKm1hY19wb3J0X2dldF9zdGF0ZSkoc3RydWN0IGRzYV9zd2l0Y2gg KmRzLCBpbnQgcG9ydCwNCisJCQkJICBzdHJ1Y3QgcGh5bGlua19saW5rX3N0YXRlICpzdGF0ZSk7 DQorCWludCAoKm1hY19wb3J0X2NvbmZpZykoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9y dCwNCisJCQkgICAgICAgdW5zaWduZWQgaW50IG1vZGUsDQorCQkJICAgICAgIHBoeV9pbnRlcmZh Y2VfdCBpbnRlcmZhY2UpOw0KK307DQorDQogLyogc3RydWN0IG10NzUzMF9wcml2IC0JVGhpcyBp cyB0aGUgbWFpbiBkYXRhIHN0cnVjdHVyZSBmb3IgaG9sZGluZyB0aGUgc3RhdGUNCiAgKgkJCW9m IHRoZSBkcml2ZXINCiAgKiBAZGV2OgkJVGhlIGRldmljZSBwb2ludGVyDQpAQCAtNDY4LDYgKzUw Miw3IEBAIHN0cnVjdCBtdDc1MzBfcHJpdiB7DQogCXN0cnVjdCByZWd1bGF0b3IJKmNvcmVfcHdy Ow0KIAlzdHJ1Y3QgcmVndWxhdG9yCSppb19wd3I7DQogCXN0cnVjdCBncGlvX2Rlc2MJKnJlc2V0 Ow0KKwljb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gKmluZm87DQogCXVuc2lnbmVkIGludAkJaWQ7 DQogCWJvb2wJCQltY207DQogCXBoeV9pbnRlcmZhY2VfdAkJcDZfaW50ZXJmYWNlOw0KLS0gDQoy LjE3LjENCg==