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_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, 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 DE911C10F14 for ; Thu, 3 Oct 2019 01:35:53 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A6E3221D81 for ; Thu, 3 Oct 2019 01:35:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="VUl8ly4t" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A6E3221D81 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iFq1u-0003cJ-HR; Thu, 03 Oct 2019 01:35:42 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iFq1s-0003bM-MR for xen-devel@lists.xen.org; Thu, 03 Oct 2019 01:35:40 +0000 X-Inumbo-ID: 17b4c1c8-e57e-11e9-97fb-bc764e2007e4 Received: from mail.kernel.org (unknown [198.145.29.99]) by localhost (Halon) with ESMTPS id 17b4c1c8-e57e-11e9-97fb-bc764e2007e4; Thu, 03 Oct 2019 01:35:34 +0000 (UTC) Received: from sstabellini-ThinkPad-T480s.hsd1.ca.comcast.net (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2D2CC222C5; Thu, 3 Oct 2019 01:35:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570066533; bh=3GTa12ziuCyhFNf04MqnpMYV5qf2NOy0Pn59S8hTOb8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VUl8ly4t1HMpiYM5IuiZ93mrDjYpFEa0qDFhvhcyaaBwdpVUtBAzC5JXsKAe1zQ7Z 0X5M+FYrQ9NMDHQbV36xK4VpFgpIxOJaNaT4urBl63ZXk6tdIRJOLfNZbBwrTc3tEW US1gNDhTueAJYwmdQ9k7S5tYauQ1SOnIso6yYvmo= From: Stefano Stabellini To: julien.grall@arm.com Date: Wed, 2 Oct 2019 18:35:23 -0700 Message-Id: <20191003013526.30768-5-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: Subject: [Xen-devel] [PATCH v8 5/8] xen/arm: assign devices to boot domains X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , sstabellini@kernel.org, andrii_anisov@epam.com, Achin.Gupta@arm.com, xen-devel@lists.xen.org, Volodymyr_Babchuk@epam.com MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" U2NhbiB0aGUgdXNlciBwcm92aWRlZCBkdGIgZnJhZ21lbnQgYXQgYm9vdC4gRm9yIGVhY2ggZGV2 aWNlIG5vZGUsIG1hcAptZW1vcnkgdG8gZ3Vlc3RzLCBhbmQgcm91dGUgaW50ZXJydXB0cyBhbmQg c2V0dXAgdGhlIGlvbW11LgoKVGhlIG1lbW9yeSByZWdpb24gdG8gcmVtYXAgaXMgc3BlY2lmaWVk IGJ5IHRoZSAieGVuLHJlZyIgcHJvcGVydHkuCgpUaGUgaW9tbXUgaXMgc2V0dXAgYnkgcGFzc2lu ZyB0aGUgbm9kZSBvZiB0aGUgZGV2aWNlIHRvIGFzc2lnbiBvbiB0aGUKaG9zdCBkZXZpY2UgdHJl ZS4gVGhlIHBhdGggaXMgc3BlY2lmaWVkIGluIHRoZSBkZXZpY2UgdHJlZSBmcmFnbWVudCBhcwp0 aGUgInhlbixwYXRoIiBzdHJpbmcgcHJvcGVydHkuCgpUaGUgaW50ZXJydXB0cyBhcmUgcmVtYXBw ZWQgYmFzZWQgb24gdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlCmNvcnJlc3BvbmRpbmcgbm9kZSBv biB0aGUgaG9zdCBkZXZpY2UgdHJlZS4gQ2FsbApoYW5kbGVfZGV2aWNlX2ludGVycnVwdHMgdG8g cmVtYXAgaW50ZXJydXB0cy4gSW50ZXJydXB0cyByZWxhdGVkIGRldmljZQp0cmVlIHByb3BlcnRp ZXMgYXJlIGNvcGllZCBmcm9tIHRoZSBkZXZpY2UgdHJlZSBmcmFnbWVudCwgc2FtZSBhcyBhbGwK dGhlIG90aGVyIHByb3BlcnRpZXMuCgpSZXF1aXJlIGJvdGggeGVuLHJlZyBhbmQgeGVuLHBhdGgg dG8gYmUgcHJlc2VudCwgdW5sZXNzCnhlbixmb3JjZS1hc3NpZ24td2l0aG91dC1pb21tdSBpcyBh bHNvIHNldC4gSW4gdGhhdCBjYXNlLCB0b2xlcmF0ZSBhCm1pc3NpbmcgeGVuLHBhdGgsIGFsc28g dG9sZXJhdGUgaW9tbXUgc2V0dXAgZmFpbHVyZSBmb3IgdGhlIHBhc3N0aHJvdWdoCmRldmljZS4K CkFsc28gc2V0IGFkZCB0aGUgbmV3IGZsYWcgWEVOX0RPTUNUTF9DREZfaW9tbXUgc28gdGhhdCBk b20wbGVzcyBkb21VCmNhbiB1c2UgdGhlIElPTU1VIGlmIGEgcGFydGlhbCBkdGIgaXMgc3BlY2lm aWVkLgoKU2lnbmVkLW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vc0B4aWxpbngu Y29tPgotLS0KQ2hhbmdlcyBpbiB2ODoKLSBiZXR0ZXIgaW4tY29kZSBjb21tZW50Ci0gY29kZSBz dHlsZQotIGFkZCBhIHByaW5rIGluIGNhc2Ugb2YgZXJyb3IKCkNoYW5nZXMgaW4gdjc6Ci0gaW1w cm92ZSBpbi1jb2RlIGNvbW1lbnQKLSBjb2RlIHN0eWxlCi0gcmV0dXJuIDEgaW5zdGVhZCBvZiBF Tk9FTlQKLSBpbnRyb2R1Y2UgInhlbixmb3JjZS1hc3NpZ24td2l0aG91dC1pb21tdSIKLSByZXF1 aXJlIGJvdGggInhlbixyZWciIGFuZCAieGVuLHBhdGgiIHVubGVzcwogICJ4ZW4sZm9yY2UtYXNz aWduLXdpdGhvdXQtaW9tbXUiCgpDaGFuZ2VzIGluIHY2OgotIHR1cm4gZHByaW50a3MgaW50byBw cmludGtzCi0gcmV0dXJuIGVycm9yIG9uIHBhZ2UgYWxpZ25tZW50IGNoZWNrIGZhaWx1cmUKLSBz ZXQgWEVOX0RPTUNUTF9DREZfaW9tbXUgaWYgcGFydGlhbCBkdGIgaXMgc3BlY2lmaWVkCgpDaGFu Z2VzIGluIHY1OgotIHVzZSBsb2NhbCB2YXJpYWJsZSBmb3IgbmFtZQotIHVzZSBtYXBfcmVnaW9u c19wMm10Ci0gYWRkIHdhcm5pbmcgZm9yIG5vdCBwYWdlIGFsaWduZWQgYWRkcmVzc2VzL3NpemVz Ci0gaW50cm9kdWNlIGhhbmRsZV9wYXNzdGhyb3VnaF9wcm9wCgpDaGFuZ2VzIGluIHY0OgotIHVz ZSB1bnNpZ25lZAotIGltcHJvdmUgY29tbWl0IG1lc3NhZ2UKLSBjb2RlIHN0eWxlCi0gdXNlIGR0 X3Byb3BfY21wCi0gdXNlIGRldmljZV90cmVlX2dldF9yZWcKLSBkb24ndCBjb3B5IG92ZXIgeGVu LHJlZyBhbmQgeGVuLHBhdGgKLSBkb24ndCBjcmVhdGUgc3BlY2lhbCBpbnRlcnJ1cHQgcHJvcGVy dGllcyBmb3IgZG9tVTogY29weSB0aGVtIGZyb20gdGhlCiAgZnJhZ21lbnQKLSBpbi1jb2RlIGNv bW1lbnQKCkNoYW5nZXMgaW4gdjM6Ci0gaW1wcm92ZSBjb21taXQgbWVzc2FnZQotIHJlbW92ZSBz dXBlcmZsdW91cyBjYXN0Ci0gbWVyZ2UgY29kZSB3aXRoIHRoZSBjb3B5IGNvZGUKLSBhZGQgaW50 ZXJydXAtcGFyZW50Ci0gZGVtb3ZlIGRlcHRoID4gMiBjaGVjawotIHJldXNlIGNvZGUgZnJvbSBo YW5kbGVfZGV2aWNlX2ludGVycnVwdHMKLSBjb3B5IGludGVycnVwdHMgZnJvbSBob3N0IGR0CgpD aGFuZ2VzIGluIHYyOgotIHJlbmFtZSAicGF0aCIgdG8gInhlbixwYXRoIgotIGdyYW1tYXIgZml4 Ci0gdXNlIGdhZGRyX3RvX2dmbiBhbmQgbWFkZHJfdG9fbWZuCi0gcmVtb3ZlIGRlcHRoIDw9IDIg bGltaXRhdGlvbiBpbiBzY2FubmluZyB0aGUgZHRiIGZyYWdtZW50Ci0gaW50cm9kdWNlIGFuZCBw YXJzZSB4ZW4scmVnCi0gY29kZSBzdHlsZQotIHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBpbnRlcnJ1 cHQgcGVyIGRldmljZQotIHNwZWNpZnkgb25seSB0aGUgR0lDIGlzIHN1cHBvcnRlZAotLS0KIHhl bi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyB8IDEzOSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMzUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJj aC9hcm0vZG9tYWluX2J1aWxkLmMKaW5kZXggODRiNjViOGYyNS4uYjkwOTAyYWQ5NyAxMDA2NDQK LS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21h aW5fYnVpbGQuYwpAQCAtMTcxNCw2ICsxNzE0LDg4IEBAIHN0YXRpYyBpbnQgX19pbml0IG1ha2Vf dnBsMDExX3VhcnRfbm9kZShzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQogfQogI2VuZGlmCiAK Ky8qCisgKiBTY2FuIGRldmljZSB0cmVlIHByb3BlcnRpZXMgZm9yIHBhc3N0aHJvdWdoIHNwZWNp ZmljIGluZm9ybWF0aW9uLgorICogUmV0dXJucyA8IDAgb24gZXJyb3IKKyAqICAgICAgICAgMCBv biBzdWNjZXNzCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IGhhbmRsZV9wYXNzdGhyb3VnaF9wcm9w KHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmR0X3Byb3BlcnR5ICp4ZW5fcmVnLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZkdF9wcm9w ZXJ0eSAqeGVuX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBib29sIHhlbl9mb3JjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IGFkZHJlc3NfY2VsbHMsIHVpbnQzMl90IHNpemVfY2VsbHMpCit7CisgICAg Y29uc3QgX19iZTMyICpjZWxsOworICAgIHVuc2lnbmVkIGludCBpLCBsZW47CisgICAgc3RydWN0 IGR0X2RldmljZV9ub2RlICpub2RlOworICAgIGludCByZXM7CisgICAgcGFkZHJfdCBtc3RhcnQs IHNpemUsIGdzdGFydDsKKworICAgIC8qIHhlbixyZWcgc3BlY2lmaWVzIHdoZXJlIHRvIG1hcCB0 aGUgTU1JTyByZWdpb24gKi8KKyAgICBjZWxsID0gKGNvbnN0IF9fYmUzMiAqKXhlbl9yZWctPmRh dGE7CisgICAgbGVuID0gZmR0MzJfdG9fY3B1KHhlbl9yZWctPmxlbikgLyAoKGFkZHJlc3NfY2Vs bHMgKiAyICsgc2l6ZV9jZWxscykgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVvZih1aW50MzJfdCkpOworCisgICAgZm9yICggaSA9IDA7IGkgPCBsZW47IGkr KyApCisgICAgeworICAgICAgICBkZXZpY2VfdHJlZV9nZXRfcmVnKCZjZWxsLCBhZGRyZXNzX2Nl bGxzLCBzaXplX2NlbGxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtc3RhcnQsICZz aXplKTsKKyAgICAgICAgZ3N0YXJ0ID0gZHRfbmV4dF9jZWxsKGFkZHJlc3NfY2VsbHMsICZjZWxs KTsKKworICAgICAgICBpZiAoIGdzdGFydCAmIH5QQUdFX01BU0sgfHwgbXN0YXJ0ICYgflBBR0Vf TUFTSyB8fCBzaXplICYgflBBR0VfTUFTSyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHByaW50 ayhYRU5MT0dfRVJSCisgICAgICAgICAgICAgICAgICAgICJEb21VIHBhc3N0aHJvdWdoIGNvbmZp ZyBoYXMgbm90IHBhZ2UgYWxpZ25lZCBhZGRyZXNzZXMvc2l6ZXNcbiIpOworICAgICAgICAgICAg cmV0dXJuIC1FSU5WQUw7CisgICAgICAgIH0KKworICAgICAgICByZXMgPSBtYXBfcmVnaW9uc19w Mm10KGtpbmZvLT5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhZGRyX3RvX2dm bihnc3RhcnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9ET1dOKHNpemUp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hZGRyX3RvX21mbihtc3RhcnQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV9tbWlvX2RpcmVjdF9kZXYpOworICAg ICAgICBpZiAoIHJlcyA8IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBwcmludGsoWEVOTE9H X0VSUgorICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gbWFwICUiUFJJcGFkZHIiIHRvIHRo ZSBndWVzdCBhdCUiUFJJcGFkZHIiXG4iLAorICAgICAgICAgICAgICAgICAgIG1zdGFydCwgZ3N0 YXJ0KTsKKyAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOworICAgICAgICB9CisgICAgfQorCisg ICAgLyoKKyAgICAgKiBJZiB4ZW5fZm9yY2UsIHdlIGxldCB0aGUgdXNlciBhc3NpZ24gYSBNTUlP IHJlZ2lvbiB3aXRoIG5vCisgICAgICogYXNzb2NpYXRlZCBwYXRoLgorICAgICAqLworICAgIGlm ICggeGVuX3BhdGggPT0gTlVMTCApCisgICAgICAgIHJldHVybiB4ZW5fZm9yY2UgPyAwIDogLUVJ TlZBTDsKKworICAgIC8qCisgICAgICogeGVuLHBhdGggc3BlY2lmaWVzIHRoZSBjb3JyZXNwb25k aW5nIG5vZGUgaW4gdGhlIGhvc3QgRFQuCisgICAgICogQm90aCBpbnRlcnJ1cHQgbWFwcGluZ3Mg YW5kIElPTU1VIHNldHRpbmdzIGFyZSBiYXNlZCBvbiBpdCwKKyAgICAgKiBhcyB0aGV5IGFyZSBk b25lIGJhc2VkIG9uIHRoZSBjb3JyZXNwb25kaW5nIGhvc3QgRFQgbm9kZS4KKyAgICAgKi8KKyAg ICBub2RlID0gZHRfZmluZF9ub2RlX2J5X3BhdGgoeGVuX3BhdGgtPmRhdGEpOworICAgIGlmICgg bm9kZSA9PSBOVUxMICkKKyAgICB7CisgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJDb3VsZG4n dCBmaW5kIG5vZGUgJXMgaW4gaG9zdF9kdCFcbiIsCisgICAgICAgICAgICAgICAoY2hhciAqKXhl bl9wYXRoLT5kYXRhKTsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgcmVz ID0gaGFuZGxlX2RldmljZV9pbnRlcnJ1cHRzKGtpbmZvLT5kLCBub2RlLCB0cnVlKTsKKyAgICBp ZiAoIHJlcyA8IDAgKQorICAgICAgICByZXR1cm4gcmVzOworCisgICAgLyogSWYgeGVuX2ZvcmNl LCB3ZSBpZ25vcmUgSU9NTVUgZmFpbHVyZXMuICovCisgICAgcmVzID0gaW9tbXVfYWRkX2R0X2Rl dmljZShub2RlKTsKKyAgICBpZiAoIHJlcyA8IDAgKQorICAgICAgICByZXR1cm4geGVuX2ZvcmNl ID8gMCA6IC1FSU5WQUw7CisKKyAgICByZXMgPSBpb21tdV9hc3NpZ25fZHRfZGV2aWNlKGtpbmZv LT5kLCBub2RlKTsKKyAgICByZXR1cm4gcmVzOworfQorCiBzdGF0aWMgaW50IF9faW5pdCBoYW5k bGVfcHJvcF9wZmR0KHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKnBmZHQsIGludCBub2Rlb2ZmLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhZGRyZXNzX2NlbGxzLCB1aW50 MzJfdCBzaXplX2NlbGxzLApAQCAtMTcyMSw3ICsxODAzLDkgQEAgc3RhdGljIGludCBfX2luaXQg aGFuZGxlX3Byb3BfcGZkdChzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvLAogewogICAgIHZvaWQg KmZkdCA9IGtpbmZvLT5mZHQ7CiAgICAgaW50IHByb3BvZmYsIG5hbWVvZmYsIHJlczsKLSAgICBj b25zdCBzdHJ1Y3QgZmR0X3Byb3BlcnR5ICpwcm9wOworICAgIGNvbnN0IHN0cnVjdCBmZHRfcHJv cGVydHkgKnByb3AsICp4ZW5fcmVnID0gTlVMTCwgKnhlbl9wYXRoID0gTlVMTDsKKyAgICBjb25z dCBjaGFyICpuYW1lOworICAgIGJvb2wgZm91bmQsIHhlbl9mb3JjZSA9IGZhbHNlOwogCiAgICAg Zm9yICggcHJvcG9mZiA9IGZkdF9maXJzdF9wcm9wZXJ0eV9vZmZzZXQocGZkdCwgbm9kZW9mZik7 CiAgICAgICAgICAgcHJvcG9mZiA+PSAwOwpAQCAtMTczMCwxMSArMTgxNCw1NSBAQCBzdGF0aWMg aW50IF9faW5pdCBoYW5kbGVfcHJvcF9wZmR0KHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sCiAg ICAgICAgIGlmICggIShwcm9wID0gZmR0X2dldF9wcm9wZXJ0eV9ieV9vZmZzZXQocGZkdCwgcHJv cG9mZiwgTlVMTCkpICkKICAgICAgICAgICAgIHJldHVybiAtRkRUX0VSUl9JTlRFUk5BTDsKIAor ICAgICAgICBmb3VuZCA9IGZhbHNlOwogICAgICAgICBuYW1lb2ZmID0gZmR0MzJfdG9fY3B1KHBy b3AtPm5hbWVvZmYpOwotICAgICAgICByZXMgPSBmZHRfcHJvcGVydHkoZmR0LCBmZHRfc3RyaW5n KHBmZHQsIG5hbWVvZmYpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcC0+ZGF0YSwg ZmR0MzJfdG9fY3B1KHByb3AtPmxlbikpOwotICAgICAgICBpZiAoIHJlcyApCisgICAgICAgIG5h bWUgPSBmZHRfc3RyaW5nKHBmZHQsIG5hbWVvZmYpOworCisgICAgICAgIGlmICggc2Nhbl9wYXNz dGhyb3VnaF9wcm9wICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCBkdF9wcm9wX2NtcCgi eGVuLHJlZyIsIG5hbWUpID09IDAgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHhl bl9yZWcgPSBwcm9wOworICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAgIGVsc2UgaWYgKCBkdF9wcm9wX2NtcCgieGVuLHBhdGgiLCBuYW1lKSA9 PSAwICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB4ZW5fcGF0aCA9IHByb3A7Cisg ICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAg ZWxzZSBpZiAoIGR0X3Byb3BfY21wKCJ4ZW4sZm9yY2UtYXNzaWduLXdpdGhvdXQtaW9tbXUiLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUpID09IDAgKQorICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgIHhlbl9mb3JjZSA9IHRydWU7CisgICAgICAgICAgICAgICAg Zm91bmQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoKKyAg ICAgICAgICogQ29weSBwcm9wZXJ0aWVzIG90aGVyIHRoYW4gdGhlIG9uZXMgYWJvdmU6IHhlbixy ZWcsIHhlbixwYXRoLAorICAgICAgICAgKiBhbmQgeGVuLGZvcmNlLWFzc2lnbi13aXRob3V0LWlv bW11LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAhZm91bmQgKQorICAgICAgICB7CisgICAg ICAgICAgICByZXMgPSBmZHRfcHJvcGVydHkoZmR0LCBuYW1lLCBwcm9wLT5kYXRhLCBmZHQzMl90 b19jcHUocHJvcC0+bGVuKSk7CisgICAgICAgICAgICBpZiAoIHJlcyApCisgICAgICAgICAgICAg ICAgcmV0dXJuIHJlczsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogT25seSBo YW5kbGUgcGFzc3Rocm91Z2ggcHJvcGVydGllcyBpZiBib3RoIHhlbixyZWcgYW5kIHhlbixwYXRo CisgICAgICogYXJlIHByZXNlbnQsIG9yIGlmIHhlbixmb3JjZS1hc3NpZ24td2l0aG91dC1pb21t dSBpcyBzcGVjaWZpZWQuCisgICAgICovCisgICAgaWYgKCB4ZW5fcmVnICE9IE5VTEwgJiYgKHhl bl9wYXRoICE9IE5VTEwgfHwgeGVuX2ZvcmNlKSApCisgICAgeworICAgICAgICByZXMgPSBoYW5k bGVfcGFzc3Rocm91Z2hfcHJvcChraW5mbywgeGVuX3JlZywgeGVuX3BhdGgsIHhlbl9mb3JjZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19jZWxscywgc2l6 ZV9jZWxscyk7CisgICAgICAgIGlmICggcmVzIDwgMCApCisgICAgICAgIHsKKyAgICAgICAgICAg IHByaW50ayhYRU5MT0dfRVJSICJGYWlsZWQgdG8gYXNzaWduIGRldmljZSB0byAlcGRcbiIsIGtp bmZvLT5kKTsKICAgICAgICAgICAgIHJldHVybiByZXM7CisgICAgICAgIH0KICAgICB9CiAKICAg ICAvKiBGRFRfRVJSX05PVEZPVU5EID0+IFRoZXJlIGlzIG5vIG1vcmUgcHJvcGVydGllcyBmb3Ig dGhpcyBub2RlICovCkBAIC0yMjkxLDYgKzI0MTksOSBAQCB2b2lkIF9faW5pdCBjcmVhdGVfZG9t VXModm9pZCkKICAgICAgICAgICAgIHBhbmljKCJNaXNzaW5nIHByb3BlcnR5ICdjcHVzJyBmb3Ig ZG9tYWluICVzXG4iLAogICAgICAgICAgICAgICAgICAgZHRfbm9kZV9uYW1lKG5vZGUpKTsKIAor ICAgICAgICBpZiAoIGR0X2ZpbmRfY29tcGF0aWJsZV9ub2RlKG5vZGUsIE5VTEwsICJtdWx0aWJv b3QsZGV2aWNlLXRyZWUiKSApCisgICAgICAgICAgICBkX2NmZy5mbGFncyB8PSBYRU5fRE9NQ1RM X0NERl9pb21tdTsKKwogICAgICAgICBkID0gZG9tYWluX2NyZWF0ZSgrK21heF9pbml0X2RvbWlk LCAmZF9jZmcsIGZhbHNlKTsKICAgICAgICAgaWYgKCBJU19FUlIoZCkgKQogICAgICAgICAgICAg cGFuaWMoIkVycm9yIGNyZWF0aW5nIGRvbWFpbiAlc1xuIiwgZHRfbm9kZV9uYW1lKG5vZGUpKTsK LS0gCjIuMTcuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=