From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 9/9] xen_disk: be consistent with use of xendev and blkdev->xendev Date: Thu, 17 May 2018 16:35:58 +0100 Message-ID: <1526571358-26685-10-git-send-email-paul.durrant@citrix.com> References: <1526571358-26685-1-git-send-email-paul.durrant@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 1fJKwx-0001uH-1R for xen-devel@lists.xenproject.org; Thu, 17 May 2018 15:36:15 +0000 In-Reply-To: <1526571358-26685-1-git-send-email-paul.durrant@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, qemu-block@nongnu.org, qemu-devel@nongnu.org Cc: Anthony Perard , Kevin Wolf , Paul Durrant , Stefano Stabellini , Max Reitz List-Id: xen-devel@lists.xenproject.org Q2VydGFpbiBmdW5jdGlvbnMgaW4geGVuX2Rpc2sgYXJlIGNhbGxlZCB3aXRoIGEgcG9pbnRlciB0 byB4ZW5kZXYKKHN0cnVjdCBYZW5EZXZpY2UgKikuIFRoZXkgdGhlbiB1c2UgY29udGFpbmVyX29m KCkgdG8gYWNjZXMgdGhlIHN1cnJvdW5kaW5nCmJsa2RldiAoc3RydWN0IFhlbkJsa0RldikgYnV0 IHRoZW4gaW4gdmFyaW91cyBwbGFjZXMgdXNlICZibGtkZXYtPnhlbmRldgp3aGVuIHVzZSBvZiB0 aGUgb3JpZ2luYWwgeGVuZGV2IHBvaW50ZXIgaXMgc2hvcnRlciB0byBleHByZXNzIGFuZCBjbGVh cmx5CmVxdWl2YWxlbnQuCgpUaGlzIHBhdGNoIGlzIGEgcHVyZWx5IGNvc21ldGljIHBhdGNoIHdo aWNoIG1ha2VzIHN1cmUgdGhlcmUgaXMgYSB4ZW5kZXYKcG9pbnRlciBvbiBzdGFjayBmb3IgYW55 IGZ1bmN0aW9uIHdoZXJlIHRoZSBwb2ludGVyIGlzIG5lZWQgb24gbXVsdGlwbGUKb2NjYXNpb25z IG1vZGlmaWVkIHRob3NlIGZ1bmN0aW9ucyB0byB1c2UgaXQgY29uc2lzdGVudGx5LgoKU2lnbmVk LW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBT dGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBBbnRob255IFBl cmFyZCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KQ2M6IEtldmluIFdvbGYgPGt3b2xmQHJl ZGhhdC5jb20+CkNjOiBNYXggUmVpdHogPG1yZWl0ekByZWRoYXQuY29tPgoKdjI6CiAtIFJlLWJh c2VkCi0tLQogaHcvYmxvY2sveGVuX2Rpc2suYyB8IDkwICsrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0 aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaHcvYmxvY2sveGVuX2Rpc2su YyBiL2h3L2Jsb2NrL3hlbl9kaXNrLmMKaW5kZXggMjg2NTFjNS4uOWZiYzBjZCAxMDA2NDQKLS0t IGEvaHcvYmxvY2sveGVuX2Rpc2suYworKysgYi9ody9ibG9jay94ZW5fZGlzay5jCkBAIC0xNzgs MTAgKzE3OCwxMSBAQCBzdGF0aWMgdm9pZCBpb3JlcV9yZWxlYXNlKHN0cnVjdCBpb3JlcSAqaW9y ZXEsIGJvb2wgZmluaXNoKQogc3RhdGljIGludCBpb3JlcV9wYXJzZShzdHJ1Y3QgaW9yZXEgKmlv cmVxKQogewogICAgIHN0cnVjdCBYZW5CbGtEZXYgKmJsa2RldiA9IGlvcmVxLT5ibGtkZXY7Cisg ICAgc3RydWN0IFhlbkRldmljZSAqeGVuZGV2ID0gJmJsa2Rldi0+eGVuZGV2OwogICAgIHNpemVf dCBsZW47CiAgICAgaW50IGk7CiAKLSAgICB4ZW5fcHZfcHJpbnRmKCZibGtkZXYtPnhlbmRldiwg MywKKyAgICB4ZW5fcHZfcHJpbnRmKHhlbmRldiwgMywKICAgICAgICAgICAgICAgICAgICJvcCAl ZCwgbnIgJWQsIGhhbmRsZSAlZCwgaWQgJSIgUFJJZDY0ICIsIHNlY3RvciAlIiBQUklkNjQgIlxu IiwKICAgICAgICAgICAgICAgICAgIGlvcmVxLT5yZXEub3BlcmF0aW9uLCBpb3JlcS0+cmVxLm5y X3NlZ21lbnRzLAogICAgICAgICAgICAgICAgICAgaW9yZXEtPnJlcS5oYW5kbGUsIGlvcmVxLT5y ZXEuaWQsIGlvcmVxLT5yZXEuc2VjdG9yX251bWJlcik7CkBAIC0xOTksMjggKzIwMCwyOCBAQCBz dGF0aWMgaW50IGlvcmVxX3BhcnNlKHN0cnVjdCBpb3JlcSAqaW9yZXEpCiAgICAgY2FzZSBCTEtJ Rl9PUF9ESVNDQVJEOgogICAgICAgICByZXR1cm4gMDsKICAgICBkZWZhdWx0OgotICAgICAgICB4 ZW5fcHZfcHJpbnRmKCZibGtkZXYtPnhlbmRldiwgMCwgImVycm9yOiB1bmtub3duIG9wZXJhdGlv biAoJWQpXG4iLAorICAgICAgICB4ZW5fcHZfcHJpbnRmKHhlbmRldiwgMCwgImVycm9yOiB1bmtu b3duIG9wZXJhdGlvbiAoJWQpXG4iLAogICAgICAgICAgICAgICAgICAgICAgIGlvcmVxLT5yZXEu b3BlcmF0aW9uKTsKICAgICAgICAgZ290byBlcnI7CiAgICAgfTsKIAogICAgIGlmIChpb3JlcS0+ cmVxLm9wZXJhdGlvbiAhPSBCTEtJRl9PUF9SRUFEICYmIGJsa2Rldi0+bW9kZVswXSAhPSAndycp IHsKLSAgICAgICAgeGVuX3B2X3ByaW50ZigmYmxrZGV2LT54ZW5kZXYsIDAsICJlcnJvcjogd3Jp dGUgcmVxIGZvciBybyBkZXZpY2VcbiIpOworICAgICAgICB4ZW5fcHZfcHJpbnRmKHhlbmRldiwg MCwgImVycm9yOiB3cml0ZSByZXEgZm9yIHJvIGRldmljZVxuIik7CiAgICAgICAgIGdvdG8gZXJy OwogICAgIH0KIAogICAgIGlvcmVxLT5zdGFydCA9IGlvcmVxLT5yZXEuc2VjdG9yX251bWJlciAq IGJsa2Rldi0+ZmlsZV9ibGs7CiAgICAgZm9yIChpID0gMDsgaSA8IGlvcmVxLT5yZXEubnJfc2Vn bWVudHM7IGkrKykgewogICAgICAgICBpZiAoaSA9PSBCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JF UVVFU1QpIHsKLSAgICAgICAgICAgIHhlbl9wdl9wcmludGYoJmJsa2Rldi0+eGVuZGV2LCAwLCAi ZXJyb3I6IG5yX3NlZ21lbnRzIHRvbyBiaWdcbiIpOworICAgICAgICAgICAgeGVuX3B2X3ByaW50 Zih4ZW5kZXYsIDAsICJlcnJvcjogbnJfc2VnbWVudHMgdG9vIGJpZ1xuIik7CiAgICAgICAgICAg ICBnb3RvIGVycjsKICAgICAgICAgfQogICAgICAgICBpZiAoaW9yZXEtPnJlcS5zZWdbaV0uZmly c3Rfc2VjdCA+IGlvcmVxLT5yZXEuc2VnW2ldLmxhc3Rfc2VjdCkgewotICAgICAgICAgICAgeGVu X3B2X3ByaW50ZigmYmxrZGV2LT54ZW5kZXYsIDAsICJlcnJvcjogZmlyc3QgPiBsYXN0IHNlY3Rv clxuIik7CisgICAgICAgICAgICB4ZW5fcHZfcHJpbnRmKHhlbmRldiwgMCwgImVycm9yOiBmaXJz dCA+IGxhc3Qgc2VjdG9yXG4iKTsKICAgICAgICAgICAgIGdvdG8gZXJyOwogICAgICAgICB9CiAg ICAgICAgIGlmIChpb3JlcS0+cmVxLnNlZ1tpXS5sYXN0X3NlY3QgKiBCTE9DS19TSVpFID49IFhD X1BBR0VfU0laRSkgewotICAgICAgICAgICAgeGVuX3B2X3ByaW50ZigmYmxrZGV2LT54ZW5kZXYs IDAsICJlcnJvcjogcGFnZSBjcm9zc2luZ1xuIik7CisgICAgICAgICAgICB4ZW5fcHZfcHJpbnRm KHhlbmRldiwgMCwgImVycm9yOiBwYWdlIGNyb3NzaW5nXG4iKTsKICAgICAgICAgICAgIGdvdG8g ZXJyOwogICAgICAgICB9CiAKQEAgLTIyOCw3ICsyMjksNyBAQCBzdGF0aWMgaW50IGlvcmVxX3Bh cnNlKHN0cnVjdCBpb3JlcSAqaW9yZXEpCiAgICAgICAgIGlvcmVxLT5zaXplICs9IGxlbjsKICAg ICB9CiAgICAgaWYgKGlvcmVxLT5zdGFydCArIGlvcmVxLT5zaXplID4gYmxrZGV2LT5maWxlX3Np emUpIHsKLSAgICAgICAgeGVuX3B2X3ByaW50ZigmYmxrZGV2LT54ZW5kZXYsIDAsICJlcnJvcjog YWNjZXNzIGJleW9uZCBlbmQgb2YgZmlsZVxuIik7CisgICAgICAgIHhlbl9wdl9wcmludGYoeGVu ZGV2LCAwLCAiZXJyb3I6IGFjY2VzcyBiZXlvbmQgZW5kIG9mIGZpbGVcbiIpOwogICAgICAgICBn b3RvIGVycjsKICAgICB9CiAgICAgcmV0dXJuIDA7CkBAIC0yNDQsNyArMjQ1LDcgQEAgc3RhdGlj IGludCBpb3JlcV9ncmFudF9jb3B5KHN0cnVjdCBpb3JlcSAqaW9yZXEpCiAgICAgc3RydWN0IFhl bkRldmljZSAqeGVuZGV2ID0gJmJsa2Rldi0+eGVuZGV2OwogICAgIFhlbkdyYW50Q29weVNlZ21l bnQgc2Vnc1tCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1RdOwogICAgIGludCBpLCBjb3Vu dCwgcmM7Ci0gICAgaW50NjRfdCBmaWxlX2JsayA9IGlvcmVxLT5ibGtkZXYtPmZpbGVfYmxrOwor ICAgIGludDY0X3QgZmlsZV9ibGsgPSBibGtkZXYtPmZpbGVfYmxrOwogICAgIGJvb2wgdG9fZG9t YWluID0gKGlvcmVxLT5yZXEub3BlcmF0aW9uID09IEJMS0lGX09QX1JFQUQpOwogICAgIHZvaWQg KnZpcnQgPSBpb3JlcS0+YnVmOwogCkBAIC0yNzIsNyArMjczLDcgQEAgc3RhdGljIGludCBpb3Jl cV9ncmFudF9jb3B5KHN0cnVjdCBpb3JlcSAqaW9yZXEpCiAgICAgcmMgPSB4ZW5fYmVfY29weV9n cmFudF9yZWZzKHhlbmRldiwgdG9fZG9tYWluLCBzZWdzLCBjb3VudCk7CiAKICAgICBpZiAocmMp IHsKLSAgICAgICAgeGVuX3B2X3ByaW50ZigmaW9yZXEtPmJsa2Rldi0+eGVuZGV2LCAwLAorICAg ICAgICB4ZW5fcHZfcHJpbnRmKHhlbmRldiwgMCwKICAgICAgICAgICAgICAgICAgICAgICAiZmFp bGVkIHRvIGNvcHkgZGF0YSAlZFxuIiwgcmMpOwogICAgICAgICBpb3JlcS0+YWlvX2Vycm9ycysr OwogICAgICAgICByZXR1cm4gLTE7CkBAIC0yODcsMTEgKzI4OCwxMiBAQCBzdGF0aWMgdm9pZCBx ZW11X2Fpb19jb21wbGV0ZSh2b2lkICpvcGFxdWUsIGludCByZXQpCiB7CiAgICAgc3RydWN0IGlv cmVxICppb3JlcSA9IG9wYXF1ZTsKICAgICBzdHJ1Y3QgWGVuQmxrRGV2ICpibGtkZXYgPSBpb3Jl cS0+YmxrZGV2OworICAgIHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldiA9ICZibGtkZXYtPnhlbmRl djsKIAogICAgIGFpb19jb250ZXh0X2FjcXVpcmUoYmxrZGV2LT5jdHgpOwogCiAgICAgaWYgKHJl dCAhPSAwKSB7Ci0gICAgICAgIHhlbl9wdl9wcmludGYoJmJsa2Rldi0+eGVuZGV2LCAwLCAiJXMg SS9PIGVycm9yXG4iLAorICAgICAgICB4ZW5fcHZfcHJpbnRmKHhlbmRldiwgMCwgIiVzIEkvTyBl cnJvclxuIiwKICAgICAgICAgICAgICAgICAgICAgICBpb3JlcS0+cmVxLm9wZXJhdGlvbiA9PSBC TEtJRl9PUF9SRUFEID8gInJlYWQiIDogIndyaXRlIik7CiAgICAgICAgIGlvcmVxLT5haW9fZXJy b3JzKys7CiAgICAgfQpAQCAtNjI1LDE2ICs2MjcsMTcgQEAgc3RhdGljIHZvaWQgYmxrX2FsbG9j KHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldikKIAogc3RhdGljIHZvaWQgYmxrX3BhcnNlX2Rpc2Nh cmQoc3RydWN0IFhlbkJsa0RldiAqYmxrZGV2KQogeworICAgIHN0cnVjdCBYZW5EZXZpY2UgKnhl bmRldiA9ICZibGtkZXYtPnhlbmRldjsKICAgICBpbnQgZW5hYmxlOwogCiAgICAgYmxrZGV2LT5m ZWF0dXJlX2Rpc2NhcmQgPSB0cnVlOwogCi0gICAgaWYgKHhlbnN0b3JlX3JlYWRfYmVfaW50KCZi bGtkZXYtPnhlbmRldiwgImRpc2NhcmQtZW5hYmxlIiwgJmVuYWJsZSkgPT0gMCkgeworICAgIGlm ICh4ZW5zdG9yZV9yZWFkX2JlX2ludCh4ZW5kZXYsICJkaXNjYXJkLWVuYWJsZSIsICZlbmFibGUp ID09IDApIHsKICAgICAgICAgYmxrZGV2LT5mZWF0dXJlX2Rpc2NhcmQgPSAhIWVuYWJsZTsKICAg ICB9CiAKICAgICBpZiAoYmxrZGV2LT5mZWF0dXJlX2Rpc2NhcmQpIHsKLSAgICAgICAgeGVuc3Rv cmVfd3JpdGVfYmVfaW50KCZibGtkZXYtPnhlbmRldiwgImZlYXR1cmUtZGlzY2FyZCIsIDEpOwor ICAgICAgICB4ZW5zdG9yZV93cml0ZV9iZV9pbnQoeGVuZGV2LCAiZmVhdHVyZS1kaXNjYXJkIiwg MSk7CiAgICAgfQogfQogCkBAIC02NDksNyArNjUyLDcgQEAgc3RhdGljIGludCBibGtfaW5pdChz dHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYpCiAgICAgLyogcmVhZCB4ZW5zdG9yZSBlbnRyaWVzICov CiAgICAgaWYgKGJsa2Rldi0+cGFyYW1zID09IE5VTEwpIHsKICAgICAgICAgY2hhciAqaCA9IE5V TEw7Ci0gICAgICAgIGJsa2Rldi0+cGFyYW1zID0geGVuc3RvcmVfcmVhZF9iZV9zdHIoJmJsa2Rl di0+eGVuZGV2LCAicGFyYW1zIik7CisgICAgICAgIGJsa2Rldi0+cGFyYW1zID0geGVuc3RvcmVf cmVhZF9iZV9zdHIoeGVuZGV2LCAicGFyYW1zIik7CiAgICAgICAgIGlmIChibGtkZXYtPnBhcmFt cyAhPSBOVUxMKSB7CiAgICAgICAgICAgICBoID0gc3RyY2hyKGJsa2Rldi0+cGFyYW1zLCAnOicp OwogICAgICAgICB9CkBAIC02NjksMTggKzY3MiwxOCBAQCBzdGF0aWMgaW50IGJsa19pbml0KHN0 cnVjdCBYZW5EZXZpY2UgKnhlbmRldikKICAgICAgICAgYmxrZGV2LT5maWxlcHJvdG8gPSAidnBj IjsKICAgICB9CiAgICAgaWYgKGJsa2Rldi0+bW9kZSA9PSBOVUxMKSB7Ci0gICAgICAgIGJsa2Rl di0+bW9kZSA9IHhlbnN0b3JlX3JlYWRfYmVfc3RyKCZibGtkZXYtPnhlbmRldiwgIm1vZGUiKTsK KyAgICAgICAgYmxrZGV2LT5tb2RlID0geGVuc3RvcmVfcmVhZF9iZV9zdHIoeGVuZGV2LCAibW9k ZSIpOwogICAgIH0KICAgICBpZiAoYmxrZGV2LT50eXBlID09IE5VTEwpIHsKLSAgICAgICAgYmxr ZGV2LT50eXBlID0geGVuc3RvcmVfcmVhZF9iZV9zdHIoJmJsa2Rldi0+eGVuZGV2LCAidHlwZSIp OworICAgICAgICBibGtkZXYtPnR5cGUgPSB4ZW5zdG9yZV9yZWFkX2JlX3N0cih4ZW5kZXYsICJ0 eXBlIik7CiAgICAgfQogICAgIGlmIChibGtkZXYtPmRldiA9PSBOVUxMKSB7Ci0gICAgICAgIGJs a2Rldi0+ZGV2ID0geGVuc3RvcmVfcmVhZF9iZV9zdHIoJmJsa2Rldi0+eGVuZGV2LCAiZGV2Iik7 CisgICAgICAgIGJsa2Rldi0+ZGV2ID0geGVuc3RvcmVfcmVhZF9iZV9zdHIoeGVuZGV2LCAiZGV2 Iik7CiAgICAgfQogICAgIGlmIChibGtkZXYtPmRldnR5cGUgPT0gTlVMTCkgewotICAgICAgICBi bGtkZXYtPmRldnR5cGUgPSB4ZW5zdG9yZV9yZWFkX2JlX3N0cigmYmxrZGV2LT54ZW5kZXYsICJk ZXZpY2UtdHlwZSIpOworICAgICAgICBibGtkZXYtPmRldnR5cGUgPSB4ZW5zdG9yZV9yZWFkX2Jl X3N0cih4ZW5kZXYsICJkZXZpY2UtdHlwZSIpOwogICAgIH0KLSAgICBkaXJlY3Rpb3NhZmUgPSB4 ZW5zdG9yZV9yZWFkX2JlX3N0cigmYmxrZGV2LT54ZW5kZXYsICJkaXJlY3QtaW8tc2FmZSIpOwor ICAgIGRpcmVjdGlvc2FmZSA9IHhlbnN0b3JlX3JlYWRfYmVfc3RyKHhlbmRldiwgImRpcmVjdC1p by1zYWZlIik7CiAgICAgYmxrZGV2LT5kaXJlY3Rpb3NhZmUgPSAoZGlyZWN0aW9zYWZlICYmIGF0 b2koZGlyZWN0aW9zYWZlKSk7CiAKICAgICAvKiBkbyB3ZSBoYXZlIGFsbCB3ZSBuZWVkPyAqLwpA QCAtNzA2LDEwICs3MDksMTAgQEAgc3RhdGljIGludCBibGtfaW5pdChzdHJ1Y3QgWGVuRGV2aWNl ICp4ZW5kZXYpCiAgICAgLyogZmlsbCBpbmZvCiAgICAgICogYmxrX2Nvbm5lY3Qgc3VwcGxpZXMg c2VjdG9yLXNpemUgYW5kIHNlY3RvcnMKICAgICAgKi8KLSAgICB4ZW5zdG9yZV93cml0ZV9iZV9p bnQoJmJsa2Rldi0+eGVuZGV2LCAiZmVhdHVyZS1mbHVzaC1jYWNoZSIsIDEpOwotICAgIHhlbnN0 b3JlX3dyaXRlX2JlX2ludCgmYmxrZGV2LT54ZW5kZXYsICJpbmZvIiwgaW5mbyk7CisgICAgeGVu c3RvcmVfd3JpdGVfYmVfaW50KHhlbmRldiwgImZlYXR1cmUtZmx1c2gtY2FjaGUiLCAxKTsKKyAg ICB4ZW5zdG9yZV93cml0ZV9iZV9pbnQoeGVuZGV2LCAiaW5mbyIsIGluZm8pOwogCi0gICAgeGVu c3RvcmVfd3JpdGVfYmVfaW50KCZibGtkZXYtPnhlbmRldiwgIm1heC1yaW5nLXBhZ2Utb3JkZXIi LAorICAgIHhlbnN0b3JlX3dyaXRlX2JlX2ludCh4ZW5kZXYsICJtYXgtcmluZy1wYWdlLW9yZGVy IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1JJTkdfUEFHRV9PUkRFUik7CiAKICAg ICBibGtfcGFyc2VfZGlzY2FyZChibGtkZXYpOwpAQCAtNzYxLDcgKzc2NCw3IEBAIHN0YXRpYyBp bnQgYmxrX2Nvbm5lY3Qoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2KQogICAgIH0KIAogICAgIC8q IGluaXQgcWVtdSBibG9jayBkcml2ZXIgKi8KLSAgICBpbmRleCA9IChibGtkZXYtPnhlbmRldi5k ZXYgLSAyMDIgKiAyNTYpIC8gMTY7CisgICAgaW5kZXggPSAoeGVuZGV2LT5kZXYgLSAyMDIgKiAy NTYpIC8gMTY7CiAgICAgYmxrZGV2LT5kaW5mbyA9IGRyaXZlX2dldChJRl9YRU4sIDAsIGluZGV4 KTsKICAgICBpZiAoIWJsa2Rldi0+ZGluZm8pIHsKICAgICAgICAgRXJyb3IgKmxvY2FsX2VyciA9 IE5VTEw7CkBAIC03NzMsMTEgKzc3NiwxMSBAQCBzdGF0aWMgaW50IGJsa19jb25uZWN0KHN0cnVj dCBYZW5EZXZpY2UgKnhlbmRldikKICAgICAgICAgfQogCiAgICAgICAgIC8qIHNldHVwIHZpYSB4 ZW5idXMgLT4gY3JlYXRlIG5ldyBibG9jayBkcml2ZXIgaW5zdGFuY2UgKi8KLSAgICAgICAgeGVu X3B2X3ByaW50ZigmYmxrZGV2LT54ZW5kZXYsIDIsICJjcmVhdGUgbmV3IGJkcnYgKHhlbmJ1cyBz ZXR1cClcbiIpOworICAgICAgICB4ZW5fcHZfcHJpbnRmKHhlbmRldiwgMiwgImNyZWF0ZSBuZXcg YmRydiAoeGVuYnVzIHNldHVwKVxuIik7CiAgICAgICAgIGJsa2Rldi0+YmxrID0gYmxrX25ld19v cGVuKGJsa2Rldi0+ZmlsZW5hbWUsIE5VTEwsIG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHFmbGFncywgJmxvY2FsX2Vycik7CiAgICAgICAgIGlmICghYmxrZGV2 LT5ibGspIHsKLSAgICAgICAgICAgIHhlbl9wdl9wcmludGYoJmJsa2Rldi0+eGVuZGV2LCAwLCAi ZXJyb3I6ICVzXG4iLAorICAgICAgICAgICAgeGVuX3B2X3ByaW50Zih4ZW5kZXYsIDAsICJlcnJv cjogJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2dldF9wcmV0dHkobG9j YWxfZXJyKSk7CiAgICAgICAgICAgICBlcnJvcl9mcmVlKGxvY2FsX2Vycik7CiAgICAgICAgICAg ICByZXR1cm4gLTE7CkBAIC03ODUsMTEgKzc4OCwxMSBAQCBzdGF0aWMgaW50IGJsa19jb25uZWN0 KHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldikKICAgICAgICAgYmxrX3NldF9lbmFibGVfd3JpdGVf Y2FjaGUoYmxrZGV2LT5ibGssICF3cml0ZXRocm91Z2gpOwogICAgIH0gZWxzZSB7CiAgICAgICAg IC8qIHNldHVwIHZpYSBxZW11IGNtZGxpbmUgLT4gYWxyZWFkeSBzZXR1cCBmb3IgdXMgKi8KLSAg ICAgICAgeGVuX3B2X3ByaW50ZigmYmxrZGV2LT54ZW5kZXYsIDIsCisgICAgICAgIHhlbl9wdl9w cmludGYoeGVuZGV2LCAyLAogICAgICAgICAgICAgICAgICAgICAgICJnZXQgY29uZmlndXJlZCBi ZHJ2IChjbWRsaW5lIHNldHVwKVxuIik7CiAgICAgICAgIGJsa2Rldi0+YmxrID0gYmxrX2J5X2xl Z2FjeV9kaW5mbyhibGtkZXYtPmRpbmZvKTsKICAgICAgICAgaWYgKGJsa19pc19yZWFkX29ubHko YmxrZGV2LT5ibGspICYmICFyZWFkb25seSkgewotICAgICAgICAgICAgeGVuX3B2X3ByaW50Zigm YmxrZGV2LT54ZW5kZXYsIDAsICJVbmV4cGVjdGVkIHJlYWQtb25seSBkcml2ZSIpOworICAgICAg ICAgICAgeGVuX3B2X3ByaW50Zih4ZW5kZXYsIDAsICJVbmV4cGVjdGVkIHJlYWQtb25seSBkcml2 ZSIpOwogICAgICAgICAgICAgYmxrZGV2LT5ibGsgPSBOVUxMOwogICAgICAgICAgICAgcmV0dXJu IC0xOwogICAgICAgICB9CkBAIC04MDIsNyArODA1LDcgQEAgc3RhdGljIGludCBibGtfY29ubmVj dChzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYpCiAgICAgaWYgKGJsa2Rldi0+ZmlsZV9zaXplIDwg MCkgewogICAgICAgICBCbG9ja0RyaXZlclN0YXRlICpicyA9IGJsa19icyhibGtkZXYtPmJsayk7 CiAgICAgICAgIGNvbnN0IGNoYXIgKmRydl9uYW1lID0gYnMgPyBiZHJ2X2dldF9mb3JtYXRfbmFt ZShicykgOiBOVUxMOwotICAgICAgICB4ZW5fcHZfcHJpbnRmKCZibGtkZXYtPnhlbmRldiwgMSwg ImJsa19nZXRsZW5ndGg6ICVkICglcykgfCBkcnYgJXNcbiIsCisgICAgICAgIHhlbl9wdl9wcmlu dGYoeGVuZGV2LCAxLCAiYmxrX2dldGxlbmd0aDogJWQgKCVzKSB8IGRydiAlc1xuIiwKICAgICAg ICAgICAgICAgICAgICAgICAoaW50KWJsa2Rldi0+ZmlsZV9zaXplLCBzdHJlcnJvcigtYmxrZGV2 LT5maWxlX3NpemUpLAogICAgICAgICAgICAgICAgICAgICAgIGRydl9uYW1lID86ICItIik7CiAg ICAgICAgIGJsa2Rldi0+ZmlsZV9zaXplID0gMDsKQEAgLTgxNCwxNSArODE3LDE1IEBAIHN0YXRp YyBpbnQgYmxrX2Nvbm5lY3Qoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2KQogICAgICAgICAgICAg ICAgICAgYmxrZGV2LT5maWxlX3NpemUsIGJsa2Rldi0+ZmlsZV9zaXplID4+IDIwKTsKIAogICAg IC8qIEZpbGwgaW4gbnVtYmVyIG9mIHNlY3RvciBzaXplIGFuZCBudW1iZXIgb2Ygc2VjdG9ycyAq LwotICAgIHhlbnN0b3JlX3dyaXRlX2JlX2ludCgmYmxrZGV2LT54ZW5kZXYsICJzZWN0b3Itc2l6 ZSIsIGJsa2Rldi0+ZmlsZV9ibGspOwotICAgIHhlbnN0b3JlX3dyaXRlX2JlX2ludDY0KCZibGtk ZXYtPnhlbmRldiwgInNlY3RvcnMiLAorICAgIHhlbnN0b3JlX3dyaXRlX2JlX2ludCh4ZW5kZXYs ICJzZWN0b3Itc2l6ZSIsIGJsa2Rldi0+ZmlsZV9ibGspOworICAgIHhlbnN0b3JlX3dyaXRlX2Jl X2ludDY0KHhlbmRldiwgInNlY3RvcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJs a2Rldi0+ZmlsZV9zaXplIC8gYmxrZGV2LT5maWxlX2Jsayk7CiAKLSAgICBpZiAoeGVuc3RvcmVf cmVhZF9mZV9pbnQoJmJsa2Rldi0+eGVuZGV2LCAicmluZy1wYWdlLW9yZGVyIiwKKyAgICBpZiAo eGVuc3RvcmVfcmVhZF9mZV9pbnQoeGVuZGV2LCAicmluZy1wYWdlLW9yZGVyIiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJm9yZGVyKSA9PSAtMSkgewogICAgICAgICBibGtkZXYtPm5y X3JpbmdfcmVmID0gMTsKIAotICAgICAgICBpZiAoeGVuc3RvcmVfcmVhZF9mZV9pbnQoJmJsa2Rl di0+eGVuZGV2LCAicmluZy1yZWYiLAorICAgICAgICBpZiAoeGVuc3RvcmVfcmVhZF9mZV9pbnQo eGVuZGV2LCAicmluZy1yZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJp bmdfcmVmKSA9PSAtMSkgewogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CkBAIC04 MzksNyArODQyLDcgQEAgc3RhdGljIGludCBibGtfY29ubmVjdChzdHJ1Y3QgWGVuRGV2aWNlICp4 ZW5kZXYpCiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgfQogCi0gICAg ICAgICAgICBpZiAoeGVuc3RvcmVfcmVhZF9mZV9pbnQoJmJsa2Rldi0+eGVuZGV2LCBrZXksCisg ICAgICAgICAgICBpZiAoeGVuc3RvcmVfcmVhZF9mZV9pbnQoeGVuZGV2LCBrZXksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJpbmdfcmVmKSA9PSAtMSkgewogICAgICAg ICAgICAgICAgIGdfZnJlZShrZXkpOwogICAgICAgICAgICAgICAgIHJldHVybiAtMTsKQEAgLTg1 NCwxOCArODU3LDE4IEBAIHN0YXRpYyBpbnQgYmxrX2Nvbm5lY3Qoc3RydWN0IFhlbkRldmljZSAq eGVuZGV2KQogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCi0gICAgaWYgKHhlbnN0b3JlX3Jl YWRfZmVfaW50KCZibGtkZXYtPnhlbmRldiwgImV2ZW50LWNoYW5uZWwiLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmYmxrZGV2LT54ZW5kZXYucmVtb3RlX3BvcnQpID09IC0xKSB7Cisg ICAgaWYgKHhlbnN0b3JlX3JlYWRfZmVfaW50KHhlbmRldiwgImV2ZW50LWNoYW5uZWwiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmeGVuZGV2LT5yZW1vdGVfcG9ydCkgPT0gLTEpIHsK ICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIGlmICghYmxrZGV2LT54ZW5kZXYucHJv dG9jb2wpIHsKKyAgICBpZiAoIXhlbmRldi0+cHJvdG9jb2wpIHsKICAgICAgICAgYmxrZGV2LT5w cm90b2NvbCA9IEJMS0lGX1BST1RPQ09MX05BVElWRTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChi bGtkZXYtPnhlbmRldi5wcm90b2NvbCwgWEVOX0lPX1BST1RPX0FCSV9OQVRJVkUpID09IDApIHsK KyAgICB9IGVsc2UgaWYgKHN0cmNtcCh4ZW5kZXYtPnByb3RvY29sLCBYRU5fSU9fUFJPVE9fQUJJ X05BVElWRSkgPT0gMCkgewogICAgICAgICBibGtkZXYtPnByb3RvY29sID0gQkxLSUZfUFJPVE9D T0xfTkFUSVZFOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKGJsa2Rldi0+eGVuZGV2LnByb3RvY29s LCBYRU5fSU9fUFJPVE9fQUJJX1g4Nl8zMikgPT0gMCkgeworICAgIH0gZWxzZSBpZiAoc3RyY21w KHhlbmRldi0+cHJvdG9jb2wsIFhFTl9JT19QUk9UT19BQklfWDg2XzMyKSA9PSAwKSB7CiAgICAg ICAgIGJsa2Rldi0+cHJvdG9jb2wgPSBCTEtJRl9QUk9UT0NPTF9YODZfMzI7Ci0gICAgfSBlbHNl IGlmIChzdHJjbXAoYmxrZGV2LT54ZW5kZXYucHJvdG9jb2wsIFhFTl9JT19QUk9UT19BQklfWDg2 XzY0KSA9PSAwKSB7CisgICAgfSBlbHNlIGlmIChzdHJjbXAoeGVuZGV2LT5wcm90b2NvbCwgWEVO X0lPX1BST1RPX0FCSV9YODZfNjQpID09IDApIHsKICAgICAgICAgYmxrZGV2LT5wcm90b2NvbCA9 IEJMS0lGX1BST1RPQ09MX1g4Nl82NDsKICAgICB9IGVsc2UgewogICAgICAgICBibGtkZXYtPnBy b3RvY29sID0gQkxLSUZfUFJPVE9DT0xfTkFUSVZFOwpAQCAtODk2LDcgKzg5OSw2IEBAIHN0YXRp YyBpbnQgYmxrX2Nvbm5lY3Qoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2KQogICAgIG1heF9ncmFu dHMgPSBibGtkZXYtPm5yX3JpbmdfcmVmOwogCiAgICAgeGVuX2JlX3NldF9tYXhfZ3JhbnRfcmVm cyh4ZW5kZXYsIG1heF9ncmFudHMpOwotCiAgICAgYmxrZGV2LT5zcmluZyA9IHhlbl9iZV9tYXBf Z3JhbnRfcmVmcyh4ZW5kZXYsIGJsa2Rldi0+cmluZ19yZWYsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBibGtkZXYtPm5yX3JpbmdfcmVmLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7CkBA IC05MjksMTIgKzkzMSwxMiBAQCBzdGF0aWMgaW50IGJsa19jb25uZWN0KHN0cnVjdCBYZW5EZXZp Y2UgKnhlbmRldikKIAogICAgIGJsa19zZXRfYWlvX2NvbnRleHQoYmxrZGV2LT5ibGssIGJsa2Rl di0+Y3R4KTsKIAotICAgIHhlbl9iZV9iaW5kX2V2dGNobigmYmxrZGV2LT54ZW5kZXYpOworICAg IHhlbl9iZV9iaW5kX2V2dGNobih4ZW5kZXYpOwogCi0gICAgeGVuX3B2X3ByaW50ZigmYmxrZGV2 LT54ZW5kZXYsIDEsICJvazogcHJvdG8gJXMsIG5yLXJpbmctcmVmICV1LCAiCisgICAgeGVuX3B2 X3ByaW50Zih4ZW5kZXYsIDEsICJvazogcHJvdG8gJXMsIG5yLXJpbmctcmVmICV1LCAiCiAgICAg ICAgICAgICAgICAgICAicmVtb3RlIHBvcnQgJWQsIGxvY2FsIHBvcnQgJWRcbiIsCi0gICAgICAg ICAgICAgICAgICBibGtkZXYtPnhlbmRldi5wcm90b2NvbCwgYmxrZGV2LT5ucl9yaW5nX3JlZiwK LSAgICAgICAgICAgICAgICAgIGJsa2Rldi0+eGVuZGV2LnJlbW90ZV9wb3J0LCBibGtkZXYtPnhl bmRldi5sb2NhbF9wb3J0KTsKKyAgICAgICAgICAgICAgICAgIHhlbmRldi0+cHJvdG9jb2wsIGJs a2Rldi0+bnJfcmluZ19yZWYsCisgICAgICAgICAgICAgICAgICB4ZW5kZXYtPnJlbW90ZV9wb3J0 LCB4ZW5kZXYtPmxvY2FsX3BvcnQpOwogICAgIHJldHVybiAwOwogfQogCkBAIC05NTIsNyArOTU0 LDcgQEAgc3RhdGljIHZvaWQgYmxrX2Rpc2Nvbm5lY3Qoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2 KQogICAgICAgICBibGtfdW5yZWYoYmxrZGV2LT5ibGspOwogICAgICAgICBibGtkZXYtPmJsayA9 IE5VTEw7CiAgICAgfQotICAgIHhlbl9wdl91bmJpbmRfZXZ0Y2huKCZibGtkZXYtPnhlbmRldik7 CisgICAgeGVuX3B2X3VuYmluZF9ldnRjaG4oeGVuZGV2KTsKIAogICAgIGFpb19jb250ZXh0X3Jl bGVhc2UoYmxrZGV2LT5jdHgpOwogCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=