From mboxrd@z Thu Jan 1 00:00:00 1970 From: j.glisse@gmail.com Subject: [PATCH 3/3] drm/radeon: rework ib and semaphore to take advantage of sa allocator Date: Wed, 2 May 2012 11:59:16 -0400 Message-ID: <1335974356-3009-4-git-send-email-j.glisse@gmail.com> References: <1335974356-3009-1-git-send-email-j.glisse@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qa0-f48.google.com (mail-qa0-f48.google.com [209.85.216.48]) by gabe.freedesktop.org (Postfix) with ESMTP id 6712AA09B8 for ; Wed, 2 May 2012 08:59:35 -0700 (PDT) Received: by mail-qa0-f48.google.com with SMTP id y23so672346qad.14 for ; Wed, 02 May 2012 08:59:35 -0700 (PDT) In-Reply-To: <1335974356-3009-1-git-send-email-j.glisse@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org Cc: Jerome Glisse , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogSmVyb21lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgoKQm90aCBpYiBhbmQgc2Vt YXBob3JlIGFyZSBhbHdheXMgYXNzb2NpYXRlZCB3aXRoIGEgZmVuY2UsIHJld29yayB0aGUKc2Eg YWxsb2NhdG9yIHRvIHN0b3JlIHRoZSBmZW5jZSBpbiB0aGUgc2FfYm8gYWxsb3dpbmcgc2EgYWxs b2NhdG9yCnRvIHdhaXQgZm9yIGEgZmVuY2UgYW5kIHJldHJ5IGFsbG9jYXRpb24uIFRoaXMgYWxz byBzaW1wbGlmeSB0aGUgaWIKJiBzZW1hcGhvcmUgY29kZS4gU2ltcGlmeSBzZW1hcGhvcmUgY29k ZSB0byB1c2UgdGhlIHNhIGFsbG9jYXRvci4KClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7Zu aWcgPGRlYXRoc2ltcGxlQHZvZGFmb25lLmRlPgpTaWduZWQtb2ZmLWJ5OiBKZXJvbWUgR2xpc3Nl IDxqZ2xpc3NlQHJlZGhhdC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3Jl ZW4uYyAgICAgICAgfCAgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYyAgICAgICAg ICAgICAgIHwgICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYyAgICAgICAgICAg ICB8ICAgIDEgLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCAgICAgICAgICAgfCAg IDc1ICsrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgICAg ICAgIHwgICAgNCArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMgICAg fCAgICAyIC0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMgICAgIHwgICAg NyArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBob3JlLmMgfCAgMTYxICsr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl90ZXN0LmMgICAgICB8ICAgMzMgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl90dG0uYyAgICAgICB8ICAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzAuYyAg ICAgICAgICAgIHwgICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMgICAgICAgICAg ICAgICB8ICAgIDEgLQogMTIgZmlsZXMgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgMjA3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVu LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jCmluZGV4IDQ2NTAyNmEuLjJm MzlmZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYwpAQCAtMzQyMiw3ICszNDIyLDYg QEAgdm9pZCBldmVyZ3JlZW5fZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAlldmVy Z3JlZW5fcGNpZV9nYXJ0X2ZpbmkocmRldik7CiAJcjYwMF92cmFtX3NjcmF0Y2hfZmluaShyZGV2 KTsKIAlyYWRlb25fZ2VtX2ZpbmkocmRldik7Ci0JcmFkZW9uX3NlbWFwaG9yZV9kcml2ZXJfZmlu aShyZGV2KTsKIAlyYWRlb25fZmVuY2VfZHJpdmVyX2ZpbmkocmRldik7CiAJcmFkZW9uX2FncF9m aW5pKHJkZXYpOwogCXJhZGVvbl9ib19maW5pKHJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9uaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCmluZGV4IGU1 NWVlN2IuLjMxNjBhNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25pLmMKQEAgLTE3NDQsNyArMTc0NCw2IEBAIHZv aWQgY2F5bWFuX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJY2F5bWFuX3BjaWVf Z2FydF9maW5pKHJkZXYpOwogCXI2MDBfdnJhbV9zY3JhdGNoX2ZpbmkocmRldik7CiAJcmFkZW9u X2dlbV9maW5pKHJkZXYpOwotCXJhZGVvbl9zZW1hcGhvcmVfZHJpdmVyX2ZpbmkocmRldik7CiAJ cmFkZW9uX2ZlbmNlX2RyaXZlcl9maW5pKHJkZXYpOwogCXJhZGVvbl9ib19maW5pKHJkZXYpOwog CXJhZGVvbl9hdG9tYmlvc19maW5pKHJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yNjAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYwppbmRleCA5YmFj OTQ3Li4wY2JjZDNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYwpAQCAtMjY1OCw3ICsyNjU4LDYgQEAg dm9pZCByNjAwX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJcjYwMF92cmFtX3Nj cmF0Y2hfZmluaShyZGV2KTsKIAlyYWRlb25fYWdwX2ZpbmkocmRldik7CiAJcmFkZW9uX2dlbV9m aW5pKHJkZXYpOwotCXJhZGVvbl9zZW1hcGhvcmVfZHJpdmVyX2ZpbmkocmRldik7CiAJcmFkZW9u X2ZlbmNlX2RyaXZlcl9maW5pKHJkZXYpOwogCXJhZGVvbl9ib19maW5pKHJkZXYpOwogCXJhZGVv bl9hdG9tYmlvc19maW5pKHJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKaW5kZXggMmU4M2E2 Ni4uYjg5OWNlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBAIC0yNDgsNiArMjQ4LDM0IEBA IGV4dGVybiB2b2lkIGV2ZXJncmVlbl90aWxpbmdfZmllbGRzKHVuc2lnbmVkIHRpbGluZ19mbGFn cywgdW5zaWduZWQgKmJhbmt3LAogCQkJCSAgICB1bnNpZ25lZCAqdGlsZV9zcGxpdCk7CiAKIC8q CisgKiBTZW1hcGhvcmVzLgorICovCitzdHJ1Y3QgcmFkZW9uX3Jpbmc7CitzdHJ1Y3QgcmFkZW9u X2ZlbmNlOworCisvKiBldmVyeXRoaW5nIGhlcmUgaXMgY29uc3RhbnQgKi8KK3N0cnVjdCByYWRl b25fc2VtYXBob3JlIHsKKwlzdHJ1Y3QgcmFkZW9uX3NhX2JvCQkqc2FfYm87CisJc3RydWN0IGxp c3RfaGVhZAkJbGlzdDsKKwl1aW50NjRfdAkJCWdwdV9hZGRyOworCXVpbnQzMl90CQkJKmNwdV9w dHI7CisJaW50CQkJCXdhaXRlcnM7Cit9OworCitpbnQgcmFkZW9uX3NlbWFwaG9yZV9jcmVhdGUo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCisJCQkgICAgc3RydWN0IHJhZGVvbl9mZW5jZSAq ZmVuY2UpOwordm9pZCByYWRlb25fc2VtYXBob3JlX2VtaXRfc2lnbmFsKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCBpbnQgcmluZywKKwkJCQkgIHN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNl KTsKK3ZvaWQgcmFkZW9uX3NlbWFwaG9yZV9lbWl0X3dhaXQoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsIGludCByaW5nLAorCQkJCXN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlKTsKK2ludCBy YWRlb25fc2VtYXBob3JlX3N5bmNfcmluZ3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCisJ CQkJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UsCisJCQkJYm9vbCBzeW5jX3RvW1JBREVPTl9O VU1fUklOR1NdLAorCQkJCWludCBkc3RfcmluZyk7Cit2b2lkIHJhZGVvbl9zZW1hcGhvcmVfZnJl ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKKwkJCSAgIHN0cnVjdCByYWRlb25fZmVuY2Ug KmZlbmNlKTsKKworLyoKICAqIEZlbmNlcy4KICAqLwogc3RydWN0IHJhZGVvbl9mZW5jZV9kcml2 ZXIgewpAQCAtMjczLDcgKzMwMSw3IEBAIHN0cnVjdCByYWRlb25fZmVuY2UgewogCWJvb2wJCQkJ c2lnbmFsZWQ7CiAJLyogUkIsIERNQSwgZXRjLiAqLwogCWludAkJCQlyaW5nOwotCXN0cnVjdCBy YWRlb25fc2VtYXBob3JlCQkqc2VtYXBob3JlOworCXN0cnVjdCByYWRlb25fc2VtYXBob3JlCQlz ZW1hcGhvcmU7CiB9OwogCiBpbnQgcmFkZW9uX2ZlbmNlX2RyaXZlcl9zdGFydF9yaW5nKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZyk7CkBAIC00MzEsNTAgKzQ1OSw2IEBAIGlu dCByYWRlb25fbW9kZV9kdW1iX2Rlc3Ryb3koc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAJ CQkgICAgIHVpbnQzMl90IGhhbmRsZSk7CiAKIC8qCi0gKiBTZW1hcGhvcmVzLgotICovCi1zdHJ1 Y3QgcmFkZW9uX3Jpbmc7Ci0KLSNkZWZpbmUJUkFERU9OX1NFTUFQSE9SRV9CT19TSVpFCTI1Ngot Ci1zdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZV9kcml2ZXIgewotCXJ3bG9ja190CQkJbG9jazsKLQlz dHJ1Y3QgbGlzdF9oZWFkCQlibzsKLX07Ci0KLXN0cnVjdCByYWRlb25fc2VtYXBob3JlX2JvOwot Ci0vKiBldmVyeXRoaW5nIGhlcmUgaXMgY29uc3RhbnQgKi8KLXN0cnVjdCByYWRlb25fc2VtYXBo b3JlIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkCQlsaXN0OwotCXVpbnQ2NF90CQkJZ3B1X2FkZHI7Ci0J dWludDMyX3QJCQkqY3B1X3B0cjsKLQlzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZV9ibwkqYm87Ci19 OwotCi1zdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZV9ibyB7Ci0Jc3RydWN0IGxpc3RfaGVhZAkJbGlz dDsKLQlzdHJ1Y3QgcmFkZW9uX2liCQkqaWI7Ci0Jc3RydWN0IGxpc3RfaGVhZAkJZnJlZTsKLQlz dHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZQkJc2VtYXBob3Jlc1tSQURFT05fU0VNQVBIT1JFX0JPX1NJ WkUvOF07Ci0JdW5zaWduZWQJCQludXNlZDsKLX07Ci0KLXZvaWQgcmFkZW9uX3NlbWFwaG9yZV9k cml2ZXJfZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Ci1pbnQgcmFkZW9uX3NlbWFw aG9yZV9jcmVhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCi0JCQkgICAgc3RydWN0IHJh ZGVvbl9zZW1hcGhvcmUgKipzZW1hcGhvcmUpOwotdm9pZCByYWRlb25fc2VtYXBob3JlX2VtaXRf c2lnbmFsKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZywKLQkJCQkgIHN0cnVj dCByYWRlb25fc2VtYXBob3JlICpzZW1hcGhvcmUpOwotdm9pZCByYWRlb25fc2VtYXBob3JlX2Vt aXRfd2FpdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpbmcsCi0JCQkJc3RydWN0 IHJhZGVvbl9zZW1hcGhvcmUgKnNlbWFwaG9yZSk7Ci1pbnQgcmFkZW9uX3NlbWFwaG9yZV9zeW5j X3JpbmdzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAotCQkJCXN0cnVjdCByYWRlb25fc2Vt YXBob3JlICpzZW1hcGhvcmUsCi0JCQkJYm9vbCBzeW5jX3RvW1JBREVPTl9OVU1fUklOR1NdLAot CQkJCWludCBkc3RfcmluZyk7Ci12b2lkIHJhZGVvbl9zZW1hcGhvcmVfZnJlZShzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwKLQkJCSAgIHN0cnVjdCByYWRlb25fc2VtYXBob3JlICpzZW1hcGhv cmUpOwotCi0vKgogICogR0FSVCBzdHJ1Y3R1cmVzLCBmdW5jdGlvbnMgJiBoZWxwZXJzCiAgKi8K IHN0cnVjdCByYWRlb25fbWM7CkBAIC0xNTA2LDcgKzE0OTAsNiBAQCBzdHJ1Y3QgcmFkZW9uX2Rl dmljZSB7CiAJc3RydWN0IHJhZGVvbl9tbWFuCQltbWFuOwogCXJ3bG9ja190CQkJZmVuY2VfbG9j azsKIAlzdHJ1Y3QgcmFkZW9uX2ZlbmNlX2RyaXZlcglmZW5jZV9kcnZbUkFERU9OX05VTV9SSU5H U107Ci0Jc3RydWN0IHJhZGVvbl9zZW1hcGhvcmVfZHJpdmVyCXNlbWFwaG9yZV9kcnY7CiAJc3Ry dWN0IHJhZGVvbl9yaW5nCQlyaW5nW1JBREVPTl9OVU1fUklOR1NdOwogCWJvb2wJCQkJaWJfcG9v bF9yZWFkeTsKIAlzdHJ1Y3QgcmFkZW9uX3NhX21hbmFnZXIJcmluZ190bXBfYm87CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fY3MuYwppbmRleCAwYzBjOWQxLi44MmYyZTdiMCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9jcy5jCkBAIC0xMzgsMTIgKzEzOCwxMiBAQCBzdGF0aWMgaW50IHJhZGVv bl9jc19zeW5jX3JpbmdzKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwKQogCQlyZXR1cm4gMDsK IAl9CiAKLQlyID0gcmFkZW9uX3NlbWFwaG9yZV9jcmVhdGUocC0+cmRldiwgJnAtPmliLT5zYV9i by0+ZmVuY2UtPnNlbWFwaG9yZSk7CisJciA9IHJhZGVvbl9zZW1hcGhvcmVfY3JlYXRlKHAtPnJk ZXYsIHAtPmliLT5zYV9iby0+ZmVuY2UpOwogCWlmIChyKSB7CiAJCXJldHVybiByOwogCX0KIAot CXJldHVybiByYWRlb25fc2VtYXBob3JlX3N5bmNfcmluZ3MocC0+cmRldiwgcC0+aWItPnNhX2Jv LT5mZW5jZS0+c2VtYXBob3JlLAorCXJldHVybiByYWRlb25fc2VtYXBob3JlX3N5bmNfcmluZ3Mo cC0+cmRldiwgcC0+aWItPnNhX2JvLT5mZW5jZSwKIAkJCQkJICAgc3luY190b19yaW5nLCBwLT5y aW5nKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2 aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYwppbmRleCBlMzE2 MTQ0Li4xZGFjMjdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9k ZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYwpAQCAt NzMyLDExICs3MzIsOSBAQCBpbnQgcmFkZW9uX2RldmljZV9pbml0KHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2LAogCW11dGV4X2luaXQoJnJkZXYtPnBtLm11dGV4KTsKIAltdXRleF9pbml0KCZy ZGV2LT52cmFtX211dGV4KTsKIAlyd2xvY2tfaW5pdCgmcmRldi0+ZmVuY2VfbG9jayk7Ci0Jcnds b2NrX2luaXQoJnJkZXYtPnNlbWFwaG9yZV9kcnYubG9jayk7CiAJSU5JVF9MSVNUX0hFQUQoJnJk ZXYtPmdlbS5vYmplY3RzKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZyZGV2LT5pcnEudmJsYW5r X3F1ZXVlKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZyZGV2LT5pcnEuaWRsZV9xdWV1ZSk7Ci0J SU5JVF9MSVNUX0hFQUQoJnJkZXYtPnNlbWFwaG9yZV9kcnYuYm8pOwogCS8qIGluaXRpYWxpemUg dm0gaGVyZSAqLwogCXJkZXYtPnZtX21hbmFnZXIudXNlX2JpdG1hcCA9IDE7CiAJcmRldi0+dm1f bWFuYWdlci5tYXhfcGZuID0gMSA8PCAyMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9mZW5j ZS5jCmluZGV4IDViYjc4YmYuLjdkMGMzMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f ZmVuY2UuYwpAQCAtMTMwLDggKzEzMCw5IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9mZW5jZV9kZXN0 cm95KHN0cnVjdCBrcmVmICprcmVmKQogCWxpc3RfZGVsKCZmZW5jZS0+bGlzdCk7CiAJZmVuY2Ut PmVtaXR0ZWQgPSBmYWxzZTsKIAl3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmZmVuY2UtPnJkZXYt PmZlbmNlX2xvY2ssIGlycV9mbGFncyk7Ci0JaWYgKGZlbmNlLT5zZW1hcGhvcmUpCi0JCXJhZGVv bl9zZW1hcGhvcmVfZnJlZShmZW5jZS0+cmRldiwgZmVuY2UtPnNlbWFwaG9yZSk7CisJaWYgKGZl bmNlLT5zZW1hcGhvcmUuc2FfYm8pIHsKKwkJcmFkZW9uX3NlbWFwaG9yZV9mcmVlKGZlbmNlLT5y ZGV2LCBmZW5jZSk7CisJfQogCWtmcmVlKGZlbmNlKTsKIH0KIApAQCAtMTQ5LDcgKzE1MCw3IEBA IGludCByYWRlb25fZmVuY2VfY3JlYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCSgq ZmVuY2UpLT5zaWduYWxlZCA9IGZhbHNlOwogCSgqZmVuY2UpLT5zZXEgPSAwOwogCSgqZmVuY2Up LT5yaW5nID0gcmluZzsKLQkoKmZlbmNlKS0+c2VtYXBob3JlID0gTlVMTDsKKwkoKmZlbmNlKS0+ c2VtYXBob3JlLnNhX2JvID0gTlVMTDsKIAlJTklUX0xJU1RfSEVBRCgmKCpmZW5jZSktPmxpc3Qp OwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fc2VtYXBob3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zZW1hcGhvcmUu YwppbmRleCA0MGEyMDdhLi44YjA4M2RiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9zZW1hcGhvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9zZW1hcGhvcmUuYwpAQCAtMzEsMTI1ICszMSw0NCBAQAogI2luY2x1ZGUgImRybS5oIgogI2lu Y2x1ZGUgInJhZGVvbi5oIgogCi1zdGF0aWMgaW50IHJhZGVvbl9zZW1hcGhvcmVfYWRkX2JvKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQoraW50IHJhZGVvbl9zZW1hcGhvcmVfY3JlYXRlKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAorCQkJICAgIHN0cnVjdCByYWRlb25fZmVuY2UgKmZl bmNlKQogewotCXN0cnVjdCByYWRlb25fc2VtYXBob3JlX2JvICpibzsKLQl1bnNpZ25lZCBsb25n IGlycV9mbGFnczsKLQl1aW50NjRfdCBncHVfYWRkcjsKLQl1aW50MzJfdCAqY3B1X3B0cjsKLQlp bnQgciwgaTsKLQotCi0JYm8gPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9y ZV9ibyksIEdGUF9LRVJORUwpOwotCWlmIChibyA9PSBOVUxMKSB7Ci0JCXJldHVybiAtRU5PTUVN OwotCX0KLQlJTklUX0xJU1RfSEVBRCgmYm8tPmZyZWUpOwotCUlOSVRfTElTVF9IRUFEKCZiby0+ bGlzdCk7Ci0JYm8tPm51c2VkID0gMDsKKwl1aW50NjRfdCAqcHRyOworCWludCByOwogCi0JciA9 IHJhZGVvbl9pYl9nZXQocmRldiwgMCwgJmJvLT5pYiwgUkFERU9OX1NFTUFQSE9SRV9CT19TSVpF KTsKKwlyID0gcmFkZW9uX3NhX2JvX25ldyhyZGV2LCAmZmVuY2UtPnNlbWFwaG9yZS5zYV9ibywK KwkJCSAgICAgJnJkZXYtPnJpbmdfdG1wX2JvLCA4LCA4LCB0cnVlLCBmZW5jZSk7CiAJaWYgKHIp IHsKLQkJZGV2X2VycihyZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGEgYm8gYWZ0ZXIgNSByZXRy eVxuIik7Ci0JCWtmcmVlKGJvKTsKIAkJcmV0dXJuIHI7CiAJfQotCWdwdV9hZGRyID0gcmRldi0+ cmluZ190bXBfYm8uZ3B1X2FkZHI7Ci0JZ3B1X2FkZHIgKz0gYm8tPmliLT5zYV9iby0+c29mZnNl dDsKLQljcHVfcHRyID0gcmRldi0+cmluZ190bXBfYm8uY3B1X3B0cjsKLQljcHVfcHRyICs9IChi by0+aWItPnNhX2JvLT5zb2Zmc2V0ID4+IDIpOwotCWZvciAoaSA9IDA7IGkgPCAoUkFERU9OX1NF TUFQSE9SRV9CT19TSVpFLzgpOyBpKyspIHsKLQkJYm8tPnNlbWFwaG9yZXNbaV0uZ3B1X2FkZHIg PSBncHVfYWRkcjsKLQkJYm8tPnNlbWFwaG9yZXNbaV0uY3B1X3B0ciA9IGNwdV9wdHI7Ci0JCWJv LT5zZW1hcGhvcmVzW2ldLmJvID0gYm87Ci0JCWxpc3RfYWRkX3RhaWwoJmJvLT5zZW1hcGhvcmVz W2ldLmxpc3QsICZiby0+ZnJlZSk7Ci0JCWdwdV9hZGRyICs9IDg7Ci0JCWNwdV9wdHIgKz0gMjsK LQl9Ci0Jd3JpdGVfbG9ja19pcnFzYXZlKCZyZGV2LT5zZW1hcGhvcmVfZHJ2LmxvY2ssIGlycV9m bGFncyk7Ci0JbGlzdF9hZGRfdGFpbCgmYm8tPmxpc3QsICZyZGV2LT5zZW1hcGhvcmVfZHJ2LmJv KTsKLQl3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmcmRldi0+c2VtYXBob3JlX2Rydi5sb2NrLCBp cnFfZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fc2VtYXBob3Jl X2RlbF9ib19sb2NrZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCi0JCQkJCSAgIHN0cnVj dCByYWRlb25fc2VtYXBob3JlX2JvICpibykKLXsKLQlyYWRlb25faWJfZnJlZShyZGV2LCAmYm8t PmliKTsKLQlsaXN0X2RlbCgmYm8tPmxpc3QpOwotCWtmcmVlKGJvKTsKLX0KIAotdm9pZCByYWRl b25fc2VtYXBob3JlX3Nocmlua19sb2NrZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCi17 Ci0Jc3RydWN0IHJhZGVvbl9zZW1hcGhvcmVfYm8gKmJvLCAqbjsKLQotCWlmIChsaXN0X2VtcHR5 KCZyZGV2LT5zZW1hcGhvcmVfZHJ2LmJvKSkgewotCQlyZXR1cm47Ci0JfQotCS8qIG9ubHkgc2hy aW5rIGlmIGZpcnN0IGJvIGhhcyBmcmVlIHNlbWFwaG9yZSAqLwotCWJvID0gbGlzdF9maXJzdF9l bnRyeSgmcmRldi0+c2VtYXBob3JlX2Rydi5ibywgc3RydWN0IHJhZGVvbl9zZW1hcGhvcmVfYm8s IGxpc3QpOwotCWlmIChsaXN0X2VtcHR5KCZiby0+ZnJlZSkpIHsKLQkJcmV0dXJuOwotCX0KLQls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmVfY29udGludWUoYm8sIG4sICZyZGV2LT5zZW1hcGhvcmVf ZHJ2LmJvLCBsaXN0KSB7Ci0JCWlmIChiby0+bnVzZWQpCi0JCQljb250aW51ZTsKLQkJcmFkZW9u X3NlbWFwaG9yZV9kZWxfYm9fbG9ja2VkKHJkZXYsIGJvKTsKLQl9Ci19Ci0KLWludCByYWRlb25f c2VtYXBob3JlX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKLQkJCSAgICBzdHJ1 Y3QgcmFkZW9uX3NlbWFwaG9yZSAqKnNlbWFwaG9yZSkKLXsKLQlzdHJ1Y3QgcmFkZW9uX3NlbWFw aG9yZV9ibyAqYm87Ci0JdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7Ci0JYm9vbCBkb19yZXRyeSA9 IHRydWU7Ci0JaW50IHI7Ci0KLXJldHJ5OgotCSpzZW1hcGhvcmUgPSBOVUxMOwotCXdyaXRlX2xv Y2tfaXJxc2F2ZSgmcmRldi0+c2VtYXBob3JlX2Rydi5sb2NrLCBpcnFfZmxhZ3MpOwotCWxpc3Rf Zm9yX2VhY2hfZW50cnkoYm8sICZyZGV2LT5zZW1hcGhvcmVfZHJ2LmJvLCBsaXN0KSB7Ci0JCWlm IChsaXN0X2VtcHR5KCZiby0+ZnJlZSkpCi0JCQljb250aW51ZTsKLQkJKnNlbWFwaG9yZSA9IGxp c3RfZmlyc3RfZW50cnkoJmJvLT5mcmVlLCBzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZSwgbGlzdCk7 Ci0JCSgqc2VtYXBob3JlKS0+Y3B1X3B0clswXSA9IDA7Ci0JCSgqc2VtYXBob3JlKS0+Y3B1X3B0 clsxXSA9IDA7Ci0JCWxpc3RfZGVsKCYoKnNlbWFwaG9yZSktPmxpc3QpOwotCQliby0+bnVzZWQr KzsKLQkJYnJlYWs7Ci0JfQotCXdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZyZGV2LT5zZW1hcGhv cmVfZHJ2LmxvY2ssIGlycV9mbGFncyk7Ci0KLQlpZiAoKnNlbWFwaG9yZSA9PSBOVUxMKSB7Ci0J CWlmIChkb19yZXRyeSkgewotCQkJZG9fcmV0cnkgPSBmYWxzZTsKLQkJCXIgPSByYWRlb25fc2Vt YXBob3JlX2FkZF9ibyhyZGV2KTsKLQkJCWlmIChyKQotCQkJCXJldHVybiByOwotCQkJZ290byBy ZXRyeTsKLQkJfQotCQlyZXR1cm4gLUVOT01FTTsKLQl9CisJZmVuY2UtPnNlbWFwaG9yZS53YWl0 ZXJzID0gMDsKKwlmZW5jZS0+c2VtYXBob3JlLmdwdV9hZGRyID0gcmRldi0+cmluZ190bXBfYm8u Z3B1X2FkZHI7CisJZmVuY2UtPnNlbWFwaG9yZS5ncHVfYWRkciArPSBmZW5jZS0+c2VtYXBob3Jl LnNhX2JvLT5zb2Zmc2V0OworCXB0ciA9IHJkZXYtPnJpbmdfdG1wX2JvLmNwdV9wdHI7CisJcHRy ICs9IGZlbmNlLT5zZW1hcGhvcmUuc2FfYm8tPnNvZmZzZXQ7CisJKnB0ciA9IDA7CiAKIAlyZXR1 cm4gMDsKIH0KIAogdm9pZCByYWRlb25fc2VtYXBob3JlX2VtaXRfc2lnbmFsKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2LCBpbnQgcmluZywKLQkJCSAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX3Nl bWFwaG9yZSAqc2VtYXBob3JlKQorCQkJICAgICAgICAgIHN0cnVjdCByYWRlb25fZmVuY2UgKmZl bmNlKQogewotCXJhZGVvbl9zZW1hcGhvcmVfcmluZ19lbWl0KHJkZXYsIHJpbmcsICZyZGV2LT5y aW5nW3JpbmddLCBzZW1hcGhvcmUsIGZhbHNlKTsKKwktLWZlbmNlLT5zZW1hcGhvcmUud2FpdGVy czsKKwlyYWRlb25fc2VtYXBob3JlX3JpbmdfZW1pdChyZGV2LCByaW5nLCAmcmRldi0+cmluZ1ty aW5nXSwgJmZlbmNlLT5zZW1hcGhvcmUsIGZhbHNlKTsKIH0KIAogdm9pZCByYWRlb25fc2VtYXBo b3JlX2VtaXRfd2FpdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpbmcsCi0JCQkg ICAgICAgIHN0cnVjdCByYWRlb25fc2VtYXBob3JlICpzZW1hcGhvcmUpCisJCQkgICAgICAgIHN0 cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlKQogewotCXJhZGVvbl9zZW1hcGhvcmVfcmluZ19lbWl0 KHJkZXYsIHJpbmcsICZyZGV2LT5yaW5nW3JpbmddLCBzZW1hcGhvcmUsIHRydWUpOworCSsrZmVu Y2UtPnNlbWFwaG9yZS53YWl0ZXJzOworCXJhZGVvbl9zZW1hcGhvcmVfcmluZ19lbWl0KHJkZXYs IHJpbmcsICZyZGV2LT5yaW5nW3JpbmddLCAmZmVuY2UtPnNlbWFwaG9yZSwgdHJ1ZSk7CiB9CiAK IGludCByYWRlb25fc2VtYXBob3JlX3N5bmNfcmluZ3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCi0JCQkJc3RydWN0IHJhZGVvbl9zZW1hcGhvcmUgKnNlbWFwaG9yZSwKKwkJCQlzdHJ1Y3Qg cmFkZW9uX2ZlbmNlICpmZW5jZSwKIAkJCQlib29sIHN5bmNfdG9bUkFERU9OX05VTV9SSU5HU10s CiAJCQkJaW50IGRzdF9yaW5nKQogewpAQCAtMTY5LDE4ICs4OCwyMCBAQCBpbnQgcmFkZW9uX3Nl bWFwaG9yZV9zeW5jX3JpbmdzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJZ290byBl cnJvcjsKIAkJfQogCi0gICAgICAgICAgICAgICAgciA9IHJhZGVvbl9yaW5nX2xvY2socmRldiwg JnJkZXYtPnJpbmdbaV0sIG51bV9vcHMgKiA4KTsKLSAgICAgICAgICAgICAgICBpZiAocikKKwkJ ciA9IHJhZGVvbl9yaW5nX2xvY2socmRldiwgJnJkZXYtPnJpbmdbaV0sIG51bV9vcHMgKiA4KTsK KwkJaWYgKHIpIHsKIAkJCWdvdG8gZXJyb3I7CisJCX0KIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwg UkFERU9OX05VTV9SSU5HUzsgKytpKSB7CiAJCS8qIG5vIG5lZWQgdG8gc3luYyB0byBvdXIgb3du IG9yIHVudXNlZCByaW5ncyAqLwotCQlpZiAoIXN5bmNfdG9baV0gfHwgaSA9PSBkc3RfcmluZykK LSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCQlpZiAoIXN5bmNfdG9baV0gfHwg aSA9PSBkc3RfcmluZykgeworCQkJY29udGludWU7CisJCX0KIAotCQlyYWRlb25fc2VtYXBob3Jl X2VtaXRfc2lnbmFsKHJkZXYsIGksIHNlbWFwaG9yZSk7Ci0JCXJhZGVvbl9zZW1hcGhvcmVfZW1p dF93YWl0KHJkZXYsIGRzdF9yaW5nLCBzZW1hcGhvcmUpOworCQlyYWRlb25fc2VtYXBob3JlX2Vt aXRfc2lnbmFsKHJkZXYsIGksIGZlbmNlKTsKKwkJcmFkZW9uX3NlbWFwaG9yZV9lbWl0X3dhaXQo cmRldiwgZHN0X3JpbmcsIGZlbmNlKTsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX05V TV9SSU5HUzsgKytpKSB7CkBAIC0yMDUsMjkgKzEyNiwxMSBAQCBlcnJvcjoKIH0KIAogdm9pZCBy YWRlb25fc2VtYXBob3JlX2ZyZWUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCi0JCQkgICBz dHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZSAqc2VtYXBob3JlKQotewotCXVuc2lnbmVkIGxvbmcgaXJx X2ZsYWdzOwotCi0Jd3JpdGVfbG9ja19pcnFzYXZlKCZyZGV2LT5zZW1hcGhvcmVfZHJ2LmxvY2ss IGlycV9mbGFncyk7Ci0Jc2VtYXBob3JlLT5iby0+bnVzZWQtLTsKLQlsaXN0X2FkZF90YWlsKCZz ZW1hcGhvcmUtPmxpc3QsICZzZW1hcGhvcmUtPmJvLT5mcmVlKTsKLQlyYWRlb25fc2VtYXBob3Jl X3Nocmlua19sb2NrZWQocmRldik7Ci0Jd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJnJkZXYtPnNl bWFwaG9yZV9kcnYubG9jaywgaXJxX2ZsYWdzKTsKLX0KLQotdm9pZCByYWRlb25fc2VtYXBob3Jl X2RyaXZlcl9maW5pKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQorCQkJICAgc3RydWN0IHJh ZGVvbl9mZW5jZSAqZmVuY2UpCiB7Ci0Jc3RydWN0IHJhZGVvbl9zZW1hcGhvcmVfYm8gKmJvLCAq bjsKLQl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKLQotCXdyaXRlX2xvY2tfaXJxc2F2ZSgmcmRl di0+c2VtYXBob3JlX2Rydi5sb2NrLCBpcnFfZmxhZ3MpOwotCS8qIHdlIGZvcmNlIHRvIGZyZWUg ZXZlcnl0aGluZyAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShibywgbiwgJnJkZXYtPnNl bWFwaG9yZV9kcnYuYm8sIGxpc3QpIHsKLQkJaWYgKCFsaXN0X2VtcHR5KCZiby0+ZnJlZSkpIHsK LQkJCWRldl9lcnIocmRldi0+ZGV2LCAic3RpbGwgaW4gdXNlIHNlbWFwaG9yZVxuIik7Ci0JCX0K LQkJcmFkZW9uX3NlbWFwaG9yZV9kZWxfYm9fbG9ja2VkKHJkZXYsIGJvKTsKKwlpZiAoZmVuY2Ut PnNlbWFwaG9yZS53YWl0ZXJzID4gMCkgeworCQlkZXZfZXJyKHJkZXYtPmRldiwgIlNlbWFwaG9y ZSAlcCBoYXMgbW9yZSB3YWl0ZXJzIHRoYW4gc2lnbmFsZXJzLCIKKwkJCSIgaGFyZHdhcmUgbG9j a3VwIGltbWluZW50IVxuIiwgZmVuY2UpOwogCX0KLQl3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgm cmRldi0+c2VtYXBob3JlX2Rydi5sb2NrLCBpcnFfZmxhZ3MpOworCXJhZGVvbl9zYV9ib19mcmVl KHJkZXYsICZmZW5jZS0+c2VtYXBob3JlLnNhX2JvKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3Rlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX3Rlc3QuYwppbmRleCBkYzVkY2Y0Li45NGI1YWI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl90ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fdGVzdC5jCkBAIC0yNDAsNyArMjQwLDYgQEAgdm9pZCByYWRlb25fdGVzdF9yaW5nX3N5 bmMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkgICBzdHJ1Y3QgcmFkZW9uX3Jpbmcg KnJpbmdCKQogewogCXN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlMSA9IE5VTEwsICpmZW5jZTIg PSBOVUxMOwotCXN0cnVjdCByYWRlb25fc2VtYXBob3JlICpzZW1hcGhvcmUgPSBOVUxMOwogCWlu dCByaWR4QSA9IHJhZGVvbl9yaW5nX2luZGV4KHJkZXYsIHJpbmdBKTsKIAlpbnQgcmlkeEIgPSBy YWRlb25fcmluZ19pbmRleChyZGV2LCByaW5nQik7CiAJaW50IHI7CkBAIC0yNTYsNyArMjU1LDEy IEBAIHZvaWQgcmFkZW9uX3Rlc3RfcmluZ19zeW5jKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LAogCQlnb3RvIG91dF9jbGVhbnVwOwogCX0KIAotCXIgPSByYWRlb25fc2VtYXBob3JlX2NyZWF0 ZShyZGV2LCAmc2VtYXBob3JlKTsKKwlyID0gcmFkZW9uX3NlbWFwaG9yZV9jcmVhdGUocmRldiwg ZmVuY2UxKTsKKwlpZiAocikgeworCQlEUk1fRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2VtYXBo b3JlXG4iKTsKKwkJZ290byBvdXRfY2xlYW51cDsKKwl9CisJciA9IHJhZGVvbl9zZW1hcGhvcmVf Y3JlYXRlKHJkZXYsIGZlbmNlMik7CiAJaWYgKHIpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g Y3JlYXRlIHNlbWFwaG9yZVxuIik7CiAJCWdvdG8gb3V0X2NsZWFudXA7CkBAIC0yNjcsOSArMjcx LDkgQEAgdm9pZCByYWRlb25fdGVzdF9yaW5nX3N5bmMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGxvY2sgcmluZyBBICVkXG4iLCByaWR4QSk7CiAJ CWdvdG8gb3V0X2NsZWFudXA7CiAJfQotCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF93YWl0KHJkZXYs IHJpZHhBLCBzZW1hcGhvcmUpOworCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF93YWl0KHJkZXYsIHJp ZHhBLCBmZW5jZTEpOwogCXJhZGVvbl9mZW5jZV9lbWl0KHJkZXYsIGZlbmNlMSk7Ci0JcmFkZW9u X3NlbWFwaG9yZV9lbWl0X3dhaXQocmRldiwgcmlkeEEsIHNlbWFwaG9yZSk7CisJcmFkZW9uX3Nl bWFwaG9yZV9lbWl0X3dhaXQocmRldiwgcmlkeEEsIGZlbmNlMik7CiAJcmFkZW9uX2ZlbmNlX2Vt aXQocmRldiwgZmVuY2UyKTsKIAlyYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHJkZXYsIHJpbmdB KTsKIApAQCAtMjg1LDcgKzI4OSw3IEBAIHZvaWQgcmFkZW9uX3Rlc3RfcmluZ19zeW5jKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBsb2NrIHJpbmcg QiAlcFxuIiwgcmluZ0IpOwogCQlnb3RvIG91dF9jbGVhbnVwOwogCX0KLQlyYWRlb25fc2VtYXBo b3JlX2VtaXRfc2lnbmFsKHJkZXYsIHJpZHhCLCBzZW1hcGhvcmUpOworCXJhZGVvbl9zZW1hcGhv cmVfZW1pdF9zaWduYWwocmRldiwgcmlkeEIsIGZlbmNlMSk7CiAJcmFkZW9uX3JpbmdfdW5sb2Nr X2NvbW1pdChyZGV2LCByaW5nQik7CiAKIAlyID0gcmFkZW9uX2ZlbmNlX3dhaXQoZmVuY2UxLCBm YWxzZSk7CkBAIC0zMDYsNyArMzEwLDcgQEAgdm9pZCByYWRlb25fdGVzdF9yaW5nX3N5bmMoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGxvY2sgcmlu ZyBCICVwXG4iLCByaW5nQik7CiAJCWdvdG8gb3V0X2NsZWFudXA7CiAJfQotCXJhZGVvbl9zZW1h cGhvcmVfZW1pdF9zaWduYWwocmRldiwgcmlkeEIsIHNlbWFwaG9yZSk7CisJcmFkZW9uX3NlbWFw aG9yZV9lbWl0X3NpZ25hbChyZGV2LCByaWR4QiwgZmVuY2UyKTsKIAlyYWRlb25fcmluZ191bmxv Y2tfY29tbWl0KHJkZXYsIHJpbmdCKTsKIAogCXIgPSByYWRlb25fZmVuY2Vfd2FpdChmZW5jZTIs IGZhbHNlKTsKQEAgLTMxNiw5ICszMjAsNiBAQCB2b2lkIHJhZGVvbl90ZXN0X3Jpbmdfc3luYyhz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAl9CiAKIG91dF9jbGVhbnVwOgotCWlmIChzZW1h cGhvcmUpCi0JCXJhZGVvbl9zZW1hcGhvcmVfZnJlZShyZGV2LCBzZW1hcGhvcmUpOwotCiAJaWYg KGZlbmNlMSkKIAkJcmFkZW9uX2ZlbmNlX3VucmVmKCZmZW5jZTEpOwogCkBAIC0zMzUsNyArMzM2 LDYgQEAgdm9pZCByYWRlb25fdGVzdF9yaW5nX3N5bmMyKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LAogCQkJICAgIHN0cnVjdCByYWRlb25fcmluZyAqcmluZ0MpCiB7CiAJc3RydWN0IHJhZGVv bl9mZW5jZSAqZmVuY2VBID0gTlVMTCwgKmZlbmNlQiA9IE5VTEw7Ci0Jc3RydWN0IHJhZGVvbl9z ZW1hcGhvcmUgKnNlbWFwaG9yZSA9IE5VTEw7CiAJaW50IHJpZHhBID0gcmFkZW9uX3JpbmdfaW5k ZXgocmRldiwgcmluZ0EpOwogCWludCByaWR4QiA9IHJhZGVvbl9yaW5nX2luZGV4KHJkZXYsIHJp bmdCKTsKIAlpbnQgcmlkeEMgPSByYWRlb25fcmluZ19pbmRleChyZGV2LCByaW5nQyk7CkBAIC0z NTMsNyArMzUzLDcgQEAgdm9pZCByYWRlb25fdGVzdF9yaW5nX3N5bmMyKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAogCQlnb3RvIG91dF9jbGVhbnVwOwogCX0KIAotCXIgPSByYWRlb25fc2Vt YXBob3JlX2NyZWF0ZShyZGV2LCAmc2VtYXBob3JlKTsKKwlyID0gcmFkZW9uX3NlbWFwaG9yZV9j cmVhdGUocmRldiwgZmVuY2VBKTsKIAlpZiAocikgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBj cmVhdGUgc2VtYXBob3JlXG4iKTsKIAkJZ290byBvdXRfY2xlYW51cDsKQEAgLTM2NCw3ICszNjQs NyBAQCB2b2lkIHJhZGVvbl90ZXN0X3Jpbmdfc3luYzIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGxvY2sgcmluZyBBICVkXG4iLCByaWR4QSk7CiAJ CWdvdG8gb3V0X2NsZWFudXA7CiAJfQotCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF93YWl0KHJkZXYs IHJpZHhBLCBzZW1hcGhvcmUpOworCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF93YWl0KHJkZXYsIHJp ZHhBLCBmZW5jZUEpOwogCXJhZGVvbl9mZW5jZV9lbWl0KHJkZXYsIGZlbmNlQSk7CiAJcmFkZW9u X3JpbmdfdW5sb2NrX2NvbW1pdChyZGV2LCByaW5nQSk7CiAKQEAgLTM3Myw3ICszNzMsNyBAQCB2 b2lkIHJhZGVvbl90ZXN0X3Jpbmdfc3luYzIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJ CURSTV9FUlJPUigiRmFpbGVkIHRvIGxvY2sgcmluZyBCICVkXG4iLCByaWR4Qik7CiAJCWdvdG8g b3V0X2NsZWFudXA7CiAJfQotCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF93YWl0KHJkZXYsIHJpZHhC LCBzZW1hcGhvcmUpOworCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF93YWl0KHJkZXYsIHJpZHhCLCBm ZW5jZUEpOwogCXJhZGVvbl9mZW5jZV9lbWl0KHJkZXYsIGZlbmNlQik7CiAJcmFkZW9uX3Jpbmdf dW5sb2NrX2NvbW1pdChyZGV2LCByaW5nQik7CiAKQEAgLTM5Myw3ICszOTMsNyBAQCB2b2lkIHJh ZGVvbl90ZXN0X3Jpbmdfc3luYzIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCURSTV9F UlJPUigiRmFpbGVkIHRvIGxvY2sgcmluZyBCICVwXG4iLCByaW5nQyk7CiAJCWdvdG8gb3V0X2Ns ZWFudXA7CiAJfQotCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF9zaWduYWwocmRldiwgcmlkeEMsIHNl bWFwaG9yZSk7CisJcmFkZW9uX3NlbWFwaG9yZV9lbWl0X3NpZ25hbChyZGV2LCByaWR4QywgZmVu Y2VBKTsKIAlyYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHJkZXYsIHJpbmdDKTsKIAogCWZvciAo aSA9IDA7IGkgPCAzMDsgKytpKSB7CkBAIC00MTksNyArNDE5LDcgQEAgdm9pZCByYWRlb25fdGVz dF9yaW5nX3N5bmMyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQlEUk1fRVJST1IoIkZh aWxlZCB0byBsb2NrIHJpbmcgQiAlcFxuIiwgcmluZ0MpOwogCQlnb3RvIG91dF9jbGVhbnVwOwog CX0KLQlyYWRlb25fc2VtYXBob3JlX2VtaXRfc2lnbmFsKHJkZXYsIHJpZHhDLCBzZW1hcGhvcmUp OworCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF9zaWduYWwocmRldiwgcmlkeEMsIGZlbmNlQSk7CiAJ cmFkZW9uX3JpbmdfdW5sb2NrX2NvbW1pdChyZGV2LCByaW5nQyk7CiAKIAltZGVsYXkoMTAwMCk7 CkBAIC00MzYsOSArNDM2LDYgQEAgdm9pZCByYWRlb25fdGVzdF9yaW5nX3N5bmMyKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LAogCX0KIAogb3V0X2NsZWFudXA6Ci0JaWYgKHNlbWFwaG9yZSkK LQkJcmFkZW9uX3NlbWFwaG9yZV9mcmVlKHJkZXYsIHNlbWFwaG9yZSk7Ci0KIAlpZiAoZmVuY2VB KQogCQlyYWRlb25fZmVuY2VfdW5yZWYoJmZlbmNlQSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fdHRtLmMKaW5kZXggNWUzZDU0ZC4uZWNlNDNiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fdHRtLmMKQEAgLTI3MiwxMyArMjcyLDEzIEBAIHN0YXRpYyBpbnQgcmFkZW9uX21vdmVfYmxp dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlib29sIHN5bmNfdG9fcmluZ1tSQURF T05fTlVNX1JJTkdTXSA9IHsgfTsKIAkJc3luY190b19yaW5nW29sZF9mZW5jZS0+cmluZ10gPSB0 cnVlOwogCi0JCXIgPSByYWRlb25fc2VtYXBob3JlX2NyZWF0ZShyZGV2LCAmZmVuY2UtPnNlbWFw aG9yZSk7CisJCXIgPSByYWRlb25fc2VtYXBob3JlX2NyZWF0ZShyZGV2LCBmZW5jZSk7CiAJCWlm IChyKSB7CiAJCQlyYWRlb25fZmVuY2VfdW5yZWYoJmZlbmNlKTsKIAkJCXJldHVybiByOwogCQl9 CiAKLQkJciA9IHJhZGVvbl9zZW1hcGhvcmVfc3luY19yaW5ncyhyZGV2LCBmZW5jZS0+c2VtYXBo b3JlLAorCQlyID0gcmFkZW9uX3NlbWFwaG9yZV9zeW5jX3JpbmdzKHJkZXYsIGZlbmNlLAogCQkJ CQkJc3luY190b19yaW5nLCBmZW5jZS0+cmluZyk7CiAJCWlmIChyKSB7CiAJCQlyYWRlb25fZmVu Y2VfdW5yZWYoJmZlbmNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3 NzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzAuYwppbmRleCBhOGIwMDE2Li40MGY4 MmUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzcwLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MC5jCkBAIC0xMjc4LDcgKzEyNzgsNiBAQCB2b2lkIHJ2 NzcwX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJcnY3NzBfcGNpZV9nYXJ0X2Zp bmkocmRldik7CiAJcjYwMF92cmFtX3NjcmF0Y2hfZmluaShyZGV2KTsKIAlyYWRlb25fZ2VtX2Zp bmkocmRldik7Ci0JcmFkZW9uX3NlbWFwaG9yZV9kcml2ZXJfZmluaShyZGV2KTsKIAlyYWRlb25f ZmVuY2VfZHJpdmVyX2ZpbmkocmRldik7CiAJcmFkZW9uX2FncF9maW5pKHJkZXYpOwogCXJhZGVv bl9ib19maW5pKHJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5j IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCmluZGV4IGRlMzdmMDkuLmViNDk0ODMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3NpLmMKQEAgLTQxMDcsNyArNDEwNyw2IEBAIHZvaWQgc2lfZmluaShzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldikKIAlzaV9wY2llX2dhcnRfZmluaShyZGV2KTsKIAlyNjAwX3Zy YW1fc2NyYXRjaF9maW5pKHJkZXYpOwogCXJhZGVvbl9nZW1fZmluaShyZGV2KTsKLQlyYWRlb25f c2VtYXBob3JlX2RyaXZlcl9maW5pKHJkZXYpOwogCXJhZGVvbl9mZW5jZV9kcml2ZXJfZmluaShy ZGV2KTsKIAlyYWRlb25fYm9fZmluaShyZGV2KTsKIAlyYWRlb25fYXRvbWJpb3NfZmluaShyZGV2 KTsKLS0gCjEuNy43LjYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==