From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v4 31/32] libxl_disk: Cut libxl_cdrom_insert into step Date: Fri, 27 Jul 2018 15:06:13 +0100 Message-ID: <20180727140614.13256-32-anthony.perard@citrix.com> References: <20180727140614.13256-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fj3je-0008QL-NJ for xen-devel@lists.xenproject.org; Fri, 27 Jul 2018 14:28:50 +0000 In-Reply-To: <20180727140614.13256-1-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Anthony PERARD , Ian Jackson , Wei Liu List-Id: xen-devel@lists.xenproject.org VGhpcyBpcyB0byBwcmVwYXJlIGxpYnhsX2Nkcm9tX2luc2VydCB0byBiZSBhYmxlIHRvIHNlbmQg Y29tbWFuZHMgdG8KUUVNVSB2aWEgdGhlIGxpYnhsX19ldl9xbXAuIFRoZSBuZXh0IHBhdGNoIGlz IGdvaW5nIHRvIG1ha2UgdXNlIG9mIGl0LgoKU2lnbmVkLW9mZi1ieTogQW50aG9ueSBQRVJBUkQg PGFudGhvbnkucGVyYXJkQGNpdHJpeC5jb20+Ci0tLQogdG9vbHMvbGlieGwvbGlieGxfZGlzay5j IHwgMTk0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90 b29scy9saWJ4bC9saWJ4bF9kaXNrLmMgYi90b29scy9saWJ4bC9saWJ4bF9kaXNrLmMKaW5kZXgg ZTllY2ViNjVlMy4uYzc1OTE3OTYyOCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZGlz ay5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2Rpc2suYwpAQCAtNjYxLDMxICs2NjEsNTUgQEAg aW50IGxpYnhsX2RldmljZV9kaXNrX2dldGluZm8obGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRv bWlkLAogICAgIHJldHVybiByYzsKIH0KIAordHlwZWRlZiBzdHJ1Y3QgeworICAgIGxpYnhsX19h byAqYW87CisgICAgbGlieGxfZG9tYWluX2NvbmZpZyBkX2NvbmZpZzsKKyAgICBjb25zdCBjaGFy ICpiZV9wYXRoOworICAgIGNvbnN0IGNoYXIgKmxpYnhsX3BhdGg7CisgICAgbGlieGxfZGV2aWNl X2Rpc2sgKmRpc2s7CisgICAgbGlieGxfZGV2aWNlX2Rpc2sgZGlza19lbXB0eTsKKyAgICBsaWJ4 bF9kZXZpY2VfZGlzayBkaXNrX3NhdmVkOworICAgIGludCBkbV92ZXI7CisgICAgaW50IGRvbWlk OworICAgIGxpYnhsX19kb21haW5fdXNlcmRhdGFfbG9jayAqbG9jazsKK30gbGlieGxfX2Nkcm9t X2luc2VydF9zdGF0ZTsKK3N0YXRpYyB2b2lkIGNkcm9tX2luc2VydF9lamVjdGVkKGxpYnhsX19l Z2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19jZHJvbV9p bnNlcnRfc3RhdGUgKmNpcyk7CitzdGF0aWMgdm9pZCBjZHJvbV9pbnNlcnRfaW5zZXJ0ZWQobGli eGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19j ZHJvbV9pbnNlcnRfc3RhdGUgKmNpcyk7CitzdGF0aWMgdm9pZCBjZHJvbV9pbnNlcnRfZG9uZShs aWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fY2Ry b21faW5zZXJ0X3N0YXRlICpjaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg cmMpOworCiBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBk b21pZCwgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGxpYnhsX2FzeW5jb3BfaG93ICphb19ob3cpCiB7CiAgICAgQU9fQ1JFQVRFKGN0eCwgZG9t aWQsIGFvX2hvdyk7CiAgICAgaW50IG51bSA9IDAsIGk7Ci0gICAgbGlieGxfZGV2aWNlX2Rpc2sg KmRpc2tzID0gTlVMTCwgZGlza19zYXZlZCwgZGlza19lbXB0eTsKLSAgICBsaWJ4bF9kb21haW5f Y29uZmlnIGRfY29uZmlnOwotICAgIGludCByYywgZG1fdmVyOworICAgIGxpYnhsX2RldmljZV9k aXNrICpkaXNrcyA9IE5VTEwsICpkaXNrX3NhdmVkLCAqZGlza19lbXB0eTsKKyAgICBpbnQgcmM7 CiAgICAgbGlieGxfX2RldmljZSBkZXZpY2U7Ci0gICAgY29uc3QgY2hhciAqYmVfcGF0aCwgKmxp YnhsX3BhdGg7Ci0gICAgY2hhciAqIHRtcDsKLSAgICBsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xv Y2sgKmxvY2sgPSBOVUxMOwotICAgIHhzX3RyYW5zYWN0aW9uX3QgdCA9IFhCVF9OVUxMOwotICAg IGZsZXhhcnJheV90ICppbnNlcnQgPSBOVUxMLCAqZW1wdHkgPSBOVUxMOworICAgIGxpYnhsX19j ZHJvbV9pbnNlcnRfc3RhdGUgKmNpczsKIAotICAgIGxpYnhsX2RvbWFpbl9jb25maWdfaW5pdCgm ZF9jb25maWcpOwotICAgIGxpYnhsX2RldmljZV9kaXNrX2luaXQoJmRpc2tfZW1wdHkpOwotICAg IGxpYnhsX2RldmljZV9kaXNrX2luaXQoJmRpc2tfc2F2ZWQpOwotICAgIGxpYnhsX2RldmljZV9k aXNrX2NvcHkoY3R4LCAmZGlza19zYXZlZCwgZGlzayk7CisgICAgR0NORVcoY2lzKTsKKyAgICBj aXMtPmFvID0gYW87CisgICAgY2lzLT5kb21pZCA9IGRvbWlkOworICAgIGNpcy0+ZGlzayA9IGRp c2s7CiAKLSAgICBkaXNrX2VtcHR5LmZvcm1hdCA9IExJQlhMX0RJU0tfRk9STUFUX0VNUFRZOwot ICAgIGRpc2tfZW1wdHkudmRldiA9IGxpYnhsX19zdHJkdXAoTk9HQywgZGlzay0+dmRldik7Ci0g ICAgZGlza19lbXB0eS5wZGV2X3BhdGggPSBsaWJ4bF9fc3RyZHVwKE5PR0MsICIiKTsKLSAgICBk aXNrX2VtcHR5LmlzX2Nkcm9tID0gMTsKLSAgICBsaWJ4bF9fZGV2aWNlX2Rpc2tfc2V0ZGVmYXVs dChnYywgZG9taWQsICZkaXNrX2VtcHR5LCBmYWxzZSk7CisgICAgZGlza19lbXB0eSA9ICZjaXMt PmRpc2tfZW1wdHk7CisgICAgZGlza19zYXZlZCA9ICZjaXMtPmRpc2tfc2F2ZWQ7CisKKworICAg IGxpYnhsX2RvbWFpbl9jb25maWdfaW5pdCgmY2lzLT5kX2NvbmZpZyk7CisgICAgbGlieGxfZGV2 aWNlX2Rpc2tfaW5pdChkaXNrX2VtcHR5KTsKKyAgICBsaWJ4bF9kZXZpY2VfZGlza19pbml0KGRp c2tfc2F2ZWQpOworICAgIGxpYnhsX2RldmljZV9kaXNrX2NvcHkoY3R4LCBkaXNrX3NhdmVkLCBk aXNrKTsKKworICAgIGRpc2tfZW1wdHktPmZvcm1hdCA9IExJQlhMX0RJU0tfRk9STUFUX0VNUFRZ OworICAgIGRpc2tfZW1wdHktPnZkZXYgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIGRpc2stPnZkZXYp OworICAgIGRpc2tfZW1wdHktPnBkZXZfcGF0aCA9IGxpYnhsX19zdHJkdXAoTk9HQywgIiIpOwor ICAgIGRpc2tfZW1wdHktPmlzX2Nkcm9tID0gMTsKKyAgICBsaWJ4bF9fZGV2aWNlX2Rpc2tfc2V0 ZGVmYXVsdChnYywgZG9taWQsIGRpc2tfZW1wdHksIGZhbHNlKTsKIAogICAgIGxpYnhsX2RvbWFp bl90eXBlIHR5cGUgPSBsaWJ4bF9fZG9tYWluX3R5cGUoZ2MsIGRvbWlkKTsKICAgICBpZiAodHlw ZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9JTlZBTElEKSB7CkBAIC03MDQsOCArNzI4LDggQEAgaW50 IGxpYnhsX2Nkcm9tX2luc2VydChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsIGxpYnhs X2RldmljZV9kaXNrICpkaXNrLAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBkbV92 ZXIgPSBsaWJ4bF9fZGV2aWNlX21vZGVsX3ZlcnNpb25fcnVubmluZyhnYywgZG9taWQpOwotICAg IGlmIChkbV92ZXIgPT0gLTEpIHsKKyAgICBjaXMtPmRtX3ZlciA9IGxpYnhsX19kZXZpY2VfbW9k ZWxfdmVyc2lvbl9ydW5uaW5nKGdjLCBkb21pZCk7CisgICAgaWYgKGNpcy0+ZG1fdmVyID09IC0x KSB7CiAgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiQ2Fubm90IGRldGVybWluZSBkZXZpY2Ug bW9kZWwgdmVyc2lvbiIpOwogICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CiAgICAgICAgIGdvdG8g b3V0OwpAQCAtNzM3LDMxICs3NjEsMTQgQEAgaW50IGxpYnhsX2Nkcm9tX2luc2VydChsaWJ4bF9j dHggKmN0eCwgdWludDMyX3QgZG9taWQsIGxpYnhsX2RldmljZV9kaXNrICpkaXNrLAogICAgIHJj ID0gbGlieGxfX2RldmljZV9mcm9tX2Rpc2soZ2MsIGRvbWlkLCBkaXNrLCAmZGV2aWNlKTsKICAg ICBpZiAocmMpIGdvdG8gb3V0OwogCi0gICAgYmVfcGF0aCA9IGxpYnhsX19kZXZpY2VfYmFja2Vu ZF9wYXRoKGdjLCAmZGV2aWNlKTsKLSAgICBsaWJ4bF9wYXRoID0gbGlieGxfX2RldmljZV9saWJ4 bF9wYXRoKGdjLCAmZGV2aWNlKTsKLQotICAgIGluc2VydCA9IGZsZXhhcnJheV9tYWtlKGdjLCA0 LCAxKTsKLQotICAgIGZsZXhhcnJheV9hcHBlbmRfcGFpcihpbnNlcnQsICJ0eXBlIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RldmljZV9kaXNrX3N0cmluZ19vZl9iYWNrZW5k KGRpc2stPmJhY2tlbmQpKTsKLSAgICBpZiAoZGlzay0+Zm9ybWF0ICE9IExJQlhMX0RJU0tfRk9S TUFUX0VNUFRZKQotICAgICAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoaW5zZXJ0LCAicGFyYW1z IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXM6JXMiLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnhsX19kZXZpY2VfZGlza19zdHJpbmdfb2ZfZm9ybWF0KGRp c2stPmZvcm1hdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzay0+cGRldl9wYXRo KSk7Ci0gICAgZWxzZQotICAgICAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoaW5zZXJ0LCAicGFy YW1zIiwgIiIpOwotCi0gICAgZW1wdHkgPSBmbGV4YXJyYXlfbWFrZShnYywgNCwgMSk7Ci0gICAg ZmxleGFycmF5X2FwcGVuZF9wYWlyKGVtcHR5LCAidHlwZSIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX19kZXZpY2VfZGlza19zdHJpbmdfb2ZfYmFja2VuZChkaXNrLT5iYWNrZW5k KSk7Ci0gICAgZmxleGFycmF5X2FwcGVuZF9wYWlyKGVtcHR5LCAicGFyYW1zIiwgIiIpOworICAg IGNpcy0+YmVfcGF0aCA9IGxpYnhsX19kZXZpY2VfYmFja2VuZF9wYXRoKGdjLCAmZGV2aWNlKTsK KyAgICBjaXMtPmxpYnhsX3BhdGggPSBsaWJ4bF9fZGV2aWNlX2xpYnhsX3BhdGgoZ2MsICZkZXZp Y2UpOwogCiAgICAgLyogTm90ZTogQ1RYIGxvY2sgaXMgYWxyZWFkeSBoZWxkIGF0IHRoaXMgcG9p bnQgc28gbG9jayBoaWVyYXJjaHkKICAgICAgKiBpcyBtYWludGFpbmVkLgogICAgICAqLwotICAg IGxvY2sgPSBsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEoZ2MsIGRvbWlkKTsKLSAgICBpZiAo IWxvY2spIHsKKyAgICBjaXMtPmxvY2sgPSBsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEoZ2Ms IGRvbWlkKTsKKyAgICBpZiAoIWNpcy0+bG9jaykgewogICAgICAgICByYyA9IEVSUk9SX0xPQ0tf RkFJTDsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQpAQCAtNzY5LDExICs3NzYsNDYgQEAgaW50 IGxpYnhsX2Nkcm9tX2luc2VydChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsIGxpYnhs X2RldmljZV9kaXNrICpkaXNrLAogICAgIC8qIFdlIG5lZWQgdG8gZWplY3QgdGhlIG9yaWdpbmFs IGltYWdlIGZpcnN0LiBUaGlzIGlzIGltcGxlbWVudGVkCiAgICAgICogYnkgaW5zZXJ0aW5nIGVt cHR5IG1lZGlhLiBKU09OIGlzIG5vdCB1cGRhdGVkLgogICAgICAqLwotICAgIGlmIChkbV92ZXIg PT0gTElCWExfREVWSUNFX01PREVMX1ZFUlNJT05fUUVNVV9YRU4pIHsKLSAgICAgICAgcmMgPSBs aWJ4bF9fcW1wX2luc2VydF9jZHJvbShnYywgZG9taWQsICZkaXNrX2VtcHR5KTsKKyAgICBpZiAo Y2lzLT5kbV92ZXIgPT0gTElCWExfREVWSUNFX01PREVMX1ZFUlNJT05fUUVNVV9YRU4pIHsKKyAg ICAgICAgcmMgPSBsaWJ4bF9fcW1wX2luc2VydF9jZHJvbShnYywgZG9taWQsIGRpc2tfZW1wdHkp OwogICAgICAgICBpZiAocmMpIGdvdG8gb3V0OwogICAgIH0KIAorICAgIGNkcm9tX2luc2VydF9l amVjdGVkKGVnYywgY2lzKTsKKworICAgIHJldHVybiBBT19JTlBST0dSRVNTOworCitvdXQ6Cisg ICAgbGlieGxfX2RldmljZV9saXN0X2ZyZWUoJmxpYnhsX19kaXNrX2RldnR5cGUsIGRpc2tzLCBu dW0pOworICAgIGNkcm9tX2luc2VydF9kb25lKGVnYywgY2lzLCByYyk7CisKKyAgICBpZiAocmMp IHJldHVybiBBT19DUkVBVEVfRkFJTChyYyk7CisgICAgcmV0dXJuIEFPX0lOUFJPR1JFU1M7Cit9 CisKK3N0YXRpYyB2b2lkIGNkcm9tX2luc2VydF9lamVjdGVkKGxpYnhsX19lZ2MgKmVnYywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19jZHJvbV9pbnNlcnRfc3RhdGUg KmNpcykKK3sKKyAgICBTVEFURV9BT19HQyhjaXMtPmFvKTsKKyAgICB1aW50MzJfdCBkb21pZCA9 IGNpcy0+ZG9taWQ7CisgICAgaW50IHJjOworICAgIGNvbnN0IGNoYXIgKmJlX3BhdGgsICpsaWJ4 bF9wYXRoOworICAgIGNoYXIgKiB0bXA7CisgICAgeHNfdHJhbnNhY3Rpb25fdCB0ID0gWEJUX05V TEw7CisgICAgZmxleGFycmF5X3QgKmVtcHR5OworCisgICAgbGlieGxfZG9tYWluX2NvbmZpZyAq ZF9jb25maWcgPSAmY2lzLT5kX2NvbmZpZzsKKyAgICBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzayA9 IGNpcy0+ZGlzazsKKyAgICBsaWJ4bF9kZXZpY2VfZGlzayAqZGlza19zYXZlZCA9ICZjaXMtPmRp c2tfc2F2ZWQ7CisKKyAgICBiZV9wYXRoID0gY2lzLT5iZV9wYXRoOworICAgIGxpYnhsX3BhdGgg PSBjaXMtPmxpYnhsX3BhdGg7CisKKyAgICBlbXB0eSA9IGZsZXhhcnJheV9tYWtlKGdjLCA0LCAx KTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoZW1wdHksICJ0eXBlIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgbGlieGxfX2RldmljZV9kaXNrX3N0cmluZ19vZl9iYWNrZW5kKGRpc2st PmJhY2tlbmQpKTsKKyAgICBmbGV4YXJyYXlfYXBwZW5kX3BhaXIoZW1wdHksICJwYXJhbXMiLCAi Iik7CisKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIHJjID0gbGlieGxfX3hzX3RyYW5zYWN0aW9u X3N0YXJ0KGdjLCAmdCk7CiAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CkBAIC04MDAsMTkgKzg0 Miw1NSBAQCBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBk b21pZCwgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgIGlmIChyYyA8IDApIGdvdG8g b3V0OwogICAgIH0KIAotICAgIHJjID0gbGlieGxfX2dldF9kb21haW5fY29uZmlndXJhdGlvbihn YywgZG9taWQsICZkX2NvbmZpZyk7CisgICAgcmMgPSBsaWJ4bF9fZ2V0X2RvbWFpbl9jb25maWd1 cmF0aW9uKGdjLCBkb21pZCwgZF9jb25maWcpOwogICAgIGlmIChyYykgZ290byBvdXQ7CiAKLSAg ICBkZXZpY2VfYWRkX2RvbWFpbl9jb25maWcoZ2MsICZkX2NvbmZpZywgJmxpYnhsX19kaXNrX2Rl dnR5cGUsICZkaXNrX3NhdmVkKTsKKyAgICBkZXZpY2VfYWRkX2RvbWFpbl9jb25maWcoZ2MsIGRf Y29uZmlnLCAmbGlieGxfX2Rpc2tfZGV2dHlwZSwgZGlza19zYXZlZCk7CiAKLSAgICByYyA9IGxp YnhsX19kbV9jaGVja19zdGFydChnYywgJmRfY29uZmlnLCBkb21pZCk7CisgICAgcmMgPSBsaWJ4 bF9fZG1fY2hlY2tfc3RhcnQoZ2MsIGRfY29uZmlnLCBkb21pZCk7CiAgICAgaWYgKHJjKSBnb3Rv IG91dDsKIAotICAgIGlmIChkbV92ZXIgPT0gTElCWExfREVWSUNFX01PREVMX1ZFUlNJT05fUUVN VV9YRU4pIHsKKyAgICBpZiAoY2lzLT5kbV92ZXIgPT0gTElCWExfREVWSUNFX01PREVMX1ZFUlNJ T05fUUVNVV9YRU4pIHsKICAgICAgICAgcmMgPSBsaWJ4bF9fcW1wX2luc2VydF9jZHJvbShnYywg ZG9taWQsIGRpc2spOwogICAgICAgICBpZiAocmMpIGdvdG8gb3V0OwogICAgIH0KIAorICAgIGNk cm9tX2luc2VydF9pbnNlcnRlZChlZ2MsIGNpcyk7CisKKyAgICByZXR1cm47CisKK291dDoKKyAg ICBsaWJ4bF9feHNfdHJhbnNhY3Rpb25fYWJvcnQoZ2MsICZ0KTsKKyAgICBjZHJvbV9pbnNlcnRf ZG9uZShlZ2MsIGNpcywgcmMpOworfQorCitzdGF0aWMgdm9pZCBjZHJvbV9pbnNlcnRfaW5zZXJ0 ZWQobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX19jZHJvbV9pbnNlcnRfc3RhdGUgKmNpcykKK3sKKyAgICBTVEFURV9BT19HQyhjaXMtPmFv KTsKKyAgICB1aW50MzJfdCBkb21pZCA9IGNpcy0+ZG9taWQ7CisgICAgaW50IHJjOworICAgIGNv bnN0IGNoYXIgKmJlX3BhdGgsICpsaWJ4bF9wYXRoOworICAgIGNoYXIgKiB0bXA7CisgICAgeHNf dHJhbnNhY3Rpb25fdCB0ID0gWEJUX05VTEw7CisgICAgZmxleGFycmF5X3QgKmluc2VydDsKKwor ICAgIGxpYnhsX2RldmljZV9kaXNrICpkaXNrID0gY2lzLT5kaXNrOworICAgIGxpYnhsX2RvbWFp bl9jb25maWcgKmRfY29uZmlnID0gJmNpcy0+ZF9jb25maWc7CisgICAgYmVfcGF0aCA9IGNpcy0+ YmVfcGF0aDsKKyAgICBsaWJ4bF9wYXRoID0gY2lzLT5saWJ4bF9wYXRoOworCisgICAgaW5zZXJ0 ID0gZmxleGFycmF5X21ha2UoZ2MsIDQsIDEpOworICAgIGZsZXhhcnJheV9hcHBlbmRfcGFpcihp bnNlcnQsICJ0eXBlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RldmljZV9k aXNrX3N0cmluZ19vZl9iYWNrZW5kKGRpc2stPmJhY2tlbmQpKTsKKyAgICBpZiAoZGlzay0+Zm9y bWF0ICE9IExJQlhMX0RJU0tfRk9STUFUX0VNUFRZKQorICAgICAgICBmbGV4YXJyYXlfYXBwZW5k X3BhaXIoaW5zZXJ0LCAicGFyYW1zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5U RigiJXM6JXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kZXZpY2VfZGlz a19zdHJpbmdfb2ZfZm9ybWF0KGRpc2stPmZvcm1hdCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGlzay0+cGRldl9wYXRoKSk7CisgICAgZWxzZQorICAgICAgICBmbGV4YXJyYXlfYXBw ZW5kX3BhaXIoaW5zZXJ0LCAicGFyYW1zIiwgIiIpOworCiAgICAgZm9yICg7OykgewogICAgICAg ICByYyA9IGxpYnhsX194c190cmFuc2FjdGlvbl9zdGFydChnYywgJnQpOwogICAgICAgICBpZiAo cmMpIGdvdG8gb3V0OwpAQCAtODI2LDcgKzkwNCw3IEBAIGludCBsaWJ4bF9jZHJvbV9pbnNlcnQo bGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaywK ICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CiAKLSAgICAgICAgcmMgPSBsaWJ4bF9f c2V0X2RvbWFpbl9jb25maWd1cmF0aW9uKGdjLCBkb21pZCwgJmRfY29uZmlnKTsKKyAgICAgICAg cmMgPSBsaWJ4bF9fc2V0X2RvbWFpbl9jb25maWd1cmF0aW9uKGdjLCBkb21pZCwgZF9jb25maWcp OwogICAgICAgICBpZiAocmMpIGdvdG8gb3V0OwogCiAgICAgICAgIGNoYXIgKiprdnMgPSBsaWJ4 bF9feHNfa3ZzX29mX2ZsZXhhcnJheShnYywgaW5zZXJ0KTsKQEAgLTg0MiwyMiArOTIwLDI0IEBA IGludCBsaWJ4bF9jZHJvbV9pbnNlcnQobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBs aWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKICAgICAgICAgaWYgKHJjIDwgMCkgZ290byBvdXQ7CiAg ICAgfQogCi0gICAgLyogc3VjY2Vzcywgbm8gYWN0dWFsIGFzeW5jICovCi0gICAgbGlieGxfX2Fv X2NvbXBsZXRlKGVnYywgYW8sIDApOwotCiAgICAgcmMgPSAwOwogCiBvdXQ6CiAgICAgbGlieGxf X3hzX3RyYW5zYWN0aW9uX2Fib3J0KGdjLCAmdCk7Ci0gICAgbGlieGxfX2RldmljZV9saXN0X2Zy ZWUoJmxpYnhsX19kaXNrX2RldnR5cGUsIGRpc2tzLCBudW0pOwotICAgIGxpYnhsX2RldmljZV9k aXNrX2Rpc3Bvc2UoJmRpc2tfZW1wdHkpOwotICAgIGxpYnhsX2RldmljZV9kaXNrX2Rpc3Bvc2Uo JmRpc2tfc2F2ZWQpOwotICAgIGxpYnhsX2RvbWFpbl9jb25maWdfZGlzcG9zZSgmZF9jb25maWcp OworICAgIGNkcm9tX2luc2VydF9kb25lKGVnYywgY2lzLCByYyk7Cit9CiAKLSAgICBpZiAobG9j aykgbGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEobG9jayk7CitzdGF0aWMgdm9pZCBjZHJv bV9pbnNlcnRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgcmMpCit7CisgICAgU1RBVEVfQU9fR0MoY2lzLT5hbyk7CiAKLSAgICBp ZiAocmMpIHJldHVybiBBT19DUkVBVEVfRkFJTChyYyk7Ci0gICAgcmV0dXJuIEFPX0lOUFJPR1JF U1M7CisgICAgbGlieGxfZG9tYWluX2NvbmZpZ19kaXNwb3NlKCZjaXMtPmRfY29uZmlnKTsKKyAg ICBsaWJ4bF9kZXZpY2VfZGlza19kaXNwb3NlKCZjaXMtPmRpc2tfZW1wdHkpOworICAgIGxpYnhs X2RldmljZV9kaXNrX2Rpc3Bvc2UoJmNpcy0+ZGlza19zYXZlZCk7CisgICAgaWYgKGNpcy0+bG9j aykgbGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEoY2lzLT5sb2NrKTsKKyAgICBsaWJ4bF9f YW9fY29tcGxldGUoZWdjLCBhbywgcmMpOwogfQogCiAvKiBsaWJ4bF9fYWxsb2NfdmRldiBvbmx5 IHdvcmtzIG9uIHRoZSBsb2NhbCBkb21haW4sIHRoYXQgaXMgdGhlIGRvbWFpbgotLSAKQW50aG9u eSBQRVJBUkQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpo dHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs