From mboxrd@z Thu Jan 1 00:00:00 1970 From: j.glisse@gmail.com Subject: [PATCH 13/24] drm/radeon: fix a bug with the ring syncing code Date: Wed, 25 Apr 2012 15:03:18 -0400 Message-ID: <1335380609-5804-14-git-send-email-j.glisse@gmail.com> References: <1335380609-5804-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-f49.google.com (mail-qa0-f49.google.com [209.85.216.49]) by gabe.freedesktop.org (Postfix) with ESMTP id 43DB89F3A7 for ; Wed, 25 Apr 2012 12:04:04 -0700 (PDT) Received: by mail-qa0-f49.google.com with SMTP id j40so467725qab.15 for ; Wed, 25 Apr 2012 12:04:04 -0700 (PDT) In-Reply-To: <1335380609-5804-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: =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGU+CgpSaW5ncyBu ZWVkIHRvIGxvY2sgaW4gb3JkZXIsIG90aGVyd2lzZQp0aGUgcmluZyBzdWJzeXN0ZW0gY2FuIGRl YWRsb2NrLgoKdjI6IGZpeCBlcnJvciBoYW5kbGluZyBhbmQgbnVtYmVyIG9mIGxvY2tlZCBkb3Vi bGV3b3Jkcy4KdjM6IHN0b3AgY3JlYXRpbmcgdW5uZWVkZWQgc2VtYXBob3Jlcy4KClNpZ25lZC1v ZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGRlYXRoc2ltcGxlQHZvZGFmb25lLmRlPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggICAgICAgICAgIHwgICAgNCArKwogZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYyAgICAgICAgfCAgIDM1ICsrKysrKy0tLS0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBob3JlLmMgfCAgIDU2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl90dG0uYyAgICAgICB8ICAgNDggKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBj aGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb24uaAppbmRleCA1NzVkYzA1Li5jN2YxNGQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgK QEAgLTQ0Miw2ICs0NDIsMTAgQEAgdm9pZCByYWRlb25fc2VtYXBob3JlX2VtaXRfc2lnbmFsKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZywKIAkJCQkgIHN0cnVjdCByYWRlb25f c2VtYXBob3JlICpzZW1hcGhvcmUpOwogdm9pZCByYWRlb25fc2VtYXBob3JlX2VtaXRfd2FpdChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpbmcsCiAJCQkJc3RydWN0IHJhZGVvbl9z ZW1hcGhvcmUgKnNlbWFwaG9yZSk7CitpbnQgcmFkZW9uX3NlbWFwaG9yZV9zeW5jX3JpbmdzKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAorCQkJCXN0cnVjdCByYWRlb25fc2VtYXBob3JlICpz ZW1hcGhvcmUsCisJCQkJYm9vbCBzeW5jX3RvW1JBREVPTl9OVU1fUklOR1NdLAorCQkJCWludCBk c3RfcmluZyk7CiB2b2lkIHJhZGVvbl9zZW1hcGhvcmVfZnJlZShzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldiwKIAkJCSAgIHN0cnVjdCByYWRlb25fc2VtYXBob3JlICpzZW1hcGhvcmUpOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYwppbmRleCA1Y2FjODMyLi42NGI4NmU3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2NzLmMKQEAgLTExOCw2ICsxMTgsNyBAQCBzdGF0aWMgaW50IHJh ZGVvbl9jc19nZXRfcmluZyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwgdTMyIHJpbmcsIHMz MiBwcmlvcml0eQogc3RhdGljIGludCByYWRlb25fY3Nfc3luY19yaW5ncyhzdHJ1Y3QgcmFkZW9u X2NzX3BhcnNlciAqcCkKIHsKIAlib29sIHN5bmNfdG9fcmluZ1tSQURFT05fTlVNX1JJTkdTXSA9 IHsgfTsKKwlib29sIG5lZWRfc3luYyA9IGZhbHNlOwogCWludCBpLCByOwogCiAJZm9yIChpID0g MDsgaSA8IHAtPm5yZWxvY3M7IGkrKykgewpAQCAtMTI2LDM2ICsxMjcsMjQgQEAgc3RhdGljIGlu dCByYWRlb25fY3Nfc3luY19yaW5ncyhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCkKIAogCQlp ZiAoIShwLT5yZWxvY3NbaV0uZmxhZ3MgJiBSQURFT05fUkVMT0NfRE9OVF9TWU5DKSkgewogCQkJ c3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UgPSBwLT5yZWxvY3NbaV0ucm9iai0+dGJvLnN5bmNf b2JqOwotCQkJaWYgKCFyYWRlb25fZmVuY2Vfc2lnbmFsZWQoZmVuY2UpKSB7CisJCQlpZiAoZmVu Y2UtPnJpbmcgIT0gcC0+cmluZyAmJiAhcmFkZW9uX2ZlbmNlX3NpZ25hbGVkKGZlbmNlKSkgewog CQkJCXN5bmNfdG9fcmluZ1tmZW5jZS0+cmluZ10gPSB0cnVlOworCQkJCW5lZWRfc3luYyA9IHRy dWU7CiAJCQl9CiAJCX0KIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX05VTV9SSU5HUzsg KytpKSB7Ci0JCS8qIG5vIG5lZWQgdG8gc3luYyB0byBvdXIgb3duIG9yIHVudXNlZCByaW5ncyAq LwotCQlpZiAoaSA9PSBwLT5yaW5nIHx8ICFzeW5jX3RvX3JpbmdbaV0gfHwgIXAtPnJkZXYtPnJp bmdbaV0ucmVhZHkpCi0JCQljb250aW51ZTsKLQotCQlpZiAoIXAtPmliLT5mZW5jZS0+c2VtYXBo b3JlKSB7Ci0JCQlyID0gcmFkZW9uX3NlbWFwaG9yZV9jcmVhdGUocC0+cmRldiwgJnAtPmliLT5m ZW5jZS0+c2VtYXBob3JlKTsKLQkJCWlmIChyKQotCQkJCXJldHVybiByOwotCQl9Ci0KLQkJciA9 IHJhZGVvbl9yaW5nX2xvY2socC0+cmRldiwgJnAtPnJkZXYtPnJpbmdbaV0sIDMpOwotCQlpZiAo cikKLQkJCXJldHVybiByOwotCQlyYWRlb25fc2VtYXBob3JlX2VtaXRfc2lnbmFsKHAtPnJkZXYs IGksIHAtPmliLT5mZW5jZS0+c2VtYXBob3JlKTsKLQkJcmFkZW9uX3JpbmdfdW5sb2NrX2NvbW1p dChwLT5yZGV2LCAmcC0+cmRldi0+cmluZ1tpXSk7CisJaWYgKCFuZWVkX3N5bmMpIHsKKwkJcmV0 dXJuIDA7CisJfQogCi0JCXIgPSByYWRlb25fcmluZ19sb2NrKHAtPnJkZXYsICZwLT5yZGV2LT5y aW5nW3AtPnJpbmddLCAzKTsKLQkJaWYgKHIpCi0JCQlyZXR1cm4gcjsKLQkJcmFkZW9uX3NlbWFw aG9yZV9lbWl0X3dhaXQocC0+cmRldiwgcC0+cmluZywgcC0+aWItPmZlbmNlLT5zZW1hcGhvcmUp OwotCQlyYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHAtPnJkZXYsICZwLT5yZGV2LT5yaW5nW3At PnJpbmddKTsKKwlyID0gcmFkZW9uX3NlbWFwaG9yZV9jcmVhdGUocC0+cmRldiwgJnAtPmliLT5m ZW5jZS0+c2VtYXBob3JlKTsKKwlpZiAocikgeworCQlyZXR1cm4gcjsKIAl9Ci0JcmV0dXJuIDA7 CisKKwlyZXR1cm4gcmFkZW9uX3NlbWFwaG9yZV9zeW5jX3JpbmdzKHAtPnJkZXYsIHAtPmliLT5m ZW5jZS0+c2VtYXBob3JlLAorCQkJCQkgICBzeW5jX3RvX3JpbmcsIHAtPnJpbmcpOwogfQogCiBp bnQgcmFkZW9uX2NzX3BhcnNlcl9pbml0KHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLCB2b2lk ICpkYXRhKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBo b3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zZW1hcGhvcmUuYwppbmRleCA5 ZTJjZjQwLi4wNDJkYmZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9zZW1hcGhvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zZW1hcGhv cmUuYwpAQCAtNzUsNiArNzUsNjIgQEAgdm9pZCByYWRlb25fc2VtYXBob3JlX2VtaXRfd2FpdChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IHJpbmcsCiAJcmFkZW9uX3NlbWFwaG9yZV9y aW5nX2VtaXQocmRldiwgcmluZywgJnJkZXYtPnJpbmdbcmluZ10sIHNlbWFwaG9yZSwgdHJ1ZSk7 CiB9CiAKK2ludCByYWRlb25fc2VtYXBob3JlX3N5bmNfcmluZ3Moc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYsCisJCQkJc3RydWN0IHJhZGVvbl9zZW1hcGhvcmUgKnNlbWFwaG9yZSwKKwkJCQli b29sIHN5bmNfdG9bUkFERU9OX05VTV9SSU5HU10sCisJCQkJaW50IGRzdF9yaW5nKQoreworCWlu dCBpLCByOworCisJZm9yIChpID0gMDsgaSA8IFJBREVPTl9OVU1fUklOR1M7ICsraSkgeworCQl1 bnNpZ25lZCBudW1fb3BzID0gaSA9PSBkc3RfcmluZyA/IFJBREVPTl9OVU1fUklOR1MgOiAxOwor CisJCS8qIGRvbid0IGxvY2sgdW51c2VkIHJpbmdzICovCisJCWlmICghc3luY190b1tpXSAmJiBp ICE9IGRzdF9yaW5nKQorCQkJY29udGludWU7CisKKwkJLyogcHJldmVudCBHUFUgZGVhZGxvY2tz ICovCisJCWlmICghcmRldi0+cmluZ1tpXS5yZWFkeSkgeworCQkJZGV2X2VycihyZGV2LT5kZXYs ICJUcnlpbmcgdG8gc3luYyB0byBhIGRpc2FibGVkIHJpbmchIik7CisJCQlyID0gLUVJTlZBTDsK KwkJCWdvdG8gZXJyb3I7CisJCX0KKworICAgICAgICAgICAgICAgIHIgPSByYWRlb25fcmluZ19s b2NrKHJkZXYsICZyZGV2LT5yaW5nW2ldLCBudW1fb3BzICogOCk7CisgICAgICAgICAgICAgICAg aWYgKHIpCisJCQlnb3RvIGVycm9yOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTlVN X1JJTkdTOyArK2kpIHsKKwkJLyogbm8gbmVlZCB0byBzeW5jIHRvIG91ciBvd24gb3IgdW51c2Vk IHJpbmdzICovCisJCWlmICghc3luY190b1tpXSB8fCBpID09IGRzdF9yaW5nKQorICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWU7CisKKwkJcmFkZW9uX3NlbWFwaG9yZV9lbWl0X3NpZ25h bChyZGV2LCBpLCBzZW1hcGhvcmUpOworCQlyYWRlb25fc2VtYXBob3JlX2VtaXRfd2FpdChyZGV2 LCBkc3RfcmluZywgc2VtYXBob3JlKTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX05V TV9SSU5HUzsgKytpKSB7CisKKwkJLyogZG9uJ3QgdW5sb2NrIHVudXNlZCByaW5ncyAqLworCQlp ZiAoIXN5bmNfdG9baV0gJiYgaSAhPSBkc3RfcmluZykKKwkJCWNvbnRpbnVlOworCisJCXJhZGVv bl9yaW5nX3VubG9ja19jb21taXQocmRldiwgJnJkZXYtPnJpbmdbaV0pOworCX0KKworCXJldHVy biAwOworCitlcnJvcjoKKwkvKiB1bmxvY2sgYWxsIGxvY2tzIHRha2VuIHNvIGZhciAqLworCWZv ciAoLS1pOyBpID49IDA7IC0taSkgeworCQlpZiAoc3luY190b1tpXSB8fCBpID09IGRzdF9yaW5n KSB7CisJCQlyYWRlb25fcmluZ191bmxvY2tfdW5kbyhyZGV2LCAmcmRldi0+cmluZ1tpXSk7CisJ CX0KKwl9CisJcmV0dXJuIHI7Cit9CisKIHZvaWQgcmFkZW9uX3NlbWFwaG9yZV9mcmVlKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJICAgc3RydWN0IHJhZGVvbl9zZW1hcGhvcmUgKnNl bWFwaG9yZSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0 bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKaW5kZXggZjQ5M2M2NC4u NWUzZDU0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKQEAgLTIyMiw4ICsyMjIs OCBAQCBzdGF0aWMgaW50IHJhZGVvbl9tb3ZlX2JsaXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKIHsKIAlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldjsKIAl1aW50NjRfdCBvbGRfc3Rh cnQsIG5ld19zdGFydDsKLQlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZTsKLQlpbnQgciwgaTsK KwlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSwgKm9sZF9mZW5jZTsKKwlpbnQgcjsKIAogCXJk ZXYgPSByYWRlb25fZ2V0X3JkZXYoYm8tPmJkZXYpOwogCXIgPSByYWRlb25fZmVuY2VfY3JlYXRl KHJkZXYsICZmZW5jZSwgcmFkZW9uX2NvcHlfcmluZ19pbmRleChyZGV2KSk7CkBAIC0yNDIsNiAr MjQyLDcgQEAgc3RhdGljIGludCByYWRlb25fbW92ZV9ibGl0KHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCURSTV9FUlJPUigiVW5rbm93biBwbGFj ZW1lbnQgJWRcbiIsIG9sZF9tZW0tPm1lbV90eXBlKTsKKwkJcmFkZW9uX2ZlbmNlX3VucmVmKCZm ZW5jZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlzd2l0Y2ggKG5ld19tZW0tPm1lbV90eXBl KSB7CkBAIC0yNTMsNDIgKzI1NCwzNSBAQCBzdGF0aWMgaW50IHJhZGVvbl9tb3ZlX2JsaXQoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJRFJNX0VS Uk9SKCJVbmtub3duIHBsYWNlbWVudCAlZFxuIiwgb2xkX21lbS0+bWVtX3R5cGUpOworCQlyYWRl b25fZmVuY2VfdW5yZWYoJmZlbmNlKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCWlmICghcmRl di0+cmluZ1tyYWRlb25fY29weV9yaW5nX2luZGV4KHJkZXYpXS5yZWFkeSkgewogCQlEUk1fRVJS T1IoIlRyeWluZyB0byBtb3ZlIG1lbW9yeSB3aXRoIHJpbmcgdHVybmVkIG9mZi5cbiIpOworCQly YWRlb25fZmVuY2VfdW5yZWYoJmZlbmNlKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJQlVJ TERfQlVHX09OKChQQUdFX1NJWkUgJSBSQURFT05fR1BVX1BBR0VfU0laRSkgIT0gMCk7CiAKIAkv KiBzeW5jIG90aGVyIHJpbmdzICovCi0JaWYgKHJkZXYtPmZhbWlseSA+PSBDSElQX1I2MDApIHsK LQkJZm9yIChpID0gMDsgaSA8IFJBREVPTl9OVU1fUklOR1M7ICsraSkgewotCQkJLyogbm8gbmVl ZCB0byBzeW5jIHRvIG91ciBvd24gb3IgdW51c2VkIHJpbmdzICovCi0JCQlpZiAoaSA9PSByYWRl b25fY29weV9yaW5nX2luZGV4KHJkZXYpIHx8ICFyZGV2LT5yaW5nW2ldLnJlYWR5KQotCQkJCWNv bnRpbnVlOwotCi0JCQlpZiAoIWZlbmNlLT5zZW1hcGhvcmUpIHsKLQkJCQlyID0gcmFkZW9uX3Nl bWFwaG9yZV9jcmVhdGUocmRldiwgJmZlbmNlLT5zZW1hcGhvcmUpOwotCQkJCS8qIEZJWE1FOiBo YW5kbGUgc2VtYXBob3JlIGVycm9yICovCi0JCQkJaWYgKHIpCi0JCQkJCWNvbnRpbnVlOwotCQkJ fQorCW9sZF9mZW5jZSA9IGJvLT5zeW5jX29iajsKKwlpZiAob2xkX2ZlbmNlICYmIG9sZF9mZW5j ZS0+cmluZyAhPSBmZW5jZS0+cmluZworCSAgICAmJiAhcmFkZW9uX2ZlbmNlX3NpZ25hbGVkKG9s ZF9mZW5jZSkpIHsKKwkJYm9vbCBzeW5jX3RvX3JpbmdbUkFERU9OX05VTV9SSU5HU10gPSB7IH07 CisJCXN5bmNfdG9fcmluZ1tvbGRfZmVuY2UtPnJpbmddID0gdHJ1ZTsKKworCQlyID0gcmFkZW9u X3NlbWFwaG9yZV9jcmVhdGUocmRldiwgJmZlbmNlLT5zZW1hcGhvcmUpOworCQlpZiAocikgewor CQkJcmFkZW9uX2ZlbmNlX3VucmVmKCZmZW5jZSk7CisJCQlyZXR1cm4gcjsKKwkJfQogCi0JCQly ID0gcmFkZW9uX3JpbmdfbG9jayhyZGV2LCAmcmRldi0+cmluZ1tpXSwgMyk7Ci0JCQkvKiBGSVhN RTogaGFuZGxlIHJpbmcgbG9jayBlcnJvciAqLwotCQkJaWYgKHIpCi0JCQkJY29udGludWU7Ci0J CQlyYWRlb25fc2VtYXBob3JlX2VtaXRfc2lnbmFsKHJkZXYsIGksIGZlbmNlLT5zZW1hcGhvcmUp OwotCQkJcmFkZW9uX3JpbmdfdW5sb2NrX2NvbW1pdChyZGV2LCAmcmRldi0+cmluZ1tpXSk7Ci0K LQkJCXIgPSByYWRlb25fcmluZ19sb2NrKHJkZXYsICZyZGV2LT5yaW5nW3JhZGVvbl9jb3B5X3Jp bmdfaW5kZXgocmRldildLCAzKTsKLQkJCS8qIEZJWE1FOiBoYW5kbGUgcmluZyBsb2NrIGVycm9y ICovCi0JCQlpZiAocikKLQkJCQljb250aW51ZTsKLQkJCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF93 YWl0KHJkZXYsIHJhZGVvbl9jb3B5X3JpbmdfaW5kZXgocmRldiksIGZlbmNlLT5zZW1hcGhvcmUp OwotCQkJcmFkZW9uX3JpbmdfdW5sb2NrX2NvbW1pdChyZGV2LCAmcmRldi0+cmluZ1tyYWRlb25f Y29weV9yaW5nX2luZGV4KHJkZXYpXSk7CisJCXIgPSByYWRlb25fc2VtYXBob3JlX3N5bmNfcmlu Z3MocmRldiwgZmVuY2UtPnNlbWFwaG9yZSwKKwkJCQkJCXN5bmNfdG9fcmluZywgZmVuY2UtPnJp bmcpOworCQlpZiAocikgeworCQkJcmFkZW9uX2ZlbmNlX3VucmVmKCZmZW5jZSk7CisJCQlyZXR1 cm4gcjsKIAkJfQogCX0KIAotLSAKMS43LjcuNgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK