From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Brooks Subject: [PATCH 2/5] drm/amdgpu: Throttle visible VRAM moves separately Date: Tue, 27 Jun 2017 22:33:18 -0400 Message-ID: <1498617201-24557-3-git-send-email-john@fastquake.com> References: <1498617201-24557-1-git-send-email-john@fastquake.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1498617201-24557-1-git-send-email-john@fastquake.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: amd-gfx@lists.freedesktop.org, =?UTF-8?q?Michel=20D=C3=A4nzer?= , =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= , =?UTF-8?q?Christian=20K=C3=B6nig?= Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIEJPIG1vdmUgdGhyb3R0bGluZyBjb2RlIGlzIGRlc2lnbmVkIHRvIGFsbG93IFZSQU0gdG8g ZmlsbCBxdWlja2x5IGlmIGl0CmlzIHJlbGF0aXZlbHkgZW1wdHkuIEhvd2V2ZXIsIHRoaXMgZG9l cyBub3QgdGFrZSBpbnRvIGFjY291bnQgc2l0dWF0aW9ucwp3aGVyZSB0aGUgdmlzaWJsZSBWUkFN IGlzIHNtYWxsZXIgdGhhbiB0b3RhbCBWUkFNLCBhbmQgdG90YWwgVlJBTSBtYXkgbm90CmJlIGNs b3NlIHRvIGZ1bGwgYnV0IHRoZSB2aXNpYmxlIFZSQU0gc2VnbWVudCBpcyB1bmRlciBwcmVzc3Vy ZS4gSW4gc3VjaApzaXR1YXRpb25zLCB2aXNpYmxlIFZSQU0gd291bGQgZXhwZXJpZW5jZSB1bnJl c3RyaWN0ZWQgc3dhcHBpbmcgYW5kCnBlcmZvcm1hbmNlIHdvdWxkIGRyb3AuCgpBZGQgYSBzZXBh cmF0ZSBjb3VudGVyIHNwZWNpZmljYWxseSBmb3IgbW92ZXMgaW52b2x2aW5nIHZpc2libGUgVlJB TSwgYW5kCmNoZWNrIGl0IGJlZm9yZSBtb3ZpbmcgQk9zIHRoZXJlLgoKdjI6IE9ubHkgcGVyZm9y bSBjYWxjdWxhdGlvbnMgZm9yIHNlcGFyYXRlIGNvdW50ZXIgaWYgdmlzaWJsZSBWUkFNIGlzCiAg ICBzbWFsbGVyIHRoYW4gdG90YWwgVlJBTS4gKE1pY2hlbCBEw6RuemVyKQoKRml4ZXM6IDk1ODQ0 ZDIwYWUwMiAoZHJtL2FtZGdwdTogdGhyb3R0bGUgYnVmZmVyIG1pZ3JhdGlvbnMgYXQgQ1MgdXNp bmcgYSBmaXhlZCBNQnBzIGxpbWl0ICh2MikpClNpZ25lZC1vZmYtYnk6IEpvaG4gQnJvb2tzIDxq b2huQGZhc3RxdWFrZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 LmggICAgICAgIHwgIDYgKystCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3Mu YyAgICAgfCA4NCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyB8IDEwICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwg NzggaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHUuaAppbmRleCAwNmVkNDVjLi43MzY2MTE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHUuaApAQCAtMTE1Nyw3ICsxMTU3LDkgQEAgc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgewog CXN0cnVjdCBsaXN0X2hlYWQJCXZhbGlkYXRlZDsKIAlzdHJ1Y3QgZG1hX2ZlbmNlCQkqZmVuY2U7 CiAJdWludDY0X3QJCQlieXRlc19tb3ZlZF90aHJlc2hvbGQ7CisJdWludDY0X3QJCQlieXRlc19t b3ZlZF92aXNfdGhyZXNob2xkOwogCXVpbnQ2NF90CQkJYnl0ZXNfbW92ZWQ7CisJdWludDY0X3QJ CQlieXRlc19tb3ZlZF92aXM7CiAJc3RydWN0IGFtZGdwdV9ib19saXN0X2VudHJ5CSpldmljdGFi bGU7CiAKIAkvKiB1c2VyIGZlbmNlICovCkBAIC0xNTkxLDYgKzE1OTMsNyBAQCBzdHJ1Y3QgYW1k Z3B1X2RldmljZSB7CiAJCXNwaW5sb2NrX3QJCWxvY2s7CiAJCXM2NAkJCWxhc3RfdXBkYXRlX3Vz OwogCQlzNjQJCQlhY2N1bV91czsgLyogYWNjdW11bGF0ZWQgbWljcm9zZWNvbmRzICovCisJCXM2 NAkJCWFjY3VtX3VzX3ZpczsgLyogZm9yIHZpc2libGUgVlJBTSAqLwogCQl1MzIJCQlsb2cyX21h eF9NQnBzOwogCX0gbW1fc3RhdHM7CiAKQEAgLTE5MjYsNyArMTkyOSw4IEBAIGJvb2wgYW1kZ3B1 X25lZWRfcG9zdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiB2b2lkIGFtZGdwdV91cGRh dGVfZGlzcGxheV9wcmlvcml0eShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAKIGludCBh bWRncHVfY3NfcGFyc2VyX2luaXQoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsIHZvaWQgKmRh dGEpOwotdm9pZCBhbWRncHVfY3NfcmVwb3J0X21vdmVkX2J5dGVzKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LCB1NjQgbnVtX2J5dGVzKTsKK3ZvaWQgYW1kZ3B1X2NzX3JlcG9ydF9tb3ZlZF9i eXRlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTY0IG51bV9ieXRlcywKKwkJCQkgIHU2 NCBudW1fdmlzX2J5dGVzKTsKIHZvaWQgYW1kZ3B1X3R0bV9wbGFjZW1lbnRfZnJvbV9kb21haW4o c3RydWN0IGFtZGdwdV9ibyAqYWJvLCB1MzIgZG9tYWluKTsKIGJvb2wgYW1kZ3B1X3R0bV9ib19p c19hbWRncHVfYm8oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7CiBpbnQgYW1kZ3B1X3R0 bV90dF9nZXRfdXNlcl9wYWdlcyhzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCBwYWdlICoqcGFn ZXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwppbmRleCBhZWVlNjg0Li4x ZGZhODQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3Mu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwpAQCAtMjIzLDEx ICsyMjMsMTMgQEAgc3RhdGljIHM2NCBieXRlc190b191cyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwgdTY0IGJ5dGVzKQogICogdGlja3MuIFRoZSBhY2N1bXVsYXRlZCBtaWNyb3NlY29uZHMg KHVzKSBhcmUgY29udmVydGVkIHRvIGJ5dGVzIGFuZAogICogcmV0dXJuZWQuCiAgKi8KLXN0YXRp YyB1NjQgYW1kZ3B1X2NzX2dldF90aHJlc2hvbGRfZm9yX21vdmVzKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQorc3RhdGljIHZvaWQgYW1kZ3B1X2NzX2dldF90aHJlc2hvbGRfZm9yX21vdmVz KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJCQkgICAgICB1NjQgKm1heF9ieXRlcywK KwkJCQkJICAgICAgdTY0ICptYXhfdmlzX2J5dGVzKQogewogCXM2NCB0aW1lX3VzLCBpbmNyZW1l bnRfdXM7Ci0JdTY0IG1heF9ieXRlczsKIAl1NjQgZnJlZV92cmFtLCB0b3RhbF92cmFtLCB1c2Vk X3ZyYW07CisJdTY0IGZyZWVfdmlzX3ZyYW0gPSAwLCB0b3RhbF92aXNfdnJhbSA9IDAsIHVzZWRf dmlzX3ZyYW0gPSAwOwogCiAJLyogQWxsb3cgYSBtYXhpbXVtIG9mIDIwMCBhY2N1bXVsYXRlZCBt cy4gVGhpcyBpcyBiYXNpY2FsbHkgcGVyLUlCCiAJICogdGhyb3R0bGluZy4KQEAgLTIzOCwxMyAr MjQwLDIzIEBAIHN0YXRpYyB1NjQgYW1kZ3B1X2NzX2dldF90aHJlc2hvbGRfZm9yX21vdmVzKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCSAqLwogCWNvbnN0IHM2NCB1c191cHBlcl9ib3Vu ZCA9IDIwMDAwMDsKIAotCWlmICghYWRldi0+bW1fc3RhdHMubG9nMl9tYXhfTUJwcykKLQkJcmV0 dXJuIDA7CisJaWYgKCFhZGV2LT5tbV9zdGF0cy5sb2cyX21heF9NQnBzKSB7CisJCSptYXhfYnl0 ZXMgPSAwOworCQkqbWF4X3Zpc19ieXRlcyA9IDA7CisJCXJldHVybjsKKwl9CiAKIAl0b3RhbF92 cmFtID0gYWRldi0+bWMucmVhbF92cmFtX3NpemUgLSBhZGV2LT52cmFtX3Bpbl9zaXplOwogCXVz ZWRfdnJhbSA9IGF0b21pYzY0X3JlYWQoJmFkZXYtPnZyYW1fdXNhZ2UpOwogCWZyZWVfdnJhbSA9 IHVzZWRfdnJhbSA+PSB0b3RhbF92cmFtID8gMCA6IHRvdGFsX3ZyYW0gLSB1c2VkX3ZyYW07CiAK KwlpZiAoYWRldi0+bWMudmlzaWJsZV92cmFtX3NpemUgPCBhZGV2LT5tYy5yZWFsX3ZyYW1fc2l6 ZSkgeworCQl0b3RhbF92aXNfdnJhbSA9IGFkZXYtPm1jLnZpc2libGVfdnJhbV9zaXplOworCQl1 c2VkX3Zpc192cmFtID0gYXRvbWljNjRfcmVhZCgmYWRldi0+dnJhbV92aXNfdXNhZ2UpOworCQlm cmVlX3Zpc192cmFtID0gdXNlZF92aXNfdnJhbSA+PSB0b3RhbF92aXNfdnJhbSA/CisJCQkwIDog dG90YWxfdmlzX3ZyYW0gLSB1c2VkX3Zpc192cmFtOworCX0KKwogCXNwaW5fbG9jaygmYWRldi0+ bW1fc3RhdHMubG9jayk7CiAKIAkvKiBJbmNyZWFzZSB0aGUgYW1vdW50IG9mIGFjY3VtdWxhdGVk IHVzLiAqLwpAQCAtMjUyLDcgKzI2NCwxMSBAQCBzdGF0aWMgdTY0IGFtZGdwdV9jc19nZXRfdGhy ZXNob2xkX2Zvcl9tb3ZlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpbmNyZW1lbnRf dXMgPSB0aW1lX3VzIC0gYWRldi0+bW1fc3RhdHMubGFzdF91cGRhdGVfdXM7CiAJYWRldi0+bW1f c3RhdHMubGFzdF91cGRhdGVfdXMgPSB0aW1lX3VzOwogCWFkZXYtPm1tX3N0YXRzLmFjY3VtX3Vz ID0gbWluKGFkZXYtPm1tX3N0YXRzLmFjY3VtX3VzICsgaW5jcmVtZW50X3VzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c191cHBlcl9ib3VuZCk7CisJCQkJICAgICAg dXNfdXBwZXJfYm91bmQpOworCWlmIChhZGV2LT5tYy52aXNpYmxlX3ZyYW1fc2l6ZSA8IGFkZXYt Pm1jLnJlYWxfdnJhbV9zaXplKSB7CisJCWFkZXYtPm1tX3N0YXRzLmFjY3VtX3VzX3ZpcyA9IG1p bihhZGV2LT5tbV9zdGF0cy5hY2N1bV91c192aXMgKworCQkJaW5jcmVtZW50X3VzLCB1c191cHBl cl9ib3VuZCk7CisJfQogCiAJLyogVGhpcyBwcmV2ZW50cyB0aGUgc2hvcnQgcGVyaW9kIG9mIGxv dyBwZXJmb3JtYW5jZSB3aGVuIHRoZSBWUkFNCiAJICogdXNhZ2UgaXMgbG93IGFuZCB0aGUgZHJp dmVyIGlzIGluIGRlYnQgb3IgZG9lc24ndCBoYXZlIGVub3VnaApAQCAtMjgwLDIzICsyOTYsMzYg QEAgc3RhdGljIHU2NCBhbWRncHVfY3NfZ2V0X3RocmVzaG9sZF9mb3JfbW92ZXMoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWFkZXYtPm1tX3N0YXRzLmFjY3VtX3VzID0gbWF4KG1pbl91 cywgYWRldi0+bW1fc3RhdHMuYWNjdW1fdXMpOwogCX0KIAotCS8qIFRoaXMgcmV0dXJucyAwIGlm IHRoZSBkcml2ZXIgaXMgaW4gZGVidCB0byBkaXNhbGxvdyAob3B0aW9uYWwpCisJLyogRG8gdGhl IHNhbWUgZm9yIHZpc2libGUgVlJBTSBpZiBoYWxmIG9mIGl0IGlzIGZyZWUgKi8KKwlpZiAoYWRl di0+bWMudmlzaWJsZV92cmFtX3NpemUgPCBhZGV2LT5tYy5yZWFsX3ZyYW1fc2l6ZSAmJgorCSAg ICBmcmVlX3Zpc192cmFtID49IHRvdGFsX3Zpc192cmFtIC8gMikgeworCQlhZGV2LT5tbV9zdGF0 cy5hY2N1bV91c192aXMgPSBtYXgoYnl0ZXNfdG9fdXMoYWRldiwKKwkJCQkJCSAgZnJlZV92aXNf dnJhbSAvIDIpLAorCQkJCQkJICBhZGV2LT5tbV9zdGF0cy5hY2N1bV91c192aXMpOworCX0KKwor CS8qIFRoaXMgaXMgc2V0IHRvIDAgaWYgdGhlIGRyaXZlciBpcyBpbiBkZWJ0IHRvIGRpc2FsbG93 IChvcHRpb25hbCkKIAkgKiBidWZmZXIgbW92ZXMuCiAJICovCi0JbWF4X2J5dGVzID0gdXNfdG9f Ynl0ZXMoYWRldiwgYWRldi0+bW1fc3RhdHMuYWNjdW1fdXMpOworCSptYXhfYnl0ZXMgPSB1c190 b19ieXRlcyhhZGV2LCBhZGV2LT5tbV9zdGF0cy5hY2N1bV91cyk7CisJaWYgKGFkZXYtPm1jLnZp c2libGVfdnJhbV9zaXplIDwgYWRldi0+bWMucmVhbF92cmFtX3NpemUpCisJCSptYXhfdmlzX2J5 dGVzID0gdXNfdG9fYnl0ZXMoYWRldiwgYWRldi0+bW1fc3RhdHMuYWNjdW1fdXNfdmlzKTsKKwll bHNlCisJCSptYXhfdmlzX2J5dGVzID0gMDsKIAogCXNwaW5fdW5sb2NrKCZhZGV2LT5tbV9zdGF0 cy5sb2NrKTsKLQlyZXR1cm4gbWF4X2J5dGVzOwogfQogCiAvKiBSZXBvcnQgaG93IG1hbnkgYnl0 ZXMgaGF2ZSByZWFsbHkgYmVlbiBtb3ZlZCBmb3IgdGhlIGxhc3QgY29tbWFuZAogICogc3VibWlz c2lvbi4gVGhpcyBjYW4gcmVzdWx0IGluIGEgZGVidCB0aGF0IGNhbiBzdG9wIGJ1ZmZlciBtaWdy YXRpb25zCiAgKiB0ZW1wb3JhcmlseS4KICAqLwotdm9pZCBhbWRncHVfY3NfcmVwb3J0X21vdmVk X2J5dGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1NjQgbnVtX2J5dGVzKQordm9pZCBh bWRncHVfY3NfcmVwb3J0X21vdmVkX2J5dGVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1 NjQgbnVtX2J5dGVzLAorCQkJCSAgdTY0IG51bV92aXNfYnl0ZXMpCiB7CiAJc3Bpbl9sb2NrKCZh ZGV2LT5tbV9zdGF0cy5sb2NrKTsKIAlhZGV2LT5tbV9zdGF0cy5hY2N1bV91cyAtPSBieXRlc190 b191cyhhZGV2LCBudW1fYnl0ZXMpOworCWFkZXYtPm1tX3N0YXRzLmFjY3VtX3VzX3ZpcyAtPSBi eXRlc190b191cyhhZGV2LCBudW1fdmlzX2J5dGVzKTsKIAlzcGluX3VubG9jaygmYWRldi0+bW1f c3RhdHMubG9jayk7CiB9CiAKQEAgLTMwNCw3ICszMzMsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9j c19ib192YWxpZGF0ZShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKIAkJCQkgc3RydWN0IGFt ZGdwdV9ibyAqYm8pCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRt X2FkZXYoYm8tPnRiby5iZGV2KTsKLQl1NjQgaW5pdGlhbF9ieXRlc19tb3ZlZDsKKwl1NjQgaW5p dGlhbF9ieXRlc19tb3ZlZCwgYnl0ZXNfbW92ZWQ7CiAJdWludDMyX3QgZG9tYWluOwogCWludCBy OwogCkBAIC0zMTQsMTcgKzM0MywzNCBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19ib192YWxpZGF0 ZShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKIAkvKiBEb24ndCBtb3ZlIHRoaXMgYnVmZmVy IGlmIHdlIGhhdmUgZGVwbGV0ZWQgb3VyIGFsbG93YW5jZQogCSAqIHRvIG1vdmUgaXQuIERvbid0 IG1vdmUgYW55dGhpbmcgaWYgdGhlIHRocmVzaG9sZCBpcyB6ZXJvLgogCSAqLwotCWlmIChwLT5i eXRlc19tb3ZlZCA8IHAtPmJ5dGVzX21vdmVkX3RocmVzaG9sZCkKLQkJZG9tYWluID0gYm8tPnBy ZWZlcmVkX2RvbWFpbnM7Ci0JZWxzZQorCWlmIChwLT5ieXRlc19tb3ZlZCA8IHAtPmJ5dGVzX21v dmVkX3RocmVzaG9sZCkgeworCQlpZiAoYWRldi0+bWMudmlzaWJsZV92cmFtX3NpemUgPCBhZGV2 LT5tYy5yZWFsX3ZyYW1fc2l6ZSAmJgorCQkgICAgKGJvLT5mbGFncyAmIEFNREdQVV9HRU1fQ1JF QVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQpKSB7CisJCQkvKiBBbmQgZG9uJ3QgbW92ZSBhIENQVV9B Q0NFU1NfUkVRVUlSRUQgQk8gdG8gbGltaXRlZAorCQkJICogdmlzaWJsZSBWUkFNIGlmIHdlJ3Zl IGRlcGxldGVkIG91ciBhbGxvd2FuY2UgdG8gZG8KKwkJCSAqIHRoYXQuCisJCQkgKi8KKwkJCWlm IChwLT5ieXRlc19tb3ZlZF92aXMgPCBwLT5ieXRlc19tb3ZlZF92aXNfdGhyZXNob2xkKQorCQkJ CWRvbWFpbiA9IGJvLT5wcmVmZXJlZF9kb21haW5zOworCQkJZWxzZQorCQkJCWRvbWFpbiA9IGJv LT5hbGxvd2VkX2RvbWFpbnM7CisJCX0gZWxzZSB7CisJCQlkb21haW4gPSBiby0+cHJlZmVyZWRf ZG9tYWluczsKKwkJfQorCX0gZWxzZSB7CiAJCWRvbWFpbiA9IGJvLT5hbGxvd2VkX2RvbWFpbnM7 CisJfQogCiByZXRyeToKIAlhbWRncHVfdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgZG9t YWluKTsKIAlpbml0aWFsX2J5dGVzX21vdmVkID0gYXRvbWljNjRfcmVhZCgmYWRldi0+bnVtX2J5 dGVzX21vdmVkKTsKIAlyID0gdHRtX2JvX3ZhbGlkYXRlKCZiby0+dGJvLCAmYm8tPnBsYWNlbWVu dCwgdHJ1ZSwgZmFsc2UpOwotCXAtPmJ5dGVzX21vdmVkICs9IGF0b21pYzY0X3JlYWQoJmFkZXYt Pm51bV9ieXRlc19tb3ZlZCkgLQotCQlpbml0aWFsX2J5dGVzX21vdmVkOworCWJ5dGVzX21vdmVk ID0gYXRvbWljNjRfcmVhZCgmYWRldi0+bnVtX2J5dGVzX21vdmVkKSAtCisJCSAgICAgIGluaXRp YWxfYnl0ZXNfbW92ZWQ7CisJcC0+Ynl0ZXNfbW92ZWQgKz0gYnl0ZXNfbW92ZWQ7CisJaWYgKGFk ZXYtPm1jLnZpc2libGVfdnJhbV9zaXplIDwgYWRldi0+bWMucmVhbF92cmFtX3NpemUgJiYKKwkg ICAgYm8tPmZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCkKKwkJ cC0+Ynl0ZXNfbW92ZWRfdmlzICs9IGJ5dGVzX21vdmVkOwogCiAJaWYgKHVubGlrZWx5KHIgPT0g LUVOT01FTSkgJiYgZG9tYWluICE9IGJvLT5hbGxvd2VkX2RvbWFpbnMpIHsKIAkJZG9tYWluID0g Ym8tPmFsbG93ZWRfZG9tYWluczsKQEAgLTU1NCw4ICs2MDAsMTAgQEAgc3RhdGljIGludCBhbWRn cHVfY3NfcGFyc2VyX2JvcyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKIAkJbGlzdF9zcGxp Y2UoJm5lZWRfcGFnZXMsICZwLT52YWxpZGF0ZWQpOwogCX0KIAotCXAtPmJ5dGVzX21vdmVkX3Ro cmVzaG9sZCA9IGFtZGdwdV9jc19nZXRfdGhyZXNob2xkX2Zvcl9tb3ZlcyhwLT5hZGV2KTsKKwlh bWRncHVfY3NfZ2V0X3RocmVzaG9sZF9mb3JfbW92ZXMocC0+YWRldiwgJnAtPmJ5dGVzX21vdmVk X3RocmVzaG9sZCwKKwkJCQkJICAmcC0+Ynl0ZXNfbW92ZWRfdmlzX3RocmVzaG9sZCk7CiAJcC0+ Ynl0ZXNfbW92ZWQgPSAwOworCXAtPmJ5dGVzX21vdmVkX3ZpcyA9IDA7CiAJcC0+ZXZpY3RhYmxl ID0gbGlzdF9sYXN0X2VudHJ5KCZwLT52YWxpZGF0ZWQsCiAJCQkJICAgICAgIHN0cnVjdCBhbWRn cHVfYm9fbGlzdF9lbnRyeSwKIAkJCQkgICAgICAgdHYuaGVhZCk7CkBAIC01NzksOCArNjI3LDgg QEAgc3RhdGljIGludCBhbWRncHVfY3NfcGFyc2VyX2JvcyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNl ciAqcCwKIAkJZ290byBlcnJvcl92YWxpZGF0ZTsKIAl9CiAKLQlhbWRncHVfY3NfcmVwb3J0X21v dmVkX2J5dGVzKHAtPmFkZXYsIHAtPmJ5dGVzX21vdmVkKTsKLQorCWFtZGdwdV9jc19yZXBvcnRf bW92ZWRfYnl0ZXMocC0+YWRldiwgcC0+Ynl0ZXNfbW92ZWQsCisJCQkJICAgICBwLT5ieXRlc19t b3ZlZF92aXMpOwogCWZwcml2LT52bS5sYXN0X2V2aWN0aW9uX2NvdW50ZXIgPQogCQlhdG9taWM2 NF9yZWFkKCZwLT5hZGV2LT5udW1fZXZpY3Rpb25zKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X29iamVjdC5jCmluZGV4IDhlZTY5NjUuLmRjZjFkZGIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKQEAgLTMyMiw3ICszMjIsNyBAQCBp bnQgYW1kZ3B1X2JvX2NyZWF0ZV9yZXN0cmljdGVkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAogCXN0cnVjdCBhbWRncHVfYm8gKmJvOwogCWVudW0gdHRtX2JvX3R5cGUgdHlwZTsKIAl1bnNp Z25lZCBsb25nIHBhZ2VfYWxpZ247Ci0JdTY0IGluaXRpYWxfYnl0ZXNfbW92ZWQ7CisJdTY0IGlu aXRpYWxfYnl0ZXNfbW92ZWQsIGJ5dGVzX21vdmVkOwogCXNpemVfdCBhY2Nfc2l6ZTsKIAlpbnQg cjsKIApAQCAtMzk4LDggKzM5OCwxMiBAQCBpbnQgYW1kZ3B1X2JvX2NyZWF0ZV9yZXN0cmljdGVk KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXIgPSB0dG1fYm9faW5pdF9yZXNlcnZlZCgm YWRldi0+bW1hbi5iZGV2LCAmYm8tPnRibywgc2l6ZSwgdHlwZSwKIAkJCQkgJmJvLT5wbGFjZW1l bnQsIHBhZ2VfYWxpZ24sICFrZXJuZWwsIE5VTEwsCiAJCQkJIGFjY19zaXplLCBzZywgcmVzdiwg JmFtZGdwdV90dG1fYm9fZGVzdHJveSk7Ci0JYW1kZ3B1X2NzX3JlcG9ydF9tb3ZlZF9ieXRlcyhh ZGV2LAotCQlhdG9taWM2NF9yZWFkKCZhZGV2LT5udW1fYnl0ZXNfbW92ZWQpIC0gaW5pdGlhbF9i eXRlc19tb3ZlZCk7CisJYnl0ZXNfbW92ZWQgPSBhdG9taWM2NF9yZWFkKCZhZGV2LT5udW1fYnl0 ZXNfbW92ZWQpIC0KKwkJICAgICAgaW5pdGlhbF9ieXRlc19tb3ZlZDsKKwlpZiAoYm8tPmZsYWdz ICYgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCkKKwkJYW1kZ3B1X2NzX3Jl cG9ydF9tb3ZlZF9ieXRlcyhhZGV2LCBieXRlc19tb3ZlZCwgYnl0ZXNfbW92ZWQpOworCWVsc2UK KwkJYW1kZ3B1X2NzX3JlcG9ydF9tb3ZlZF9ieXRlcyhhZGV2LCBieXRlc19tb3ZlZCwgMCk7CiAK IAlpZiAodW5saWtlbHkociAhPSAwKSkKIAkJcmV0dXJuIHI7Ci0tIAoyLjcuNAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==