From mboxrd@z Thu Jan 1 00:00:00 1970 From: j.glisse@gmail.com Subject: [PATCH 13/18] drm/radeon: simplify semaphore handling v2 Date: Fri, 4 May 2012 18:43:54 -0400 Message-ID: <1336171439-7672-14-git-send-email-j.glisse@gmail.com> References: <1336171439-7672-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-qc0-f177.google.com (mail-qc0-f177.google.com [209.85.216.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 7A56EA0D5F for ; Fri, 4 May 2012 15:44:33 -0700 (PDT) Received: by mail-qc0-f177.google.com with SMTP id u28so2491993qcs.36 for ; Fri, 04 May 2012 15:44:33 -0700 (PDT) In-Reply-To: <1336171439-7672-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 RnJvbTogSmVyb21lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgoKRGlyZWN0bHkgdXNlIHRo ZSBzdWJhbGxvY2F0b3IgdG8gZ2V0IHNtYWxsIGNodW5rcyBvZiBtZW1vcnkuCkl0J3MgZXF1YWxs eSBmYXN0IGFuZCBkb2Vzbid0IGNyYXNoIHdoZW4gd2UgZW5jb3VudGVyIGEgR1BVIHJlc2V0LgoK djI6IHJlYmFzZWQgb24gbmV3IFNBIGludGVyZmFjZS4KClNpZ25lZC1vZmYtYnk6IENocmlzdGlh biBLw7ZuaWcgPGRlYXRoc2ltcGxlQHZvZGFmb25lLmRlPgpTaWduZWQtb2ZmLWJ5OiBKZXJvbWUg R2xpc3NlIDxqZ2xpc3NlQHJlZGhhdC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9l dmVyZ3JlZW4uYyAgICAgICAgfCAgICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYyAg ICAgICAgICAgICAgIHwgICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYyAgICAg ICAgICAgICB8ICAgIDEgLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCAgICAgICAg ICAgfCAgIDI5ICstLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMg ICAgfCAgICAyIC0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMgICAgIHwg ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBob3JlLmMgfCAgMTM3 ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl90ZXN0LmMgICAgICB8ICAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzAu YyAgICAgICAgICAgIHwgICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMgICAgICAg ICAgICAgICB8ICAgIDEgLQogMTAgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMTQ5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdy ZWVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jCmluZGV4IDBlODYwYzYu LmVjNjExOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYwpAQCAtMzQyMiw3ICszNDIy LDYgQEAgdm9pZCBldmVyZ3JlZW5fZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAll dmVyZ3JlZW5fcGNpZV9nYXJ0X2ZpbmkocmRldik7CiAJcjYwMF92cmFtX3NjcmF0Y2hfZmluaShy ZGV2KTsKIAlyYWRlb25fZ2VtX2ZpbmkocmRldik7Ci0JcmFkZW9uX3NlbWFwaG9yZV9kcml2ZXJf ZmluaShyZGV2KTsKIAlyYWRlb25fZmVuY2VfZHJpdmVyX2ZpbmkocmRldik7CiAJcmFkZW9uX2Fn cF9maW5pKHJkZXYpOwogCXJhZGVvbl9ib19maW5pKHJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9uaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCmluZGV4 IDljZDI2NTcuLjEwN2IyMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25pLmMKQEAgLTE3NDQsNyArMTc0NCw2IEBA IHZvaWQgY2F5bWFuX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJY2F5bWFuX3Bj aWVfZ2FydF9maW5pKHJkZXYpOwogCXI2MDBfdnJhbV9zY3JhdGNoX2ZpbmkocmRldik7CiAJcmFk ZW9uX2dlbV9maW5pKHJkZXYpOwotCXJhZGVvbl9zZW1hcGhvcmVfZHJpdmVyX2ZpbmkocmRldik7 CiAJcmFkZW9uX2ZlbmNlX2RyaXZlcl9maW5pKHJkZXYpOwogCXJhZGVvbl9ib19maW5pKHJkZXYp OwogCXJhZGVvbl9hdG9tYmlvc19maW5pKHJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yNjAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYwppbmRleCAx Y2FkZjk3Li4yYmNlNjU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYwpAQCAtMjY1OCw3ICsyNjU4LDYg QEAgdm9pZCByNjAwX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJcjYwMF92cmFt X3NjcmF0Y2hfZmluaShyZGV2KTsKIAlyYWRlb25fYWdwX2ZpbmkocmRldik7CiAJcmFkZW9uX2dl bV9maW5pKHJkZXYpOwotCXJhZGVvbl9zZW1hcGhvcmVfZHJpdmVyX2ZpbmkocmRldik7CiAJcmFk ZW9uX2ZlbmNlX2RyaXZlcl9maW5pKHJkZXYpOwogCXJhZGVvbl9ib19maW5pKHJkZXYpOwogCXJh ZGVvbl9hdG9tYmlvc19maW5pKHJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKaW5kZXggMWMz ZWIwNi4uOTM3ZGIwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24u aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBAIC00MzQsMzQgKzQzNCwx MyBAQCBpbnQgcmFkZW9uX21vZGVfZHVtYl9kZXN0cm95KHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2LAogLyoKICAqIFNlbWFwaG9yZXMuCiAgKi8KLXN0cnVjdCByYWRlb25fcmluZzsKLQotI2Rl ZmluZQlSQURFT05fU0VNQVBIT1JFX0JPX1NJWkUJMjU2Ci0KLXN0cnVjdCByYWRlb25fc2VtYXBo b3JlX2RyaXZlciB7Ci0Jcndsb2NrX3QJCQlsb2NrOwotCXN0cnVjdCBsaXN0X2hlYWQJCWJvOwot fTsKLQotc3RydWN0IHJhZGVvbl9zZW1hcGhvcmVfYm87Ci0KIC8qIGV2ZXJ5dGhpbmcgaGVyZSBp cyBjb25zdGFudCAqLwogc3RydWN0IHJhZGVvbl9zZW1hcGhvcmUgewotCXN0cnVjdCBsaXN0X2hl YWQJCWxpc3Q7CisJc3RydWN0IHJhZGVvbl9zYV9ibwkJKnNhX2JvOworCXNpZ25lZAkJCQl3YWl0 ZXJzOwogCXVpbnQ2NF90CQkJZ3B1X2FkZHI7Ci0JdWludDMyX3QJCQkqY3B1X3B0cjsKLQlzdHJ1 Y3QgcmFkZW9uX3NlbWFwaG9yZV9ibwkqYm87CiB9OwogCi1zdHJ1Y3QgcmFkZW9uX3NlbWFwaG9y ZV9ibyB7Ci0Jc3RydWN0IGxpc3RfaGVhZAkJbGlzdDsKLQlzdHJ1Y3QgcmFkZW9uX2liCQkqaWI7 Ci0Jc3RydWN0IGxpc3RfaGVhZAkJZnJlZTsKLQlzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZQkJc2Vt YXBob3Jlc1tSQURFT05fU0VNQVBIT1JFX0JPX1NJWkUvOF07Ci0JdW5zaWduZWQJCQludXNlZDsK LX07Ci0KLXZvaWQgcmFkZW9uX3NlbWFwaG9yZV9kcml2ZXJfZmluaShzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldik7CiBpbnQgcmFkZW9uX3NlbWFwaG9yZV9jcmVhdGUoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYsCiAJCQkgICAgc3RydWN0IHJhZGVvbl9zZW1hcGhvcmUgKipzZW1hcGhvcmUp Owogdm9pZCByYWRlb25fc2VtYXBob3JlX2VtaXRfc2lnbmFsKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCBpbnQgcmluZywKQEAgLTQ3Myw3ICs0NTIsOCBAQCBpbnQgcmFkZW9uX3NlbWFwaG9y ZV9zeW5jX3JpbmdzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJCWJvb2wgc3luY190 b1tSQURFT05fTlVNX1JJTkdTXSwKIAkJCQlpbnQgZHN0X3JpbmcpOwogdm9pZCByYWRlb25fc2Vt YXBob3JlX2ZyZWUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCi0JCQkgICBzdHJ1Y3QgcmFk ZW9uX3NlbWFwaG9yZSAqc2VtYXBob3JlKTsKKwkJCSAgIHN0cnVjdCByYWRlb25fc2VtYXBob3Jl ICpzZW1hcGhvcmUsCisJCQkgICBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSk7CiAKIC8qCiAg KiBHQVJUIHN0cnVjdHVyZXMsIGZ1bmN0aW9ucyAmIGhlbHBlcnMKQEAgLTE1MjIsNyArMTUwMiw2 IEBAIHN0cnVjdCByYWRlb25fZGV2aWNlIHsKIAlzdHJ1Y3QgcmFkZW9uX21tYW4JCW1tYW47CiAJ c3RydWN0IHJhZGVvbl9mZW5jZV9kcml2ZXIJZmVuY2VfZHJ2W1JBREVPTl9OVU1fUklOR1NdOwog CXdhaXRfcXVldWVfaGVhZF90CQlmZW5jZV9xdWV1ZTsKLQlzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9y ZV9kcml2ZXIJc2VtYXBob3JlX2RydjsKIAlzdHJ1Y3QgbXV0ZXgJCQlyaW5nX2xvY2s7CiAJc3Ry dWN0IHJhZGVvbl9yaW5nCQlyaW5nW1JBREVPTl9OVU1fUklOR1NdOwogCXN0cnVjdCByYWRlb25f aWJfcG9vbAkJaWJfcG9vbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNlLmMKaW5k ZXggY2I0ZjljMi4uOWUyODA2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2aWNl LmMKQEAgLTczMiwxMSArNzMyLDkgQEAgaW50IHJhZGVvbl9kZXZpY2VfaW5pdChzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwKIAltdXRleF9pbml0KCZyZGV2LT5nZW0ubXV0ZXgpOwogCW11dGV4 X2luaXQoJnJkZXYtPnBtLm11dGV4KTsKIAltdXRleF9pbml0KCZyZGV2LT52cmFtX211dGV4KTsK LQlyd2xvY2tfaW5pdCgmcmRldi0+c2VtYXBob3JlX2Rydi5sb2NrKTsKIAlJTklUX0xJU1RfSEVB RCgmcmRldi0+Z2VtLm9iamVjdHMpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnJkZXYtPmlycS52 YmxhbmtfcXVldWUpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnJkZXYtPmlycS5pZGxlX3F1ZXVl KTsKLQlJTklUX0xJU1RfSEVBRCgmcmRldi0+c2VtYXBob3JlX2Rydi5ibyk7CiAJLyogaW5pdGlh bGl6ZSB2bSBoZXJlICovCiAJcmRldi0+dm1fbWFuYWdlci51c2VfYml0bWFwID0gMTsKIAlyZGV2 LT52bV9tYW5hZ2VyLm1heF9wZm4gPSAxIDw8IDIwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2ZlbmNlLmMKaW5kZXggOWMyYzFiMy4uOGI0Nzc4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9mZW5jZS5jCkBAIC0xMzgsNyArMTM4LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2ZlbmNl X2Rlc3Ryb3koc3RydWN0IGtyZWYgKmtyZWYpCiAJZmVuY2UgPSBjb250YWluZXJfb2Yoa3JlZiwg c3RydWN0IHJhZGVvbl9mZW5jZSwga3JlZik7CiAJZmVuY2UtPnNlcSA9IFJBREVPTl9GRU5DRV9O T1RFTUlURURfU0VROwogCWlmIChmZW5jZS0+c2VtYXBob3JlKQotCQlyYWRlb25fc2VtYXBob3Jl X2ZyZWUoZmVuY2UtPnJkZXYsIGZlbmNlLT5zZW1hcGhvcmUpOworCQlyYWRlb25fc2VtYXBob3Jl X2ZyZWUoZmVuY2UtPnJkZXYsIGZlbmNlLT5zZW1hcGhvcmUsIE5VTEwpOwogCWtmcmVlKGZlbmNl KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBo b3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zZW1hcGhvcmUuYwppbmRleCBk YmRlODc0Li4xYmM1NTEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9zZW1hcGhvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zZW1hcGhv cmUuYwpAQCAtMzEsMTE4ICszMSw0MCBAQAogI2luY2x1ZGUgImRybS5oIgogI2luY2x1ZGUgInJh ZGVvbi5oIgogCi1zdGF0aWMgaW50IHJhZGVvbl9zZW1hcGhvcmVfYWRkX2JvKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2KQotewotCXN0cnVjdCByYWRlb25fc2VtYXBob3JlX2JvICpibzsKLQl1 bnNpZ25lZCBsb25nIGlycV9mbGFnczsKLQl1aW50NjRfdCBncHVfYWRkcjsKLQl1aW50MzJfdCAq Y3B1X3B0cjsKLQlpbnQgciwgaTsKLQotCWJvID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHJhZGVv bl9zZW1hcGhvcmVfYm8pLCBHRlBfS0VSTkVMKTsKLQlpZiAoYm8gPT0gTlVMTCkgewotCQlyZXR1 cm4gLUVOT01FTTsKLQl9Ci0JSU5JVF9MSVNUX0hFQUQoJmJvLT5mcmVlKTsKLQlJTklUX0xJU1Rf SEVBRCgmYm8tPmxpc3QpOwotCWJvLT5udXNlZCA9IDA7Ci0KLQlyID0gcmFkZW9uX2liX2dldChy ZGV2LCAwLCAmYm8tPmliLCBSQURFT05fU0VNQVBIT1JFX0JPX1NJWkUpOwotCWlmIChyKSB7Ci0J CWRldl9lcnIocmRldi0+ZGV2LCAiZmFpbGVkIHRvIGdldCBhIGJvIGFmdGVyIDUgcmV0cnlcbiIp OwotCQlrZnJlZShibyk7Ci0JCXJldHVybiByOwotCX0KLQlncHVfYWRkciA9IHJhZGVvbl9zYV9i b19ncHVfYWRkcihiby0+aWItPnNhX2JvKTsKLQljcHVfcHRyID0gcmFkZW9uX3NhX2JvX2NwdV9h ZGRyKGJvLT5pYi0+c2FfYm8pOwotCWZvciAoaSA9IDA7IGkgPCAoUkFERU9OX1NFTUFQSE9SRV9C T19TSVpFLzgpOyBpKyspIHsKLQkJYm8tPnNlbWFwaG9yZXNbaV0uZ3B1X2FkZHIgPSBncHVfYWRk cjsKLQkJYm8tPnNlbWFwaG9yZXNbaV0uY3B1X3B0ciA9IGNwdV9wdHI7Ci0JCWJvLT5zZW1hcGhv cmVzW2ldLmJvID0gYm87Ci0JCWxpc3RfYWRkX3RhaWwoJmJvLT5zZW1hcGhvcmVzW2ldLmxpc3Qs ICZiby0+ZnJlZSk7Ci0JCWdwdV9hZGRyICs9IDg7Ci0JCWNwdV9wdHIgKz0gMjsKLQl9Ci0Jd3Jp dGVfbG9ja19pcnFzYXZlKCZyZGV2LT5zZW1hcGhvcmVfZHJ2LmxvY2ssIGlycV9mbGFncyk7Ci0J bGlzdF9hZGRfdGFpbCgmYm8tPmxpc3QsICZyZGV2LT5zZW1hcGhvcmVfZHJ2LmJvKTsKLQl3cml0 ZV91bmxvY2tfaXJxcmVzdG9yZSgmcmRldi0+c2VtYXBob3JlX2Rydi5sb2NrLCBpcnFfZmxhZ3Mp OwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fc2VtYXBob3JlX2RlbF9ib19s b2NrZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCi0JCQkJCSAgIHN0cnVjdCByYWRlb25f c2VtYXBob3JlX2JvICpibykKLXsKLQlyYWRlb25fc2FfYm9fZnJlZShyZGV2LCAmYm8tPmliLT5z YV9ibywgTlVMTCk7Ci0JcmFkZW9uX2ZlbmNlX3VucmVmKCZiby0+aWItPmZlbmNlKTsKLQlsaXN0 X2RlbCgmYm8tPmxpc3QpOwotCWtmcmVlKGJvKTsKLX0KLQotdm9pZCByYWRlb25fc2VtYXBob3Jl X3Nocmlua19sb2NrZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCi17Ci0Jc3RydWN0IHJh ZGVvbl9zZW1hcGhvcmVfYm8gKmJvLCAqbjsKLQotCWlmIChsaXN0X2VtcHR5KCZyZGV2LT5zZW1h cGhvcmVfZHJ2LmJvKSkgewotCQlyZXR1cm47Ci0JfQotCS8qIG9ubHkgc2hyaW5rIGlmIGZpcnN0 IGJvIGhhcyBmcmVlIHNlbWFwaG9yZSAqLwotCWJvID0gbGlzdF9maXJzdF9lbnRyeSgmcmRldi0+ c2VtYXBob3JlX2Rydi5ibywgc3RydWN0IHJhZGVvbl9zZW1hcGhvcmVfYm8sIGxpc3QpOwotCWlm IChsaXN0X2VtcHR5KCZiby0+ZnJlZSkpIHsKLQkJcmV0dXJuOwotCX0KLQlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmVfY29udGludWUoYm8sIG4sICZyZGV2LT5zZW1hcGhvcmVfZHJ2LmJvLCBsaXN0 KSB7Ci0JCWlmIChiby0+bnVzZWQpCi0JCQljb250aW51ZTsKLQkJcmFkZW9uX3NlbWFwaG9yZV9k ZWxfYm9fbG9ja2VkKHJkZXYsIGJvKTsKLQl9Ci19CiAKIGludCByYWRlb25fc2VtYXBob3JlX2Ny ZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCSAgICBzdHJ1Y3QgcmFkZW9uX3Nl bWFwaG9yZSAqKnNlbWFwaG9yZSkKIHsKLQlzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZV9ibyAqYm87 Ci0JdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7Ci0JYm9vbCBkb19yZXRyeSA9IHRydWU7CiAJaW50 IHI7CiAKLXJldHJ5OgotCSpzZW1hcGhvcmUgPSBOVUxMOwotCXdyaXRlX2xvY2tfaXJxc2F2ZSgm cmRldi0+c2VtYXBob3JlX2Rydi5sb2NrLCBpcnFfZmxhZ3MpOwotCWxpc3RfZm9yX2VhY2hfZW50 cnkoYm8sICZyZGV2LT5zZW1hcGhvcmVfZHJ2LmJvLCBsaXN0KSB7Ci0JCWlmIChsaXN0X2VtcHR5 KCZiby0+ZnJlZSkpCi0JCQljb250aW51ZTsKLQkJKnNlbWFwaG9yZSA9IGxpc3RfZmlyc3RfZW50 cnkoJmJvLT5mcmVlLCBzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZSwgbGlzdCk7Ci0JCSgqc2VtYXBo b3JlKS0+Y3B1X3B0clswXSA9IDA7Ci0JCSgqc2VtYXBob3JlKS0+Y3B1X3B0clsxXSA9IDA7Ci0J CWxpc3RfZGVsKCYoKnNlbWFwaG9yZSktPmxpc3QpOwotCQliby0+bnVzZWQrKzsKLQkJYnJlYWs7 Ci0JfQotCXdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZyZGV2LT5zZW1hcGhvcmVfZHJ2LmxvY2ss IGlycV9mbGFncyk7Ci0KKwkqc2VtYXBob3JlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHJhZGVv bl9zZW1hcGhvcmUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoKnNlbWFwaG9yZSA9PSBOVUxMKSB7Ci0J CWlmIChkb19yZXRyeSkgewotCQkJZG9fcmV0cnkgPSBmYWxzZTsKLQkJCXIgPSByYWRlb25fc2Vt YXBob3JlX2FkZF9ibyhyZGV2KTsKLQkJCWlmIChyKQotCQkJCXJldHVybiByOwotCQkJZ290byBy ZXRyeTsKLQkJfQogCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0KKwlyID0gcmFkZW9uX3NhX2JvX25l dyhyZGV2LCAmcmRldi0+aWJfcG9vbC5zYV9tYW5hZ2VyLAorCQkJICAgICAmKCpzZW1hcGhvcmUp LT5zYV9ibywgOCwgOCwgdHJ1ZSk7CisJaWYgKHIpIHsKKwkJa2ZyZWUoKnNlbWFwaG9yZSk7CisJ CSpzZW1hcGhvcmUgPSBOVUxMOworCQlyZXR1cm4gcjsKKwl9CisJKCpzZW1hcGhvcmUpLT53YWl0 ZXJzID0gMDsKKwkoKnNlbWFwaG9yZSktPmdwdV9hZGRyID0gcmFkZW9uX3NhX2JvX2dwdV9hZGRy KCgqc2VtYXBob3JlKS0+c2FfYm8pOworCSooKHVpbnQ2NF90KilyYWRlb25fc2FfYm9fY3B1X2Fk ZHIoKCpzZW1hcGhvcmUpLT5zYV9ibykpID0gMDsKIAlyZXR1cm4gMDsKIH0KIAogdm9pZCByYWRl b25fc2VtYXBob3JlX2VtaXRfc2lnbmFsKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQg cmluZywKIAkJCSAgICAgICAgICBzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZSAqc2VtYXBob3JlKQog eworCS0tc2VtYXBob3JlLT53YWl0ZXJzOwogCXJhZGVvbl9zZW1hcGhvcmVfcmluZ19lbWl0KHJk ZXYsIHJpbmcsICZyZGV2LT5yaW5nW3JpbmddLCBzZW1hcGhvcmUsIGZhbHNlKTsKIH0KIAogdm9p ZCByYWRlb25fc2VtYXBob3JlX2VtaXRfd2FpdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwg aW50IHJpbmcsCiAJCQkgICAgICAgIHN0cnVjdCByYWRlb25fc2VtYXBob3JlICpzZW1hcGhvcmUp CiB7CisJKytzZW1hcGhvcmUtPndhaXRlcnM7CiAJcmFkZW9uX3NlbWFwaG9yZV9yaW5nX2VtaXQo cmRldiwgcmluZywgJnJkZXYtPnJpbmdbcmluZ10sIHNlbWFwaG9yZSwgdHJ1ZSk7CiB9CiAKQEAg LTIwMCwyOSArMTIyLDE2IEBAIGVycm9yOgogfQogCiB2b2lkIHJhZGVvbl9zZW1hcGhvcmVfZnJl ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKLQkJCSAgIHN0cnVjdCByYWRlb25fc2VtYXBo b3JlICpzZW1hcGhvcmUpCisJCQkgICBzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZSAqc2VtYXBob3Jl LAorCQkJICAgc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UpCiB7Ci0JdW5zaWduZWQgbG9uZyBp cnFfZmxhZ3M7Ci0KLQl3cml0ZV9sb2NrX2lycXNhdmUoJnJkZXYtPnNlbWFwaG9yZV9kcnYubG9j aywgaXJxX2ZsYWdzKTsKLQlzZW1hcGhvcmUtPmJvLT5udXNlZC0tOwotCWxpc3RfYWRkX3RhaWwo JnNlbWFwaG9yZS0+bGlzdCwgJnNlbWFwaG9yZS0+Ym8tPmZyZWUpOwotCXJhZGVvbl9zZW1hcGhv cmVfc2hyaW5rX2xvY2tlZChyZGV2KTsKLQl3cml0ZV91bmxvY2tfaXJxcmVzdG9yZSgmcmRldi0+ c2VtYXBob3JlX2Rydi5sb2NrLCBpcnFfZmxhZ3MpOwotfQotCi12b2lkIHJhZGVvbl9zZW1hcGhv cmVfZHJpdmVyX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCi17Ci0Jc3RydWN0IHJh ZGVvbl9zZW1hcGhvcmVfYm8gKmJvLCAqbjsKLQl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKLQot CXdyaXRlX2xvY2tfaXJxc2F2ZSgmcmRldi0+c2VtYXBob3JlX2Rydi5sb2NrLCBpcnFfZmxhZ3Mp OwotCS8qIHdlIGZvcmNlIHRvIGZyZWUgZXZlcnl0aGluZyAqLwotCWxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShibywgbiwgJnJkZXYtPnNlbWFwaG9yZV9kcnYuYm8sIGxpc3QpIHsKLQkJaWYgKCFs aXN0X2VtcHR5KCZiby0+ZnJlZSkpIHsKLQkJCWRldl9lcnIocmRldi0+ZGV2LCAic3RpbGwgaW4g dXNlIHNlbWFwaG9yZVxuIik7Ci0JCX0KLQkJcmFkZW9uX3NlbWFwaG9yZV9kZWxfYm9fbG9ja2Vk KHJkZXYsIGJvKTsKKwlpZiAoc2VtYXBob3JlID09IE5VTEwpIHsKKwkJcmV0dXJuOworCX0KKwlp ZiAoc2VtYXBob3JlLT53YWl0ZXJzID4gMCkgeworCQlkZXZfZXJyKHJkZXYtPmRldiwgInNlbWFw aG9yZSAlcCBoYXMgbW9yZSB3YWl0ZXJzIHRoYW4gc2lnbmFsZXJzLCIKKwkJCSIgaGFyZHdhcmUg bG9ja3VwIGltbWluZW50IVxuIiwgc2VtYXBob3JlKTsKIAl9Ci0Jd3JpdGVfdW5sb2NrX2lycXJl c3RvcmUoJnJkZXYtPnNlbWFwaG9yZV9kcnYubG9jaywgaXJxX2ZsYWdzKTsKKwlyYWRlb25fc2Ff Ym9fZnJlZShyZGV2LCAmc2VtYXBob3JlLT5zYV9ibywgZmVuY2UpOworCWtmcmVlKHNlbWFwaG9y ZSk7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90ZXN0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90ZXN0LmMKaW5kZXggZGM1ZGNmNC4uYjA1 NzM4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdGVzdC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3Rlc3QuYwpAQCAtMzE3LDcgKzMxNyw3 IEBAIHZvaWQgcmFkZW9uX3Rlc3RfcmluZ19zeW5jKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LAogCiBvdXRfY2xlYW51cDoKIAlpZiAoc2VtYXBob3JlKQotCQlyYWRlb25fc2VtYXBob3JlX2Zy ZWUocmRldiwgc2VtYXBob3JlKTsKKwkJcmFkZW9uX3NlbWFwaG9yZV9mcmVlKHJkZXYsIHNlbWFw aG9yZSwgTlVMTCk7CiAKIAlpZiAoZmVuY2UxKQogCQlyYWRlb25fZmVuY2VfdW5yZWYoJmZlbmNl MSk7CkBAIC00MzcsNyArNDM3LDcgQEAgdm9pZCByYWRlb25fdGVzdF9yaW5nX3N5bmMyKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAogCiBvdXRfY2xlYW51cDoKIAlpZiAoc2VtYXBob3JlKQot CQlyYWRlb25fc2VtYXBob3JlX2ZyZWUocmRldiwgc2VtYXBob3JlKTsKKwkJcmFkZW9uX3NlbWFw aG9yZV9mcmVlKHJkZXYsIHNlbWFwaG9yZSwgTlVMTCk7CiAKIAlpZiAoZmVuY2VBKQogCQlyYWRl b25fZmVuY2VfdW5yZWYoJmZlbmNlQSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3J2NzcwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzcwLmMKaW5kZXggYThiMDAx Ni4uNDBmODJlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzAuYwpAQCAtMTI3OCw3ICsxMjc4LDYgQEAg dm9pZCBydjc3MF9maW5pKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCXJ2NzcwX3BjaWVf Z2FydF9maW5pKHJkZXYpOwogCXI2MDBfdnJhbV9zY3JhdGNoX2ZpbmkocmRldik7CiAJcmFkZW9u X2dlbV9maW5pKHJkZXYpOwotCXJhZGVvbl9zZW1hcGhvcmVfZHJpdmVyX2ZpbmkocmRldik7CiAJ cmFkZW9uX2ZlbmNlX2RyaXZlcl9maW5pKHJkZXYpOwogCXJhZGVvbl9hZ3BfZmluaShyZGV2KTsK IAlyYWRlb25fYm9fZmluaShyZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYwppbmRleCBmOGVlMDY2Li5iMjVh OGZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9zaS5jCkBAIC00MTA3LDcgKzQxMDcsNiBAQCB2b2lkIHNpX2Zpbmko c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJc2lfcGNpZV9nYXJ0X2ZpbmkocmRldik7CiAJ cjYwMF92cmFtX3NjcmF0Y2hfZmluaShyZGV2KTsKIAlyYWRlb25fZ2VtX2ZpbmkocmRldik7Ci0J cmFkZW9uX3NlbWFwaG9yZV9kcml2ZXJfZmluaShyZGV2KTsKIAlyYWRlb25fZmVuY2VfZHJpdmVy X2ZpbmkocmRldik7CiAJcmFkZW9uX2JvX2ZpbmkocmRldik7CiAJcmFkZW9uX2F0b21iaW9zX2Zp bmkocmRldik7Ci0tIAoxLjcuNy42CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=