From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH 6/9] libxl_disk: Cut libxl_cdrom_insert into steps .. Date: Tue, 9 Apr 2019 17:45:39 +0100 Message-ID: <20190409164542.30274-7-anthony.perard@citrix.com> References: <20190409164542.30274-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hDtsh-0008B8-H4 for xen-devel@lists.xenproject.org; Tue, 09 Apr 2019 16:45:55 +0000 In-Reply-To: <20190409164542.30274-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 , Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org Li4gYW5kIHVzZSBhIG5ldyAic2xvdyIgbG9jay4KClRoaXMgcGF0Y2ggY3V0IGxpYnhsX2Nkcm9t X2luc2VydCBpbnRvIGRpZmZlcmVudCBzdGVwL2Z1bmN0aW9uIGJ1dCB0aGVyZQphcmUgc3RpbGwg Y2FsbGVkIHN5bmNocm9ub3VzbHkuIEEgbGF0ZXIgcGF0Y2ggd2lsbCBjYWxsIHRoZW0KYXN5bmNo cm9ub3VzbHkgd2hlbiBRTVAgaXMgaW52b2x2ZWQuCgpUaGUganNvbl9sb2NrIGhhcyBiZWVuIHJl cGxhY2VkIGJ5IHRoZSBxbXBfbG9jayBmb3IgcHJvdGVjdGlvbiBhZ2FpbnN0CmNvbmN1cnJlbnQg Y2hhbmdlcyB0byB0aGUgY2Ryb20uIFRoZSBqc29uX2xvY2sgaXMgbm93IG9ubHkgdXNlZCB3aGVu CnJlYWRpbmcvbW9kaWZ5aW5nIHRoZSBkb21haW4gdXNlcmRhdGEuCgpTaWduZWQtb2ZmLWJ5OiBB bnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KLS0tCiB0b29scy9saWJ4 bC9saWJ4bF9kaXNrLmMgfCAxNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2Rpc2suYyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2Rpc2suYwppbmRleCBmN2ExYjc1YWUxLi4xNGRmYzY3OTcxIDEwMDY0NAotLS0gYS90b29scy9s aWJ4bC9saWJ4bF9kaXNrLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZGlzay5jCkBAIC02NjEs MjQgKzY2MSwzOCBAQCBpbnQgbGlieGxfZGV2aWNlX2Rpc2tfZ2V0aW5mbyhsaWJ4bF9jdHggKmN0 eCwgdWludDMyX3QgZG9taWQsCiAgICAgcmV0dXJuIHJjOwogfQogCit0eXBlZGVmIHN0cnVjdCB7 CisgICAgbGlieGxfX2FvICphbzsKKyAgICBsaWJ4bF9kb21pZCBkb21pZDsKKyAgICBsaWJ4bF9k ZXZpY2VfZGlzayAqZGlzazsKKyAgICBsaWJ4bF9kZXZpY2VfZGlzayBkaXNrX3NhdmVkOworICAg IGxpYnhsX19kb21haW5fcW1wX2xvY2sgKnFtcF9sb2NrOworICAgIGludCBkbV92ZXI7Cit9IGxp YnhsX19jZHJvbV9pbnNlcnRfc3RhdGU7CisKK3N0YXRpYyB2b2lkIGNkcm9tX2luc2VydF9lamVj dGVkKGxpYnhsX19lZ2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX19jZHJvbV9pbnNlcnRfc3RhdGUgKmNpcyk7CitzdGF0aWMgdm9pZCBjZHJvbV9pbnNlcnRf aW5zZXJ0ZWQobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX19jZHJvbV9pbnNlcnRfc3RhdGUgKmNpcyk7CitzdGF0aWMgdm9pZCBjZHJvbV9p bnNlcnRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgcmMpOworCiBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4 LCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93ICphb19ob3cpCiB7CiAgICAgQU9fQ1JF QVRFKGN0eCwgZG9taWQsIGFvX2hvdyk7CiAgICAgaW50IG51bSA9IDAsIGk7Ci0gICAgbGlieGxf ZGV2aWNlX2Rpc2sgKmRpc2tzID0gTlVMTCwgZGlza19zYXZlZDsKLSAgICBsaWJ4bF9kb21haW5f Y29uZmlnIGRfY29uZmlnOwotICAgIGludCByYywgZG1fdmVyOwotICAgIGxpYnhsX19kZXZpY2Ug ZGV2aWNlOwotICAgIGNvbnN0IGNoYXIgKmJlX3BhdGgsICpsaWJ4bF9wYXRoOwotICAgIGNoYXIg KiB0bXA7Ci0gICAgbGlieGxfX2RvbWFpbl91c2VyZGF0YV9sb2NrICpsb2NrID0gTlVMTDsKLSAg ICB4c190cmFuc2FjdGlvbl90IHQgPSBYQlRfTlVMTDsKLSAgICBmbGV4YXJyYXlfdCAqaW5zZXJ0 ID0gTlVMTCwgKmVtcHR5ID0gTlVMTDsKKyAgICBsaWJ4bF9kZXZpY2VfZGlzayAqZGlza3MgPSBO VUxMOworICAgIGludCByYzsKKyAgICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXM7CiAK LSAgICBsaWJ4bF9kb21haW5fY29uZmlnX2luaXQoJmRfY29uZmlnKTsKLSAgICBsaWJ4bF9kZXZp Y2VfZGlza19pbml0KCZkaXNrX3NhdmVkKTsKLSAgICBsaWJ4bF9kZXZpY2VfZGlza19jb3B5KGN0 eCwgJmRpc2tfc2F2ZWQsIGRpc2spOworICAgIEdDTkVXKGNpcyk7CisgICAgY2lzLT5hbyA9IGFv OworICAgIGNpcy0+ZG9taWQgPSBkb21pZDsKKyAgICBjaXMtPmRpc2sgPSBkaXNrOworICAgIGxp YnhsX2RldmljZV9kaXNrX2luaXQoJmNpcy0+ZGlza19zYXZlZCk7CisgICAgbGlieGxfZGV2aWNl X2Rpc2tfY29weShjdHgsICZjaXMtPmRpc2tfc2F2ZWQsIGRpc2spOwogCiAgICAgbGlieGxfZG9t YWluX3R5cGUgdHlwZSA9IGxpYnhsX19kb21haW5fdHlwZShnYywgZG9taWQpOwogICAgIGlmICh0 eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0lOVkFMSUQpIHsKQEAgLTY5Nyw4ICs3MTEsOCBAQCBp bnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgbGli eGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICAgIGRt X3ZlciA9IGxpYnhsX19kZXZpY2VfbW9kZWxfdmVyc2lvbl9ydW5uaW5nKGdjLCBkb21pZCk7Ci0g ICAgaWYgKGRtX3ZlciA9PSAtMSkgeworICAgIGNpcy0+ZG1fdmVyID0gbGlieGxfX2RldmljZV9t b2RlbF92ZXJzaW9uX3J1bm5pbmcoZ2MsIGRvbWlkKTsKKyAgICBpZiAoY2lzLT5kbV92ZXIgPT0g LTEpIHsKICAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJDYW5ub3QgZGV0ZXJtaW5lIGRldmlj ZSBtb2RlbCB2ZXJzaW9uIik7CiAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290 byBvdXQ7CkBAIC03MjcsMTcgKzc0MSw4IEBAIGludCBsaWJ4bF9jZHJvbV9pbnNlcnQobGlieGxf Y3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKICAgICAg ICAgZGlzay0+Zm9ybWF0ID0gTElCWExfRElTS19GT1JNQVRfRU1QVFk7CiAgICAgfQogCi0gICAg cmMgPSBsaWJ4bF9fZGV2aWNlX2Zyb21fZGlzayhnYywgZG9taWQsIGRpc2ssICZkZXZpY2UpOwot ICAgIGlmIChyYykgZ290byBvdXQ7Ci0KLSAgICBiZV9wYXRoID0gbGlieGxfX2RldmljZV9iYWNr ZW5kX3BhdGgoZ2MsICZkZXZpY2UpOwotICAgIGxpYnhsX3BhdGggPSBsaWJ4bF9fZGV2aWNlX2xp YnhsX3BhdGgoZ2MsICZkZXZpY2UpOwotCi0gICAgLyogTm90ZTogQ1RYIGxvY2sgaXMgYWxyZWFk eSBoZWxkIGF0IHRoaXMgcG9pbnQgc28gbG9jayBoaWVyYXJjaHkKLSAgICAgKiBpcyBtYWludGFp bmVkLgotICAgICAqLwotICAgIGxvY2sgPSBsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEoZ2Ms IGRvbWlkKTsKLSAgICBpZiAoIWxvY2spIHsKKyAgICBjaXMtPnFtcF9sb2NrID0gbGlieGxfX2xv Y2tfZG9tYWluX3FtcChnYywgZG9taWQpOworICAgIGlmICghY2lzLT5xbXBfbG9jaykgewogICAg ICAgICByYyA9IEVSUk9SX0xPQ0tfRkFJTDsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQpAQCAt NzQ2LDcgKzc1MSw3IEBAIGludCBsaWJ4bF9jZHJvbV9pbnNlcnQobGlieGxfY3R4ICpjdHgsIHVp bnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKICAgICAgKiBieSBpbnNlcnRp bmcgZW1wdHkgbWVkaWEuIEpTT04gaXMgbm90IHVwZGF0ZWQuCiAgICAgICovCiAKLSAgICBpZiAo ZG1fdmVyID09IExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOKSB7CisgICAgaWYg KGNpcy0+ZG1fdmVyID09IExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOKSB7CiAg ICAgICAgIGxpYnhsX2RldmljZV9kaXNrIGRpc2tfZW1wdHk7CiAKICAgICAgICAgbGlieGxfZGV2 aWNlX2Rpc2tfaW5pdCgmZGlza19lbXB0eSk7CkBAIC03NjEsNiArNzY2LDQ4IEBAIGludCBsaWJ4 bF9jZHJvbV9pbnNlcnQobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZp Y2VfZGlzayAqZGlzaywKICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKICAgICB9CiAKKyAgICBy YyA9IDA7CisKK291dDoKKyAgICBsaWJ4bF9fZGV2aWNlX2xpc3RfZnJlZSgmbGlieGxfX2Rpc2tf ZGV2dHlwZSwgZGlza3MsIG51bSk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIGNkcm9tX2luc2Vy dF9kb25lKGVnYywgY2lzLCByYyk7IC8qIG11c3QgYmUgbGFzdCAqLworICAgIH0gZWxzZSB7Cisg ICAgICAgIGNkcm9tX2luc2VydF9lamVjdGVkKGVnYywgY2lzKTsgLyogbXVzdCBiZSBsYXN0ICov CisgICAgfQorICAgIHJldHVybiBBT19JTlBST0dSRVNTOworfQorCitzdGF0aWMgdm9pZCBjZHJv bV9pbnNlcnRfZWplY3RlZChsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXMpCit7CisgICAgRUdDX0dD OworICAgIGludCByYzsKKyAgICBsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmRhdGFfbG9j ayA9IE5VTEw7CisgICAgbGlieGxfX2RldmljZSBkZXZpY2U7CisgICAgY29uc3QgY2hhciAqYmVf cGF0aCwgKmxpYnhsX3BhdGg7CisgICAgZmxleGFycmF5X3QgKmVtcHR5ID0gTlVMTDsKKyAgICB4 c190cmFuc2FjdGlvbl90IHQgPSBYQlRfTlVMTDsKKyAgICBjaGFyICp0bXA7CisgICAgbGlieGxf ZG9tYWluX2NvbmZpZyBkX2NvbmZpZzsKKworICAgIC8qIGNvbnZlbmllbmNlIGFsaWFzZXMgKi8K KyAgICBsaWJ4bF9kb21pZCBkb21pZCA9IGNpcy0+ZG9taWQ7CisgICAgbGlieGxfZGV2aWNlX2Rp c2sgKmRpc2sgPSBjaXMtPmRpc2s7CisKKyAgICBsaWJ4bF9kb21haW5fY29uZmlnX2luaXQoJmRf Y29uZmlnKTsKKworICAgIHJjID0gbGlieGxfX2RldmljZV9mcm9tX2Rpc2soZ2MsIGRvbWlkLCBk aXNrLCAmZGV2aWNlKTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIGJlX3BhdGggPSBsaWJ4 bF9fZGV2aWNlX2JhY2tlbmRfcGF0aChnYywgJmRldmljZSk7CisgICAgbGlieGxfcGF0aCA9IGxp YnhsX19kZXZpY2VfbGlieGxfcGF0aChnYywgJmRldmljZSk7CisKKyAgICBkYXRhX2xvY2sgPSBs aWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEoZ2MsIGRvbWlkKTsKKyAgICBpZiAoIWRhdGFfbG9j aykgeworICAgICAgICByYyA9IEVSUk9SX0xPQ0tfRkFJTDsKKyAgICAgICAgZ290byBvdXQ7Cisg ICAgfQorCiAgICAgZW1wdHkgPSBmbGV4YXJyYXlfbWFrZShnYywgNCwgMSk7CiAgICAgZmxleGFy cmF5X2FwcGVuZF9wYWlyKGVtcHR5LCAidHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX19kZXZpY2VfZGlza19zdHJpbmdfb2ZfYmFja2VuZChkaXNrLT5iYWNrZW5kKSk7CkBA IC03OTksMTYgKzg0Niw2NiBAQCBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4 LCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgcmMgPSBsaWJ4 bF9fZ2V0X2RvbWFpbl9jb25maWd1cmF0aW9uKGdjLCBkb21pZCwgJmRfY29uZmlnKTsKICAgICBp ZiAocmMpIGdvdG8gb3V0OwogCi0gICAgZGV2aWNlX2FkZF9kb21haW5fY29uZmlnKGdjLCAmZF9j b25maWcsICZsaWJ4bF9fZGlza19kZXZ0eXBlLCAmZGlza19zYXZlZCk7CisgICAgZGV2aWNlX2Fk ZF9kb21haW5fY29uZmlnKGdjLCAmZF9jb25maWcsICZsaWJ4bF9fZGlza19kZXZ0eXBlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lzLT5kaXNrX3NhdmVkKTsKIAogICAgIHJjID0g bGlieGxfX2RtX2NoZWNrX3N0YXJ0KGdjLCAmZF9jb25maWcsIGRvbWlkKTsKICAgICBpZiAocmMp IGdvdG8gb3V0OwogCi0gICAgaWYgKGRtX3ZlciA9PSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lP Tl9RRU1VX1hFTikgeworICAgIGlmIChjaXMtPmRtX3ZlciA9PSBMSUJYTF9ERVZJQ0VfTU9ERUxf VkVSU0lPTl9RRU1VX1hFTikgewogICAgICAgICByYyA9IGxpYnhsX19xbXBfaW5zZXJ0X2Nkcm9t KGdjLCBkb21pZCwgZGlzayk7CiAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CiAgICAgfQogCisg ICAgcmMgPSAwOworCitvdXQ6CisgICAgbGlieGxfX3hzX3RyYW5zYWN0aW9uX2Fib3J0KGdjLCAm dCk7CisgICAgbGlieGxfZG9tYWluX2NvbmZpZ19kaXNwb3NlKCZkX2NvbmZpZyk7CisgICAgaWYg KGRhdGFfbG9jaykgbGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEoZGF0YV9sb2NrKTsKKyAg ICBpZiAocmMpIHsKKyAgICAgICAgY2Ryb21faW5zZXJ0X2RvbmUoZWdjLCBjaXMsIHJjKTsgLyog bXVzdCBiZSBsYXN0ICovCisgICAgfSBlbHNlIHsKKyAgICAgICAgY2Ryb21faW5zZXJ0X2luc2Vy dGVkKGVnYywgY2lzKTsgLyogbXVzdCBiZSBsYXN0ICovCisgICAgfQorfQorCitzdGF0aWMgdm9p ZCBjZHJvbV9pbnNlcnRfaW5zZXJ0ZWQobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnhsX19jZHJvbV9pbnNlcnRfc3RhdGUgKmNpcykKK3sKKyAg ICBFR0NfR0M7CisgICAgaW50IHJjOworICAgIGxpYnhsX19kb21haW5fdXNlcmRhdGFfbG9jayAq ZGF0YV9sb2NrID0gTlVMTDsKKyAgICBsaWJ4bF9kb21haW5fY29uZmlnIGRfY29uZmlnOworICAg IGZsZXhhcnJheV90ICppbnNlcnQgPSBOVUxMOworICAgIHhzX3RyYW5zYWN0aW9uX3QgdCA9IFhC VF9OVUxMOworICAgIGxpYnhsX19kZXZpY2UgZGV2aWNlOworICAgIGNvbnN0IGNoYXIgKmJlX3Bh dGgsICpsaWJ4bF9wYXRoOworICAgIGNoYXIgKiB0bXA7CisKKyAgICAvKiBjb252ZW5pZW5jZSBh bGlhc2VzICovCisgICAgbGlieGxfZG9taWQgZG9taWQgPSBjaXMtPmRvbWlkOworICAgIGxpYnhs X2RldmljZV9kaXNrICpkaXNrID0gY2lzLT5kaXNrOworCisgICAgbGlieGxfZG9tYWluX2NvbmZp Z19pbml0KCZkX2NvbmZpZyk7CisKKyAgICByYyA9IGxpYnhsX19kZXZpY2VfZnJvbV9kaXNrKGdj LCBkb21pZCwgZGlzaywgJmRldmljZSk7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICBiZV9w YXRoID0gbGlieGxfX2RldmljZV9iYWNrZW5kX3BhdGgoZ2MsICZkZXZpY2UpOworICAgIGxpYnhs X3BhdGggPSBsaWJ4bF9fZGV2aWNlX2xpYnhsX3BhdGgoZ2MsICZkZXZpY2UpOworCisgICAgZGF0 YV9sb2NrID0gbGlieGxfX2xvY2tfZG9tYWluX3VzZXJkYXRhKGdjLCBkb21pZCk7CisgICAgaWYg KCFkYXRhX2xvY2spIHsKKyAgICAgICAgcmMgPSBFUlJPUl9MT0NLX0ZBSUw7CisgICAgICAgIGdv dG8gb3V0OworICAgIH0KKworICAgIHJjID0gbGlieGxfX2dldF9kb21haW5fY29uZmlndXJhdGlv bihnYywgZG9taWQsICZkX2NvbmZpZyk7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIGRl dmljZV9hZGRfZG9tYWluX2NvbmZpZyhnYywgJmRfY29uZmlnLCAmbGlieGxfX2Rpc2tfZGV2dHlw ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNpcy0+ZGlza19zYXZlZCk7CisKICAg ICBpbnNlcnQgPSBmbGV4YXJyYXlfbWFrZShnYywgNCwgMSk7CiAgICAgZmxleGFycmF5X2FwcGVu ZF9wYWlyKGluc2VydCwgInR5cGUiLAogICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kZXZp Y2VfZGlza19zdHJpbmdfb2ZfYmFja2VuZChkaXNrLT5iYWNrZW5kKSk7CkBAIC04NDksMjEgKzk0 NiwyMiBAQCBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBk b21pZCwgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgIGlmIChyYyA8IDApIGdvdG8g b3V0OwogICAgIH0KIAotICAgIC8qIHN1Y2Nlc3MsIG5vIGFjdHVhbCBhc3luYyAqLwotICAgIGxp YnhsX19hb19jb21wbGV0ZShlZ2MsIGFvLCAwKTsKLQogICAgIHJjID0gMDsKIAogb3V0OgogICAg IGxpYnhsX194c190cmFuc2FjdGlvbl9hYm9ydChnYywgJnQpOwotICAgIGxpYnhsX19kZXZpY2Vf bGlzdF9mcmVlKCZsaWJ4bF9fZGlza19kZXZ0eXBlLCBkaXNrcywgbnVtKTsKLSAgICBsaWJ4bF9k ZXZpY2VfZGlza19kaXNwb3NlKCZkaXNrX3NhdmVkKTsKICAgICBsaWJ4bF9kb21haW5fY29uZmln X2Rpc3Bvc2UoJmRfY29uZmlnKTsKKyAgICBpZiAoZGF0YV9sb2NrKSBsaWJ4bF9fdW5sb2NrX2Rv bWFpbl91c2VyZGF0YShkYXRhX2xvY2spOworICAgIGNkcm9tX2luc2VydF9kb25lKGVnYywgY2lz LCByYyk7IC8qIG11c3QgYmUgbGFzdCAqLworfQogCi0gICAgaWYgKGxvY2spIGxpYnhsX191bmxv Y2tfZG9tYWluX3VzZXJkYXRhKGxvY2spOwotCi0gICAgaWYgKHJjKSByZXR1cm4gQU9fQ1JFQVRF X0ZBSUwocmMpOwotICAgIHJldHVybiBBT19JTlBST0dSRVNTOworc3RhdGljIHZvaWQgY2Ryb21f aW5zZXJ0X2RvbmUobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfX2Nkcm9tX2luc2VydF9zdGF0ZSAqY2lzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IHJjKQoreworICAgIGlmIChjaXMtPnFtcF9sb2NrKSBsaWJ4bF9fdW5sb2Nr X2RvbWFpbl9xbXAoY2lzLT5xbXBfbG9jayk7CisgICAgbGlieGxfZGV2aWNlX2Rpc2tfZGlzcG9z ZSgmY2lzLT5kaXNrX3NhdmVkKTsKKyAgICBsaWJ4bF9fYW9fY29tcGxldGUoZWdjLCBjaXMtPmFv LCByYyk7CiB9CiAKIC8qIGxpYnhsX19hbGxvY192ZGV2IG9ubHkgd29ya3Mgb24gdGhlIGxvY2Fs IGRvbWFpbiwgdGhhdCBpcyB0aGUgZG9tYWluCi0tIApBbnRob255IFBFUkFSRAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= 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.0 required=3.0 tests=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 695BFC282CE for ; Tue, 9 Apr 2019 16:46:08 +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 376B92084C for ; Tue, 9 Apr 2019 16:46:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 376B92084C 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 1hDtsj-0008DJ-VC; Tue, 09 Apr 2019 16:45:57 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hDtsh-0008B8-H4 for xen-devel@lists.xenproject.org; Tue, 09 Apr 2019 16:45:55 +0000 X-Inumbo-ID: ed45bb4e-5ae6-11e9-9c33-875c3996ba88 Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id ed45bb4e-5ae6-11e9-9c33-875c3996ba88; Tue, 09 Apr 2019 16:45:52 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.60,330,1549929600"; d="scan'208";a="83137614" From: Anthony PERARD To: Date: Tue, 9 Apr 2019 17:45:39 +0100 Message-ID: <20190409164542.30274-7-anthony.perard@citrix.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190409164542.30274-1-anthony.perard@citrix.com> References: <20190409164542.30274-1-anthony.perard@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 6/9] libxl_disk: Cut libxl_cdrom_insert into steps .. 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 , Wei Liu , Ian Jackson Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190409164539.5J9res_WmCwrBTRrMKXd1kRwoKj1rjw-dvyD74EY9wI@z> Li4gYW5kIHVzZSBhIG5ldyAic2xvdyIgbG9jay4KClRoaXMgcGF0Y2ggY3V0IGxpYnhsX2Nkcm9t X2luc2VydCBpbnRvIGRpZmZlcmVudCBzdGVwL2Z1bmN0aW9uIGJ1dCB0aGVyZQphcmUgc3RpbGwg Y2FsbGVkIHN5bmNocm9ub3VzbHkuIEEgbGF0ZXIgcGF0Y2ggd2lsbCBjYWxsIHRoZW0KYXN5bmNo cm9ub3VzbHkgd2hlbiBRTVAgaXMgaW52b2x2ZWQuCgpUaGUganNvbl9sb2NrIGhhcyBiZWVuIHJl cGxhY2VkIGJ5IHRoZSBxbXBfbG9jayBmb3IgcHJvdGVjdGlvbiBhZ2FpbnN0CmNvbmN1cnJlbnQg Y2hhbmdlcyB0byB0aGUgY2Ryb20uIFRoZSBqc29uX2xvY2sgaXMgbm93IG9ubHkgdXNlZCB3aGVu CnJlYWRpbmcvbW9kaWZ5aW5nIHRoZSBkb21haW4gdXNlcmRhdGEuCgpTaWduZWQtb2ZmLWJ5OiBB bnRob255IFBFUkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KLS0tCiB0b29scy9saWJ4 bC9saWJ4bF9kaXNrLmMgfCAxNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2Rpc2suYyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2Rpc2suYwppbmRleCBmN2ExYjc1YWUxLi4xNGRmYzY3OTcxIDEwMDY0NAotLS0gYS90b29scy9s aWJ4bC9saWJ4bF9kaXNrLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZGlzay5jCkBAIC02NjEs MjQgKzY2MSwzOCBAQCBpbnQgbGlieGxfZGV2aWNlX2Rpc2tfZ2V0aW5mbyhsaWJ4bF9jdHggKmN0 eCwgdWludDMyX3QgZG9taWQsCiAgICAgcmV0dXJuIHJjOwogfQogCit0eXBlZGVmIHN0cnVjdCB7 CisgICAgbGlieGxfX2FvICphbzsKKyAgICBsaWJ4bF9kb21pZCBkb21pZDsKKyAgICBsaWJ4bF9k ZXZpY2VfZGlzayAqZGlzazsKKyAgICBsaWJ4bF9kZXZpY2VfZGlzayBkaXNrX3NhdmVkOworICAg IGxpYnhsX19kb21haW5fcW1wX2xvY2sgKnFtcF9sb2NrOworICAgIGludCBkbV92ZXI7Cit9IGxp YnhsX19jZHJvbV9pbnNlcnRfc3RhdGU7CisKK3N0YXRpYyB2b2lkIGNkcm9tX2luc2VydF9lamVj dGVkKGxpYnhsX19lZ2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX19jZHJvbV9pbnNlcnRfc3RhdGUgKmNpcyk7CitzdGF0aWMgdm9pZCBjZHJvbV9pbnNlcnRf aW5zZXJ0ZWQobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX19jZHJvbV9pbnNlcnRfc3RhdGUgKmNpcyk7CitzdGF0aWMgdm9pZCBjZHJvbV9p bnNlcnRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgcmMpOworCiBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4 LCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93ICphb19ob3cpCiB7CiAgICAgQU9fQ1JF QVRFKGN0eCwgZG9taWQsIGFvX2hvdyk7CiAgICAgaW50IG51bSA9IDAsIGk7Ci0gICAgbGlieGxf ZGV2aWNlX2Rpc2sgKmRpc2tzID0gTlVMTCwgZGlza19zYXZlZDsKLSAgICBsaWJ4bF9kb21haW5f Y29uZmlnIGRfY29uZmlnOwotICAgIGludCByYywgZG1fdmVyOwotICAgIGxpYnhsX19kZXZpY2Ug ZGV2aWNlOwotICAgIGNvbnN0IGNoYXIgKmJlX3BhdGgsICpsaWJ4bF9wYXRoOwotICAgIGNoYXIg KiB0bXA7Ci0gICAgbGlieGxfX2RvbWFpbl91c2VyZGF0YV9sb2NrICpsb2NrID0gTlVMTDsKLSAg ICB4c190cmFuc2FjdGlvbl90IHQgPSBYQlRfTlVMTDsKLSAgICBmbGV4YXJyYXlfdCAqaW5zZXJ0 ID0gTlVMTCwgKmVtcHR5ID0gTlVMTDsKKyAgICBsaWJ4bF9kZXZpY2VfZGlzayAqZGlza3MgPSBO VUxMOworICAgIGludCByYzsKKyAgICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXM7CiAK LSAgICBsaWJ4bF9kb21haW5fY29uZmlnX2luaXQoJmRfY29uZmlnKTsKLSAgICBsaWJ4bF9kZXZp Y2VfZGlza19pbml0KCZkaXNrX3NhdmVkKTsKLSAgICBsaWJ4bF9kZXZpY2VfZGlza19jb3B5KGN0 eCwgJmRpc2tfc2F2ZWQsIGRpc2spOworICAgIEdDTkVXKGNpcyk7CisgICAgY2lzLT5hbyA9IGFv OworICAgIGNpcy0+ZG9taWQgPSBkb21pZDsKKyAgICBjaXMtPmRpc2sgPSBkaXNrOworICAgIGxp YnhsX2RldmljZV9kaXNrX2luaXQoJmNpcy0+ZGlza19zYXZlZCk7CisgICAgbGlieGxfZGV2aWNl X2Rpc2tfY29weShjdHgsICZjaXMtPmRpc2tfc2F2ZWQsIGRpc2spOwogCiAgICAgbGlieGxfZG9t YWluX3R5cGUgdHlwZSA9IGxpYnhsX19kb21haW5fdHlwZShnYywgZG9taWQpOwogICAgIGlmICh0 eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0lOVkFMSUQpIHsKQEAgLTY5Nyw4ICs3MTEsOCBAQCBp bnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgbGli eGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICAgIGRt X3ZlciA9IGxpYnhsX19kZXZpY2VfbW9kZWxfdmVyc2lvbl9ydW5uaW5nKGdjLCBkb21pZCk7Ci0g ICAgaWYgKGRtX3ZlciA9PSAtMSkgeworICAgIGNpcy0+ZG1fdmVyID0gbGlieGxfX2RldmljZV9t b2RlbF92ZXJzaW9uX3J1bm5pbmcoZ2MsIGRvbWlkKTsKKyAgICBpZiAoY2lzLT5kbV92ZXIgPT0g LTEpIHsKICAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJDYW5ub3QgZGV0ZXJtaW5lIGRldmlj ZSBtb2RlbCB2ZXJzaW9uIik7CiAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgZ290 byBvdXQ7CkBAIC03MjcsMTcgKzc0MSw4IEBAIGludCBsaWJ4bF9jZHJvbV9pbnNlcnQobGlieGxf Y3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKICAgICAg ICAgZGlzay0+Zm9ybWF0ID0gTElCWExfRElTS19GT1JNQVRfRU1QVFk7CiAgICAgfQogCi0gICAg cmMgPSBsaWJ4bF9fZGV2aWNlX2Zyb21fZGlzayhnYywgZG9taWQsIGRpc2ssICZkZXZpY2UpOwot ICAgIGlmIChyYykgZ290byBvdXQ7Ci0KLSAgICBiZV9wYXRoID0gbGlieGxfX2RldmljZV9iYWNr ZW5kX3BhdGgoZ2MsICZkZXZpY2UpOwotICAgIGxpYnhsX3BhdGggPSBsaWJ4bF9fZGV2aWNlX2xp YnhsX3BhdGgoZ2MsICZkZXZpY2UpOwotCi0gICAgLyogTm90ZTogQ1RYIGxvY2sgaXMgYWxyZWFk eSBoZWxkIGF0IHRoaXMgcG9pbnQgc28gbG9jayBoaWVyYXJjaHkKLSAgICAgKiBpcyBtYWludGFp bmVkLgotICAgICAqLwotICAgIGxvY2sgPSBsaWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEoZ2Ms IGRvbWlkKTsKLSAgICBpZiAoIWxvY2spIHsKKyAgICBjaXMtPnFtcF9sb2NrID0gbGlieGxfX2xv Y2tfZG9tYWluX3FtcChnYywgZG9taWQpOworICAgIGlmICghY2lzLT5xbXBfbG9jaykgewogICAg ICAgICByYyA9IEVSUk9SX0xPQ0tfRkFJTDsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQpAQCAt NzQ2LDcgKzc1MSw3IEBAIGludCBsaWJ4bF9jZHJvbV9pbnNlcnQobGlieGxfY3R4ICpjdHgsIHVp bnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZpY2VfZGlzayAqZGlzaywKICAgICAgKiBieSBpbnNlcnRp bmcgZW1wdHkgbWVkaWEuIEpTT04gaXMgbm90IHVwZGF0ZWQuCiAgICAgICovCiAKLSAgICBpZiAo ZG1fdmVyID09IExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOKSB7CisgICAgaWYg KGNpcy0+ZG1fdmVyID09IExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOKSB7CiAg ICAgICAgIGxpYnhsX2RldmljZV9kaXNrIGRpc2tfZW1wdHk7CiAKICAgICAgICAgbGlieGxfZGV2 aWNlX2Rpc2tfaW5pdCgmZGlza19lbXB0eSk7CkBAIC03NjEsNiArNzY2LDQ4IEBAIGludCBsaWJ4 bF9jZHJvbV9pbnNlcnQobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBsaWJ4bF9kZXZp Y2VfZGlzayAqZGlzaywKICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKICAgICB9CiAKKyAgICBy YyA9IDA7CisKK291dDoKKyAgICBsaWJ4bF9fZGV2aWNlX2xpc3RfZnJlZSgmbGlieGxfX2Rpc2tf ZGV2dHlwZSwgZGlza3MsIG51bSk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIGNkcm9tX2luc2Vy dF9kb25lKGVnYywgY2lzLCByYyk7IC8qIG11c3QgYmUgbGFzdCAqLworICAgIH0gZWxzZSB7Cisg ICAgICAgIGNkcm9tX2luc2VydF9lamVjdGVkKGVnYywgY2lzKTsgLyogbXVzdCBiZSBsYXN0ICov CisgICAgfQorICAgIHJldHVybiBBT19JTlBST0dSRVNTOworfQorCitzdGF0aWMgdm9pZCBjZHJv bV9pbnNlcnRfZWplY3RlZChsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fY2Ryb21faW5zZXJ0X3N0YXRlICpjaXMpCit7CisgICAgRUdDX0dD OworICAgIGludCByYzsKKyAgICBsaWJ4bF9fZG9tYWluX3VzZXJkYXRhX2xvY2sgKmRhdGFfbG9j ayA9IE5VTEw7CisgICAgbGlieGxfX2RldmljZSBkZXZpY2U7CisgICAgY29uc3QgY2hhciAqYmVf cGF0aCwgKmxpYnhsX3BhdGg7CisgICAgZmxleGFycmF5X3QgKmVtcHR5ID0gTlVMTDsKKyAgICB4 c190cmFuc2FjdGlvbl90IHQgPSBYQlRfTlVMTDsKKyAgICBjaGFyICp0bXA7CisgICAgbGlieGxf ZG9tYWluX2NvbmZpZyBkX2NvbmZpZzsKKworICAgIC8qIGNvbnZlbmllbmNlIGFsaWFzZXMgKi8K KyAgICBsaWJ4bF9kb21pZCBkb21pZCA9IGNpcy0+ZG9taWQ7CisgICAgbGlieGxfZGV2aWNlX2Rp c2sgKmRpc2sgPSBjaXMtPmRpc2s7CisKKyAgICBsaWJ4bF9kb21haW5fY29uZmlnX2luaXQoJmRf Y29uZmlnKTsKKworICAgIHJjID0gbGlieGxfX2RldmljZV9mcm9tX2Rpc2soZ2MsIGRvbWlkLCBk aXNrLCAmZGV2aWNlKTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIGJlX3BhdGggPSBsaWJ4 bF9fZGV2aWNlX2JhY2tlbmRfcGF0aChnYywgJmRldmljZSk7CisgICAgbGlieGxfcGF0aCA9IGxp YnhsX19kZXZpY2VfbGlieGxfcGF0aChnYywgJmRldmljZSk7CisKKyAgICBkYXRhX2xvY2sgPSBs aWJ4bF9fbG9ja19kb21haW5fdXNlcmRhdGEoZ2MsIGRvbWlkKTsKKyAgICBpZiAoIWRhdGFfbG9j aykgeworICAgICAgICByYyA9IEVSUk9SX0xPQ0tfRkFJTDsKKyAgICAgICAgZ290byBvdXQ7Cisg ICAgfQorCiAgICAgZW1wdHkgPSBmbGV4YXJyYXlfbWFrZShnYywgNCwgMSk7CiAgICAgZmxleGFy cmF5X2FwcGVuZF9wYWlyKGVtcHR5LCAidHlwZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX19kZXZpY2VfZGlza19zdHJpbmdfb2ZfYmFja2VuZChkaXNrLT5iYWNrZW5kKSk7CkBA IC03OTksMTYgKzg0Niw2NiBAQCBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4 LCB1aW50MzJfdCBkb21pZCwgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgcmMgPSBsaWJ4 bF9fZ2V0X2RvbWFpbl9jb25maWd1cmF0aW9uKGdjLCBkb21pZCwgJmRfY29uZmlnKTsKICAgICBp ZiAocmMpIGdvdG8gb3V0OwogCi0gICAgZGV2aWNlX2FkZF9kb21haW5fY29uZmlnKGdjLCAmZF9j b25maWcsICZsaWJ4bF9fZGlza19kZXZ0eXBlLCAmZGlza19zYXZlZCk7CisgICAgZGV2aWNlX2Fk ZF9kb21haW5fY29uZmlnKGdjLCAmZF9jb25maWcsICZsaWJ4bF9fZGlza19kZXZ0eXBlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lzLT5kaXNrX3NhdmVkKTsKIAogICAgIHJjID0g bGlieGxfX2RtX2NoZWNrX3N0YXJ0KGdjLCAmZF9jb25maWcsIGRvbWlkKTsKICAgICBpZiAocmMp IGdvdG8gb3V0OwogCi0gICAgaWYgKGRtX3ZlciA9PSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lP Tl9RRU1VX1hFTikgeworICAgIGlmIChjaXMtPmRtX3ZlciA9PSBMSUJYTF9ERVZJQ0VfTU9ERUxf VkVSU0lPTl9RRU1VX1hFTikgewogICAgICAgICByYyA9IGxpYnhsX19xbXBfaW5zZXJ0X2Nkcm9t KGdjLCBkb21pZCwgZGlzayk7CiAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CiAgICAgfQogCisg ICAgcmMgPSAwOworCitvdXQ6CisgICAgbGlieGxfX3hzX3RyYW5zYWN0aW9uX2Fib3J0KGdjLCAm dCk7CisgICAgbGlieGxfZG9tYWluX2NvbmZpZ19kaXNwb3NlKCZkX2NvbmZpZyk7CisgICAgaWYg KGRhdGFfbG9jaykgbGlieGxfX3VubG9ja19kb21haW5fdXNlcmRhdGEoZGF0YV9sb2NrKTsKKyAg ICBpZiAocmMpIHsKKyAgICAgICAgY2Ryb21faW5zZXJ0X2RvbmUoZWdjLCBjaXMsIHJjKTsgLyog bXVzdCBiZSBsYXN0ICovCisgICAgfSBlbHNlIHsKKyAgICAgICAgY2Ryb21faW5zZXJ0X2luc2Vy dGVkKGVnYywgY2lzKTsgLyogbXVzdCBiZSBsYXN0ICovCisgICAgfQorfQorCitzdGF0aWMgdm9p ZCBjZHJvbV9pbnNlcnRfaW5zZXJ0ZWQobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnhsX19jZHJvbV9pbnNlcnRfc3RhdGUgKmNpcykKK3sKKyAg ICBFR0NfR0M7CisgICAgaW50IHJjOworICAgIGxpYnhsX19kb21haW5fdXNlcmRhdGFfbG9jayAq ZGF0YV9sb2NrID0gTlVMTDsKKyAgICBsaWJ4bF9kb21haW5fY29uZmlnIGRfY29uZmlnOworICAg IGZsZXhhcnJheV90ICppbnNlcnQgPSBOVUxMOworICAgIHhzX3RyYW5zYWN0aW9uX3QgdCA9IFhC VF9OVUxMOworICAgIGxpYnhsX19kZXZpY2UgZGV2aWNlOworICAgIGNvbnN0IGNoYXIgKmJlX3Bh dGgsICpsaWJ4bF9wYXRoOworICAgIGNoYXIgKiB0bXA7CisKKyAgICAvKiBjb252ZW5pZW5jZSBh bGlhc2VzICovCisgICAgbGlieGxfZG9taWQgZG9taWQgPSBjaXMtPmRvbWlkOworICAgIGxpYnhs X2RldmljZV9kaXNrICpkaXNrID0gY2lzLT5kaXNrOworCisgICAgbGlieGxfZG9tYWluX2NvbmZp Z19pbml0KCZkX2NvbmZpZyk7CisKKyAgICByYyA9IGxpYnhsX19kZXZpY2VfZnJvbV9kaXNrKGdj LCBkb21pZCwgZGlzaywgJmRldmljZSk7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICBiZV9w YXRoID0gbGlieGxfX2RldmljZV9iYWNrZW5kX3BhdGgoZ2MsICZkZXZpY2UpOworICAgIGxpYnhs X3BhdGggPSBsaWJ4bF9fZGV2aWNlX2xpYnhsX3BhdGgoZ2MsICZkZXZpY2UpOworCisgICAgZGF0 YV9sb2NrID0gbGlieGxfX2xvY2tfZG9tYWluX3VzZXJkYXRhKGdjLCBkb21pZCk7CisgICAgaWYg KCFkYXRhX2xvY2spIHsKKyAgICAgICAgcmMgPSBFUlJPUl9MT0NLX0ZBSUw7CisgICAgICAgIGdv dG8gb3V0OworICAgIH0KKworICAgIHJjID0gbGlieGxfX2dldF9kb21haW5fY29uZmlndXJhdGlv bihnYywgZG9taWQsICZkX2NvbmZpZyk7CisgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIGRl dmljZV9hZGRfZG9tYWluX2NvbmZpZyhnYywgJmRfY29uZmlnLCAmbGlieGxfX2Rpc2tfZGV2dHlw ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNpcy0+ZGlza19zYXZlZCk7CisKICAg ICBpbnNlcnQgPSBmbGV4YXJyYXlfbWFrZShnYywgNCwgMSk7CiAgICAgZmxleGFycmF5X2FwcGVu ZF9wYWlyKGluc2VydCwgInR5cGUiLAogICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kZXZp Y2VfZGlza19zdHJpbmdfb2ZfYmFja2VuZChkaXNrLT5iYWNrZW5kKSk7CkBAIC04NDksMjEgKzk0 NiwyMiBAQCBpbnQgbGlieGxfY2Ryb21faW5zZXJ0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBk b21pZCwgbGlieGxfZGV2aWNlX2Rpc2sgKmRpc2ssCiAgICAgICAgIGlmIChyYyA8IDApIGdvdG8g b3V0OwogICAgIH0KIAotICAgIC8qIHN1Y2Nlc3MsIG5vIGFjdHVhbCBhc3luYyAqLwotICAgIGxp YnhsX19hb19jb21wbGV0ZShlZ2MsIGFvLCAwKTsKLQogICAgIHJjID0gMDsKIAogb3V0OgogICAg IGxpYnhsX194c190cmFuc2FjdGlvbl9hYm9ydChnYywgJnQpOwotICAgIGxpYnhsX19kZXZpY2Vf bGlzdF9mcmVlKCZsaWJ4bF9fZGlza19kZXZ0eXBlLCBkaXNrcywgbnVtKTsKLSAgICBsaWJ4bF9k ZXZpY2VfZGlza19kaXNwb3NlKCZkaXNrX3NhdmVkKTsKICAgICBsaWJ4bF9kb21haW5fY29uZmln X2Rpc3Bvc2UoJmRfY29uZmlnKTsKKyAgICBpZiAoZGF0YV9sb2NrKSBsaWJ4bF9fdW5sb2NrX2Rv bWFpbl91c2VyZGF0YShkYXRhX2xvY2spOworICAgIGNkcm9tX2luc2VydF9kb25lKGVnYywgY2lz LCByYyk7IC8qIG11c3QgYmUgbGFzdCAqLworfQogCi0gICAgaWYgKGxvY2spIGxpYnhsX191bmxv Y2tfZG9tYWluX3VzZXJkYXRhKGxvY2spOwotCi0gICAgaWYgKHJjKSByZXR1cm4gQU9fQ1JFQVRF X0ZBSUwocmMpOwotICAgIHJldHVybiBBT19JTlBST0dSRVNTOworc3RhdGljIHZvaWQgY2Ryb21f aW5zZXJ0X2RvbmUobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfX2Nkcm9tX2luc2VydF9zdGF0ZSAqY2lzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IHJjKQoreworICAgIGlmIChjaXMtPnFtcF9sb2NrKSBsaWJ4bF9fdW5sb2Nr X2RvbWFpbl9xbXAoY2lzLT5xbXBfbG9jayk7CisgICAgbGlieGxfZGV2aWNlX2Rpc2tfZGlzcG9z ZSgmY2lzLT5kaXNrX3NhdmVkKTsKKyAgICBsaWJ4bF9fYW9fY29tcGxldGUoZWdjLCBjaXMtPmFv LCByYyk7CiB9CiAKIC8qIGxpYnhsX19hbGxvY192ZGV2IG9ubHkgd29ya3Mgb24gdGhlIGxvY2Fs IGRvbWFpbiwgdGhhdCBpcyB0aGUgZG9tYWluCi0tIApBbnRob255IFBFUkFSRAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=