From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH] drm/mm: Support 4 GiB and larger ranges Date: Fri, 23 Jan 2015 09:05:06 +0100 Message-ID: <1422000306-27926-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 Cc: Thomas Hellstrom , intel-gfx@lists.freedesktop.org, Daniel Vetter , Russell King List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZSBjdXJyZW50IGlt cGxlbWVudGF0aW9uIGlzIGxpbWl0ZWQgYnkgdGhlIG51bWJlciBvZiBhZGRyZXNzZXMgdGhhdApm aXQgaW50byBhbiB1bnNpZ25lZCBsb25nLiBUaGlzIGNhdXNlcyBwcm9ibGVtcyBvbiAzMi1iaXQg VGVncmEgd2hlcmUKdW5zaWduZWQgbG9uZyBpcyAzMi1iaXQgYnV0IGRybV9tbSBpcyB1c2VkIHRv IG1hbmFnZSBhbiBJT1ZBIHNwYWNlIG9mCjQgR2lCLiBHaXZlbiB0aGUgMzItYml0IGxpbWl0YXRp b24sIHRoZSByYW5nZSBpcyBsaW1pdGVkIHRvIDQgR2lCIC0gMQoob3IgNCBHaUIgLSA0IEtpQiBm b3IgcGFnZSBncmFudWxhcml0eSkuCgpUaGlzIGNvbW1pdCBjaGFuZ2VzIHRoZSBzdGFydCBhbmQg c2l6ZSBvZiB0aGUgcmFuZ2UgdG8gYmUgYW4gdW5zaWduZWQKNjQtYml0IGludGVnZXIsIHRodXMg YWxsb3dpbmcgbXVjaCBsYXJnZXIgcmFuZ2VzIHRvIGJlIHN1cHBvcnRlZC4KClNpZ25lZC1vZmYt Ynk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2RybV9tbS5jIHwgMTUyICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1fbW0uaCAgICAgfCAgNTIgKysrKysrKystLS0tLS0t LQogMiBmaWxlcyBjaGFuZ2VkLCAxMDUgaW5zZXJ0aW9ucygrKSwgOTkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9tbS5jCmluZGV4IDA0YTIwOWUyYjY2ZC4uN2ZjNmY4YmQ0ODIxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX21tLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jCkBAIC05 MSwyOSArOTEsMjkgQEAKICAqLwogCiBzdGF0aWMgc3RydWN0IGRybV9tbV9ub2RlICpkcm1fbW1f c2VhcmNoX2ZyZWVfZ2VuZXJpYyhjb25zdCBzdHJ1Y3QgZHJtX21tICptbSwKLQkJCQkJCXVuc2ln bmVkIGxvbmcgc2l6ZSwKKwkJCQkJCXU2NCBzaXplLAogCQkJCQkJdW5zaWduZWQgYWxpZ25tZW50 LAogCQkJCQkJdW5zaWduZWQgbG9uZyBjb2xvciwKIAkJCQkJCWVudW0gZHJtX21tX3NlYXJjaF9m bGFncyBmbGFncyk7CiBzdGF0aWMgc3RydWN0IGRybV9tbV9ub2RlICpkcm1fbW1fc2VhcmNoX2Zy ZWVfaW5fcmFuZ2VfZ2VuZXJpYyhjb25zdCBzdHJ1Y3QgZHJtX21tICptbSwKLQkJCQkJCXVuc2ln bmVkIGxvbmcgc2l6ZSwKKwkJCQkJCXU2NCBzaXplLAogCQkJCQkJdW5zaWduZWQgYWxpZ25tZW50 LAogCQkJCQkJdW5zaWduZWQgbG9uZyBjb2xvciwKLQkJCQkJCXVuc2lnbmVkIGxvbmcgc3RhcnQs Ci0JCQkJCQl1bnNpZ25lZCBsb25nIGVuZCwKKwkJCQkJCXU2NCBzdGFydCwKKwkJCQkJCXU2NCBl bmQsCiAJCQkJCQllbnVtIGRybV9tbV9zZWFyY2hfZmxhZ3MgZmxhZ3MpOwogCiBzdGF0aWMgdm9p ZCBkcm1fbW1faW5zZXJ0X2hlbHBlcihzdHJ1Y3QgZHJtX21tX25vZGUgKmhvbGVfbm9kZSwKIAkJ CQkgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLAotCQkJCSB1bnNpZ25lZCBsb25nIHNpemUsIHVu c2lnbmVkIGFsaWdubWVudCwKKwkJCQkgdTY0IHNpemUsIHVuc2lnbmVkIGFsaWdubWVudCwKIAkJ CQkgdW5zaWduZWQgbG9uZyBjb2xvciwKIAkJCQkgZW51bSBkcm1fbW1fYWxsb2NhdG9yX2ZsYWdz IGZsYWdzKQogewogCXN0cnVjdCBkcm1fbW0gKm1tID0gaG9sZV9ub2RlLT5tbTsKLQl1bnNpZ25l ZCBsb25nIGhvbGVfc3RhcnQgPSBkcm1fbW1faG9sZV9ub2RlX3N0YXJ0KGhvbGVfbm9kZSk7Ci0J dW5zaWduZWQgbG9uZyBob2xlX2VuZCA9IGRybV9tbV9ob2xlX25vZGVfZW5kKGhvbGVfbm9kZSk7 Ci0JdW5zaWduZWQgbG9uZyBhZGpfc3RhcnQgPSBob2xlX3N0YXJ0OwotCXVuc2lnbmVkIGxvbmcg YWRqX2VuZCA9IGhvbGVfZW5kOworCXU2NCBob2xlX3N0YXJ0ID0gZHJtX21tX2hvbGVfbm9kZV9z dGFydChob2xlX25vZGUpOworCXU2NCBob2xlX2VuZCA9IGRybV9tbV9ob2xlX25vZGVfZW5kKGhv bGVfbm9kZSk7CisJdTY0IGFkal9zdGFydCA9IGhvbGVfc3RhcnQ7CisJdTY0IGFkal9lbmQgPSBo b2xlX2VuZDsKIAogCUJVR19PTihub2RlLT5hbGxvY2F0ZWQpOwogCkBAIC0xMjQsMTIgKzEyNCwx NSBAQCBzdGF0aWMgdm9pZCBkcm1fbW1faW5zZXJ0X2hlbHBlcihzdHJ1Y3QgZHJtX21tX25vZGUg KmhvbGVfbm9kZSwKIAkJYWRqX3N0YXJ0ID0gYWRqX2VuZCAtIHNpemU7CiAKIAlpZiAoYWxpZ25t ZW50KSB7Ci0JCXVuc2lnbmVkIHRtcCA9IGFkal9zdGFydCAlIGFsaWdubWVudDsKLQkJaWYgKHRt cCkgeworCQl1NjQgdG1wID0gYWRqX3N0YXJ0OworCQl1bnNpZ25lZCByZW07CisKKwkJcmVtID0g ZG9fZGl2KHRtcCwgYWxpZ25tZW50KTsKKwkJaWYgKHJlbSkgewogCQkJaWYgKGZsYWdzICYgRFJN X01NX0NSRUFURV9UT1ApCi0JCQkJYWRqX3N0YXJ0IC09IHRtcDsKKwkJCQlhZGpfc3RhcnQgLT0g cmVtOwogCQkJZWxzZQotCQkJCWFkal9zdGFydCArPSBhbGlnbm1lbnQgLSB0bXA7CisJCQkJYWRq X3N0YXJ0ICs9IGFsaWdubWVudCAtIHJlbTsKIAkJfQogCX0KIApAQCAtMTc2LDkgKzE3OSw5IEBA IHN0YXRpYyB2b2lkIGRybV9tbV9pbnNlcnRfaGVscGVyKHN0cnVjdCBkcm1fbW1fbm9kZSAqaG9s ZV9ub2RlLAogaW50IGRybV9tbV9yZXNlcnZlX25vZGUoc3RydWN0IGRybV9tbSAqbW0sIHN0cnVj dCBkcm1fbW1fbm9kZSAqbm9kZSkKIHsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgKmhvbGU7Ci0JdW5z aWduZWQgbG9uZyBlbmQgPSBub2RlLT5zdGFydCArIG5vZGUtPnNpemU7Ci0JdW5zaWduZWQgbG9u ZyBob2xlX3N0YXJ0OwotCXVuc2lnbmVkIGxvbmcgaG9sZV9lbmQ7CisJdTY0IGVuZCA9IG5vZGUt PnN0YXJ0ICsgbm9kZS0+c2l6ZTsKKwl1NjQgaG9sZV9zdGFydDsKKwl1NjQgaG9sZV9lbmQ7CiAK IAlCVUdfT04obm9kZSA9PSBOVUxMKTsKIApAQCAtMjI3LDcgKzIzMCw3IEBAIEVYUE9SVF9TWU1C T0woZHJtX21tX3Jlc2VydmVfbm9kZSk7CiAgKiAwIG9uIHN1Y2Nlc3MsIC1FTk9TUEMgaWYgdGhl cmUncyBubyBzdWl0YWJsZSBob2xlLgogICovCiBpbnQgZHJtX21tX2luc2VydF9ub2RlX2dlbmVy aWMoc3RydWN0IGRybV9tbSAqbW0sIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKLQkJCSAgICAg ICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGFsaWdubWVudCwKKwkJCSAgICAgICB1NjQg c2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50LAogCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgY29sb3Is CiAJCQkgICAgICAgZW51bSBkcm1fbW1fc2VhcmNoX2ZsYWdzIHNmbGFncywKIAkJCSAgICAgICBl bnVtIGRybV9tbV9hbGxvY2F0b3JfZmxhZ3MgYWZsYWdzKQpAQCAtMjQ2LDE2ICsyNDksMTYgQEAg RVhQT1JUX1NZTUJPTChkcm1fbW1faW5zZXJ0X25vZGVfZ2VuZXJpYyk7CiAKIHN0YXRpYyB2b2lk IGRybV9tbV9pbnNlcnRfaGVscGVyX3JhbmdlKHN0cnVjdCBkcm1fbW1fbm9kZSAqaG9sZV9ub2Rl LAogCQkJCSAgICAgICBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUsCi0JCQkJICAgICAgIHVuc2ln bmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50LAorCQkJCSAgICAgICB1NjQgc2l6ZSwg dW5zaWduZWQgYWxpZ25tZW50LAogCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGNvbG9yLAotCQkJ CSAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKKwkJCQkgICAg ICAgdTY0IHN0YXJ0LCB1NjQgZW5kLAogCQkJCSAgICAgICBlbnVtIGRybV9tbV9hbGxvY2F0b3Jf ZmxhZ3MgZmxhZ3MpCiB7CiAJc3RydWN0IGRybV9tbSAqbW0gPSBob2xlX25vZGUtPm1tOwotCXVu c2lnbmVkIGxvbmcgaG9sZV9zdGFydCA9IGRybV9tbV9ob2xlX25vZGVfc3RhcnQoaG9sZV9ub2Rl KTsKLQl1bnNpZ25lZCBsb25nIGhvbGVfZW5kID0gZHJtX21tX2hvbGVfbm9kZV9lbmQoaG9sZV9u b2RlKTsKLQl1bnNpZ25lZCBsb25nIGFkal9zdGFydCA9IGhvbGVfc3RhcnQ7Ci0JdW5zaWduZWQg bG9uZyBhZGpfZW5kID0gaG9sZV9lbmQ7CisJdTY0IGhvbGVfc3RhcnQgPSBkcm1fbW1faG9sZV9u b2RlX3N0YXJ0KGhvbGVfbm9kZSk7CisJdTY0IGhvbGVfZW5kID0gZHJtX21tX2hvbGVfbm9kZV9l bmQoaG9sZV9ub2RlKTsKKwl1NjQgYWRqX3N0YXJ0ID0gaG9sZV9zdGFydDsKKwl1NjQgYWRqX2Vu ZCA9IGhvbGVfZW5kOwogCiAJQlVHX09OKCFob2xlX25vZGUtPmhvbGVfZm9sbG93cyB8fCBub2Rl LT5hbGxvY2F0ZWQpOwogCkBAIC0yNzEsMTIgKzI3NCwxNSBAQCBzdGF0aWMgdm9pZCBkcm1fbW1f aW5zZXJ0X2hlbHBlcl9yYW5nZShzdHJ1Y3QgZHJtX21tX25vZGUgKmhvbGVfbm9kZSwKIAkJbW0t PmNvbG9yX2FkanVzdChob2xlX25vZGUsIGNvbG9yLCAmYWRqX3N0YXJ0LCAmYWRqX2VuZCk7CiAK IAlpZiAoYWxpZ25tZW50KSB7Ci0JCXVuc2lnbmVkIHRtcCA9IGFkal9zdGFydCAlIGFsaWdubWVu dDsKLQkJaWYgKHRtcCkgeworCQl1NjQgdG1wID0gYWRqX3N0YXJ0OworCQl1bnNpZ25lZCByZW07 CisKKwkJcmVtID0gZG9fZGl2KHRtcCwgYWxpZ25tZW50KTsKKwkJaWYgKHJlbSkgewogCQkJaWYg KGZsYWdzICYgRFJNX01NX0NSRUFURV9UT1ApCi0JCQkJYWRqX3N0YXJ0IC09IHRtcDsKKwkJCQlh ZGpfc3RhcnQgLT0gcmVtOwogCQkJZWxzZQotCQkJCWFkal9zdGFydCArPSBhbGlnbm1lbnQgLSB0 bXA7CisJCQkJYWRqX3N0YXJ0ICs9IGFsaWdubWVudCAtIHJlbTsKIAkJfQogCX0KIApAQCAtMzI0 LDkgKzMzMCw5IEBAIHN0YXRpYyB2b2lkIGRybV9tbV9pbnNlcnRfaGVscGVyX3JhbmdlKHN0cnVj dCBkcm1fbW1fbm9kZSAqaG9sZV9ub2RlLAogICogMCBvbiBzdWNjZXNzLCAtRU5PU1BDIGlmIHRo ZXJlJ3Mgbm8gc3VpdGFibGUgaG9sZS4KICAqLwogaW50IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9y YW5nZV9nZW5lcmljKHN0cnVjdCBkcm1fbW0gKm1tLCBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUs Ci0JCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50LAorCQkJCQl1NjQg c2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50LAogCQkJCQl1bnNpZ25lZCBsb25nIGNvbG9yLAotCQkJ CQl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKKwkJCQkJdTY0IHN0YXJ0 LCB1NjQgZW5kLAogCQkJCQllbnVtIGRybV9tbV9zZWFyY2hfZmxhZ3Mgc2ZsYWdzLAogCQkJCQll bnVtIGRybV9tbV9hbGxvY2F0b3JfZmxhZ3MgYWZsYWdzKQogewpAQCAtMzg3LDMyICszOTMsMzQg QEAgdm9pZCBkcm1fbW1fcmVtb3ZlX25vZGUoc3RydWN0IGRybV9tbV9ub2RlICpub2RlKQogfQog RVhQT1JUX1NZTUJPTChkcm1fbW1fcmVtb3ZlX25vZGUpOwogCi1zdGF0aWMgaW50IGNoZWNrX2Zy ZWVfaG9sZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgIHVu c2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50KQorc3RhdGljIGludCBjaGVja19m cmVlX2hvbGUodTY0IHN0YXJ0LCB1NjQgZW5kLCB1NjQgc2l6ZSwgdW5zaWduZWQgYWxpZ25tZW50 KQogewogCWlmIChlbmQgLSBzdGFydCA8IHNpemUpCiAJCXJldHVybiAwOwogCiAJaWYgKGFsaWdu bWVudCkgewotCQl1bnNpZ25lZCB0bXAgPSBzdGFydCAlIGFsaWdubWVudDsKKwkJdTY0IHRtcCA9 IHN0YXJ0OworCQl1bnNpZ25lZCByZW07CisKKwkJcmVtID0gZG9fZGl2KHRtcCwgYWxpZ25tZW50 KTsKIAkJaWYgKHRtcCkKLQkJCXN0YXJ0ICs9IGFsaWdubWVudCAtIHRtcDsKKwkJCXN0YXJ0ICs9 IGFsaWdubWVudCAtIHJlbTsKIAl9CiAKIAlyZXR1cm4gZW5kID49IHN0YXJ0ICsgc2l6ZTsKIH0K IAogc3RhdGljIHN0cnVjdCBkcm1fbW1fbm9kZSAqZHJtX21tX3NlYXJjaF9mcmVlX2dlbmVyaWMo Y29uc3Qgc3RydWN0IGRybV9tbSAqbW0sCi0JCQkJCQkgICAgICB1bnNpZ25lZCBsb25nIHNpemUs CisJCQkJCQkgICAgICB1NjQgc2l6ZSwKIAkJCQkJCSAgICAgIHVuc2lnbmVkIGFsaWdubWVudCwK IAkJCQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgY29sb3IsCiAJCQkJCQkgICAgICBlbnVtIGRybV9t bV9zZWFyY2hfZmxhZ3MgZmxhZ3MpCiB7CiAJc3RydWN0IGRybV9tbV9ub2RlICplbnRyeTsKIAlz dHJ1Y3QgZHJtX21tX25vZGUgKmJlc3Q7Ci0JdW5zaWduZWQgbG9uZyBhZGpfc3RhcnQ7Ci0JdW5z aWduZWQgbG9uZyBhZGpfZW5kOwotCXVuc2lnbmVkIGxvbmcgYmVzdF9zaXplOworCXU2NCBhZGpf c3RhcnQ7CisJdTY0IGFkal9lbmQ7CisJdTY0IGJlc3Rfc2l6ZTsKIAogCUJVR19PTihtbS0+c2Nh bm5lZF9ibG9ja3MpOwogCkBAIC00MjEsNyArNDI5LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fbW1f bm9kZSAqZHJtX21tX3NlYXJjaF9mcmVlX2dlbmVyaWMoY29uc3Qgc3RydWN0IGRybV9tbSAqbW0s CiAKIAlfX2RybV9tbV9mb3JfZWFjaF9ob2xlKGVudHJ5LCBtbSwgYWRqX3N0YXJ0LCBhZGpfZW5k LAogCQkJICAgICAgIGZsYWdzICYgRFJNX01NX1NFQVJDSF9CRUxPVykgewotCQl1bnNpZ25lZCBs b25nIGhvbGVfc2l6ZSA9IGFkal9lbmQgLSBhZGpfc3RhcnQ7CisJCXU2NCBob2xlX3NpemUgPSBh ZGpfZW5kIC0gYWRqX3N0YXJ0OwogCiAJCWlmIChtbS0+Y29sb3JfYWRqdXN0KSB7CiAJCQltbS0+ Y29sb3JfYWRqdXN0KGVudHJ5LCBjb2xvciwgJmFkal9zdGFydCwgJmFkal9lbmQpOwpAQCAtNDQ1 LDE4ICs0NTMsMTggQEAgc3RhdGljIHN0cnVjdCBkcm1fbW1fbm9kZSAqZHJtX21tX3NlYXJjaF9m cmVlX2dlbmVyaWMoY29uc3Qgc3RydWN0IGRybV9tbSAqbW0sCiB9CiAKIHN0YXRpYyBzdHJ1Y3Qg ZHJtX21tX25vZGUgKmRybV9tbV9zZWFyY2hfZnJlZV9pbl9yYW5nZV9nZW5lcmljKGNvbnN0IHN0 cnVjdCBkcm1fbW0gKm1tLAotCQkJCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCQkJCQl1NjQg c2l6ZSwKIAkJCQkJCQl1bnNpZ25lZCBhbGlnbm1lbnQsCiAJCQkJCQkJdW5zaWduZWQgbG9uZyBj b2xvciwKLQkJCQkJCQl1bnNpZ25lZCBsb25nIHN0YXJ0LAotCQkJCQkJCXVuc2lnbmVkIGxvbmcg ZW5kLAorCQkJCQkJCXU2NCBzdGFydCwKKwkJCQkJCQl1NjQgZW5kLAogCQkJCQkJCWVudW0gZHJt X21tX3NlYXJjaF9mbGFncyBmbGFncykKIHsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgKmVudHJ5Owog CXN0cnVjdCBkcm1fbW1fbm9kZSAqYmVzdDsKLQl1bnNpZ25lZCBsb25nIGFkal9zdGFydDsKLQl1 bnNpZ25lZCBsb25nIGFkal9lbmQ7Ci0JdW5zaWduZWQgbG9uZyBiZXN0X3NpemU7CisJdTY0IGFk al9zdGFydDsKKwl1NjQgYWRqX2VuZDsKKwl1NjQgYmVzdF9zaXplOwogCiAJQlVHX09OKG1tLT5z Y2FubmVkX2Jsb2Nrcyk7CiAKQEAgLTQ2NSw3ICs0NzMsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9t bV9ub2RlICpkcm1fbW1fc2VhcmNoX2ZyZWVfaW5fcmFuZ2VfZ2VuZXJpYyhjb25zdCBzdHJ1Y3Qg ZHJtXwogCiAJX19kcm1fbW1fZm9yX2VhY2hfaG9sZShlbnRyeSwgbW0sIGFkal9zdGFydCwgYWRq X2VuZCwKIAkJCSAgICAgICBmbGFncyAmIERSTV9NTV9TRUFSQ0hfQkVMT1cpIHsKLQkJdW5zaWdu ZWQgbG9uZyBob2xlX3NpemUgPSBhZGpfZW5kIC0gYWRqX3N0YXJ0OworCQl1NjQgaG9sZV9zaXpl ID0gYWRqX2VuZCAtIGFkal9zdGFydDsKIAogCQlpZiAoYWRqX3N0YXJ0IDwgc3RhcnQpCiAJCQlh ZGpfc3RhcnQgPSBzdGFydDsKQEAgLTU2MSw3ICs1NjksNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9t bV9yZXBsYWNlX25vZGUpOwogICogYWRkaW5nL3JlbW92aW5nIG5vZGVzIHRvL2Zyb20gdGhlIHNj YW4gbGlzdCBhcmUgYWxsb3dlZC4KICAqLwogdm9pZCBkcm1fbW1faW5pdF9zY2FuKHN0cnVjdCBk cm1fbW0gKm1tLAotCQkgICAgICB1bnNpZ25lZCBsb25nIHNpemUsCisJCSAgICAgIHU2NCBzaXpl LAogCQkgICAgICB1bnNpZ25lZCBhbGlnbm1lbnQsCiAJCSAgICAgIHVuc2lnbmVkIGxvbmcgY29s b3IpCiB7CkBAIC01OTQsMTEgKzYwMiwxMSBAQCBFWFBPUlRfU1lNQk9MKGRybV9tbV9pbml0X3Nj YW4pOwogICogYWRkaW5nL3JlbW92aW5nIG5vZGVzIHRvL2Zyb20gdGhlIHNjYW4gbGlzdCBhcmUg YWxsb3dlZC4KICAqLwogdm9pZCBkcm1fbW1faW5pdF9zY2FuX3dpdGhfcmFuZ2Uoc3RydWN0IGRy bV9tbSAqbW0sCi0JCQkJIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCQkgdTY0IHNpemUsCiAJCQkJ IHVuc2lnbmVkIGFsaWdubWVudCwKIAkJCQkgdW5zaWduZWQgbG9uZyBjb2xvciwKLQkJCQkgdW5z aWduZWQgbG9uZyBzdGFydCwKLQkJCQkgdW5zaWduZWQgbG9uZyBlbmQpCisJCQkJIHU2NCBzdGFy dCwKKwkJCQkgdTY0IGVuZCkKIHsKIAltbS0+c2Nhbl9jb2xvciA9IGNvbG9yOwogCW1tLT5zY2Fu X2FsaWdubWVudCA9IGFsaWdubWVudDsKQEAgLTYyNyw4ICs2MzUsOCBAQCBib29sIGRybV9tbV9z Y2FuX2FkZF9ibG9jayhzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUpCiB7CiAJc3RydWN0IGRybV9t bSAqbW0gPSBub2RlLT5tbTsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgKnByZXZfbm9kZTsKLQl1bnNp Z25lZCBsb25nIGhvbGVfc3RhcnQsIGhvbGVfZW5kOwotCXVuc2lnbmVkIGxvbmcgYWRqX3N0YXJ0 LCBhZGpfZW5kOworCXU2NCBob2xlX3N0YXJ0LCBob2xlX2VuZDsKKwl1NjQgYWRqX3N0YXJ0LCBh ZGpfZW5kOwogCiAJbW0tPnNjYW5uZWRfYmxvY2tzKys7CiAKQEAgLTczMSw3ICs3MzksNyBAQCBF WFBPUlRfU1lNQk9MKGRybV9tbV9jbGVhbik7CiAgKgogICogTm90ZSB0aGF0IEBtbSBtdXN0IGJl IGNsZWFyZWQgdG8gMCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgogICovCi12b2lkIGRy bV9tbV9pbml0KHN0cnVjdCBkcm1fbW0gKiBtbSwgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWdu ZWQgbG9uZyBzaXplKQordm9pZCBkcm1fbW1faW5pdChzdHJ1Y3QgZHJtX21tICogbW0sIHU2NCBz dGFydCwgdTY0IHNpemUpCiB7CiAJSU5JVF9MSVNUX0hFQUQoJm1tLT5ob2xlX3N0YWNrKTsKIAlt bS0+c2Nhbm5lZF9ibG9ja3MgPSAwOwpAQCAtNzY2LDE4ICs3NzQsMTcgQEAgdm9pZCBkcm1fbW1f dGFrZWRvd24oc3RydWN0IGRybV9tbSAqIG1tKQogfQogRVhQT1JUX1NZTUJPTChkcm1fbW1fdGFr ZWRvd24pOwogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBkcm1fbW1fZGVidWdfaG9sZShzdHJ1Y3Qg ZHJtX21tX25vZGUgKmVudHJ5LAotCQkJCSAgICAgICBjb25zdCBjaGFyICpwcmVmaXgpCitzdGF0 aWMgdTY0IGRybV9tbV9kZWJ1Z19ob2xlKHN0cnVjdCBkcm1fbW1fbm9kZSAqZW50cnksCisJCQkJ ICAgICBjb25zdCBjaGFyICpwcmVmaXgpCiB7Ci0JdW5zaWduZWQgbG9uZyBob2xlX3N0YXJ0LCBo b2xlX2VuZCwgaG9sZV9zaXplOworCXU2NCBob2xlX3N0YXJ0LCBob2xlX2VuZCwgaG9sZV9zaXpl OwogCiAJaWYgKGVudHJ5LT5ob2xlX2ZvbGxvd3MpIHsKIAkJaG9sZV9zdGFydCA9IGRybV9tbV9o b2xlX25vZGVfc3RhcnQoZW50cnkpOwogCQlob2xlX2VuZCA9IGRybV9tbV9ob2xlX25vZGVfZW5k KGVudHJ5KTsKIAkJaG9sZV9zaXplID0gaG9sZV9lbmQgLSBob2xlX3N0YXJ0OwotCQlwcmludGso S0VSTl9ERUJVRyAiJXMgMHglMDhseC0weCUwOGx4OiAlOGx1OiBmcmVlXG4iLAotCQkJcHJlZml4 LCBob2xlX3N0YXJ0LCBob2xlX2VuZCwKLQkJCWhvbGVfc2l6ZSk7CisJCXByX2RlYnVnKCIlcyAl I2xseC0lI2xseDogJWxsdTogZnJlZVxuIiwgcHJlZml4LCBob2xlX3N0YXJ0LAorCQkJIGhvbGVf ZW5kLCBob2xlX3NpemUpOwogCQlyZXR1cm4gaG9sZV9zaXplOwogCX0KIApAQCAtNzkyLDM1ICs3 OTksMzQgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgZHJtX21tX2RlYnVnX2hvbGUoc3RydWN0IGRy bV9tbV9ub2RlICplbnRyeSwKIHZvaWQgZHJtX21tX2RlYnVnX3RhYmxlKHN0cnVjdCBkcm1fbW0g Km1tLCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJc3RydWN0IGRybV9tbV9ub2RlICplbnRyeTsK LQl1bnNpZ25lZCBsb25nIHRvdGFsX3VzZWQgPSAwLCB0b3RhbF9mcmVlID0gMCwgdG90YWwgPSAw OworCXU2NCB0b3RhbF91c2VkID0gMCwgdG90YWxfZnJlZSA9IDAsIHRvdGFsID0gMDsKIAogCXRv dGFsX2ZyZWUgKz0gZHJtX21tX2RlYnVnX2hvbGUoJm1tLT5oZWFkX25vZGUsIHByZWZpeCk7CiAK IAlkcm1fbW1fZm9yX2VhY2hfbm9kZShlbnRyeSwgbW0pIHsKLQkJcHJpbnRrKEtFUk5fREVCVUcg IiVzIDB4JTA4bHgtMHglMDhseDogJThsdTogdXNlZFxuIiwKLQkJCXByZWZpeCwgZW50cnktPnN0 YXJ0LCBlbnRyeS0+c3RhcnQgKyBlbnRyeS0+c2l6ZSwKLQkJCWVudHJ5LT5zaXplKTsKKwkJcHJf ZGVidWcoIiVzICUjbGx4LSUjbGx4OiAlbGx1OiB1c2VkXG4iLCBwcmVmaXgsIGVudHJ5LT5zdGFy dCwKKwkJCSBlbnRyeS0+c3RhcnQgKyBlbnRyeS0+c2l6ZSwgZW50cnktPnNpemUpOwogCQl0b3Rh bF91c2VkICs9IGVudHJ5LT5zaXplOwogCQl0b3RhbF9mcmVlICs9IGRybV9tbV9kZWJ1Z19ob2xl KGVudHJ5LCBwcmVmaXgpOwogCX0KIAl0b3RhbCA9IHRvdGFsX2ZyZWUgKyB0b3RhbF91c2VkOwog Ci0JcHJpbnRrKEtFUk5fREVCVUcgIiVzIHRvdGFsOiAlbHUsIHVzZWQgJWx1IGZyZWUgJWx1XG4i LCBwcmVmaXgsIHRvdGFsLAotCQl0b3RhbF91c2VkLCB0b3RhbF9mcmVlKTsKKwlwcl9kZWJ1Zygi JXMgdG90YWw6ICVsbHUsIHVzZWQgJWxsdSBmcmVlICVsbHVcbiIsIHByZWZpeCwgdG90YWwsCisJ CSB0b3RhbF91c2VkLCB0b3RhbF9mcmVlKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX21tX2RlYnVn X3RhYmxlKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKQotc3RhdGljIHVuc2lnbmVk IGxvbmcgZHJtX21tX2R1bXBfaG9sZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1fbW1f bm9kZSAqZW50cnkpCitzdGF0aWMgdTY0IGRybV9tbV9kdW1wX2hvbGUoc3RydWN0IHNlcV9maWxl ICptLCBzdHJ1Y3QgZHJtX21tX25vZGUgKmVudHJ5KQogewotCXVuc2lnbmVkIGxvbmcgaG9sZV9z dGFydCwgaG9sZV9lbmQsIGhvbGVfc2l6ZTsKKwl1NjQgaG9sZV9zdGFydCwgaG9sZV9lbmQsIGhv bGVfc2l6ZTsKIAogCWlmIChlbnRyeS0+aG9sZV9mb2xsb3dzKSB7CiAJCWhvbGVfc3RhcnQgPSBk cm1fbW1faG9sZV9ub2RlX3N0YXJ0KGVudHJ5KTsKIAkJaG9sZV9lbmQgPSBkcm1fbW1faG9sZV9u b2RlX2VuZChlbnRyeSk7CiAJCWhvbGVfc2l6ZSA9IGhvbGVfZW5kIC0gaG9sZV9zdGFydDsKLQkJ c2VxX3ByaW50ZihtLCAiMHglMDhseC0weCUwOGx4OiAweCUwOGx4OiBmcmVlXG4iLAotCQkJCWhv bGVfc3RhcnQsIGhvbGVfZW5kLCBob2xlX3NpemUpOworCQlzZXFfcHJpbnRmKG0sICIlI2xseC0l I2xseDogJWxsdTogZnJlZVxuIiwgaG9sZV9zdGFydCwKKwkJCSAgIGhvbGVfZW5kLCBob2xlX3Np emUpOwogCQlyZXR1cm4gaG9sZV9zaXplOwogCX0KIApAQCAtODM1LDIwICs4NDEsMjAgQEAgc3Rh dGljIHVuc2lnbmVkIGxvbmcgZHJtX21tX2R1bXBfaG9sZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0 cnVjdCBkcm1fbW1fbm9kZSAqZW4KIGludCBkcm1fbW1fZHVtcF90YWJsZShzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHN0cnVjdCBkcm1fbW0gKm1tKQogewogCXN0cnVjdCBkcm1fbW1fbm9kZSAqZW50cnk7 Ci0JdW5zaWduZWQgbG9uZyB0b3RhbF91c2VkID0gMCwgdG90YWxfZnJlZSA9IDAsIHRvdGFsID0g MDsKKwl1NjQgdG90YWxfdXNlZCA9IDAsIHRvdGFsX2ZyZWUgPSAwLCB0b3RhbCA9IDA7CiAKIAl0 b3RhbF9mcmVlICs9IGRybV9tbV9kdW1wX2hvbGUobSwgJm1tLT5oZWFkX25vZGUpOwogCiAJZHJt X21tX2Zvcl9lYWNoX25vZGUoZW50cnksIG1tKSB7Ci0JCXNlcV9wcmludGYobSwgIjB4JTA4bHgt MHglMDhseDogMHglMDhseDogdXNlZFxuIiwKLQkJCQllbnRyeS0+c3RhcnQsIGVudHJ5LT5zdGFy dCArIGVudHJ5LT5zaXplLAotCQkJCWVudHJ5LT5zaXplKTsKKwkJc2VxX3ByaW50ZihtLCAiJSMw MTZsbHgtJSMwMTZsbHg6ICVsbHU6IHVzZWRcbiIsIGVudHJ5LT5zdGFydCwKKwkJCSAgIGVudHJ5 LT5zdGFydCArIGVudHJ5LT5zaXplLCBlbnRyeS0+c2l6ZSk7CiAJCXRvdGFsX3VzZWQgKz0gZW50 cnktPnNpemU7CiAJCXRvdGFsX2ZyZWUgKz0gZHJtX21tX2R1bXBfaG9sZShtLCBlbnRyeSk7CiAJ fQogCXRvdGFsID0gdG90YWxfZnJlZSArIHRvdGFsX3VzZWQ7CiAKLQlzZXFfcHJpbnRmKG0sICJ0 b3RhbDogJWx1LCB1c2VkICVsdSBmcmVlICVsdVxuIiwgdG90YWwsIHRvdGFsX3VzZWQsIHRvdGFs X2ZyZWUpOworCXNlcV9wcmludGYobSwgInRvdGFsOiAlbGx1LCB1c2VkICVsbHUgZnJlZSAlbGx1 XG4iLCB0b3RhbCwKKwkJICAgdG90YWxfdXNlZCwgdG90YWxfZnJlZSk7CiAJcmV0dXJuIDA7CiB9 CiBFWFBPUlRfU1lNQk9MKGRybV9tbV9kdW1wX3RhYmxlKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9tbS5oIGIvaW5jbHVkZS9kcm0vZHJtX21tLmgKaW5kZXggYTI0YWRkZmRmY2VjLi4w ZGU2MjkwZGY0ZGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9tbS5oCisrKyBiL2luY2x1 ZGUvZHJtL2RybV9tbS5oCkBAIC02OCw4ICs2OCw4IEBAIHN0cnVjdCBkcm1fbW1fbm9kZSB7CiAJ dW5zaWduZWQgc2Nhbm5lZF9wcmVjZWVkc19ob2xlIDogMTsKIAl1bnNpZ25lZCBhbGxvY2F0ZWQg OiAxOwogCXVuc2lnbmVkIGxvbmcgY29sb3I7Ci0JdW5zaWduZWQgbG9uZyBzdGFydDsKLQl1bnNp Z25lZCBsb25nIHNpemU7CisJdTY0IHN0YXJ0OworCXU2NCBzaXplOwogCXN0cnVjdCBkcm1fbW0g Km1tOwogfTsKIApAQCAtODIsMTYgKzgyLDE2IEBAIHN0cnVjdCBkcm1fbW0gewogCXVuc2lnbmVk IGludCBzY2FuX2NoZWNrX3JhbmdlIDogMTsKIAl1bnNpZ25lZCBzY2FuX2FsaWdubWVudDsKIAl1 bnNpZ25lZCBsb25nIHNjYW5fY29sb3I7Ci0JdW5zaWduZWQgbG9uZyBzY2FuX3NpemU7Ci0JdW5z aWduZWQgbG9uZyBzY2FuX2hpdF9zdGFydDsKLQl1bnNpZ25lZCBsb25nIHNjYW5faGl0X2VuZDsK Kwl1NjQgc2Nhbl9zaXplOworCXU2NCBzY2FuX2hpdF9zdGFydDsKKwl1NjQgc2Nhbl9oaXRfZW5k OwogCXVuc2lnbmVkIHNjYW5uZWRfYmxvY2tzOwotCXVuc2lnbmVkIGxvbmcgc2Nhbl9zdGFydDsK LQl1bnNpZ25lZCBsb25nIHNjYW5fZW5kOworCXU2NCBzY2FuX3N0YXJ0OworCXU2NCBzY2FuX2Vu ZDsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgKnByZXZfc2Nhbm5lZF9ub2RlOwogCiAJdm9pZCAoKmNv bG9yX2FkanVzdCkoc3RydWN0IGRybV9tbV9ub2RlICpub2RlLCB1bnNpZ25lZCBsb25nIGNvbG9y LAotCQkJICAgICB1bnNpZ25lZCBsb25nICpzdGFydCwgdW5zaWduZWQgbG9uZyAqZW5kKTsKKwkJ CSAgICAgdTY0ICpzdGFydCwgdTY0ICplbmQpOwogfTsKIAogLyoqCkBAIC0xMjQsNyArMTI0LDcg QEAgc3RhdGljIGlubGluZSBib29sIGRybV9tbV9pbml0aWFsaXplZChzdHJ1Y3QgZHJtX21tICpt bSkKIAlyZXR1cm4gbW0tPmhvbGVfc3RhY2submV4dDsKIH0KIAotc3RhdGljIGlubGluZSB1bnNp Z25lZCBsb25nIF9fZHJtX21tX2hvbGVfbm9kZV9zdGFydChzdHJ1Y3QgZHJtX21tX25vZGUgKmhv bGVfbm9kZSkKK3N0YXRpYyBpbmxpbmUgdTY0IF9fZHJtX21tX2hvbGVfbm9kZV9zdGFydChzdHJ1 Y3QgZHJtX21tX25vZGUgKmhvbGVfbm9kZSkKIHsKIAlyZXR1cm4gaG9sZV9ub2RlLT5zdGFydCAr IGhvbGVfbm9kZS0+c2l6ZTsKIH0KQEAgLTE0MCwxMyArMTQwLDEzIEBAIHN0YXRpYyBpbmxpbmUg dW5zaWduZWQgbG9uZyBfX2RybV9tbV9ob2xlX25vZGVfc3RhcnQoc3RydWN0IGRybV9tbV9ub2Rl ICpob2xlX25vCiAgKiBSZXR1cm5zOgogICogU3RhcnQgb2YgdGhlIHN1YnNlcXVlbnQgaG9sZS4K ICAqLwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGRybV9tbV9ob2xlX25vZGVfc3RhcnQo c3RydWN0IGRybV9tbV9ub2RlICpob2xlX25vZGUpCitzdGF0aWMgaW5saW5lIHU2NCBkcm1fbW1f aG9sZV9ub2RlX3N0YXJ0KHN0cnVjdCBkcm1fbW1fbm9kZSAqaG9sZV9ub2RlKQogewogCUJVR19P TighaG9sZV9ub2RlLT5ob2xlX2ZvbGxvd3MpOwogCXJldHVybiBfX2RybV9tbV9ob2xlX25vZGVf c3RhcnQoaG9sZV9ub2RlKTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIF9fZHJt X21tX2hvbGVfbm9kZV9lbmQoc3RydWN0IGRybV9tbV9ub2RlICpob2xlX25vZGUpCitzdGF0aWMg aW5saW5lIHU2NCBfX2RybV9tbV9ob2xlX25vZGVfZW5kKHN0cnVjdCBkcm1fbW1fbm9kZSAqaG9s ZV9ub2RlKQogewogCXJldHVybiBsaXN0X2VudHJ5KGhvbGVfbm9kZS0+bm9kZV9saXN0Lm5leHQs CiAJCQkgIHN0cnVjdCBkcm1fbW1fbm9kZSwgbm9kZV9saXN0KS0+c3RhcnQ7CkBAIC0xNjMsNyAr MTYzLDcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIF9fZHJtX21tX2hvbGVfbm9kZV9l bmQoc3RydWN0IGRybV9tbV9ub2RlICpob2xlX25vZGUKICAqIFJldHVybnM6CiAgKiBFbmQgb2Yg dGhlIHN1YnNlcXVlbnQgaG9sZS4KICAqLwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGRy bV9tbV9ob2xlX25vZGVfZW5kKHN0cnVjdCBkcm1fbW1fbm9kZSAqaG9sZV9ub2RlKQorc3RhdGlj IGlubGluZSB1NjQgZHJtX21tX2hvbGVfbm9kZV9lbmQoc3RydWN0IGRybV9tbV9ub2RlICpob2xl X25vZGUpCiB7CiAJcmV0dXJuIF9fZHJtX21tX2hvbGVfbm9kZV9lbmQoaG9sZV9ub2RlKTsKIH0K QEAgLTIyMiw3ICsyMjIsNyBAQCBpbnQgZHJtX21tX3Jlc2VydmVfbm9kZShzdHJ1Y3QgZHJtX21t ICptbSwgc3RydWN0IGRybV9tbV9ub2RlICpub2RlKTsKIAogaW50IGRybV9tbV9pbnNlcnRfbm9k ZV9nZW5lcmljKHN0cnVjdCBkcm1fbW0gKm1tLAogCQkJICAgICAgIHN0cnVjdCBkcm1fbW1fbm9k ZSAqbm9kZSwKLQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkgICAgICAgdTY0IHNp emUsCiAJCQkgICAgICAgdW5zaWduZWQgYWxpZ25tZW50LAogCQkJICAgICAgIHVuc2lnbmVkIGxv bmcgY29sb3IsCiAJCQkgICAgICAgZW51bSBkcm1fbW1fc2VhcmNoX2ZsYWdzIHNmbGFncywKQEAg LTI0NSw3ICsyNDUsNyBAQCBpbnQgZHJtX21tX2luc2VydF9ub2RlX2dlbmVyaWMoc3RydWN0IGRy bV9tbSAqbW0sCiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50IGRybV9tbV9pbnNlcnRfbm9kZShzdHJ1 Y3QgZHJtX21tICptbSwKIAkJCQkgICAgIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKLQkJCQkg ICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCQkgICAgIHU2NCBzaXplLAogCQkJCSAgICAgdW5z aWduZWQgYWxpZ25tZW50LAogCQkJCSAgICAgZW51bSBkcm1fbW1fc2VhcmNoX2ZsYWdzIGZsYWdz KQogewpAQCAtMjU1LDExICsyNTUsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgZHJtX21tX2luc2Vy dF9ub2RlKHN0cnVjdCBkcm1fbW0gKm1tLAogCiBpbnQgZHJtX21tX2luc2VydF9ub2RlX2luX3Jh bmdlX2dlbmVyaWMoc3RydWN0IGRybV9tbSAqbW0sCiAJCQkJCXN0cnVjdCBkcm1fbW1fbm9kZSAq bm9kZSwKLQkJCQkJdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCQl1NjQgc2l6ZSwKIAkJCQkJdW5z aWduZWQgYWxpZ25tZW50LAogCQkJCQl1bnNpZ25lZCBsb25nIGNvbG9yLAotCQkJCQl1bnNpZ25l ZCBsb25nIHN0YXJ0LAotCQkJCQl1bnNpZ25lZCBsb25nIGVuZCwKKwkJCQkJdTY0IHN0YXJ0LAor CQkJCQl1NjQgZW5kLAogCQkJCQllbnVtIGRybV9tbV9zZWFyY2hfZmxhZ3Mgc2ZsYWdzLAogCQkJ CQllbnVtIGRybV9tbV9hbGxvY2F0b3JfZmxhZ3MgYWZsYWdzKTsKIC8qKgpAQCAtMjgyLDEwICsy ODIsMTAgQEAgaW50IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9nZW5lcmljKHN0cnVjdCBk cm1fbW0gKm1tLAogICovCiBzdGF0aWMgaW5saW5lIGludCBkcm1fbW1faW5zZXJ0X25vZGVfaW5f cmFuZ2Uoc3RydWN0IGRybV9tbSAqbW0sCiAJCQkJCSAgICAgIHN0cnVjdCBkcm1fbW1fbm9kZSAq bm9kZSwKLQkJCQkJICAgICAgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJCQkgICAgICB1NjQgc2l6 ZSwKIAkJCQkJICAgICAgdW5zaWduZWQgYWxpZ25tZW50LAotCQkJCQkgICAgICB1bnNpZ25lZCBs b25nIHN0YXJ0LAotCQkJCQkgICAgICB1bnNpZ25lZCBsb25nIGVuZCwKKwkJCQkJICAgICAgdTY0 IHN0YXJ0LAorCQkJCQkgICAgICB1NjQgZW5kLAogCQkJCQkgICAgICBlbnVtIGRybV9tbV9zZWFy Y2hfZmxhZ3MgZmxhZ3MpCiB7CiAJcmV0dXJuIGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9n ZW5lcmljKG1tLCBub2RlLCBzaXplLCBhbGlnbm1lbnQsCkBAIC0yOTYsMjEgKzI5NiwyMSBAQCBz dGF0aWMgaW5saW5lIGludCBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2Uoc3RydWN0IGRybV9t bSAqbW0sCiB2b2lkIGRybV9tbV9yZW1vdmVfbm9kZShzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUp Owogdm9pZCBkcm1fbW1fcmVwbGFjZV9ub2RlKHN0cnVjdCBkcm1fbW1fbm9kZSAqb2xkLCBzdHJ1 Y3QgZHJtX21tX25vZGUgKm5ldyk7CiB2b2lkIGRybV9tbV9pbml0KHN0cnVjdCBkcm1fbW0gKm1t LAotCQkgdW5zaWduZWQgbG9uZyBzdGFydCwKLQkJIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CisJCSB1 NjQgc3RhcnQsCisJCSB1NjQgc2l6ZSk7CiB2b2lkIGRybV9tbV90YWtlZG93bihzdHJ1Y3QgZHJt X21tICptbSk7CiBib29sIGRybV9tbV9jbGVhbihzdHJ1Y3QgZHJtX21tICptbSk7CiAKIHZvaWQg ZHJtX21tX2luaXRfc2NhbihzdHJ1Y3QgZHJtX21tICptbSwKLQkJICAgICAgdW5zaWduZWQgbG9u ZyBzaXplLAorCQkgICAgICB1NjQgc2l6ZSwKIAkJICAgICAgdW5zaWduZWQgYWxpZ25tZW50LAog CQkgICAgICB1bnNpZ25lZCBsb25nIGNvbG9yKTsKIHZvaWQgZHJtX21tX2luaXRfc2Nhbl93aXRo X3JhbmdlKHN0cnVjdCBkcm1fbW0gKm1tLAotCQkJCSB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkJ IHU2NCBzaXplLAogCQkJCSB1bnNpZ25lZCBhbGlnbm1lbnQsCiAJCQkJIHVuc2lnbmVkIGxvbmcg Y29sb3IsCi0JCQkJIHVuc2lnbmVkIGxvbmcgc3RhcnQsCi0JCQkJIHVuc2lnbmVkIGxvbmcgZW5k KTsKKwkJCQkgdTY0IHN0YXJ0LAorCQkJCSB1NjQgZW5kKTsKIGJvb2wgZHJtX21tX3NjYW5fYWRk X2Jsb2NrKHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSk7CiBib29sIGRybV9tbV9zY2FuX3JlbW92 ZV9ibG9jayhzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUpOwogCi0tIAoyLjEuMwoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK