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.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 2CAB2C4CEC4 for ; Thu, 19 Sep 2019 17:40:56 +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 ED920214AF for ; Thu, 19 Sep 2019 17:40:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="IsnMNxu6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ED920214AF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com 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 1iB0Py-000482-8y; Thu, 19 Sep 2019 17:40:34 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iB0Px-00047x-3v for xen-devel@lists.xenproject.org; Thu, 19 Sep 2019 17:40:33 +0000 X-Inumbo-ID: 9388799a-db04-11e9-978d-bc764e2007e4 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 9388799a-db04-11e9-978d-bc764e2007e4; Thu, 19 Sep 2019 17:40:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1568914832; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=PP+vnRAblMneTFTS7p0zE7UYiASGasi1qLf8ytAIQG8=; b=IsnMNxu6gZkSyiYIacDEZUV1MS2toQSGiUm3C3KAEqMxF4rQiW8kyJr+ x3GLaFpFo5h84/h5ulN4f35E2YbClBpB2gBtpeo4BvTPUPgZvz4Po3SbR T21L8h5BUL9lkUgHhogCAa6UlGnI5ebESXpULbGKDIi3mbU1XFk12znx6 0=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa1.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: ZOBKLhvhg1X1ejU43Q+iisPia62/SSqEEcBuHMne3zQITvXTTdVl4CWEbK7PpiILn3deyeNfTZ J+VQe+9hjkjfnoMLKtmBa6hksDlHvh/aa8M03onz0jNX3QhJh/qPaYB5XIBTLVZnCT6s7aNZQw Ant5jb4KlztQpnMDtYAUo4GT6rF8UNfDJpcIGWmkLzVBDE6jE7ONlDMbmxtHfFbnrgutCmbwsN Zp/D6MCrj/wT0ayhLMEnVSImc5Z/4AAs2iXfSUDiUiTJtY2smJRbS+tXpZE+Ff9ZGdrGM9rEyt uNg= X-SBRS: 2.7 X-MesageID: 5864875 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,524,1559534400"; d="scan'208";a="5864875" From: Anthony PERARD To: Date: Thu, 19 Sep 2019 18:16:47 +0100 Message-ID: <20190919171656.899649-28-anthony.perard@citrix.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190919171656.899649-1-anthony.perard@citrix.com> References: <20190919171656.899649-1-anthony.perard@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 27/35] libxl_pci: Use libxl__ao_device with libxl__device_pci_add 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: Anthony PERARD , Ian Jackson , Wei Liu Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" U2lnbmVkLW9mZi1ieTogQW50aG9ueSBQRVJBUkQgPGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+ CkFja2VkLWJ5OiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KLS0tCiB0 b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIHwgICA3ICstCiB0b29scy9saWJ4bC9saWJ4bF9w Y2kuYyAgICAgIHwgMTcwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDE1MCBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuaAppbmRleCA1NzEzMDFhNWQ1ZDguLjE4YzY2NWQzZGJlMiAxMDA2NDQKLS0tIGEvdG9v bHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5h bC5oCkBAIC0xOTgsNiArMTk4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgbGlieGxfX2pzb25fb2JqZWN0 IGxpYnhsX19qc29uX29iamVjdDsKIHR5cGVkZWYgc3RydWN0IGxpYnhsX19jYXJlZmQgbGlieGxf X2NhcmVmZDsKIHR5cGVkZWYgc3RydWN0IGxpYnhsX19ldl9kZXZsb2NrIGxpYnhsX19ldl9kZXZs b2NrOwogdHlwZWRlZiBzdHJ1Y3QgbGlieGxfX2RtX3Jlc3VtZV9zdGF0ZSBsaWJ4bF9fZG1fcmVz dW1lX3N0YXRlOwordHlwZWRlZiBzdHJ1Y3QgbGlieGxfX2FvX2RldmljZSBsaWJ4bF9fYW9fZGV2 aWNlOwogCiB0eXBlZGVmIHN0cnVjdCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9zdGF0ZSBsaWJ4bF9f ZG9tYWluX2NyZWF0ZV9zdGF0ZTsKIHR5cGVkZWYgdm9pZCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9j YihzdHJ1Y3QgbGlieGxfX2VnYyAqZWdjLApAQCAtMTU5Myw4ICsxNTk0LDkgQEAgX2hpZGRlbiBp bnQgbGlieGxfX3BjaV90b3BvbG9neV9pbml0KGxpYnhsX19nYyAqZ2MsCiAKIC8qIGZyb20gbGli eGxfcGNpICovCiAKLV9oaWRkZW4gaW50IGxpYnhsX19kZXZpY2VfcGNpX2FkZChsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWJ4bF9kZXZpY2VfcGNpICpwY2lkZXYsIGJvb2wgc3RhcnRpbmcpOworX2hpZGRlbiB2b2lkIGxp YnhsX19kZXZpY2VfcGNpX2FkZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfcGNpICpwY2lkZXYs IGJvb2wgc3RhcnRpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X19hb19kZXZpY2UgKmFvZGV2KTsKIF9oaWRkZW4gaW50IGxpYnhsX19kZXZpY2VfcGNpX2Rlc3Ry b3lfYWxsKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkKTsKIF9oaWRkZW4gYm9vbCBsaWJ4 bF9faXNfaWdkX3ZnYV9wYXNzdGhydShsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmln KTsKQEAgLTI1NzIsNyArMjU3NCw2IEBAIF9oaWRkZW4gdm9pZCBsaWJ4bF9fa2lsbChsaWJ4bF9f Z2MgKmdjLCBwaWRfdCBwaWQsIGludCBzaWcsIGNvbnN0IGNoYXIgKndoYXQpOwogCiAvKi0tLS0t IGRldmljZSBhZGRpdGlvbi9yZW1vdmFsIC0tLS0tKi8KIAotdHlwZWRlZiBzdHJ1Y3QgbGlieGxf X2FvX2RldmljZSBsaWJ4bF9fYW9fZGV2aWNlOwogdHlwZWRlZiBzdHJ1Y3QgbGlieGxfX211bHRp ZGV2IGxpYnhsX19tdWx0aWRldjsKIHR5cGVkZWYgdm9pZCBsaWJ4bF9fZGV2aWNlX2NhbGxiYWNr KGxpYnhsX19lZ2MqLCBsaWJ4bF9fYW9fZGV2aWNlKik7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xp YnhsL2xpYnhsX3BjaS5jIGIvdG9vbHMvbGlieGwvbGlieGxfcGNpLmMKaW5kZXggMDcxODgwYjg1 NTZiLi41MDNkYjZjMjYwNDMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3BjaS5jCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3BjaS5jCkBAIC05ODMsOSArOTgzLDI0IEBAIHN0YXRpYyBp bnQgcWVtdV9wY2lfYWRkX3hlbnN0b3JlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAog ICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBkb19wY2lfYWRkKGxpYnhsX19nYyAqZ2Ms IHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV9wY2kg KnBjaWRldiwgYm9vbCBzdGFydGluZykKK3R5cGVkZWYgc3RydWN0IHBjaV9hZGRfc3RhdGUgewor ICAgIC8qIGZpbGxlZCBieSB1c2VyIG9mIGRvX3BjaV9hZGQgKi8KKyAgICBsaWJ4bF9fYW9fZGV2 aWNlICphb2RldjsKKyAgICBsaWJ4bF9kb21pZCBkb21pZDsKKyAgICBib29sIHN0YXJ0aW5nOwor ICAgIHZvaWQgKCpjYWxsYmFjaykobGlieGxfX2VnYyAqLCBzdHJ1Y3QgcGNpX2FkZF9zdGF0ZSAq LCBpbnQgcmMpOworCisgICAgLyogcHJpdmF0ZSB0byBkb19wY2lfYWRkICovCisgICAgbGlieGxf ZGV2aWNlX3BjaSAqcGNpZGV2OworICAgIGludCBwY2lfZG9taWQ7Cit9IHBjaV9hZGRfc3RhdGU7 CisKK3N0YXRpYyB2b2lkIGRvX3BjaV9hZGQobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9kb21pZCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfZGV2aWNlX3BjaSAqcGNpZGV2LAorICAgICAgICAgICAgICAgICAgICAgICBwY2lfYWRkX3N0 YXRlICpwYXMpCiB7CisgICAgU1RBVEVfQU9fR0MocGFzLT5hb2Rldi0+YW8pOwogICAgIGxpYnhs X2N0eCAqY3R4ID0gbGlieGxfX2djX293bmVyKGdjKTsKICAgICBsaWJ4bF9kb21haW5fdHlwZSB0 eXBlID0gbGlieGxfX2RvbWFpbl90eXBlKGdjLCBkb21pZCk7CiAgICAgY2hhciAqc3lzZnNfcGF0 aDsKQEAgLTk5Nyw2ICsxMDEyLDEzIEBAIHN0YXRpYyBpbnQgZG9fcGNpX2FkZChsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwKICAgICBib29sIGlzc3R1YmRvbSA9IGxpYnhsX2lzX3N0dWJk b20oY3R4LCBkb21pZCwgJmRvbWFpbmlkKTsKICAgICBpbnQgcjsKIAorICAgIC8qIENvbnZlbmll bmNlIGFsaWFzZXMgKi8KKyAgICBib29sIHN0YXJ0aW5nID0gcGFzLT5zdGFydGluZzsKKworICAg IC8qIGluaXQgcGNpX2FkZF9zdGF0ZSAqLworICAgIHBhcy0+cGNpZGV2ID0gcGNpZGV2OworICAg IHBhcy0+cGNpX2RvbWlkID0gZG9taWQ7CisKICAgICBpZiAodHlwZSA9PSBMSUJYTF9ET01BSU5f VFlQRV9JTlZBTElEKSB7CiAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290byBv dXQ7CkBAIC0xMTIzLDcgKzExNDUsNyBAQCBzdGF0aWMgaW50IGRvX3BjaV9hZGQobGlieGxfX2dj ICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgZWxzZQogICAgICAgICByYyA9IDA7CiBvdXQ6Ci0g ICAgcmV0dXJuIHJjOworICAgIHBhcy0+Y2FsbGJhY2soZWdjLCBwYXMsIHJjKTsKIH0KIAogc3Rh dGljIGludCBsaWJ4bF9fZGV2aWNlX3BjaV9yZXNldChsaWJ4bF9fZ2MgKmdjLCB1bnNpZ25lZCBp bnQgZG9tYWluLCB1bnNpZ25lZCBpbnQgYnVzLApAQCAtMTE3Nyw5ICsxMTk5LDE0IEBAIGludCBs aWJ4bF9kZXZpY2VfcGNpX2FkZChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfYXN5bmNvcF9ob3cgKmFvX2hvdykKIHsK ICAgICBBT19DUkVBVEUoY3R4LCBkb21pZCwgYW9faG93KTsKLSAgICBpbnQgcmM7Ci0gICAgcmMg PSBsaWJ4bF9fZGV2aWNlX3BjaV9hZGQoZ2MsIGRvbWlkLCBwY2lkZXYsIGZhbHNlKTsKLSAgICBs aWJ4bF9fYW9fY29tcGxldGUoZWdjLCBhbywgcmMpOworICAgIGxpYnhsX19hb19kZXZpY2UgKmFv ZGV2OworCisgICAgR0NORVcoYW9kZXYpOworICAgIGxpYnhsX19wcmVwYXJlX2FvX2RldmljZShh bywgYW9kZXYpOworICAgIGFvZGV2LT5hY3Rpb24gPSBMSUJYTF9fREVWSUNFX0FDVElPTl9BREQ7 CisgICAgYW9kZXYtPmNhbGxiYWNrID0gZGV2aWNlX2FkZHJtX2FvY29tcGxldGU7CisgICAgYW9k ZXYtPnVwZGF0ZV9qc29uID0gdHJ1ZTsKKyAgICBsaWJ4bF9fZGV2aWNlX3BjaV9hZGQoZWdjLCBk b21pZCwgcGNpZGV2LCBmYWxzZSwgYW9kZXYpOwogICAgIHJldHVybiBBT19JTlBST0dSRVNTOwog fQogCkBAIC0xMjAwLDE0ICsxMjI3LDMxIEBAIHN0YXRpYyBpbnQgbGlieGxfcGNpZGV2X2Fzc2ln bmFibGUobGlieGxfY3R4ICpjdHgsIGxpYnhsX2RldmljZV9wY2kgKnBjaWRldikKICAgICByZXR1 cm4gaSAhPSBudW07CiB9CiAKLWludCBsaWJ4bF9fZGV2aWNlX3BjaV9hZGQobGlieGxfX2djICpn YywgdWludDMyX3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2Rldmlj ZV9wY2kgKnBjaWRldiwgYm9vbCBzdGFydGluZykKK3N0YXRpYyB2b2lkIGRldmljZV9wY2lfYWRk X3N0dWJkb21fZG9uZShsaWJ4bF9fZWdjICplZ2MsCisgICAgcGNpX2FkZF9zdGF0ZSAqLCBpbnQg cmMpOworc3RhdGljIHZvaWQgZGV2aWNlX3BjaV9hZGRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCisg ICAgcGNpX2FkZF9zdGF0ZSAqLCBpbnQgcmMpOworCit2b2lkIGxpYnhsX19kZXZpY2VfcGNpX2Fk ZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfZGV2aWNlX3BjaSAqcGNpZGV2LCBib29sIHN0YXJ0aW5nLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGlieGxfX2FvX2RldmljZSAqYW9kZXYpCiB7CisgICAgU1RBVEVf QU9fR0MoYW9kZXYtPmFvKTsKICAgICBsaWJ4bF9jdHggKmN0eCA9IGxpYnhsX19nY19vd25lcihn Yyk7Ci0gICAgdW5zaWduZWQgaW50IG9yaWdfdmRldiwgcGZ1bmNfbWFzazsKICAgICBsaWJ4bF9k ZXZpY2VfcGNpICphc3NpZ25lZDsKLSAgICBpbnQgbnVtX2Fzc2lnbmVkLCBpLCByYzsKKyAgICBp bnQgbnVtX2Fzc2lnbmVkLCByYzsKICAgICBpbnQgc3R1YmRvbWlkID0gMDsKKyAgICBwY2lfYWRk X3N0YXRlICpwYXM7CisKKyAgICAvKiBTdG9yZSAqcGNpZGV2IHRvIGJlIHVzZWQgYnkgY2FsbGJh Y2tzICovCisgICAgYW9kZXYtPmRldmljZV9jb25maWcgPSBwY2lkZXY7CisgICAgYW9kZXYtPmRl dmljZV90eXBlID0gJmxpYnhsX19wY2lkZXZfZGV2dHlwZTsKKworICAgIEdDTkVXKHBhcyk7Cisg ICAgcGFzLT5hb2RldiA9IGFvZGV2OworICAgIHBhcy0+ZG9taWQgPSBkb21pZDsKKyAgICBwYXMt PnN0YXJ0aW5nID0gc3RhcnRpbmc7CisgICAgcGFzLT5jYWxsYmFjayA9IGRldmljZV9wY2lfYWRk X3N0dWJkb21fZG9uZTsKIAogICAgIGlmIChsaWJ4bF9fZG9tYWluX3R5cGUoZ2MsIGRvbWlkKSA9 PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0pIHsKICAgICAgICAgcmMgPSB4Y190ZXN0X2Fzc2lnbl9k ZXZpY2UoY3R4LT54Y2gsIGRvbWlkLCBwY2lkZXZfZW5jb2RlX2JkZihwY2lkZXYpKTsKQEAgLTEy NTQsMTMgKzEyOTgsMzkgQEAgaW50IGxpYnhsX19kZXZpY2VfcGNpX2FkZChsaWJ4bF9fZ2MgKmdj LCB1aW50MzJfdCBkb21pZCwKIAogICAgIHN0dWJkb21pZCA9IGxpYnhsX2dldF9zdHViZG9tX2lk KGN0eCwgZG9taWQpOwogICAgIGlmIChzdHViZG9taWQgIT0gMCkgewotICAgICAgICBsaWJ4bF9k ZXZpY2VfcGNpIHBjaWRldl9zID0gKnBjaWRldjsKKyAgICAgICAgbGlieGxfZGV2aWNlX3BjaSAq cGNpZGV2X3M7CisKKyAgICAgICAgR0NORVcocGNpZGV2X3MpOworICAgICAgICBsaWJ4bF9kZXZp Y2VfcGNpX2luaXQocGNpZGV2X3MpOworICAgICAgICBsaWJ4bF9kZXZpY2VfcGNpX2NvcHkoQ1RY LCBwY2lkZXZfcywgcGNpZGV2KTsKICAgICAgICAgLyogc3R1YmRvbWFpbiBpcyBhbHdheXMgcnVu bmluZyBieSBub3csIGV2ZW4gYXQgY3JlYXRlIHRpbWUgKi8KLSAgICAgICAgcmMgPSBkb19wY2lf YWRkKGdjLCBzdHViZG9taWQsICZwY2lkZXZfcywgZmFsc2UpOwotICAgICAgICBpZiAoIHJjICkK LSAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICBwYXMtPmNhbGxiYWNrID0gZGV2aWNlX3Bj aV9hZGRfc3R1YmRvbV9kb25lOworICAgICAgICBkb19wY2lfYWRkKGVnYywgc3R1YmRvbWlkLCBw Y2lkZXZfcywgcGFzKTsgLyogbXVzdCBiZSBsYXN0ICovCisgICAgICAgIHJldHVybjsKICAgICB9 CiAKKyAgICBkZXZpY2VfcGNpX2FkZF9zdHViZG9tX2RvbmUoZWdjLCBwYXMsIDApOyAvKiBtdXN0 IGJlIGxhc3QgKi8KKyAgICByZXR1cm47CisKK291dDoKKyAgICBkZXZpY2VfcGNpX2FkZF9kb25l KGVnYywgcGFzLCByYyk7IC8qIG11c3QgYmUgbGFzdCAqLworfQorCitzdGF0aWMgdm9pZCBkZXZp Y2VfcGNpX2FkZF9zdHViZG9tX2RvbmUobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBjaV9hZGRfc3RhdGUgKnBhcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMpCit7CisgICAgU1RBVEVfQU9fR0Mo cGFzLT5hb2Rldi0+YW8pOworICAgIHVuc2lnbmVkIGludCBvcmlnX3ZkZXYsIHBmdW5jX21hc2s7 CisgICAgaW50IGk7CisKKyAgICAvKiBDb252ZW5pZW5jZSBhbGlhc2VzICovCisgICAgbGlieGxf X2FvX2RldmljZSAqYW9kZXYgPSBwYXMtPmFvZGV2OworICAgIGxpYnhsX2RvbWlkIGRvbWlkID0g cGFzLT5kb21pZDsKKyAgICBsaWJ4bF9kZXZpY2VfcGNpICpwY2lkZXYgPSBhb2Rldi0+ZGV2aWNl X2NvbmZpZzsKKworICAgIGlmIChyYykgZ290byBvdXQ7CisKICAgICBvcmlnX3ZkZXYgPSBwY2lk ZXYtPnZkZXZmbiAmIH43VTsKIAogICAgIGlmICggcGNpZGV2LT52ZnVuY19tYXNrID09IExJQlhM X1BDSV9GVU5DX0FMTCApIHsKQEAgLTEyOTEsMzEgKzEzNjEsODMgQEAgaW50IGxpYnhsX19kZXZp Y2VfcGNpX2FkZChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAg ICAgKi8KICAgICAgICAgICAgICAgICBwY2lkZXYtPnZkZXZmbiA9IG9yaWdfdmRldjsKICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgIGlmICggZG9fcGNpX2FkZChnYywgZG9taWQsIHBjaWRldiwg c3RhcnRpbmcpICkKLSAgICAgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAgICAg ICBwYXMtPmNhbGxiYWNrID0gZGV2aWNlX3BjaV9hZGRfZG9uZTsKKyAgICAgICAgICAgIGRvX3Bj aV9hZGQoZWdjLCBkb21pZCwgcGNpZGV2LCBwYXMpOyAvKiBtdXN0IGJlIGxhc3QgKi8KKyAgICAg ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAogb3V0OgotICAgIHJldHVybiByYzsK KyAgICBkZXZpY2VfcGNpX2FkZF9kb25lKGVnYywgcGFzLCByYyk7Cit9CisKK3N0YXRpYyB2b2lk IGRldmljZV9wY2lfYWRkX2RvbmUobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwY2lfYWRkX3N0YXRlICpwYXMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCByYykKK3sKKyAgICBFR0NfR0M7CisgICAgbGlieGxfX2FvX2RldmljZSAq YW9kZXYgPSBwYXMtPmFvZGV2OworICAgIGxpYnhsX2RvbWlkIGRvbWlkID0gcGFzLT5kb21pZDsK KyAgICBsaWJ4bF9kZXZpY2VfcGNpICpwY2lkZXYgPSBhb2Rldi0+ZGV2aWNlX2NvbmZpZzsKKwor ICAgIGlmIChyYykgeworICAgICAgICBMT0dEKEVSUk9SLCBkb21pZCwKKyAgICAgICAgICAgICAi bGlieGxfX2RldmljZV9wY2lfYWRkICBmYWlsZWQgZm9yICIKKyAgICAgICAgICAgICAiUENJIGRl dmljZSAleDoleDoleC4leCAocmMgJWQpIiwKKyAgICAgICAgICAgICBwY2lkZXYtPmRvbWFpbiwg cGNpZGV2LT5idXMsIHBjaWRldi0+ZGV2LCBwY2lkZXYtPmZ1bmMsCisgICAgICAgICAgICAgcmMp OworICAgIH0KKyAgICBhb2Rldi0+cmMgPSByYzsKKyAgICBhb2Rldi0+Y2FsbGJhY2soZWdjLCBh b2Rldik7CiB9CiAKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBsaWJ4bF9fbXVsdGlkZXYgbXVsdGlk ZXY7CisgICAgbGlieGxfX2FvX2RldmljZSAqb3V0ZXJfYW9kZXY7CisgICAgbGlieGxfZG9tYWlu X2NvbmZpZyAqZF9jb25maWc7CisgICAgbGlieGxfZG9taWQgZG9taWQ7Cit9IGFkZF9wY2lkZXZz X3N0YXRlOworCitzdGF0aWMgdm9pZCBhZGRfcGNpZGV2c19kb25lKGxpYnhsX19lZ2MgKiwgbGli eGxfX211bHRpZGV2ICosIGludCByYyk7CisKIHN0YXRpYyB2b2lkIGxpYnhsX19hZGRfcGNpZGV2 cyhsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19hbyAqYW8sIHVpbnQzMl90IGRvbWlkLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19tdWx0aWRldiAqbXVsdGlkZXYp CiB7CiAgICAgQU9fR0M7Ci0gICAgbGlieGxfX2FvX2RldmljZSAqYW9kZXYgPSBsaWJ4bF9fbXVs dGlkZXZfcHJlcGFyZShtdWx0aWRldik7Ci0gICAgaW50IGksIHJjID0gMDsKKyAgICBhZGRfcGNp ZGV2c19zdGF0ZSAqYXBkczsKKyAgICBpbnQgaTsKKworICAgIC8qIFdlIG5lZWQgdG8gc3RhcnQg YSBuZXcgbXVsdGlkZXYgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBleGVjdXRlCisgICAgICogbGli eGxfX2NyZWF0ZV9wY2lfYmFja2VuZCBvbmx5IG9uY2UuICovCisKKyAgICBHQ05FVyhhcGRzKTsK KyAgICBhcGRzLT5vdXRlcl9hb2RldiA9IGxpYnhsX19tdWx0aWRldl9wcmVwYXJlKG11bHRpZGV2 KTsKKyAgICBhcGRzLT5kX2NvbmZpZyA9IGRfY29uZmlnOworICAgIGFwZHMtPmRvbWlkID0gZG9t aWQ7CisgICAgYXBkcy0+bXVsdGlkZXYuY2FsbGJhY2sgPSBhZGRfcGNpZGV2c19kb25lOworICAg IGxpYnhsX19tdWx0aWRldl9iZWdpbihhbywgJmFwZHMtPm11bHRpZGV2KTsKIAogICAgIGZvciAo aSA9IDA7IGkgPCBkX2NvbmZpZy0+bnVtX3BjaWRldnM7IGkrKykgewotICAgICAgICByYyA9IGxp YnhsX19kZXZpY2VfcGNpX2FkZChnYywgZG9taWQsICZkX2NvbmZpZy0+cGNpZGV2c1tpXSwgdHJ1 ZSk7Ci0gICAgICAgIGlmIChyYyA8IDApIHsKLSAgICAgICAgICAgIExPR0QoRVJST1IsIGRvbWlk LCAibGlieGxfZGV2aWNlX3BjaV9hZGQgZmFpbGVkOiAlZCIsIHJjKTsKLSAgICAgICAgICAgIGdv dG8gb3V0OwotICAgICAgICB9CisgICAgICAgIGxpYnhsX19hb19kZXZpY2UgKmFvZGV2ID0gbGli eGxfX211bHRpZGV2X3ByZXBhcmUoJmFwZHMtPm11bHRpZGV2KTsKKyAgICAgICAgbGlieGxfX2Rl dmljZV9wY2lfYWRkKGVnYywgZG9taWQsICZkX2NvbmZpZy0+cGNpZGV2c1tpXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGFvZGV2KTsKICAgICB9CiAKKyAgICBsaWJ4bF9f bXVsdGlkZXZfcHJlcGFyZWQoZWdjLCAmYXBkcy0+bXVsdGlkZXYsIDApOworfQorCitzdGF0aWMg dm9pZCBhZGRfcGNpZGV2c19kb25lKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX211bHRpZGV2ICpt dWx0aWRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKQoreworICAgIEVH Q19HQzsKKyAgICBhZGRfcGNpZGV2c19zdGF0ZSAqYXBkcyA9IENPTlRBSU5FUl9PRihtdWx0aWRl diwgKmFwZHMsIG11bHRpZGV2KTsKKworICAgIC8qIENvbnZlbmllbmNlIGFsaWFzZXMgKi8KKyAg ICBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZyA9IGFwZHMtPmRfY29uZmlnOworICAgIGxp YnhsX2RvbWlkIGRvbWlkID0gYXBkcy0+ZG9taWQ7CisgICAgbGlieGxfX2FvX2RldmljZSAqYW9k ZXYgPSBhcGRzLT5vdXRlcl9hb2RldjsKKwogICAgIGlmIChkX2NvbmZpZy0+bnVtX3BjaWRldnMg PiAwKSB7CiAgICAgICAgIHJjID0gbGlieGxfX2NyZWF0ZV9wY2lfYmFja2VuZChnYywgZG9taWQs IGRfY29uZmlnLT5wY2lkZXZzLAogICAgICAgICAgICAgZF9jb25maWctPm51bV9wY2lkZXZzKTsK LS0gCkFudGhvbnkgUEVSQVJECgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==