From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v2] drm/fb-helper: Propagate errors from initial config failure Date: Fri, 19 Dec 2014 11:21:32 +0100 Message-ID: <1418984492-6598-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: Received: from mail-pa0-f54.google.com (mail-pa0-f54.google.com [209.85.220.54]) by gabe.freedesktop.org (Postfix) with ESMTP id 9B21A6E403 for ; Fri, 19 Dec 2014 02:21:37 -0800 (PST) Received: by mail-pa0-f54.google.com with SMTP id fb1so946559pad.13 for ; Fri, 19 Dec 2014 02:21:37 -0800 (PST) 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: Daniel Vetter , Tomi Valkeinen , Ben Skeggs , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCk1ha2UgZHJtX2ZiX2hl bHBlcl9pbml0aWFsX2NvbmZpZygpIHJldHVybiBhbiBpbnQgcmF0aGVyIHRoYW4gYSBib29sIHNv CnRoYXQgdGhlIGVycm9yIGNhbiBiZSBwcm9wZXJseSBwcm9wYWdhdGVkLiBXaGlsZSBhdCBpdCwg dXBkYXRlIGRyaXZlcnMKdG8gcHJvcGFnYXRlIGVycm9ycyBmdXJ0aGVyIHJhdGhlciB0aGFuIGp1 c3QgaWdub3JlIHRoZW0uCgp2MjoKLSBjaXJydXM6IE5vIGNsZWFudXAgaXMgcmVxdWlyZWQsIHRo ZSB0b3AtbGV2ZWwgY2lycnVzX2RyaXZlcl9sb2FkKCkKICB3aWxsIGRvIGl0IGFzIHBhcnQgb2Yg Y2lycnVzX2RyaXZlcl91bmxvYWQoKSBpbiBpdHMgY2xlYW51cCBwYXRoLgogIFJlcG9ydGVkLWJ5 OiBGZW5nZ3VhbmcgV3UgPGZlbmdndWFuZy53dUBpbnRlbC5jb20+CgpDYzogRGF2aWQgQWlybGll IDxhaXJsaWVkQGxpbnV4LmllPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZnds bC5jaD4KQ2M6IFBhdHJpayBKYWtvYnNzb24gPHBhdHJpay5yLmpha29ic3NvbkBnbWFpbC5jb20+ CkNjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CkNjOiBUb21pIFZhbGtlaW5lbiA8 dG9taS52YWxrZWluZW5AdGkuY29tPgpDYzogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hl ckBhbWQuY29tPgpDYzogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29t PgpDYzogQmVuIFNrZWdncyA8YnNrZWdnc0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBUaGll cnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgpSZXZpZXdlZC1ieTogQWxleCBEZXVjaGVy IDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgpSZXZpZXdlZC1ieTogUGF0cmlrIEpha29ic3Nv biA8cGF0cmlrLnIuamFrb2Jzc29uQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF9mYi5jICAgICAgICAgICAgfCAyMSArKysrKysrKysrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9ib2Nocy9ib2Noc19mYmRldi5jICAgICB8IDE0ICsrKysrKysrKysrKy0tCiBkcml2ZXJz L2dwdS9kcm0vY2lycnVzL2NpcnJ1c19mYmRldi5jICAgfCAxNCArKysrKysrKystLS0tLQogZHJp dmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1 L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYyAgICB8IDIyICsrKysrKysrKysrKysrKysrKy0tLS0K IGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZmIuYyAgICB8IDEyICsrKysrKysrKyst LQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmJkZXYuYyAgICAgICAgIHwgMTAgKysrKysrKyst LQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mYmNvbi5jIHwgMjEgKysrKysrKysr KysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2ZiZGV2LmMgICAgfCAx MCArKysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9mYi5jICAgICAgICAgICAgfCAy MiArKysrKysrKysrKysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9m Yi5jICAgICAgfCAyMSArKysrKysrKysrKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS91ZGwv dWRsX2ZiLmMgICAgICAgICAgICB8IDIyICsrKysrKysrKysrKysrKy0tLS0tLS0KIGluY2x1ZGUv ZHJtL2RybV9mYl9oZWxwZXIuaCAgICAgICAgICAgICB8ICAyICstCiAxMyBmaWxlcyBjaGFuZ2Vk LCAxNDMgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FzdC9hc3RfZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMKaW5k ZXggNWM2MGFlNTI0YzQ1Li5mZjY4ZWVmYWUyNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hc3QvYXN0X2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZmIuYwpAQCAtMzM1 LDE4ICszMzUsMjcgQEAgaW50IGFzdF9mYmRldl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAKIAlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXQoZGV2LCAmYWZiZGV2LT5oZWxwZXIsCiAJCQkJ IDEsIDEpOwotCWlmIChyZXQpIHsKLQkJa2ZyZWUoYWZiZGV2KTsKLQkJcmV0dXJuIHJldDsKLQl9 CisJaWYgKHJldCkKKwkJZ290byBmcmVlOwogCi0JZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2Fs bF9jb25uZWN0b3JzKCZhZmJkZXYtPmhlbHBlcik7CisJcmV0ID0gZHJtX2ZiX2hlbHBlcl9zaW5n bGVfYWRkX2FsbF9jb25uZWN0b3JzKCZhZmJkZXYtPmhlbHBlcik7CisJaWYgKHJldCkKKwkJZ290 byBmaW5pOwogCiAJLyogZGlzYWJsZSBhbGwgdGhlIHBvc3NpYmxlIG91dHB1dHMvY3J0Y3MgYmVm b3JlIGVudGVyaW5nIEtNUyBtb2RlICovCiAJZHJtX2hlbHBlcl9kaXNhYmxlX3VudXNlZF9mdW5j dGlvbnMoZGV2KTsKIAotCWRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoJmFmYmRldi0+aGVs cGVyLCAzMik7CisJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmYWZiZGV2LT5o ZWxwZXIsIDMyKTsKKwlpZiAocmV0KQorCQlnb3RvIGZpbmk7CisKIAlyZXR1cm4gMDsKKworZmlu aToKKwlkcm1fZmJfaGVscGVyX2ZpbmkoJmFmYmRldi0+aGVscGVyKTsKK2ZyZWU6CisJa2ZyZWUo YWZiZGV2KTsKKwlyZXR1cm4gcmV0OwogfQogCiB2b2lkIGFzdF9mYmRldl9maW5pKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNf ZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19mYmRldi5jCmluZGV4IDYxZGJm MDlkZmY1ZC4uOTc2ZDk3OThkYzk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYm9jaHMv Ym9jaHNfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZmJkZXYuYwpA QCAtMjA3LDEyICsyMDcsMjIgQEAgaW50IGJvY2hzX2ZiZGV2X2luaXQoc3RydWN0IGJvY2hzX2Rl dmljZSAqYm9jaHMpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWRybV9mYl9oZWxwZXJf c2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycygmYm9jaHMtPmZiLmhlbHBlcik7CisJcmV0ID0gZHJt X2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZib2Nocy0+ZmIuaGVscGVyKTsK KwlpZiAocmV0KQorCQlnb3RvIGZpbmk7CisKIAlkcm1faGVscGVyX2Rpc2FibGVfdW51c2VkX2Z1 bmN0aW9ucyhib2Nocy0+ZGV2KTsKLQlkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKCZib2No cy0+ZmIuaGVscGVyLCAzMik7CisKKwlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmln KCZib2Nocy0+ZmIuaGVscGVyLCAzMik7CisJaWYgKHJldCkKKwkJZ290byBmaW5pOwogCiAJYm9j aHMtPmZiLmluaXRpYWxpemVkID0gdHJ1ZTsKIAlyZXR1cm4gMDsKKworZmluaToKKwlkcm1fZmJf aGVscGVyX2ZpbmkoJmJvY2hzLT5mYi5oZWxwZXIpOworCXJldHVybiByZXQ7CiB9CiAKIHZvaWQg Ym9jaHNfZmJkZXZfZmluaShzdHJ1Y3QgYm9jaHNfZGV2aWNlICpib2NocykKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0v Y2lycnVzL2NpcnJ1c19mYmRldi5jCmluZGV4IDUwMmE4OWViNTRiNS4uNWYzNGQ3ZTI1MmQzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19mYmRldi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2ZiZGV2LmMKQEAgLTMxNywxNSArMzE3LDE5IEBA IGludCBjaXJydXNfZmJkZXZfaW5pdChzdHJ1Y3QgY2lycnVzX2RldmljZSAqY2RldikKIAogCXJl dCA9IGRybV9mYl9oZWxwZXJfaW5pdChjZGV2LT5kZXYsICZnZmJkZXYtPmhlbHBlciwKIAkJCQkg Y2Rldi0+bnVtX2NydGMsIENJUlJVU0ZCX0NPTk5fTElNSVQpOwotCWlmIChyZXQpIHsKLQkJa2Zy ZWUoZ2ZiZGV2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gZHJtX2ZiX2hl bHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZnZmJkZXYtPmhlbHBlcik7CisJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKLQl9Ci0JZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25u ZWN0b3JzKCZnZmJkZXYtPmhlbHBlcik7CiAKIAkvKiBkaXNhYmxlIGFsbCB0aGUgcG9zc2libGUg b3V0cHV0cy9jcnRjcyBiZWZvcmUgZW50ZXJpbmcgS01TIG1vZGUgKi8KIAlkcm1faGVscGVyX2Rp c2FibGVfdW51c2VkX2Z1bmN0aW9ucyhjZGV2LT5kZXYpOwotCWRybV9mYl9oZWxwZXJfaW5pdGlh bF9jb25maWcoJmdmYmRldi0+aGVscGVyLCBicHBfc2VsKTsKKworCXJldCA9IGRybV9mYl9oZWxw ZXJfaW5pdGlhbF9jb25maWcoJmdmYmRldi0+aGVscGVyLCBicHBfc2VsKTsKKwlpZiAocmV0KQor CQlyZXR1cm4gcmV0OwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwppbmRl eCA1MmNlMjZkNmI0ZmIuLjg3NmYxZWYwYWNkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9mYl9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCkBA IC0xNjg4LDcgKzE2ODgsNyBAQCBvdXQ6CiAgKiBSRVRVUk5TOgogICogWmVybyBpZiBldmVyeXRo aW5nIHdlbnQgb2ssIG5vbnplcm8gb3RoZXJ3aXNlLgogICovCi1ib29sIGRybV9mYl9oZWxwZXJf aW5pdGlhbF9jb25maWcoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgaW50IGJwcF9z ZWwpCitpbnQgZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyLCBpbnQgYnBwX3NlbCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZmJfaGVscGVyLT5kZXY7CiAJaW50IGNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9nbWE1MDAvZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZnJhbWVi dWZmZXIuYwppbmRleCBkZGQ5MGRkYmMyMDAuLjJkNDJjZTZkMzc1NyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2dtYTUwMC9mcmFtZWJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9n bWE1MDAvZnJhbWVidWZmZXIuYwpAQCAtNTkzLDYgKzU5Myw3IEBAIGludCBwc2JfZmJkZXZfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBwc2JfZmJkZXYgKmZiZGV2Owog CXN0cnVjdCBkcm1fcHNiX3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlp bnQgcmV0OwogCiAJZmJkZXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcHNiX2ZiZGV2KSwgR0ZQ X0tFUk5FTCk7CiAJaWYgKCFmYmRldikgewpAQCAtNjA0LDE2ICs2MDUsMjkgQEAgaW50IHBzYl9m YmRldl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlkcm1fZmJfaGVscGVyX3ByZXBh cmUoZGV2LCAmZmJkZXYtPnBzYl9mYl9oZWxwZXIsICZwc2JfZmJfaGVscGVyX2Z1bmNzKTsKIAot CWRybV9mYl9oZWxwZXJfaW5pdChkZXYsICZmYmRldi0+cHNiX2ZiX2hlbHBlciwgZGV2X3ByaXYt Pm9wcy0+Y3J0Y3MsCi0JCQkJCQkJSU5URUxGQl9DT05OX0xJTUlUKTsKKwlyZXQgPSBkcm1fZmJf aGVscGVyX2luaXQoZGV2LCAmZmJkZXYtPnBzYl9mYl9oZWxwZXIsCisJCQkJIGRldl9wcml2LT5v cHMtPmNydGNzLCBJTlRFTEZCX0NPTk5fTElNSVQpOworCWlmIChyZXQpCisJCWdvdG8gZnJlZTsK IAotCWRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycygmZmJkZXYtPnBzYl9m Yl9oZWxwZXIpOworCXJldCA9IGRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9y cygmZmJkZXYtPnBzYl9mYl9oZWxwZXIpOworCWlmIChyZXQpCisJCWdvdG8gZmluaTsKIAogCS8q IGRpc2FibGUgYWxsIHRoZSBwb3NzaWJsZSBvdXRwdXRzL2NydGNzIGJlZm9yZSBlbnRlcmluZyBL TVMgbW9kZSAqLwogCWRybV9oZWxwZXJfZGlzYWJsZV91bnVzZWRfZnVuY3Rpb25zKGRldik7CiAK LQlkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKCZmYmRldi0+cHNiX2ZiX2hlbHBlciwgMzIp OworCXJldCA9IGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoJmZiZGV2LT5wc2JfZmJfaGVs cGVyLCAzMik7CisJaWYgKHJldCkKKwkJZ290byBmaW5pOworCiAJcmV0dXJuIDA7CisKK2Zpbmk6 CisJZHJtX2ZiX2hlbHBlcl9maW5pKCZmYmRldi0+cHNiX2ZiX2hlbHBlcik7CitmcmVlOgorCWtm cmVlKGZiZGV2KTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCBwc2JfZmJkZXZfZmlu aShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21n YWcyMDAvbWdhZzIwMF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9mYi5j CmluZGV4IDQ0MTVhZjM2NjZhYi4uYzM2YjgzMDQwNDJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAv bWdhZzIwMF9mYi5jCkBAIC0zMDMsMTQgKzMwMywyMiBAQCBpbnQgbWdhZzIwMF9mYmRldl9pbml0 KHN0cnVjdCBtZ2FfZGV2aWNlICptZGV2KQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlk cm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoJm1mYmRldi0+aGVscGVyKTsK KwlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoJm1mYmRldi0+ aGVscGVyKTsKKwlpZiAocmV0KQorCQlnb3RvIGZpbmk7CiAKIAkvKiBkaXNhYmxlIGFsbCB0aGUg cG9zc2libGUgb3V0cHV0cy9jcnRjcyBiZWZvcmUgZW50ZXJpbmcgS01TIG1vZGUgKi8KIAlkcm1f aGVscGVyX2Rpc2FibGVfdW51c2VkX2Z1bmN0aW9ucyhtZGV2LT5kZXYpOwogCi0JZHJtX2ZiX2hl bHBlcl9pbml0aWFsX2NvbmZpZygmbWZiZGV2LT5oZWxwZXIsIGJwcF9zZWwpOworCXJldCA9IGRy bV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoJm1mYmRldi0+aGVscGVyLCBicHBfc2VsKTsKKwlp ZiAocmV0KQorCQlnb3RvIGZpbmk7CiAKIAlyZXR1cm4gMDsKKworZmluaToKKwlkcm1fZmJfaGVs cGVyX2ZpbmkoJm1mYmRldi0+aGVscGVyKTsKKwlyZXR1cm4gcmV0OwogfQogCiB2b2lkIG1nYWcy MDBfZmJkZXZfZmluaShzdHJ1Y3QgbWdhX2RldmljZSAqbWRldikKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYmRl di5jCmluZGV4IDk0ZDU1ZTUyNmI0ZS4uNGM5NDY3ZDkxYWRkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9mYmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Zi ZGV2LmMKQEAgLTI0MiwxNyArMjQyLDIzIEBAIHN0cnVjdCBkcm1fZmJfaGVscGVyICptc21fZmJk ZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlnb3RvIGZhaWw7CiAJfQogCi0JZHJt X2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKGhlbHBlcik7CisJcmV0ID0gZHJt X2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKGhlbHBlcik7CisJaWYgKHJldCkK KwkJZ290byBmaW5pOwogCiAJLyogZGlzYWJsZSBhbGwgdGhlIHBvc3NpYmxlIG91dHB1dHMvY3J0 Y3MgYmVmb3JlIGVudGVyaW5nIEtNUyBtb2RlICovCiAJZHJtX2hlbHBlcl9kaXNhYmxlX3VudXNl ZF9mdW5jdGlvbnMoZGV2KTsKIAotCWRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoaGVscGVy LCAzMik7CisJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhoZWxwZXIsIDMyKTsK KwlpZiAocmV0KQorCQlnb3RvIGZpbmk7CiAKIAlwcml2LT5mYmRldiA9IGhlbHBlcjsKIAogCXJl dHVybiBoZWxwZXI7CiAKK2Zpbmk6CisJZHJtX2ZiX2hlbHBlcl9maW5pKGhlbHBlcik7CiBmYWls OgogCWtmcmVlKGZiZGV2KTsKIAlyZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfZmJjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfZmJjb24uYwppbmRleCAzZWQxMmE4Y2ZjOTEuLjVhNzcwNWRjZDY3ZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mYmNvbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmJjb24uYwpAQCAtNTM5LDEyICs1MzksMTIgQEAgbm91 dmVhdV9mYmNvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlyZXQgPSBkcm1fZmJf aGVscGVyX2luaXQoZGV2LCAmZmJjb24tPmhlbHBlciwKIAkJCQkgZGV2LT5tb2RlX2NvbmZpZy5u dW1fY3J0YywgNCk7Ci0JaWYgKHJldCkgewotCQlrZnJlZShmYmNvbik7Ci0JCXJldHVybiByZXQ7 Ci0JfQorCWlmIChyZXQpCisJCWdvdG8gZnJlZTsKIAotCWRybV9mYl9oZWxwZXJfc2luZ2xlX2Fk ZF9hbGxfY29ubmVjdG9ycygmZmJjb24tPmhlbHBlcik7CisJcmV0ID0gZHJtX2ZiX2hlbHBlcl9z aW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZmYmNvbi0+aGVscGVyKTsKKwlpZiAocmV0KQorCQln b3RvIGZpbmk7CiAKIAlpZiAoZHJtLT5kZXZpY2UuaW5mby5yYW1fc2l6ZSA8PSAzMiAqIDEwMjQg KiAxMDI0KQogCQlwcmVmZXJyZWRfYnBwID0gODsKQEAgLTU1Nyw4ICs1NTcsMTcgQEAgbm91dmVh dV9mYmNvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJLyogZGlzYWJsZSBhbGwgdGhl IHBvc3NpYmxlIG91dHB1dHMvY3J0Y3MgYmVmb3JlIGVudGVyaW5nIEtNUyBtb2RlICovCiAJZHJt X2hlbHBlcl9kaXNhYmxlX3VudXNlZF9mdW5jdGlvbnMoZGV2KTsKIAotCWRybV9mYl9oZWxwZXJf aW5pdGlhbF9jb25maWcoJmZiY29uLT5oZWxwZXIsIHByZWZlcnJlZF9icHApOworCXJldCA9IGRy bV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoJmZiY29uLT5oZWxwZXIsIHByZWZlcnJlZF9icHAp OworCWlmIChyZXQpCisJCWdvdG8gZmluaTsKKwogCXJldHVybiAwOworCitmaW5pOgorCWRybV9m Yl9oZWxwZXJfZmluaSgmZmJjb24tPmhlbHBlcik7CitmcmVlOgorCWtmcmVlKGZiY29uKTsKKwly ZXR1cm4gcmV0OwogfQogCiB2b2lkCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRy bS9vbWFwX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2ZiZGV2LmMKaW5k ZXggODQzNmM2ODU3Y2RhLi5kMjkyZDI0YjNhNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9vbWFwZHJtL29tYXBfZmJkZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFw X2ZiZGV2LmMKQEAgLTMzNCwxNyArMzM0LDIzIEBAIHN0cnVjdCBkcm1fZmJfaGVscGVyICpvbWFw X2ZiZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJZ290byBmYWlsOwogCX0KIAot CWRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycyhoZWxwZXIpOworCXJldCA9 IGRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycyhoZWxwZXIpOworCWlmIChy ZXQpCisJCWdvdG8gZmluaTsKIAogCS8qIGRpc2FibGUgYWxsIHRoZSBwb3NzaWJsZSBvdXRwdXRz L2NydGNzIGJlZm9yZSBlbnRlcmluZyBLTVMgbW9kZSAqLwogCWRybV9oZWxwZXJfZGlzYWJsZV91 bnVzZWRfZnVuY3Rpb25zKGRldik7CiAKLQlkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKGhl bHBlciwgMzIpOworCXJldCA9IGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoaGVscGVyLCAz Mik7CisJaWYgKHJldCkKKwkJZ290byBmaW5pOwogCiAJcHJpdi0+ZmJkZXYgPSBoZWxwZXI7CiAK IAlyZXR1cm4gaGVscGVyOwogCitmaW5pOgorCWRybV9mYl9oZWxwZXJfZmluaShoZWxwZXIpOwog ZmFpbDoKIAlrZnJlZShmYmRldik7CiAJcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcXhsL3F4bF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZmIuYwppbmRl eCAzZDdjMWQwMGE0MjQuLmY3NzhjMGU4YWUzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3F4bC9xeGxfZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9mYi5jCkBAIC02ODYs MTQgKzY4NiwyNCBAQCBpbnQgcXhsX2ZiZGV2X2luaXQoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYp CiAJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0KHFkZXYtPmRkZXYsICZxZmJkZXYtPmhlbHBlciwK IAkJCQkgcXhsX251bV9jcnRjIC8qIG51bV9jcnRjIC0gUVhMIHN1cHBvcnRzIGp1c3QgMSAqLywK IAkJCQkgUVhMRkJfQ09OTl9MSU1JVCk7Ci0JaWYgKHJldCkgewotCQlrZnJlZShxZmJkZXYpOwot CQlyZXR1cm4gcmV0OwotCX0KKwlpZiAocmV0KQorCQlnb3RvIGZyZWU7CisKKwlyZXQgPSBkcm1f ZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoJnFmYmRldi0+aGVscGVyKTsKKwlp ZiAocmV0KQorCQlnb3RvIGZpbmk7CisKKwlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29u ZmlnKCZxZmJkZXYtPmhlbHBlciwgYnBwX3NlbCk7CisJaWYgKHJldCkKKwkJZ290byBmaW5pOwog Ci0JZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZxZmJkZXYtPmhlbHBl cik7Ci0JZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmcWZiZGV2LT5oZWxwZXIsIGJwcF9z ZWwpOwogCXJldHVybiAwOworCitmaW5pOgorCWRybV9mYl9oZWxwZXJfZmluaSgmcWZiZGV2LT5o ZWxwZXIpOworZnJlZToKKwlrZnJlZShxZmJkZXYpOworCXJldHVybiByZXQ7CiB9CiAKIHZvaWQg cXhsX2ZiZGV2X2Zpbmkoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fZmIuYwppbmRleCAyOWI5MjIwZWMzOTkuLjMwMDBiYzRjMTM2YiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9mYi5jCkBAIC0zOTAsMTggKzM5MCwyNyBAQCBpbnQgcmFkZW9uX2ZiZGV2 X2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJcmV0ID0gZHJtX2ZiX2hlbHBlcl9p bml0KHJkZXYtPmRkZXYsICZyZmJkZXYtPmhlbHBlciwKIAkJCQkgcmRldi0+bnVtX2NydGMsCiAJ CQkJIFJBREVPTkZCX0NPTk5fTElNSVQpOwotCWlmIChyZXQpIHsKLQkJa2ZyZWUocmZiZGV2KTsK LQkJcmV0dXJuIHJldDsKLQl9CisJaWYgKHJldCkKKwkJZ290byBmcmVlOwogCi0JZHJtX2ZiX2hl bHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZyZmJkZXYtPmhlbHBlcik7CisJcmV0ID0g ZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZyZmJkZXYtPmhlbHBlcik7 CisJaWYgKHJldCkKKwkJZ290byBmaW5pOwogCiAJLyogZGlzYWJsZSBhbGwgdGhlIHBvc3NpYmxl IG91dHB1dHMvY3J0Y3MgYmVmb3JlIGVudGVyaW5nIEtNUyBtb2RlICovCiAJZHJtX2hlbHBlcl9k aXNhYmxlX3VudXNlZF9mdW5jdGlvbnMocmRldi0+ZGRldik7CiAKLQlkcm1fZmJfaGVscGVyX2lu aXRpYWxfY29uZmlnKCZyZmJkZXYtPmhlbHBlciwgYnBwX3NlbCk7CisJcmV0ID0gZHJtX2ZiX2hl bHBlcl9pbml0aWFsX2NvbmZpZygmcmZiZGV2LT5oZWxwZXIsIGJwcF9zZWwpOworCWlmIChyZXQp CisJCWdvdG8gZmluaTsKKwogCXJldHVybiAwOworCitmaW5pOgorCWRybV9mYl9oZWxwZXJfZmlu aSgmcmZiZGV2LT5oZWxwZXIpOworZnJlZToKKwlrZnJlZShyZmJkZXYpOworCXJldHVybiByZXQ7 CiB9CiAKIHZvaWQgcmFkZW9uX2ZiZGV2X2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYp CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9mYi5jIGIvZHJpdmVycy9ncHUv ZHJtL3VkbC91ZGxfZmIuYwppbmRleCA4Y2JjYjQ1ODliZDMuLjVmYzE2Y2VjZDNiYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v dWRsL3VkbF9mYi5jCkBAIC01ODksMTkgKzU4OSwyNyBAQCBpbnQgdWRsX2ZiZGV2X2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAogCXJldCA9IGRybV9mYl9oZWxwZXJfaW5pdChkZXYsICZ1 ZmJkZXYtPmhlbHBlciwKIAkJCQkgMSwgMSk7Ci0JaWYgKHJldCkgewotCQlrZnJlZSh1ZmJkZXYp OwotCQlyZXR1cm4gcmV0OwotCi0JfQorCWlmIChyZXQpCisJCWdvdG8gZnJlZTsKIAotCWRybV9m Yl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycygmdWZiZGV2LT5oZWxwZXIpOworCXJl dCA9IGRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycygmdWZiZGV2LT5oZWxw ZXIpOworCWlmIChyZXQpCisJCWdvdG8gZmluaTsKIAogCS8qIGRpc2FibGUgYWxsIHRoZSBwb3Nz aWJsZSBvdXRwdXRzL2NydGNzIGJlZm9yZSBlbnRlcmluZyBLTVMgbW9kZSAqLwogCWRybV9oZWxw ZXJfZGlzYWJsZV91bnVzZWRfZnVuY3Rpb25zKGRldik7CiAKLQlkcm1fZmJfaGVscGVyX2luaXRp YWxfY29uZmlnKCZ1ZmJkZXYtPmhlbHBlciwgYnBwX3NlbCk7CisJcmV0ID0gZHJtX2ZiX2hlbHBl cl9pbml0aWFsX2NvbmZpZygmdWZiZGV2LT5oZWxwZXIsIGJwcF9zZWwpOworCWlmIChyZXQpCisJ CWdvdG8gZmluaTsKKwogCXJldHVybiAwOworCitmaW5pOgorCWRybV9mYl9oZWxwZXJfZmluaSgm dWZiZGV2LT5oZWxwZXIpOworZnJlZToKKwlrZnJlZSh1ZmJkZXYpOworCXJldHVybiByZXQ7CiB9 CiAKIHZvaWQgdWRsX2ZiZGV2X2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9mYl9o ZWxwZXIuaAppbmRleCBiNTk3MDY4MTAzYWEuLjIxYjk0NGM0NTZmNiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIu aApAQCAtMTI1LDcgKzEyNSw3IEBAIHZvaWQgZHJtX2ZiX2hlbHBlcl9maWxsX2ZpeChzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbywgdWludDMyX3QgcGl0Y2gsCiBpbnQgZHJtX2ZiX2hlbHBlcl9zZXRjbWFw KHN0cnVjdCBmYl9jbWFwICpjbWFwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbyk7CiAKIGludCBkcm1f ZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcik7 Ci1ib29sIGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoc3RydWN0IGRybV9mYl9oZWxwZXIg KmZiX2hlbHBlciwgaW50IGJwcF9zZWwpOworaW50IGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25m aWcoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgaW50IGJwcF9zZWwpOwogaW50IGRy bV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycyhzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyKTsKIGludCBkcm1fZmJfaGVscGVyX2RlYnVnX2VudGVyKHN0cnVjdCBmYl9p bmZvICppbmZvKTsKIGludCBkcm1fZmJfaGVscGVyX2RlYnVnX2xlYXZlKHN0cnVjdCBmYl9pbmZv ICppbmZvKTsKLS0gCjIuMS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=