From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PULL 09/15] xen_disk: remove open-coded use of libxengnttab Date: Mon, 21 May 2018 12:34:58 -0700 Message-ID: <1526931304-7289-9-git-send-email-sstabellini@kernel.org> References: 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 1fKqaO-0000Tr-Ij for xen-devel@lists.xenproject.org; Mon, 21 May 2018 19:35:12 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: peter.maydell@linaro.org, stefanha@gmail.com Cc: sstabellini@kernel.org, qemu-devel@nongnu.org, Paul Durrant , stefanha@redhat.com, anthony.perard@citrix.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org RnJvbTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KCk5vdyB0aGF0IGhl bHBlcnMgYXJlIHByZXNlbnQgaW4geGVuX2JhY2tlbmQsIHRoaXMgcGF0Y2ggcmVtb3ZlcyBvcGVu LWNvZGVkCmNhbGxzIHRvIGxpYnhlbmdudHRhYiBmcm9tIHRoZSB4ZW5fZGlzayBjb2RlLgoKVGhp cyBwYXRjaCBhbHNvIGZpeGVzIG9uZSB3aGl0c3BhY2UgZXJyb3IgaW4gdGhlIGFzc2lnbm1lbnQg b2YgdGhlClhlbkRldk9wcyBpbml0aWFsaXNlIG1ldGhvZC4KClNpZ25lZC1vZmYtYnk6IFBhdWwg RHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+CkFja2VkLWJ5OiBBbnRob255IFBlcmFy ZCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogU3RlZmFubyBTdGFi ZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgotLS0KIGh3L2Jsb2NrL3hlbl9kaXNrLmMg fCAxMjIgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMgYi9ody9ibG9jay94ZW5fZGlzay5jCmluZGV4 IDc4YmZiNDEuLmQzYmU0NWEgMTAwNjQ0Ci0tLSBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMKKysrIGIv aHcvYmxvY2sveGVuX2Rpc2suYwpAQCAtNjgsNyArNjgsNiBAQCBzdHJ1Y3QgaW9yZXEgewogICAg IHVpbnQ4X3QgICAgICAgICAgICAgbWFwcGVkOwogCiAgICAgLyogZ3JhbnQgbWFwcGluZyAqLwot ICAgIHVpbnQzMl90ICAgICAgICAgICAgZG9taWRzW0JMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVR VUVTVF07CiAgICAgdWludDMyX3QgICAgICAgICAgICByZWZzW0JMS0lGX01BWF9TRUdNRU5UU19Q RVJfUkVRVUVTVF07CiAgICAgaW50ICAgICAgICAgICAgICAgICBwcm90OwogICAgIHZvaWQgICAg ICAgICAgICAgICAgKnBhZ2VbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUXTsKQEAgLTE0 Miw3ICsxNDEsNiBAQCBzdGF0aWMgdm9pZCBpb3JlcV9yZXNldChzdHJ1Y3QgaW9yZXEgKmlvcmVx KQogICAgIGlvcmVxLT5wcmVzeW5jID0gMDsKICAgICBpb3JlcS0+bWFwcGVkID0gMDsKIAotICAg IG1lbXNldChpb3JlcS0+ZG9taWRzLCAwLCBzaXplb2YoaW9yZXEtPmRvbWlkcykpOwogICAgIG1l bXNldChpb3JlcS0+cmVmcywgMCwgc2l6ZW9mKGlvcmVxLT5yZWZzKSk7CiAgICAgaW9yZXEtPnBy b3QgPSAwOwogICAgIG1lbXNldChpb3JlcS0+cGFnZSwgMCwgc2l6ZW9mKGlvcmVxLT5wYWdlKSk7 CkBAIC0xNjgsMTYgKzE2NiwxMiBAQCBzdGF0aWMgZ2ludCBpbnRfY21wKGdjb25zdHBvaW50ZXIg YSwgZ2NvbnN0cG9pbnRlciBiLCBncG9pbnRlciB1c2VyX2RhdGEpCiBzdGF0aWMgdm9pZCBkZXN0 cm95X2dyYW50KGdwb2ludGVyIHBnbnQpCiB7CiAgICAgUGVyc2lzdGVudEdyYW50ICpncmFudCA9 IHBnbnQ7Ci0gICAgeGVuZ250dGFiX2hhbmRsZSAqZ250ID0gZ3JhbnQtPmJsa2Rldi0+eGVuZGV2 LmdudHRhYmRldjsKKyAgICBzdHJ1Y3QgWGVuQmxrRGV2ICpibGtkZXYgPSBncmFudC0+YmxrZGV2 OworICAgIHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldiA9ICZibGtkZXYtPnhlbmRldjsKIAotICAg IGlmICh4ZW5nbnR0YWJfdW5tYXAoZ250LCBncmFudC0+cGFnZSwgMSkgIT0gMCkgewotICAgICAg ICB4ZW5fcHZfcHJpbnRmKCZncmFudC0+YmxrZGV2LT54ZW5kZXYsIDAsCi0gICAgICAgICAgICAg ICAgICAgICAgInhlbmdudHRhYl91bm1hcCBmYWlsZWQ6ICVzXG4iLAotICAgICAgICAgICAgICAg ICAgICAgIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgfQorICAgIHhlbl9iZV91bm1hcF9ncmFudF9y ZWYoeGVuZGV2LCBncmFudC0+cGFnZSk7CiAgICAgZ3JhbnQtPmJsa2Rldi0+cGVyc2lzdGVudF9n bnRfY291bnQtLTsKLSAgICB4ZW5fcHZfcHJpbnRmKCZncmFudC0+YmxrZGV2LT54ZW5kZXYsIDMs Ci0gICAgICAgICAgICAgICAgICAidW5tYXBwZWQgZ3JhbnQgJXBcbiIsIGdyYW50LT5wYWdlKTsK KyAgICB4ZW5fcHZfcHJpbnRmKHhlbmRldiwgMywgInVubWFwcGVkIGdyYW50ICVwXG4iLCBncmFu dC0+cGFnZSk7CiAgICAgZ19mcmVlKGdyYW50KTsKIH0KIApAQCAtMTg1LDE1ICsxNzksMTAgQEAg c3RhdGljIHZvaWQgcmVtb3ZlX3BlcnNpc3RlbnRfcmVnaW9uKGdwb2ludGVyIGRhdGEsIGdwb2lu dGVyIGRldikKIHsKICAgICBQZXJzaXN0ZW50UmVnaW9uICpyZWdpb24gPSBkYXRhOwogICAgIHN0 cnVjdCBYZW5CbGtEZXYgKmJsa2RldiA9IGRldjsKLSAgICB4ZW5nbnR0YWJfaGFuZGxlICpnbnQg PSBibGtkZXYtPnhlbmRldi5nbnR0YWJkZXY7CisgICAgc3RydWN0IFhlbkRldmljZSAqeGVuZGV2 ID0gJmJsa2Rldi0+eGVuZGV2OwogCi0gICAgaWYgKHhlbmdudHRhYl91bm1hcChnbnQsIHJlZ2lv bi0+YWRkciwgcmVnaW9uLT5udW0pICE9IDApIHsKLSAgICAgICAgeGVuX3B2X3ByaW50ZigmYmxr ZGV2LT54ZW5kZXYsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgInhlbmdudHRhYl91bm1hcCBy ZWdpb24gJXAgZmFpbGVkOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICByZWdpb24tPmFk ZHIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgfQotICAgIHhlbl9wdl9wcmludGYoJmJsa2Rldi0+ eGVuZGV2LCAzLAotICAgICAgICAgICAgICAgICAgInVubWFwcGVkIGdyYW50IHJlZ2lvbiAlcCB3 aXRoICVkIHBhZ2VzXG4iLAorICAgIHhlbl9iZV91bm1hcF9ncmFudF9yZWZzKHhlbmRldiwgcmVn aW9uLT5hZGRyLCByZWdpb24tPm51bSk7CisgICAgeGVuX3B2X3ByaW50Zih4ZW5kZXYsIDMsICJ1 bm1hcHBlZCBncmFudCByZWdpb24gJXAgd2l0aCAlZCBwYWdlc1xuIiwKICAgICAgICAgICAgICAg ICAgIHJlZ2lvbi0+YWRkciwgcmVnaW9uLT5udW0pOwogICAgIGdfZnJlZShyZWdpb24pOwogfQpA QCAtMzA0LDcgKzI5Myw2IEBAIHN0YXRpYyBpbnQgaW9yZXFfcGFyc2Uoc3RydWN0IGlvcmVxICpp b3JlcSkKICAgICAgICAgICAgIGdvdG8gZXJyOwogICAgICAgICB9CiAKLSAgICAgICAgaW9yZXEt PmRvbWlkc1tpXSA9IGJsa2Rldi0+eGVuZGV2LmRvbTsKICAgICAgICAgaW9yZXEtPnJlZnNbaV0g ICA9IGlvcmVxLT5yZXEuc2VnW2ldLmdyZWY7CiAKICAgICAgICAgbWVtID0gaW9yZXEtPnJlcS5z ZWdbaV0uZmlyc3Rfc2VjdCAqIGJsa2Rldi0+ZmlsZV9ibGs7CkBAIC0zMjQsNyArMzEyLDggQEAg ZXJyOgogCiBzdGF0aWMgdm9pZCBpb3JlcV91bm1hcChzdHJ1Y3QgaW9yZXEgKmlvcmVxKQogewot ICAgIHhlbmdudHRhYl9oYW5kbGUgKmdudCA9IGlvcmVxLT5ibGtkZXYtPnhlbmRldi5nbnR0YWJk ZXY7CisgICAgc3RydWN0IFhlbkJsa0RldiAqYmxrZGV2ID0gaW9yZXEtPmJsa2RldjsKKyAgICBz dHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYgPSAmYmxrZGV2LT54ZW5kZXY7CiAgICAgaW50IGk7CiAK ICAgICBpZiAoaW9yZXEtPm51bV91bm1hcCA9PSAwIHx8IGlvcmVxLT5tYXBwZWQgPT0gMCkgewpA QCAtMzM0LDExICszMjMsNyBAQCBzdGF0aWMgdm9pZCBpb3JlcV91bm1hcChzdHJ1Y3QgaW9yZXEg KmlvcmVxKQogICAgICAgICBpZiAoIWlvcmVxLT5wYWdlcykgewogICAgICAgICAgICAgcmV0dXJu OwogICAgICAgICB9Ci0gICAgICAgIGlmICh4ZW5nbnR0YWJfdW5tYXAoZ250LCBpb3JlcS0+cGFn ZXMsIGlvcmVxLT5udW1fdW5tYXApICE9IDApIHsKLSAgICAgICAgICAgIHhlbl9wdl9wcmludGYo JmlvcmVxLT5ibGtkZXYtPnhlbmRldiwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgInhl bmdudHRhYl91bm1hcCBmYWlsZWQ6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJlcnJvcihlcnJubykpOwotICAgICAgICB9CisgICAgICAgIHhlbl9iZV91bm1hcF9ncmFudF9y ZWZzKHhlbmRldiwgaW9yZXEtPnBhZ2VzLCBpb3JlcS0+bnVtX3VubWFwKTsKICAgICAgICAgaW9y ZXEtPmJsa2Rldi0+Y250X21hcCAtPSBpb3JlcS0+bnVtX3VubWFwOwogICAgICAgICBpb3JlcS0+ cGFnZXMgPSBOVUxMOwogICAgIH0gZWxzZSB7CkBAIC0zNDYsMTEgKzMzMSw3IEBAIHN0YXRpYyB2 b2lkIGlvcmVxX3VubWFwKHN0cnVjdCBpb3JlcSAqaW9yZXEpCiAgICAgICAgICAgICBpZiAoIWlv cmVxLT5wYWdlW2ldKSB7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICBpZiAoeGVuZ250dGFiX3VubWFwKGdudCwgaW9yZXEtPnBhZ2VbaV0sIDEp ICE9IDApIHsKLSAgICAgICAgICAgICAgICB4ZW5fcHZfcHJpbnRmKCZpb3JlcS0+YmxrZGV2LT54 ZW5kZXYsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieGVuZ250dGFiX3VubWFw IGZhaWxlZDogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcihl cnJubykpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgeGVuX2JlX3VubWFwX2dyYW50X3Jl Zih4ZW5kZXYsIGlvcmVxLT5wYWdlW2ldKTsKICAgICAgICAgICAgIGlvcmVxLT5ibGtkZXYtPmNu dF9tYXAtLTsKICAgICAgICAgICAgIGlvcmVxLT5wYWdlW2ldID0gTlVMTDsKICAgICAgICAgfQpA QCAtMzYwLDE0ICszNDEsMTQgQEAgc3RhdGljIHZvaWQgaW9yZXFfdW5tYXAoc3RydWN0IGlvcmVx ICppb3JlcSkKIAogc3RhdGljIGludCBpb3JlcV9tYXAoc3RydWN0IGlvcmVxICppb3JlcSkKIHsK LSAgICB4ZW5nbnR0YWJfaGFuZGxlICpnbnQgPSBpb3JlcS0+YmxrZGV2LT54ZW5kZXYuZ250dGFi ZGV2OwotICAgIHVpbnQzMl90IGRvbWlkc1tCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1Rd OworICAgIHN0cnVjdCBYZW5CbGtEZXYgKmJsa2RldiA9IGlvcmVxLT5ibGtkZXY7CisgICAgc3Ry dWN0IFhlbkRldmljZSAqeGVuZGV2ID0gJmJsa2Rldi0+eGVuZGV2OwogICAgIHVpbnQzMl90IHJl ZnNbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUXTsKICAgICB2b2lkICpwYWdlW0JMS0lG X01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVF07CiAgICAgaW50IGksIGosIG5ld19tYXBzID0gMDsK ICAgICBQZXJzaXN0ZW50R3JhbnQgKmdyYW50OwogICAgIFBlcnNpc3RlbnRSZWdpb24gKnJlZ2lv bjsKLSAgICAvKiBkb21pZHMgYW5kIHJlZnMgdmFyaWFibGVzIHdpbGwgY29udGFpbiB0aGUgaW5m b3JtYXRpb24gbmVjZXNzYXJ5CisgICAgLyogcmVmcyB2YXJpYWJsZSB3aWxsIGNvbnRhaW4gdGhl IGluZm9ybWF0aW9uIG5lY2Vzc2FyeQogICAgICAqIHRvIG1hcCB0aGUgZ3JhbnRzIHRoYXQgYXJl IG5lZWRlZCB0byBmdWxmaWxsIHRoaXMgcmVxdWVzdC4KICAgICAgKgogICAgICAqIEFmdGVyIG1h cHBpbmcgdGhlIG5lZWRlZCBncmFudHMsIHRoZSBwYWdlIGFycmF5IHdpbGwgY29udGFpbiB0aGUK QEAgLTM5Miw3ICszNzMsNiBAQCBzdGF0aWMgaW50IGlvcmVxX21hcChzdHJ1Y3QgaW9yZXEgKmlv cmVxKQogICAgICAgICAgICAgICAgICAgICAvKiBBZGQgdGhlIGdyYW50IHRvIHRoZSBsaXN0IG9m IGdyYW50cyB0aGF0CiAgICAgICAgICAgICAgICAgICAgICAqIHNob3VsZCBiZSBtYXBwZWQKICAg ICAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgICAgIGRvbWlkc1tuZXdfbWFw c10gPSBpb3JlcS0+ZG9taWRzW2ldOwogICAgICAgICAgICAgICAgICAgICByZWZzW25ld19tYXBz XSA9IGlvcmVxLT5yZWZzW2ldOwogICAgICAgICAgICAgICAgICAgICBwYWdlW2ldID0gTlVMTDsK ICAgICAgICAgICAgICAgICAgICAgbmV3X21hcHMrKzsKQEAgLTQwNSwxNCArMzg1LDEzIEBAIHN0 YXRpYyBpbnQgaW9yZXFfbWFwKHN0cnVjdCBpb3JlcSAqaW9yZXEpCiAgICAgfSBlbHNlIHsKICAg ICAgICAgLyogQWxsIGdyYW50cyBpbiB0aGUgcmVxdWVzdCBzaG91bGQgYmUgbWFwcGVkICovCiAg ICAgICAgIG1lbWNweShyZWZzLCBpb3JlcS0+cmVmcywgc2l6ZW9mKHJlZnMpKTsKLSAgICAgICAg bWVtY3B5KGRvbWlkcywgaW9yZXEtPmRvbWlkcywgc2l6ZW9mKGRvbWlkcykpOwogICAgICAgICBt ZW1zZXQocGFnZSwgMCwgc2l6ZW9mKHBhZ2UpKTsKICAgICAgICAgbmV3X21hcHMgPSBpb3JlcS0+ di5uaW92OwogICAgIH0KIAogICAgIGlmIChiYXRjaF9tYXBzICYmIG5ld19tYXBzKSB7Ci0gICAg ICAgIGlvcmVxLT5wYWdlcyA9IHhlbmdudHRhYl9tYXBfZ3JhbnRfcmVmcwotICAgICAgICAgICAg KGdudCwgbmV3X21hcHMsIGRvbWlkcywgcmVmcywgaW9yZXEtPnByb3QpOworICAgICAgICBpb3Jl cS0+cGFnZXMgPSB4ZW5fYmVfbWFwX2dyYW50X3JlZnMoeGVuZGV2LCByZWZzLCBuZXdfbWFwcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvcmVxLT5wcm90 KTsKICAgICAgICAgaWYgKGlvcmVxLT5wYWdlcyA9PSBOVUxMKSB7CiAgICAgICAgICAgICB4ZW5f cHZfcHJpbnRmKCZpb3JlcS0+YmxrZGV2LT54ZW5kZXYsIDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICJjYW4ndCBtYXAgJWQgZ3JhbnQgcmVmcyAoJXMsICVkIG1hcHMpXG4iLApAQCAtNDI3 LDggKzQwNiw4IEBAIHN0YXRpYyBpbnQgaW9yZXFfbWFwKHN0cnVjdCBpb3JlcSAqaW9yZXEpCiAg ICAgICAgIGlvcmVxLT5ibGtkZXYtPmNudF9tYXAgKz0gbmV3X21hcHM7CiAgICAgfSBlbHNlIGlm IChuZXdfbWFwcykgIHsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5ld19tYXBzOyBpKyspIHsK LSAgICAgICAgICAgIGlvcmVxLT5wYWdlW2ldID0geGVuZ250dGFiX21hcF9ncmFudF9yZWYKLSAg ICAgICAgICAgICAgICAoZ250LCBkb21pZHNbaV0sIHJlZnNbaV0sIGlvcmVxLT5wcm90KTsKKyAg ICAgICAgICAgIGlvcmVxLT5wYWdlW2ldID0geGVuX2JlX21hcF9ncmFudF9yZWYoeGVuZGV2LCBy ZWZzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpb3JlcS0+cHJvdCk7CiAgICAgICAgICAgICBpZiAoaW9yZXEtPnBhZ2VbaV0gPT0gTlVMTCkg ewogICAgICAgICAgICAgICAgIHhlbl9wdl9wcmludGYoJmlvcmVxLT5ibGtkZXYtPnhlbmRldiwg MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYW4ndCBtYXAgZ3JhbnQgcmVmICVk ICglcywgJWQgbWFwcylcbiIsCkBAIC01MjcsMTAgKzUwNiwxMiBAQCBzdGF0aWMgaW50IGlvcmVx X2luaXRfY29weV9idWZmZXJzKHN0cnVjdCBpb3JlcSAqaW9yZXEpCiAKIHN0YXRpYyBpbnQgaW9y ZXFfZ3JhbnRfY29weShzdHJ1Y3QgaW9yZXEgKmlvcmVxKQogewotICAgIHhlbmdudHRhYl9oYW5k bGUgKmdudCA9IGlvcmVxLT5ibGtkZXYtPnhlbmRldi5nbnR0YWJkZXY7Ci0gICAgeGVuZ250dGFi X2dyYW50X2NvcHlfc2VnbWVudF90IHNlZ3NbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNU XTsKKyAgICBzdHJ1Y3QgWGVuQmxrRGV2ICpibGtkZXYgPSBpb3JlcS0+YmxrZGV2OworICAgIHN0 cnVjdCBYZW5EZXZpY2UgKnhlbmRldiA9ICZibGtkZXYtPnhlbmRldjsKKyAgICBYZW5HcmFudENv cHlTZWdtZW50IHNlZ3NbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUXTsKICAgICBpbnQg aSwgY291bnQsIHJjOwogICAgIGludDY0X3QgZmlsZV9ibGsgPSBpb3JlcS0+YmxrZGV2LT5maWxl X2JsazsKKyAgICBib29sIHRvX2RvbWFpbiA9IChpb3JlcS0+cmVxLm9wZXJhdGlvbiA9PSBCTEtJ Rl9PUF9SRUFEKTsKIAogICAgIGlmIChpb3JlcS0+di5uaW92ID09IDApIHsKICAgICAgICAgcmV0 dXJuIDA7CkBAIC01MzksMTYgKzUyMCwxMiBAQCBzdGF0aWMgaW50IGlvcmVxX2dyYW50X2NvcHko c3RydWN0IGlvcmVxICppb3JlcSkKICAgICBjb3VudCA9IGlvcmVxLT52Lm5pb3Y7CiAKICAgICBm b3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICBpZiAoaW9yZXEtPnJlcS5vcGVy YXRpb24gPT0gQkxLSUZfT1BfUkVBRCkgewotICAgICAgICAgICAgc2Vnc1tpXS5mbGFncyA9IEdO VENPUFlfZGVzdF9ncmVmOworICAgICAgICBpZiAodG9fZG9tYWluKSB7CiAgICAgICAgICAgICBz ZWdzW2ldLmRlc3QuZm9yZWlnbi5yZWYgPSBpb3JlcS0+cmVmc1tpXTsKLSAgICAgICAgICAgIHNl Z3NbaV0uZGVzdC5mb3JlaWduLmRvbWlkID0gaW9yZXEtPmRvbWlkc1tpXTsKICAgICAgICAgICAg IHNlZ3NbaV0uZGVzdC5mb3JlaWduLm9mZnNldCA9IGlvcmVxLT5yZXEuc2VnW2ldLmZpcnN0X3Nl Y3QgKiBmaWxlX2JsazsKICAgICAgICAgICAgIHNlZ3NbaV0uc291cmNlLnZpcnQgPSBpb3JlcS0+ di5pb3ZbaV0uaW92X2Jhc2U7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZWdzW2ld LmZsYWdzID0gR05UQ09QWV9zb3VyY2VfZ3JlZjsKICAgICAgICAgICAgIHNlZ3NbaV0uc291cmNl LmZvcmVpZ24ucmVmID0gaW9yZXEtPnJlZnNbaV07Ci0gICAgICAgICAgICBzZWdzW2ldLnNvdXJj ZS5mb3JlaWduLmRvbWlkID0gaW9yZXEtPmRvbWlkc1tpXTsKICAgICAgICAgICAgIHNlZ3NbaV0u c291cmNlLmZvcmVpZ24ub2Zmc2V0ID0gaW9yZXEtPnJlcS5zZWdbaV0uZmlyc3Rfc2VjdCAqIGZp bGVfYmxrOwogICAgICAgICAgICAgc2Vnc1tpXS5kZXN0LnZpcnQgPSBpb3JlcS0+di5pb3ZbaV0u aW92X2Jhc2U7CiAgICAgICAgIH0KQEAgLTU1Niw3ICs1MzMsNyBAQCBzdGF0aWMgaW50IGlvcmVx X2dyYW50X2NvcHkoc3RydWN0IGlvcmVxICppb3JlcSkKICAgICAgICAgICAgICAgICAgICAgICAg LSBpb3JlcS0+cmVxLnNlZ1tpXS5maXJzdF9zZWN0ICsgMSkgKiBmaWxlX2JsazsKICAgICB9CiAK LSAgICByYyA9IHhlbmdudHRhYl9ncmFudF9jb3B5KGdudCwgY291bnQsIHNlZ3MpOworICAgIHJj ID0geGVuX2JlX2NvcHlfZ3JhbnRfcmVmcyh4ZW5kZXYsIHRvX2RvbWFpbiwgc2VncywgY291bnQp OwogCiAgICAgaWYgKHJjKSB7CiAgICAgICAgIHhlbl9wdl9wcmludGYoJmlvcmVxLT5ibGtkZXYt PnhlbmRldiwgMCwKQEAgLTU2NSwxNiArNTQyLDYgQEAgc3RhdGljIGludCBpb3JlcV9ncmFudF9j b3B5KHN0cnVjdCBpb3JlcSAqaW9yZXEpCiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAg ICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICBpZiAoc2Vnc1tpXS5zdGF0 dXMgIT0gR05UU1Rfb2theSkgewotICAgICAgICAgICAgeGVuX3B2X3ByaW50ZigmaW9yZXEtPmJs a2Rldi0+eGVuZGV2LCAzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGNv cHkgZGF0YSAlZCBmb3IgZ3JlZiAlZCwgZG9taWQgJWRcbiIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIHNlZ3NbaV0uc3RhdHVzLCBpb3JlcS0+cmVmc1tpXSwgaW9yZXEtPmRvbWlkc1tpXSk7 Ci0gICAgICAgICAgICBpb3JlcS0+YWlvX2Vycm9ycysrOwotICAgICAgICAgICAgcmMgPSAtMTsK LSAgICAgICAgfQotICAgIH0KLQogICAgIHJldHVybiByYzsKIH0KIApAQCAtMTA2Nyw3ICsxMDM0 LDYgQEAgc3RhdGljIGludCBibGtfY29ubmVjdChzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYpCiAg ICAgaW50IG9yZGVyLCByaW5nX3JlZjsKICAgICB1bnNpZ25lZCBpbnQgcmluZ19zaXplLCBtYXhf Z3JhbnRzOwogICAgIHVuc2lnbmVkIGludCBpOwotICAgIHVpbnQzMl90ICpkb21pZHM7CiAKICAg ICB0cmFjZV94ZW5fZGlza19jb25uZWN0KHhlbmRldi0+bmFtZSk7CiAKQEAgLTEyMjksMzEgKzEx OTUsMTEgQEAgc3RhdGljIGludCBibGtfY29ubmVjdChzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYp CiAgICAgLyogQWRkIG9uIHRoZSBudW1iZXIgbmVlZGVkIGZvciB0aGUgcmluZyBwYWdlcyAqLwog ICAgIG1heF9ncmFudHMgKz0gYmxrZGV2LT5ucl9yaW5nX3JlZjsKIAotICAgIGJsa2Rldi0+eGVu ZGV2LmdudHRhYmRldiA9IHhlbmdudHRhYl9vcGVuKE5VTEwsIDApOwotICAgIGlmIChibGtkZXYt PnhlbmRldi5nbnR0YWJkZXYgPT0gTlVMTCkgewotICAgICAgICB4ZW5fcHZfcHJpbnRmKHhlbmRl diwgMCwgInhlbmdudHRhYl9vcGVuIGZhaWxlZDogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAg ICAgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICBpZiAo eGVuZ250dGFiX3NldF9tYXhfZ3JhbnRzKGJsa2Rldi0+eGVuZGV2LmdudHRhYmRldiwgbWF4X2dy YW50cykpIHsKLSAgICAgICAgeGVuX3B2X3ByaW50Zih4ZW5kZXYsIDAsICJ4ZW5nbnR0YWJfc2V0 X21heF9ncmFudHMgZmFpbGVkOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJv cihlcnJubykpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgZG9taWRzID0gZ19u ZXcwKHVpbnQzMl90LCBibGtkZXYtPm5yX3JpbmdfcmVmKTsKLSAgICBmb3IgKGkgPSAwOyBpIDwg YmxrZGV2LT5ucl9yaW5nX3JlZjsgaSsrKSB7Ci0gICAgICAgIGRvbWlkc1tpXSA9IGJsa2Rldi0+ eGVuZGV2LmRvbTsKLSAgICB9Ci0KLSAgICBibGtkZXYtPnNyaW5nID0geGVuZ250dGFiX21hcF9n cmFudF9yZWZzKGJsa2Rldi0+eGVuZGV2LmdudHRhYmRldiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJsa2Rldi0+bnJfcmluZ19yZWYsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZHMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGtkZXYtPnJpbmdfcmVmLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9X UklURSk7Ci0KLSAgICBnX2ZyZWUoZG9taWRzKTsKKyAgICB4ZW5fYmVfc2V0X21heF9ncmFudF9y ZWZzKHhlbmRldiwgbWF4X2dyYW50cyk7CiAKKyAgICBibGtkZXYtPnNyaW5nID0geGVuX2JlX21h cF9ncmFudF9yZWZzKHhlbmRldiwgYmxrZGV2LT5yaW5nX3JlZiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJsa2Rldi0+bnJfcmluZ19yZWYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsK ICAgICBpZiAoIWJsa2Rldi0+c3JpbmcpIHsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KQEAg LTEzMjYsOCArMTI3Miw4IEBAIHN0YXRpYyB2b2lkIGJsa19kaXNjb25uZWN0KHN0cnVjdCBYZW5E ZXZpY2UgKnhlbmRldikKICAgICBhaW9fY29udGV4dF9yZWxlYXNlKGJsa2Rldi0+Y3R4KTsKIAog ICAgIGlmIChibGtkZXYtPnNyaW5nKSB7Ci0gICAgICAgIHhlbmdudHRhYl91bm1hcChibGtkZXYt PnhlbmRldi5nbnR0YWJkZXYsIGJsa2Rldi0+c3JpbmcsCi0gICAgICAgICAgICAgICAgICAgICAg ICBibGtkZXYtPm5yX3JpbmdfcmVmKTsKKyAgICAgICAgeGVuX2JlX3VubWFwX2dyYW50X3JlZnMo eGVuZGV2LCBibGtkZXYtPnNyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi bGtkZXYtPm5yX3JpbmdfcmVmKTsKICAgICAgICAgYmxrZGV2LT5jbnRfbWFwLS07CiAgICAgICAg IGJsa2Rldi0+c3JpbmcgPSBOVUxMOwogICAgIH0KQEAgLTEzNTEsMTEgKzEyOTcsNiBAQCBzdGF0 aWMgdm9pZCBibGtfZGlzY29ubmVjdChzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYpCiAgICAgICAg IH0KICAgICAgICAgYmxrZGV2LT5mZWF0dXJlX3BlcnNpc3RlbnQgPSBmYWxzZTsKICAgICB9Ci0K LSAgICBpZiAoYmxrZGV2LT54ZW5kZXYuZ250dGFiZGV2KSB7Ci0gICAgICAgIHhlbmdudHRhYl9j bG9zZShibGtkZXYtPnhlbmRldi5nbnR0YWJkZXYpOwotICAgICAgICBibGtkZXYtPnhlbmRldi5n bnR0YWJkZXYgPSBOVUxMOwotICAgIH0KIH0KIAogc3RhdGljIGludCBibGtfZnJlZShzdHJ1Y3Qg WGVuRGV2aWNlICp4ZW5kZXYpCkBAIC0xMzkyLDEwICsxMzMzLDExIEBAIHN0YXRpYyB2b2lkIGJs a19ldmVudChzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYpCiB9CiAKIHN0cnVjdCBYZW5EZXZPcHMg eGVuX2Jsa2Rldl9vcHMgPSB7CisgICAgLmZsYWdzICAgICAgPSBERVZPUFNfRkxBR19ORUVEX0dO VERFViwKICAgICAuc2l6ZSAgICAgICA9IHNpemVvZihzdHJ1Y3QgWGVuQmxrRGV2KSwKICAgICAu YWxsb2MgICAgICA9IGJsa19hbGxvYywKICAgICAuaW5pdCAgICAgICA9IGJsa19pbml0LAotICAg IC5pbml0aWFsaXNlICAgID0gYmxrX2Nvbm5lY3QsCisgICAgLmluaXRpYWxpc2UgPSBibGtfY29u bmVjdCwKICAgICAuZGlzY29ubmVjdCA9IGJsa19kaXNjb25uZWN0LAogICAgIC5ldmVudCAgICAg ID0gYmxrX2V2ZW50LAogICAgIC5mcmVlICAgICAgID0gYmxrX2ZyZWUsCi0tIAoxLjkuMQoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=