From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhupinder Thakur Subject: [PATCH 09/14 v4] xen/arm: vpl011: Modify xenconsole functions to take console structure as input Date: Tue, 6 Jun 2017 15:34:13 +0530 Message-ID: <1496743453-15887-1-git-send-email-bhupinder.thakur@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIBLc-00043i-3Z for xen-devel@lists.xenproject.org; Tue, 06 Jun 2017 10:04:24 +0000 Received: by mail-pf0-f170.google.com with SMTP id l89so21930506pfi.2 for ; Tue, 06 Jun 2017 03:04:21 -0700 (PDT) List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Julien Grall , Stefano Stabellini , Ian Jackson List-Id: xen-devel@lists.xenproject.org WGVuY29uc29sZSBmdW5jdGlvbnMgdGFrZSBkb21haW4gc3RydWN0dXJlIGFzIGlucHV0LiBUaGVz ZSBmdW5jdGlvbnMgc2hhbGwgYmUKbW9kaWZpZWQgdG8gdGFrZSBjb25zb2xlIHN0cnVjdHVyZSBh cyBpbnB1dCBzaW5jZSB0aGVzZSBmdW5jdGlvbnMgdHlwaWNhbGx5IHBlcmZvcm0KY29uc29sZSBz cGVjaWZpYyBvcGVyYXRpb25zLgoKQWxzbyB0aGUgY29uc29sZSBzcGVjaWZpYyBmdW5jdGlvbnMg c3RhcnRpbmcgd2l0aCBwcmVmaXggImRvbWFpbl8iIHNoYWxsIGJlIG1vZGlmaWVkCnRvICJjb25z b2xlXyIgdG8gaW5kaWNhdGUgdGhhdCB0aGVzZSBhcmUgY29uc29sZSBzcGVjaWZpYyBmdW5jdGlv bnMuCgpUaGlzIHBhdGNoIGlzIGluIHByZXBhcmF0aW9uIHRvIHN1cHBvcnQgbXVsdGlwbGUgY29u c29sZXMgdG8gc3VwcG9ydCB2dWFydCBjb25zb2xlLgoKU2lnbmVkLW9mZi1ieTogQmh1cGluZGVy IFRoYWt1ciA8Ymh1cGluZGVyLnRoYWt1ckBsaW5hcm8ub3JnPgotLS0KCkNoYW5nZXMgc2luY2Ug djM6Ci0gVGhlIGNoYW5nZXMgaW4geGVuY29uc29sZSBoYXZlIGJlZW4gc3BsaXQgaW50byBmb3Vy IHBhdGNoZXMuIFRoaXMgaXMgdGhlIHNlY29uZCBwYXRjaC4KCiB0b29scy9jb25zb2xlL2RhZW1v bi9pby5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS90b29scy9jb25zb2xlL2RhZW1vbi9pby5jIGIvdG9vbHMvY29uc29sZS9kYWVt b24vaW8uYwppbmRleCAwNDAyZGRmLi5jNWRkMDhkIDEwMDY0NAotLS0gYS90b29scy9jb25zb2xl L2RhZW1vbi9pby5jCisrKyBiL3Rvb2xzL2NvbnNvbGUvZGFlbW9uL2lvLmMKQEAgLTE2MywxMCAr MTYzLDEwIEBAIHN0YXRpYyBpbnQgd3JpdGVfd2l0aF90aW1lc3RhbXAoaW50IGZkLCBjb25zdCBj aGFyICpkYXRhLCBzaXplX3Qgc3osCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGJ1ZmZl cl9hcHBlbmQoc3RydWN0IGRvbWFpbiAqZG9tKQorc3RhdGljIHZvaWQgYnVmZmVyX2FwcGVuZChz dHJ1Y3QgY29uc29sZSAqY29uKQogewotCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZG9tLT5jb25z b2xlOwogCXN0cnVjdCBidWZmZXIgKmJ1ZmZlciA9ICZjb24tPmJ1ZmZlcjsKKwlzdHJ1Y3QgZG9t YWluICpkb20gPSBjb24tPmQ7CiAJWEVOQ09OU19SSU5HX0lEWCBjb25zLCBwcm9kLCBzaXplOwog CXN0cnVjdCB4ZW5jb25zX2ludGVyZmFjZSAqaW50ZiA9IGNvbi0+aW50ZXJmYWNlOwogCkBAIC0y OTYsMTIgKzI5NiwxMyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9odl9sb2codm9pZCkKIAlyZXR1cm4g ZmQ7CiB9CiAKLXN0YXRpYyBpbnQgY3JlYXRlX2RvbWFpbl9sb2coc3RydWN0IGRvbWFpbiAqZG9t KQorc3RhdGljIGludCBjcmVhdGVfY29uc29sZV9sb2coc3RydWN0IGNvbnNvbGUgKmNvbikKIHsK IAljaGFyIGxvZ2ZpbGVbUEFUSF9NQVhdOwogCWNoYXIgKm5hbWVwYXRoLCAqZGF0YSwgKnM7CiAJ aW50IGZkOwogCXVuc2lnbmVkIGludCBsZW47CisJc3RydWN0IGRvbWFpbiAqZG9tID0gY29uLT5k OwogCiAJbmFtZXBhdGggPSB4c19nZXRfZG9tYWluX3BhdGgoeHMsIGRvbS0+ZG9taWQpOwogCXMg PSByZWFsbG9jKG5hbWVwYXRoLCBzdHJsZW4obmFtZXBhdGgpICsgNik7CkBAIC0zNDIsMTAgKzM0 Myw4IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2RvbWFpbl9sb2coc3RydWN0IGRvbWFpbiAqZG9tKQog CXJldHVybiBmZDsKIH0KIAotc3RhdGljIHZvaWQgZG9tYWluX2Nsb3NlX3R0eShzdHJ1Y3QgZG9t YWluICpkb20pCitzdGF0aWMgdm9pZCBjb25zb2xlX2Nsb3NlX3R0eShzdHJ1Y3QgY29uc29sZSAq Y29uKQogewotCXN0cnVjdCBjb25zb2xlICpjb24gPSAmZG9tLT5jb25zb2xlOwotCiAJaWYgKGNv bi0+bWFzdGVyX2ZkICE9IC0xKSB7CiAJCWNsb3NlKGNvbi0+bWFzdGVyX2ZkKTsKIAkJY29uLT5t YXN0ZXJfZmQgPSAtMTsKQEAgLTQxNyw3ICs0MTYsNyBAQCB2b2lkIGNmbWFrZXJhdyhzdHJ1Y3Qg dGVybWlvcyAqdGVybWlvc19wKQogfQogI2VuZGlmIC8qIF9fc3VuX18gKi8KIAotc3RhdGljIGlu dCBkb21haW5fY3JlYXRlX3R0eShzdHJ1Y3QgZG9tYWluICpkb20pCitzdGF0aWMgaW50IGNvbnNv bGVfY3JlYXRlX3R0eShzdHJ1Y3QgY29uc29sZSAqY29uKQogewogCWNvbnN0IGNoYXIgKnNsYXZl OwogCWNoYXIgKnBhdGg7CkBAIC00MjYsNyArNDI1LDcgQEAgc3RhdGljIGludCBkb21haW5fY3Jl YXRlX3R0eShzdHJ1Y3QgZG9tYWluICpkb20pCiAJY2hhciAqZGF0YTsKIAl1bnNpZ25lZCBpbnQg bGVuOwogCXN0cnVjdCB0ZXJtaW9zIHRlcm07Ci0Jc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkb20t PmNvbnNvbGU7CisJc3RydWN0IGRvbWFpbiAqZG9tID0gY29uLT5kOwogCiAJYXNzZXJ0KGNvbi0+ c2xhdmVfZmQgPT0gLTEpOwogCWFzc2VydChjb24tPm1hc3Rlcl9mZCA9PSAtMSk7CkBAIC00ODcs NyArNDg2LDcgQEAgc3RhdGljIGludCBkb21haW5fY3JlYXRlX3R0eShzdHJ1Y3QgZG9tYWluICpk b20pCiAKIAlyZXR1cm4gMTsKIG91dDoKLQlkb21haW5fY2xvc2VfdHR5KGRvbSk7CisJY29uc29s ZV9jbG9zZV90dHkoY29uKTsKIAlyZXR1cm4gMDsKIH0KICAKQEAgLTUyNiwxMCArNTI1LDggQEAg c3RhdGljIGludCB4c19nYXRoZXIoc3RydWN0IHhzX2hhbmRsZSAqeHMsIGNvbnN0IGNoYXIgKmRp ciwgLi4uKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIGRvbWFpbl91bm1hcF9pbnRl cmZhY2Uoc3RydWN0IGRvbWFpbiAqZG9tKQorc3RhdGljIHZvaWQgY29uc29sZV91bm1hcF9pbnRl cmZhY2Uoc3RydWN0IGNvbnNvbGUgKmNvbikKIHsKLQlzdHJ1Y3QgY29uc29sZSAqY29uID0gJmRv bS0+Y29uc29sZTsKLQogCWlmIChjb24tPmludGVyZmFjZSA9PSBOVUxMKQogCQlyZXR1cm47CiAJ aWYgKHhndF9oYW5kbGUgJiYgY29uLT5yaW5nX3JlZiA9PSAtMSkKQEAgLTU0MCwxMSArNTM3LDEx IEBAIHN0YXRpYyB2b2lkIGRvbWFpbl91bm1hcF9pbnRlcmZhY2Uoc3RydWN0IGRvbWFpbiAqZG9t KQogCWNvbi0+cmluZ19yZWYgPSAtMTsKIH0KICAKLXN0YXRpYyBpbnQgZG9tYWluX2NyZWF0ZV9y aW5nKHN0cnVjdCBkb21haW4gKmRvbSkKK3N0YXRpYyBpbnQgY29uc29sZV9jcmVhdGVfcmluZyhz dHJ1Y3QgY29uc29sZSAqY29uKQogewogCWludCBlcnIsIHJlbW90ZV9wb3J0LCByaW5nX3JlZiwg cmM7CiAJY2hhciAqdHlwZSwgcGF0aFtQQVRIX01BWF07Ci0Jc3RydWN0IGNvbnNvbGUgKmNvbiA9 ICZkb20tPmNvbnNvbGU7CisJc3RydWN0IGRvbWFpbiAqZG9tID0gY29uLT5kOwogCiAJZXJyID0g eHNfZ2F0aGVyKHhzLCBjb24tPmNvbnNwYXRoLAogCQkJInJpbmctcmVmIiwgIiV1IiwgJnJpbmdf cmVmLApAQCAtNTYzLDcgKzU2MCw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NyZWF0ZV9yaW5nKHN0 cnVjdCBkb21haW4gKmRvbSkKIAogCS8qIElmIHVzaW5nIHJpbmdfcmVmIGFuZCBpdCBoYXMgY2hh bmdlZCwgcmVtYXAgKi8KIAlpZiAocmluZ19yZWYgIT0gY29uLT5yaW5nX3JlZiAmJiBjb24tPnJp bmdfcmVmICE9IC0xKQotCQlkb21haW5fdW5tYXBfaW50ZXJmYWNlKGRvbSk7CisJCWNvbnNvbGVf dW5tYXBfaW50ZXJmYWNlKGNvbik7CiAKIAlpZiAoIWNvbi0+aW50ZXJmYWNlICYmIHhndF9oYW5k bGUpIHsKIAkJLyogUHJlZmVyIHVzaW5nIGdyYW50IHRhYmxlICovCkBAIC02MjEsNyArNjE4LDcg QEAgc3RhdGljIGludCBkb21haW5fY3JlYXRlX3Jpbmcoc3RydWN0IGRvbWFpbiAqZG9tKQogCWNv bi0+cmVtb3RlX3BvcnQgPSByZW1vdGVfcG9ydDsKIAogCWlmIChjb24tPm1hc3Rlcl9mZCA9PSAt MSkgewotCQlpZiAoIWRvbWFpbl9jcmVhdGVfdHR5KGRvbSkpIHsKKwkJaWYgKCFjb25zb2xlX2Ny ZWF0ZV90dHkoY29uKSkgewogCQkJZXJyID0gZXJybm87CiAJCQl4ZW5ldnRjaG5fY2xvc2UoZG9t LT54Y2VfaGFuZGxlKTsKIAkJCWRvbS0+eGNlX2hhbmRsZSA9IE5VTEw7CkBAIC02MzIsNyArNjI5 LDcgQEAgc3RhdGljIGludCBkb21haW5fY3JlYXRlX3Jpbmcoc3RydWN0IGRvbWFpbiAqZG9tKQog CX0KIAogCWlmIChsb2dfZ3Vlc3QgJiYgKGNvbi0+bG9nX2ZkID09IC0xKSkKLQkJY29uLT5sb2df ZmQgPSBjcmVhdGVfZG9tYWluX2xvZyhkb20pOworCQljb24tPmxvZ19mZCA9IGNyZWF0ZV9jb25z b2xlX2xvZyhjb24pOwogCiAgb3V0OgogCXJldHVybiBlcnI7CkBAIC02NDgsNyArNjQ1LDcgQEAg c3RhdGljIGJvb2wgd2F0Y2hfZG9tYWluKHN0cnVjdCBkb21haW4gKmRvbSwgYm9vbCB3YXRjaCkK IAlpZiAod2F0Y2gpIHsKIAkJc3VjY2VzcyA9IHhzX3dhdGNoKHhzLCBjb24tPmNvbnNwYXRoLCBk b21pZF9zdHIpOwogCQlpZiAoc3VjY2VzcykKLQkJCWRvbWFpbl9jcmVhdGVfcmluZyhkb20pOwor CQkJY29uc29sZV9jcmVhdGVfcmluZyhjb24pOwogCQllbHNlCiAJCQl4c191bndhdGNoKHhzLCBj b24tPmNvbnNwYXRoLCBkb21pZF9zdHIpOwogCX0gZWxzZSB7CkBAIC02OTQsNiArNjkxLDcgQEAg c3RhdGljIHN0cnVjdCBkb21haW4gKmNyZWF0ZV9kb21haW4oaW50IGRvbWlkKQogCWNvbi0+bWFz dGVyX3BvbGxmZF9pZHggPSAtMTsKIAljb24tPnNsYXZlX2ZkID0gLTE7CiAJY29uLT5sb2dfZmQg PSAtMTsKKwljb24tPmQgPSBkb207CiAJZG9tLT54Y2VfcG9sbGZkX2lkeCA9IC0xOwogCiAJZG9t LT5uZXh0X3BlcmlvZCA9ICgobG9uZyBsb25nKXRzLnR2X3NlYyAqIDEwMDApICsgKHRzLnR2X25z ZWMgLyAxMDAwMDAwKSArIFJBVEVfTElNSVRfUEVSSU9EOwpAQCAtNzQ2LDcgKzc0NCw3IEBAIHN0 YXRpYyB2b2lkIGNsZWFudXBfZG9tYWluKHN0cnVjdCBkb21haW4gKmQpCiB7CiAJc3RydWN0IGNv bnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlOwogCi0JZG9tYWluX2Nsb3NlX3R0eShkKTsKKwljb25z b2xlX2Nsb3NlX3R0eShjb24pOwogCiAJaWYgKGNvbi0+bG9nX2ZkICE9IC0xKSB7CiAJCWNsb3Nl KGNvbi0+bG9nX2ZkKTsKQEAgLTc2NCw5ICs3NjIsMTEgQEAgc3RhdGljIHZvaWQgY2xlYW51cF9k b21haW4oc3RydWN0IGRvbWFpbiAqZCkKIAogc3RhdGljIHZvaWQgc2h1dGRvd25fZG9tYWluKHN0 cnVjdCBkb21haW4gKmQpCiB7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZkLT5jb25zb2xlOwor CiAJZC0+aXNfZGVhZCA9IHRydWU7CiAJd2F0Y2hfZG9tYWluKGQsIGZhbHNlKTsKLQlkb21haW5f dW5tYXBfaW50ZXJmYWNlKGQpOworCWNvbnNvbGVfdW5tYXBfaW50ZXJmYWNlKGNvbik7CiAJaWYg KGQtPnhjZV9oYW5kbGUgIT0gTlVMTCkKIAkJeGVuZXZ0Y2huX2Nsb3NlKGQtPnhjZV9oYW5kbGUp OwogCWQtPnhjZV9oYW5kbGUgPSBOVUxMOwpAQCAtNzk3LDkgKzc5Nyw4IEBAIHN0YXRpYyB2b2lk IGVudW1fZG9tYWlucyh2b2lkKQogCX0KIH0KIAotc3RhdGljIGludCByaW5nX2ZyZWVfYnl0ZXMo c3RydWN0IGRvbWFpbiAqZG9tKQorc3RhdGljIGludCByaW5nX2ZyZWVfYnl0ZXMoc3RydWN0IGNv bnNvbGUgKmNvbikKIHsKLQlzdHJ1Y3QgY29uc29sZSAqY29uID0gJmRvbS0+Y29uc29sZTsKIAlz dHJ1Y3QgeGVuY29uc19pbnRlcmZhY2UgKmludGYgPSBjb24tPmludGVyZmFjZTsKIAlYRU5DT05T X1JJTkdfSURYIGNvbnMsIHByb2QsIHNwYWNlOwogCkBAIC04MTQsMzAgKzgxMywzMCBAQCBzdGF0 aWMgaW50IHJpbmdfZnJlZV9ieXRlcyhzdHJ1Y3QgZG9tYWluICpkb20pCiAJcmV0dXJuIChzaXpl b2YoaW50Zi0+aW4pIC0gc3BhY2UpOwogfQogCi1zdGF0aWMgdm9pZCBkb21haW5faGFuZGxlX2Jy b2tlbl90dHkoc3RydWN0IGRvbWFpbiAqZG9tLCBpbnQgcmVjcmVhdGUpCitzdGF0aWMgdm9pZCBj b25zb2xlX2hhbmRsZV9icm9rZW5fdHR5KHN0cnVjdCBjb25zb2xlICpjb24sIGludCByZWNyZWF0 ZSkKIHsKLQlkb21haW5fY2xvc2VfdHR5KGRvbSk7CisJY29uc29sZV9jbG9zZV90dHkoY29uKTsK IAogCWlmIChyZWNyZWF0ZSkgewotCQlkb21haW5fY3JlYXRlX3R0eShkb20pOworCQljb25zb2xl X2NyZWF0ZV90dHkoY29uKTsKIAl9IGVsc2UgewotCQlzaHV0ZG93bl9kb21haW4oZG9tKTsKKwkJ c2h1dGRvd25fZG9tYWluKGNvbi0+ZCk7CiAJfQogfQogCi1zdGF0aWMgdm9pZCBoYW5kbGVfdHR5 X3JlYWQoc3RydWN0IGRvbWFpbiAqZG9tKQorc3RhdGljIHZvaWQgaGFuZGxlX3R0eV9yZWFkKHN0 cnVjdCBjb25zb2xlICpjb24pCiB7CiAJc3NpemVfdCBsZW4gPSAwOwogCWNoYXIgbXNnWzgwXTsK IAlpbnQgaTsKLQlzdHJ1Y3QgY29uc29sZSAqY29uID0gJmRvbS0+Y29uc29sZTsKIAlzdHJ1Y3Qg eGVuY29uc19pbnRlcmZhY2UgKmludGYgPSBjb24tPmludGVyZmFjZTsKKwlzdHJ1Y3QgZG9tYWlu ICpkb20gPSBjb24tPmQ7CiAJWEVOQ09OU19SSU5HX0lEWCBwcm9kOwogCiAJaWYgKGRvbS0+aXNf ZGVhZCkKIAkJcmV0dXJuOwogCi0JbGVuID0gcmluZ19mcmVlX2J5dGVzKGRvbSk7CisJbGVuID0g cmluZ19mcmVlX2J5dGVzKGNvbik7CiAJaWYgKGxlbiA9PSAwKQogCQlyZXR1cm47CiAKQEAgLTg1 MSw3ICs4NTAsNyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfdHR5X3JlYWQoc3RydWN0IGRvbWFpbiAq ZG9tKQogCSAqIGtlZXAgdGhlIHNsYXZlIG9wZW4gZm9yIHRoZSBkdXJhdGlvbi4KIAkgKi8KIAlp ZiAobGVuIDwgMCkgewotCQlkb21haW5faGFuZGxlX2Jyb2tlbl90dHkoZG9tLCBkb21haW5faXNf dmFsaWQoZG9tLT5kb21pZCkpOworCQljb25zb2xlX2hhbmRsZV9icm9rZW5fdHR5KGNvbiwgZG9t YWluX2lzX3ZhbGlkKGRvbS0+ZG9taWQpKTsKIAl9IGVsc2UgaWYgKGRvbWFpbl9pc192YWxpZChk b20tPmRvbWlkKSkgewogCQlwcm9kID0gaW50Zi0+aW5fcHJvZDsKIAkJZm9yIChpID0gMDsgaSA8 IGxlbjsgaSsrKSB7CkBAIC04NjIsMTUgKzg2MSwxNSBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfdHR5 X3JlYWQoc3RydWN0IGRvbWFpbiAqZG9tKQogCQlpbnRmLT5pbl9wcm9kID0gcHJvZDsKIAkJeGVu ZXZ0Y2huX25vdGlmeShkb20tPnhjZV9oYW5kbGUsIGNvbi0+bG9jYWxfcG9ydCk7CiAJfSBlbHNl IHsKLQkJZG9tYWluX2Nsb3NlX3R0eShkb20pOworCQljb25zb2xlX2Nsb3NlX3R0eShjb24pOwog CQlzaHV0ZG93bl9kb21haW4oZG9tKTsKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGhhbmRsZV90dHlf d3JpdGUoc3RydWN0IGRvbWFpbiAqZG9tKQorc3RhdGljIHZvaWQgaGFuZGxlX3R0eV93cml0ZShz dHJ1Y3QgY29uc29sZSAqY29uKQogewogCXNzaXplX3QgbGVuOwotCXN0cnVjdCBjb25zb2xlICpj b24gPSAmZG9tLT5jb25zb2xlOworCXN0cnVjdCBkb21haW4gKmRvbSA9IGNvbi0+ZDsKIAogCWlm IChkb20tPmlzX2RlYWQpCiAJCXJldHVybjsKQEAgLTg4MCw3ICs4NzksNyBAQCBzdGF0aWMgdm9p ZCBoYW5kbGVfdHR5X3dyaXRlKHN0cnVjdCBkb21haW4gKmRvbSkKICAJaWYgKGxlbiA8IDEpIHsK IAkJZG9sb2coTE9HX0RFQlVHLCAiV3JpdGUgZmFpbGVkIG9uIGRvbWFpbiAlZDogJXpkLCAlZFxu IiwKIAkJICAgICAgZG9tLT5kb21pZCwgbGVuLCBlcnJubyk7Ci0JCWRvbWFpbl9oYW5kbGVfYnJv a2VuX3R0eShkb20sIGRvbWFpbl9pc192YWxpZChkb20tPmRvbWlkKSk7CisJCWNvbnNvbGVfaGFu ZGxlX2Jyb2tlbl90dHkoY29uLCBkb21haW5faXNfdmFsaWQoZG9tLT5kb21pZCkpOwogCX0gZWxz ZSB7CiAJCWJ1ZmZlcl9hZHZhbmNlKCZjb24tPmJ1ZmZlciwgbGVuKTsKIAl9CkBAIC04ODksNiAr ODg4LDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX3R0eV93cml0ZShzdHJ1Y3QgZG9tYWluICpkb20p CiBzdGF0aWMgdm9pZCBoYW5kbGVfcmluZ19yZWFkKHN0cnVjdCBkb21haW4gKmRvbSkKIHsKIAl4 ZW5ldnRjaG5fcG9ydF9vcl9lcnJvcl90IHBvcnQ7CisJc3RydWN0IGNvbnNvbGUgKmNvbiA9ICZk b20tPmNvbnNvbGU7CiAKIAlpZiAoZG9tLT5pc19kZWFkKQogCQlyZXR1cm47CkBAIC04OTgsNyAr ODk4LDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX3JpbmdfcmVhZChzdHJ1Y3QgZG9tYWluICpkb20p CiAKIAlkb20tPmV2ZW50X2NvdW50Kys7CiAKLQlidWZmZXJfYXBwZW5kKGRvbSk7CisJYnVmZmVy X2FwcGVuZChjb24pOwogCiAJaWYgKGRvbS0+ZXZlbnRfY291bnQgPCBSQVRFX0xJTUlUX0FMTE9X QU5DRSkKIAkJKHZvaWQpeGVuZXZ0Y2huX3VubWFzayhkb20tPnhjZV9oYW5kbGUsIHBvcnQpOwpA QCAtOTIyLDcgKzkyMiw3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV94cyh2b2lkKQogCQkvKiBXZSBt YXkgZ2V0IHdhdGNoZXMgZmlyaW5nIGZvciBkb21haW5zIHRoYXQgaGF2ZSByZWNlbnRseQogCQkg ICBiZWVuIHJlbW92ZWQsIHNvIGRvbSBtYXkgYmUgTlVMTCBoZXJlLiAqLwogCQlpZiAoZG9tICYm IGRvbS0+aXNfZGVhZCA9PSBmYWxzZSkKLQkJCWRvbWFpbl9jcmVhdGVfcmluZyhkb20pOworCQkJ Y29uc29sZV9jcmVhdGVfcmluZygmZG9tLT5jb25zb2xlKTsKIAl9CiAKIAlmcmVlKHZlYyk7CkBA IC05NzIsNyArOTcyLDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX2xvZ19yZWxvYWQodm9pZCkKIAog CQkJaWYgKGNvbi0+bG9nX2ZkICE9IC0xKQogCQkJCWNsb3NlKGNvbi0+bG9nX2ZkKTsKLQkJCWNv bi0+bG9nX2ZkID0gY3JlYXRlX2RvbWFpbl9sb2coZCk7CisJCQljb24tPmxvZ19mZCA9IGNyZWF0 ZV9jb25zb2xlX2xvZyhjb24pOwogCQl9CiAJfQogCkBAIC0xMTE4LDcgKzExMTgsNyBAQCB2b2lk IGhhbmRsZV9pbyh2b2lkKQogCiAJCQlpZiAoY29uLT5tYXN0ZXJfZmQgIT0gLTEpIHsKIAkJCQlz aG9ydCBldmVudHMgPSAwOwotCQkJCWlmICghZC0+aXNfZGVhZCAmJiByaW5nX2ZyZWVfYnl0ZXMo ZCkpCisJCQkJaWYgKCFkLT5pc19kZWFkICYmIHJpbmdfZnJlZV9ieXRlcyhjb24pKQogCQkJCQll dmVudHMgfD0gUE9MTElOOwogCiAJCQkJaWYgKCFidWZmZXJfZW1wdHkoJmNvbi0+YnVmZmVyKSkK QEAgLTEyMDEsMTUgKzEyMDEsMTUgQEAgdm9pZCBoYW5kbGVfaW8odm9pZCkKIAkJCWlmIChjb24t Pm1hc3Rlcl9mZCAhPSAtMSAmJiBjb24tPm1hc3Rlcl9wb2xsZmRfaWR4ICE9IC0xKSB7CiAJCQkJ aWYgKGZkc1tjb24tPm1hc3Rlcl9wb2xsZmRfaWR4XS5yZXZlbnRzICYKIAkJCQkgICAgfihQT0xM SU58UE9MTE9VVHxQT0xMUFJJKSkKLQkJCQkJZG9tYWluX2hhbmRsZV9icm9rZW5fdHR5KGQsCisJ CQkJCWNvbnNvbGVfaGFuZGxlX2Jyb2tlbl90dHkoY29uLAogCQkJCQkJICAgZG9tYWluX2lzX3Zh bGlkKGQtPmRvbWlkKSk7CiAJCQkJZWxzZSB7CiAJCQkJCWlmIChmZHNbY29uLT5tYXN0ZXJfcG9s bGZkX2lkeF0ucmV2ZW50cyAmCiAJCQkJCSAgICBQT0xMSU4pCi0JCQkJCQloYW5kbGVfdHR5X3Jl YWQoZCk7CisJCQkJCQloYW5kbGVfdHR5X3JlYWQoY29uKTsKIAkJCQkJaWYgKGZkc1tjb24tPm1h c3Rlcl9wb2xsZmRfaWR4XS5yZXZlbnRzICYKIAkJCQkJICAgIFBPTExPVVQpCi0JCQkJCQloYW5k bGVfdHR5X3dyaXRlKGQpOworCQkJCQkJaGFuZGxlX3R0eV93cml0ZShjb24pOwogCQkJCX0KIAkJ CX0KIAotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK