From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: [PATCH 06/11] drm/amdkfd: Add address watch operation to debugger Date: Thu, 21 May 2015 00:29:03 +0300 Message-ID: <1432157348-26686-7-git-send-email-oded.gabbay@gmail.com> References: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f44.google.com (mail-wg0-f44.google.com [74.125.82.44]) by gabe.freedesktop.org (Postfix) with ESMTP id A459A6E75F for ; Wed, 20 May 2015 14:29:28 -0700 (PDT) Received: by wgjc11 with SMTP id c11so66233872wgj.0 for ; Wed, 20 May 2015 14:29:28 -0700 (PDT) In-Reply-To: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, alexdeucher@gmail.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogWWFpciBTaGFjaGFyIDx5YWlyLnNoYWNoYXJAYW1kLmNvbT4KClRoZSBhZGRyZXNzIHdh dGNoIG9wZXJhdGlvbiBnaXZlcyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHdhdGNoIHBvaW50cwp3 aGljaCB3aWxsIGdlbmVyYXRlIGEgc2hhZGVyIGJyZWFrcG9pbnQsIGJhc2VkIG9uIGEgc3BlY2lm aWVkIHNpbmdsZQphZGRyZXNzIG9yIHJhbmdlIG9mIGFkZHJlc3Nlcy4KClRoZXJlIGlzIHN1cHBv cnQgZm9yIHJlYWQvd3JpdGUvYW55IGFjY2VzcyBtb2Rlcy4KClNpZ25lZC1vZmYtYnk6IFlhaXIg U2hhY2hhciA8eWFpci5zaGFjaGFyQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IE9kZWQgR2FiYmF5 IDxvZGVkLmdhYmJheUBnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX2RiZ2Rldi5jIHwgMjc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnbWdyLmMgfCAgMTcgKysKIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdtZ3IuaCB8ICAgNCArCiAzIGZpbGVzIGNoYW5nZWQsIDI5 NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX2RiZ2Rldi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ2Rldi5jCmlu ZGV4IGVlMzNiODYuLjAwZDhmY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k a2ZkL2tmZF9kYmdkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJn ZGV2LmMKQEAgLTIzNiw2ICsyMzYsMjc4IEBAIHN0YXRpYyBpbnQgZGJnZGV2X3VucmVnaXN0ZXJf ZGlxKHN0cnVjdCBrZmRfZGJnZGV2ICpkYmdkZXYpCiAJcmV0dXJuIHN0YXR1czsKIH0KIAorc3Rh dGljIHZvaWQgZGJnZGV2X2FkZHJlc3Nfd2F0Y2hfc2V0X3JlZ2lzdGVycygKKwkJCWNvbnN0IHN0 cnVjdCBkYmdfYWRkcmVzc193YXRjaF9pbmZvICphZHdfaW5mbywKKwkJCXVuaW9uIFRDUF9XQVRD SF9BRERSX0hfQklUUyAqYWRkckhpLAorCQkJdW5pb24gVENQX1dBVENIX0FERFJfTF9CSVRTICph ZGRyTG8sCisJCQl1bmlvbiBUQ1BfV0FUQ0hfQ05UTF9CSVRTICpjbnRsLAorCQkJdW5zaWduZWQg aW50IGluZGV4LCB1bnNpZ25lZCBpbnQgdm1pZCkKK3sKKwl1bmlvbiBVTEFSR0VfSU5URUdFUiBh ZGRyOworCisJQlVHX09OKCFhZHdfaW5mbyB8fCAhYWRkckhpIHx8ICFhZGRyTG8gfHwgIWNudGwp OworCisJYWRkci5xdWFkX3BhcnQgPSAwOworCWFkZHJIaS0+dTMyQWxsID0gMDsKKwlhZGRyTG8t PnUzMkFsbCA9IDA7CisJY250bC0+dTMyQWxsID0gMDsKKworCWlmIChhZHdfaW5mby0+d2F0Y2hf bWFzayAhPSBOVUxMKQorCQljbnRsLT5iaXRmaWVsZHMubWFzayA9CisJCQkodWludDMyX3QpIChh ZHdfaW5mby0+d2F0Y2hfbWFza1tpbmRleF0gJgorCQkJCQlBRERSRVNTX1dBVENIX1JFR19DTlRM X0RFRkFVTFRfTUFTSyk7CisJZWxzZQorCQljbnRsLT5iaXRmaWVsZHMubWFzayA9IEFERFJFU1Nf V0FUQ0hfUkVHX0NOVExfREVGQVVMVF9NQVNLOworCisJYWRkci5xdWFkX3BhcnQgPSAodW5zaWdu ZWQgbG9uZyBsb25nKSBhZHdfaW5mby0+d2F0Y2hfYWRkcmVzc1tpbmRleF07CisKKwlhZGRySGkt PmJpdGZpZWxkcy5hZGRyID0gYWRkci51LmhpZ2hfcGFydCAmCisJCQkJCUFERFJFU1NfV0FUQ0hf UkVHX0FEREhJR0hfTUFTSzsKKwlhZGRyTG8tPmJpdGZpZWxkcy5hZGRyID0KKwkJCShhZGRyLnUu bG93X3BhcnQgPj4gQUREUkVTU19XQVRDSF9SRUdfQURETE9XX1NISUZUKTsKKworCWNudGwtPmJp dGZpZWxkcy5tb2RlID0gYWR3X2luZm8tPndhdGNoX21vZGVbaW5kZXhdOworCWNudGwtPmJpdGZp ZWxkcy52bWlkID0gKHVpbnQzMl90KSB2bWlkOworCS8qIGZvciBub3cgYXNzdW1lIGl0IGlzIGFu IEFUQyBhZGRyZXNzICovCisJY250bC0+dTMyQWxsIHw9IEFERFJFU1NfV0FUQ0hfUkVHX0NOVExf QVRDX0JJVDsKKworCXByX2RlYnVnKCJcdFx0JTIwcyAlMDh4XG4iLCAic2V0IHJlZyBtYXNrIDoi LCBjbnRsLT5iaXRmaWVsZHMubWFzayk7CisJcHJfZGVidWcoIlx0XHQlMjBzICUwOHhcbiIsICJz ZXQgcmVnIGFkZCBoaWdoIDoiLAorCQkJYWRkckhpLT5iaXRmaWVsZHMuYWRkcik7CisJcHJfZGVi dWcoIlx0XHQlMjBzICUwOHhcbiIsICJzZXQgcmVnIGFkZCBsb3cgOiIsCisJCQlhZGRyTG8tPmJp dGZpZWxkcy5hZGRyKTsKK30KKworc3RhdGljIGludCBkYmdkZXZfYWRkcmVzc193YXRjaF9ub2Rp cShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2LAorCQkJCQlzdHJ1Y3QgZGJnX2FkZHJlc3Nfd2F0 Y2hfaW5mbyAqYWR3X2luZm8pCit7CisJdW5pb24gVENQX1dBVENIX0FERFJfSF9CSVRTIGFkZHJI aTsKKwl1bmlvbiBUQ1BfV0FUQ0hfQUREUl9MX0JJVFMgYWRkckxvOworCXVuaW9uIFRDUF9XQVRD SF9DTlRMX0JJVFMgY250bDsKKwlzdHJ1Y3Qga2ZkX3Byb2Nlc3NfZGV2aWNlICpwZGQ7CisJdW5z aWduZWQgaW50IGk7CisKKwlCVUdfT04oIWRiZ2RldiB8fCAhZGJnZGV2LT5kZXYgfHwgIWFkd19p bmZvKTsKKworCS8qIHRha2luZyB0aGUgdm1pZCBmb3IgdGhhdCBwcm9jZXNzIG9uIHRoZSBzYWZl IHdheSB1c2luZyBwZGQgKi8KKwlwZGQgPSBrZmRfZ2V0X3Byb2Nlc3NfZGV2aWNlX2RhdGEoZGJn ZGV2LT5kZXYsCisJCQkJCWFkd19pbmZvLT5wcm9jZXNzKTsKKwlpZiAoIXBkZCkgeworCQlwcl9l cnIoImFtZGtmZDogRmFpbGVkIHRvIGdldCBwZGQgZm9yIHdhdmUgY29udHJvbCBubyBESVFcbiIp OworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlhZGRySGkudTMyQWxsID0gMDsKKwlhZGRyTG8u dTMyQWxsID0gMDsKKwljbnRsLnUzMkFsbCA9IDA7CisKKwlpZiAoKGFkd19pbmZvLT5udW1fd2F0 Y2hfcG9pbnRzID4gTUFYX1dBVENIX0FERFJFU1NFUykgfHwKKwkJCShhZHdfaW5mby0+bnVtX3dh dGNoX3BvaW50cyA9PSAwKSkgeworCQlwcl9lcnIoImFtZGtmZDogbnVtX3dhdGNoX3BvaW50cyBp cyBpbnZhbGlkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKChhZHdfaW5mby0+ d2F0Y2hfbW9kZSA9PSBOVUxMKSB8fAorCQkoYWR3X2luZm8tPndhdGNoX2FkZHJlc3MgPT0gTlVM TCkpIHsKKwkJcHJfZXJyKCJhbWRrZmQ6IGFkd19pbmZvIGZpZWxkcyBhcmUgbm90IHZhbGlkXG4i KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZm9yIChpID0gMCA7IGkgPCBhZHdfaW5mby0+ bnVtX3dhdGNoX3BvaW50cyA7IGkrKykgeworCQlkYmdkZXZfYWRkcmVzc193YXRjaF9zZXRfcmVn aXN0ZXJzKGFkd19pbmZvLCAmYWRkckhpLCAmYWRkckxvLAorCQkJCQkJJmNudGwsIGksIHBkZC0+ cXBkLnZtaWQpOworCisJCXByX2RlYnVnKCJcdFx0JTMwc1xuIiwgIiogKiAqICogKiAqICogKiAq ICogKiAqICogKiAqICogKiAqIik7CisJCXByX2RlYnVnKCJcdFx0JTIwcyAlMDh4XG4iLCAicmVn aXN0ZXIgaW5kZXggOiIsIGkpOworCQlwcl9kZWJ1ZygiXHRcdCUyMHMgJTA4eFxuIiwgInZtaWQg aXMgOiIsIHBkZC0+cXBkLnZtaWQpOworCQlwcl9kZWJ1ZygiXHRcdCUyMHMgJTA4eFxuIiwgIkFk ZHJlc3MgTG93IGlzIDoiLAorCQkJCWFkZHJMby5iaXRmaWVsZHMuYWRkcik7CisJCXByX2RlYnVn KCJcdFx0JTIwcyAlMDh4XG4iLCAiQWRkcmVzcyBoaWdoIGlzIDoiLAorCQkJCWFkZHJIaS5iaXRm aWVsZHMuYWRkcik7CisJCXByX2RlYnVnKCJcdFx0JTIwcyAlMDh4XG4iLCAiQWRkcmVzcyBoaWdo IGlzIDoiLAorCQkJCWFkZHJIaS5iaXRmaWVsZHMuYWRkcik7CisJCXByX2RlYnVnKCJcdFx0JTIw cyAlMDh4XG4iLCAiQ29udHJvbCBNYXNrIGlzIDoiLAorCQkJCWNudGwuYml0ZmllbGRzLm1hc2sp OworCQlwcl9kZWJ1ZygiXHRcdCUyMHMgJTA4eFxuIiwgIkNvbnRyb2wgTW9kZSBpcyA6IiwKKwkJ CQljbnRsLmJpdGZpZWxkcy5tb2RlKTsKKwkJcHJfZGVidWcoIlx0XHQlMjBzICUwOHhcbiIsICJD b250cm9sIFZtaWQgaXMgOiIsCisJCQkJY250bC5iaXRmaWVsZHMudm1pZCk7CisJCXByX2RlYnVn KCJcdFx0JTIwcyAlMDh4XG4iLCAiQ29udHJvbCBhdGMgIGlzIDoiLAorCQkJCWNudGwuYml0Zmll bGRzLmF0Yyk7CisJCXByX2RlYnVnKCJcdFx0JTMwc1xuIiwgIiogKiAqICogKiAqICogKiAqICog KiAqICogKiAqICogKiAqIik7CisKKwkJcGRkLT5kZXYtPmtmZDJrZ2QtPmFkZHJlc3Nfd2F0Y2hf ZXhlY3V0ZSgKKwkJCQkJCWRiZ2Rldi0+ZGV2LT5rZ2QsCisJCQkJCQlpLAorCQkJCQkJY250bC51 MzJBbGwsCisJCQkJCQlhZGRySGkudTMyQWxsLAorCQkJCQkJYWRkckxvLnUzMkFsbCk7CisJfQor CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGJnZGV2X2FkZHJlc3Nfd2F0Y2hfZGlxKHN0 cnVjdCBrZmRfZGJnZGV2ICpkYmdkZXYsCisJCQkJCXN0cnVjdCBkYmdfYWRkcmVzc193YXRjaF9p bmZvICphZHdfaW5mbykKK3sKKwlzdHJ1Y3QgcG00X19zZXRfY29uZmlnX3JlZyAqcGFja2V0c192 ZWM7CisJdW5pb24gVENQX1dBVENIX0FERFJfSF9CSVRTIGFkZHJIaTsKKwl1bmlvbiBUQ1BfV0FU Q0hfQUREUl9MX0JJVFMgYWRkckxvOworCXVuaW9uIFRDUF9XQVRDSF9DTlRMX0JJVFMgY250bDsK KwlzdHJ1Y3Qga2ZkX21lbV9vYmogKm1lbV9vYmo7CisJdW5zaWduZWQgaW50IGF3X3JlZ19hZGRf ZHdvcmQ7CisJdWludDMyX3QgKnBhY2tldF9idWZmX3VpbnQ7CisJdW5zaWduZWQgaW50IGk7CisJ aW50IHN0YXR1czsKKwlzaXplX3QgaWJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcG00X19zZXRfY29u ZmlnX3JlZykgKiA0OworCS8qIHdlIGRvIG5vdCBjb250cm9sIHRoZSB2bWlkIGluIERJUSBtb2Rl LCBqdXN0IGEgcGxhY2UgaG9sZGVyICovCisJdW5zaWduZWQgaW50IHZtaWQgPSAwOworCisJQlVH X09OKCFkYmdkZXYgfHwgIWRiZ2Rldi0+ZGV2IHx8ICFhZHdfaW5mbyk7CisKKwlhZGRySGkudTMy QWxsID0gMDsKKwlhZGRyTG8udTMyQWxsID0gMDsKKwljbnRsLnUzMkFsbCA9IDA7CisKKwlpZiAo KGFkd19pbmZvLT5udW1fd2F0Y2hfcG9pbnRzID4gTUFYX1dBVENIX0FERFJFU1NFUykgfHwKKwkJ CShhZHdfaW5mby0+bnVtX3dhdGNoX3BvaW50cyA9PSAwKSkgeworCQlwcl9lcnIoImFtZGtmZDog bnVtX3dhdGNoX3BvaW50cyBpcyBpbnZhbGlkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQor CisJaWYgKChOVUxMID09IGFkd19pbmZvLT53YXRjaF9tb2RlKSB8fAorCQkJKE5VTEwgPT0gYWR3 X2luZm8tPndhdGNoX2FkZHJlc3MpKSB7CisJCXByX2VycigiYW1ka2ZkOiBhZHdfaW5mbyBmaWVs ZHMgYXJlIG5vdCB2YWxpZFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXN0YXR1cyA9 IGtmZF9ndHRfc2FfYWxsb2NhdGUoZGJnZGV2LT5kZXYsIGliX3NpemUsICZtZW1fb2JqKTsKKwor CWlmIChzdGF0dXMgIT0gMCkgeworCQlwcl9lcnIoImFtZGtmZDogRmFpbGVkIHRvIGFsbG9jYXRl IEdBUlQgbWVtb3J5XG4iKTsKKwkJcmV0dXJuIHN0YXR1czsKKwl9CisKKwlwYWNrZXRfYnVmZl91 aW50ID0gbWVtX29iai0+Y3B1X3B0cjsKKworCW1lbXNldChwYWNrZXRfYnVmZl91aW50LCAwLCBp Yl9zaXplKTsKKworCXBhY2tldHNfdmVjID0gKHN0cnVjdCBwbTRfX3NldF9jb25maWdfcmVnICop IChwYWNrZXRfYnVmZl91aW50KTsKKworCXBhY2tldHNfdmVjWzBdLmhlYWRlci5jb3VudCA9IDE7 CisJcGFja2V0c192ZWNbMF0uaGVhZGVyLm9wY29kZSA9IElUX1NFVF9DT05GSUdfUkVHOworCXBh Y2tldHNfdmVjWzBdLmhlYWRlci50eXBlID0gUE00X1RZUEVfMzsKKwlwYWNrZXRzX3ZlY1swXS5i aXRmaWVsZHMyLnZtaWRfc2hpZnQgPSBBRERSRVNTX1dBVENIX0NOVExfT0ZGU0VUOworCXBhY2tl dHNfdmVjWzBdLmJpdGZpZWxkczIuaW5zZXJ0X3ZtaWQgPSAxOworCXBhY2tldHNfdmVjWzFdLm9y ZGluYWwxID0gcGFja2V0c192ZWNbMF0ub3JkaW5hbDE7CisJcGFja2V0c192ZWNbMV0uYml0Zmll bGRzMi5pbnNlcnRfdm1pZCA9IDA7CisJcGFja2V0c192ZWNbMl0ub3JkaW5hbDEgPSBwYWNrZXRz X3ZlY1swXS5vcmRpbmFsMTsKKwlwYWNrZXRzX3ZlY1syXS5iaXRmaWVsZHMyLmluc2VydF92bWlk ID0gMDsKKwlwYWNrZXRzX3ZlY1szXS5vcmRpbmFsMSA9IHBhY2tldHNfdmVjWzBdLm9yZGluYWwx OworCXBhY2tldHNfdmVjWzNdLmJpdGZpZWxkczIudm1pZF9zaGlmdCA9IEFERFJFU1NfV0FUQ0hf Q05UTF9PRkZTRVQ7CisJcGFja2V0c192ZWNbM10uYml0ZmllbGRzMi5pbnNlcnRfdm1pZCA9IDE7 CisKKwlmb3IgKGkgPSAwOyBpIDwgYWR3X2luZm8tPm51bV93YXRjaF9wb2ludHM7IGkrKykgewor CQlkYmdkZXZfYWRkcmVzc193YXRjaF9zZXRfcmVnaXN0ZXJzKGFkd19pbmZvLAorCQkJCQkJJmFk ZHJIaSwKKwkJCQkJCSZhZGRyTG8sCisJCQkJCQkmY250bCwKKwkJCQkJCWksCisJCQkJCQl2bWlk KTsKKworCQlwcl9kZWJ1ZygiXHRcdCUzMHNcbiIsICIqICogKiAqICogKiAqICogKiAqICogKiAq ICogKiAqICogKiIpOworCQlwcl9kZWJ1ZygiXHRcdCUyMHMgJTA4eFxuIiwgInJlZ2lzdGVyIGlu ZGV4IDoiLCBpKTsKKwkJcHJfZGVidWcoIlx0XHQlMjBzICUwOHhcbiIsICJ2bWlkIGlzIDoiLCB2 bWlkKTsKKwkJcHJfZGVidWcoIlx0XHQlMjBzICVwXG4iLCAiQWRkIHB0ciBpcyA6IiwKKwkJCQlh ZHdfaW5mby0+d2F0Y2hfYWRkcmVzcyk7CisJCXByX2RlYnVnKCJcdFx0JTIwcyAlMDhsbHhcbiIs ICJBZGQgICAgIGlzIDoiLAorCQkJCWFkd19pbmZvLT53YXRjaF9hZGRyZXNzW2ldKTsKKwkJcHJf ZGVidWcoIlx0XHQlMjBzICUwOHhcbiIsICJBZGRyZXNzIExvdyBpcyA6IiwKKwkJCQlhZGRyTG8u Yml0ZmllbGRzLmFkZHIpOworCQlwcl9kZWJ1ZygiXHRcdCUyMHMgJTA4eFxuIiwgIkFkZHJlc3Mg aGlnaCBpcyA6IiwKKwkJCQlhZGRySGkuYml0ZmllbGRzLmFkZHIpOworCQlwcl9kZWJ1ZygiXHRc dCUyMHMgJTA4eFxuIiwgIkNvbnRyb2wgTWFzayBpcyA6IiwKKwkJCQljbnRsLmJpdGZpZWxkcy5t YXNrKTsKKwkJcHJfZGVidWcoIlx0XHQlMjBzICUwOHhcbiIsICJDb250cm9sIE1vZGUgaXMgOiIs CisJCQkJY250bC5iaXRmaWVsZHMubW9kZSk7CisJCXByX2RlYnVnKCJcdFx0JTIwcyAlMDh4XG4i LCAiQ29udHJvbCBWbWlkIGlzIDoiLAorCQkJCWNudGwuYml0ZmllbGRzLnZtaWQpOworCQlwcl9k ZWJ1ZygiXHRcdCUyMHMgJTA4eFxuIiwgIkNvbnRyb2wgYXRjICBpcyA6IiwKKwkJCQljbnRsLmJp dGZpZWxkcy5hdGMpOworCQlwcl9kZWJ1ZygiXHRcdCUzMHNcbiIsICIqICogKiAqICogKiAqICog KiAqICogKiAqICogKiAqICogKiIpOworCisJCWF3X3JlZ19hZGRfZHdvcmQgPQorCQkJCWRiZ2Rl di0+ZGV2LT5rZmQya2dkLT5hZGRyZXNzX3dhdGNoX2dldF9vZmZzZXQoCisJCQkJCWRiZ2Rldi0+ ZGV2LT5rZ2QsCisJCQkJCWksCisJCQkJCUFERFJFU1NfV0FUQ0hfUkVHX0NOVEwpOworCisJCWF3 X3JlZ19hZGRfZHdvcmQgLz0gc2l6ZW9mKHVpbnQzMl90KTsKKworCQlwYWNrZXRzX3ZlY1swXS5i aXRmaWVsZHMyLnJlZ19vZmZzZXQgPQorCQkJCQlhd19yZWdfYWRkX2R3b3JkIC0gQ09ORklHX1JF R19CQVNFOworCisJCXBhY2tldHNfdmVjWzBdLnJlZ19kYXRhWzBdID0gY250bC51MzJBbGw7CisK KwkJYXdfcmVnX2FkZF9kd29yZCA9CisJCQkJZGJnZGV2LT5kZXYtPmtmZDJrZ2QtPmFkZHJlc3Nf d2F0Y2hfZ2V0X29mZnNldCgKKwkJCQkJZGJnZGV2LT5kZXYtPmtnZCwKKwkJCQkJaSwKKwkJCQkJ QUREUkVTU19XQVRDSF9SRUdfQUREUl9ISSk7CisKKwkJYXdfcmVnX2FkZF9kd29yZCAvPSBzaXpl b2YodWludDMyX3QpOworCisJCXBhY2tldHNfdmVjWzFdLmJpdGZpZWxkczIucmVnX29mZnNldCA9 CisJCQkJCWF3X3JlZ19hZGRfZHdvcmQgLSBDT05GSUdfUkVHX0JBU0U7CisJCXBhY2tldHNfdmVj WzFdLnJlZ19kYXRhWzBdID0gYWRkckhpLnUzMkFsbDsKKworCQlhd19yZWdfYWRkX2R3b3JkID0K KwkJCQlkYmdkZXYtPmRldi0+a2ZkMmtnZC0+YWRkcmVzc193YXRjaF9nZXRfb2Zmc2V0KAorCQkJ CQlkYmdkZXYtPmRldi0+a2dkLAorCQkJCQlpLAorCQkJCQlBRERSRVNTX1dBVENIX1JFR19BRERS X0xPKTsKKworCQlhd19yZWdfYWRkX2R3b3JkIC89IHNpemVvZih1aW50MzJfdCk7CisKKwkJcGFj a2V0c192ZWNbMl0uYml0ZmllbGRzMi5yZWdfb2Zmc2V0ID0KKwkJCQlhd19yZWdfYWRkX2R3b3Jk IC0gQ09ORklHX1JFR19CQVNFOworCQlwYWNrZXRzX3ZlY1syXS5yZWdfZGF0YVswXSA9IGFkZHJM by51MzJBbGw7CisKKwkJLyogZW5hYmxlIHdhdGNoIGZsYWcgaWYgYWRkcmVzcyBpcyBub3QgemVy byovCisJCWlmIChhZHdfaW5mby0+d2F0Y2hfYWRkcmVzc1tpXSA+IDApCisJCQljbnRsLmJpdGZp ZWxkcy52YWxpZCA9IDE7CisJCWVsc2UKKwkJCWNudGwuYml0ZmllbGRzLnZhbGlkID0gMDsKKwor CQlhd19yZWdfYWRkX2R3b3JkID0KKwkJCQlkYmdkZXYtPmRldi0+a2ZkMmtnZC0+YWRkcmVzc193 YXRjaF9nZXRfb2Zmc2V0KAorCQkJCQlkYmdkZXYtPmRldi0+a2dkLAorCQkJCQlpLAorCQkJCQlB RERSRVNTX1dBVENIX1JFR19DTlRMKTsKKworCQlhd19yZWdfYWRkX2R3b3JkIC89IHNpemVvZih1 aW50MzJfdCk7CisKKwkJcGFja2V0c192ZWNbM10uYml0ZmllbGRzMi5yZWdfb2Zmc2V0ID0KKwkJ CQkJYXdfcmVnX2FkZF9kd29yZCAtIENPTkZJR19SRUdfQkFTRTsKKwkJcGFja2V0c192ZWNbM10u cmVnX2RhdGFbMF0gPSBjbnRsLnUzMkFsbDsKKworCQlzdGF0dXMgPSBkYmdkZXZfZGlxX3N1Ym1p dF9pYigKKwkJCQkJZGJnZGV2LAorCQkJCQlhZHdfaW5mby0+cHJvY2Vzcy0+cGFzaWQsCisJCQkJ CW1lbV9vYmotPmdwdV9hZGRyLAorCQkJCQlwYWNrZXRfYnVmZl91aW50LAorCQkJCQlpYl9zaXpl KTsKKworCQlpZiAoc3RhdHVzICE9IDApIHsKKwkJCXByX2VycigiYW1ka2ZkOiBGYWlsZWQgdG8g c3VibWl0IElCIHRvIERJUVxuIik7CisJCQlicmVhazsKKwkJfQorCX0KKworCWtmZF9ndHRfc2Ff ZnJlZShkYmdkZXYtPmRldiwgbWVtX29iaik7CisJcmV0dXJuIHN0YXR1czsKK30KKwogc3RhdGlj IGludCBkYmdkZXZfd2F2ZV9jb250cm9sX3NldF9yZWdpc3RlcnMoCiAJCQkJc3RydWN0IGRiZ193 YXZlX2NvbnRyb2xfaW5mbyAqd2FjX2luZm8sCiAJCQkJdW5pb24gU1FfQ01EX0JJVFMgKmluX3Jl Z19zcV9jbWQsCkBAIC01MzUsMTIgKzgwNywxNCBAQCB2b2lkIGtmZF9kYmdkZXZfaW5pdChzdHJ1 Y3Qga2ZkX2RiZ2RldiAqcGRiZ2Rldiwgc3RydWN0IGtmZF9kZXYgKnBkZXYsCiAJCXBkYmdkZXYt PmRiZ2Rldl9yZWdpc3RlciA9IGRiZ2Rldl9yZWdpc3Rlcl9ub2RpcTsKIAkJcGRiZ2Rldi0+ZGJn ZGV2X3VucmVnaXN0ZXIgPSBkYmdkZXZfdW5yZWdpc3Rlcl9ub2RpcTsKIAkJcGRiZ2Rldi0+ZGJn ZGV2X3dhdmVfY29udHJvbCA9IGRiZ2Rldl93YXZlX2NvbnRyb2xfbm9kaXE7CisJCXBkYmdkZXYt PmRiZ2Rldl9hZGRyZXNzX3dhdGNoID0gZGJnZGV2X2FkZHJlc3Nfd2F0Y2hfbm9kaXE7CiAJCWJy ZWFrOwogCWNhc2UgREJHREVWX1RZUEVfRElROgogCWRlZmF1bHQ6CiAJCXBkYmdkZXYtPmRiZ2Rl dl9yZWdpc3RlciA9IGRiZ2Rldl9yZWdpc3Rlcl9kaXE7CiAJCXBkYmdkZXYtPmRiZ2Rldl91bnJl Z2lzdGVyID0gZGJnZGV2X3VucmVnaXN0ZXJfZGlxOwogCQlwZGJnZGV2LT5kYmdkZXZfd2F2ZV9j b250cm9sID0gIGRiZ2Rldl93YXZlX2NvbnRyb2xfZGlxOworCQlwZGJnZGV2LT5kYmdkZXZfYWRk cmVzc193YXRjaCA9IGRiZ2Rldl9hZGRyZXNzX3dhdGNoX2RpcTsKIAkJYnJlYWs7CiAJfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnbWdyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnbWdyLmMKaW5kZXggMjNhYTU0NC4uNjA5ZWVj MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21nci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kYmdtZ3IuYwpAQCAtMTQ5LDMgKzE0 OSwyMCBAQCBsb25nIGtmZF9kYmdtZ3Jfd2F2ZV9jb250cm9sKHN0cnVjdCBrZmRfZGJnbWdyICpw bWdyLAogCXJldHVybiAobG9uZykgcG1nci0+ZGJnZGV2LT5kYmdkZXZfd2F2ZV9jb250cm9sKHBt Z3ItPmRiZ2Rldiwgd2FjX2luZm8pOwogfQogCitsb25nIGtmZF9kYmdtZ3JfYWRkcmVzc193YXRj aChzdHJ1Y3Qga2ZkX2RiZ21nciAqcG1nciwKKwkJCQlzdHJ1Y3QgZGJnX2FkZHJlc3Nfd2F0Y2hf aW5mbyAqYWR3X2luZm8pCit7CisJQlVHX09OKCFwbWdyIHx8ICFwbWdyLT5kYmdkZXYgfHwgIWFk d19pbmZvKTsKKworCisJLyogSXMgdGhlIHJlcXVlc3RzIGNvbWluZyBmcm9tIHRoZSBhbHJlYWR5 IHJlZ2lzdGVyZWQgcHJvY2Vzcz8gKi8KKwlpZiAocG1nci0+cGFzaWQgIT0gYWR3X2luZm8tPnBy b2Nlc3MtPnBhc2lkKSB7CisJCXByX2RlYnVnKCJIL1cgZGVidWdnZXIgc3VwcG9ydCB3YXMgbm90 IHJlZ2lzdGVyZWQgZm9yIHJlcXVlc3RlciBwYXNpZCAlZFxuIiwKKwkJCQlhZHdfaW5mby0+cHJv Y2Vzcy0+cGFzaWQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gKGxvbmcpIHBt Z3ItPmRiZ2Rldi0+ZGJnZGV2X2FkZHJlc3Nfd2F0Y2gocG1nci0+ZGJnZGV2LAorCQkJCQkJCWFk d19pbmZvKTsKK30KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X2RiZ21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RiZ21nci5oCmluZGV4 IDFlNTBlMTMuLjNmZjNkM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9kYmdtZ3IuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGJnbWdy LmgKQEAgLTI2OCw2ICsyNjgsOCBAQCBzdHJ1Y3Qga2ZkX2RiZ2RldiB7CiAJLyogdmlydHVhbGl6 ZWQgZnVuY3Rpb24gcG9pbnRlcnMgdG8gZGV2aWNlIGRiZyAqLwogCWludCAoKmRiZ2Rldl9yZWdp c3Rlcikoc3RydWN0IGtmZF9kYmdkZXYgKmRiZ2Rldik7CiAJaW50ICgqZGJnZGV2X3VucmVnaXN0 ZXIpKHN0cnVjdCBrZmRfZGJnZGV2ICpkYmdkZXYpOworCWludCAoKmRiZ2Rldl9hZGRyZXNzX3dh dGNoKShzdHJ1Y3Qga2ZkX2RiZ2RldiAqZGJnZGV2LAorCQkJCXN0cnVjdCBkYmdfYWRkcmVzc193 YXRjaF9pbmZvICphZHdfaW5mbyk7CiAJaW50ICgqZGJnZGV2X3dhdmVfY29udHJvbCkoc3RydWN0 IGtmZF9kYmdkZXYgKmRiZ2RldiwKIAkJCQlzdHJ1Y3QgZGJnX3dhdmVfY29udHJvbF9pbmZvICp3 YWNfaW5mbyk7CiAKQEAgLTI4Nyw0ICsyODksNiBAQCBsb25nIGtmZF9kYmdtZ3JfcmVnaXN0ZXIo c3RydWN0IGtmZF9kYmdtZ3IgKnBtZ3IsIHN0cnVjdCBrZmRfcHJvY2VzcyAqcCk7CiBsb25nIGtm ZF9kYmdtZ3JfdW5yZWdpc3RlcihzdHJ1Y3Qga2ZkX2RiZ21nciAqcG1nciwgc3RydWN0IGtmZF9w cm9jZXNzICpwKTsKIGxvbmcga2ZkX2RiZ21ncl93YXZlX2NvbnRyb2woc3RydWN0IGtmZF9kYmdt Z3IgKnBtZ3IsCiAJCQkJc3RydWN0IGRiZ193YXZlX2NvbnRyb2xfaW5mbyAqd2FjX2luZm8pOwor bG9uZyBrZmRfZGJnbWdyX2FkZHJlc3Nfd2F0Y2goc3RydWN0IGtmZF9kYmdtZ3IgKnBtZ3IsCisJ CQlzdHJ1Y3QgZGJnX2FkZHJlc3Nfd2F0Y2hfaW5mbyAqYWR3X2luZm8pOwogI2VuZGlmIC8qIEtG RF9EQkdNR1JfSF8gKi8KLS0gCjIuMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=