From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 3/6] drm/atomic: Don't overrun the connector array when hotplugging Date: Wed, 19 Nov 2014 18:38:08 +0100 Message-ID: <1416418691-24747-3-git-send-email-daniel.vetter@ffwll.ch> References: <1416418691-24747-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f48.google.com (mail-wg0-f48.google.com [74.125.82.48]) by gabe.freedesktop.org (Postfix) with ESMTP id 1AD206EA9E for ; Wed, 19 Nov 2014 09:37:57 -0800 (PST) Received: by mail-wg0-f48.google.com with SMTP id y19so1409576wgg.21 for ; Wed, 19 Nov 2014 09:37:56 -0800 (PST) In-Reply-To: <1416418691-24747-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org WWV0IGFub3RoZXIgZmFsbG91dCBmcm9tIG5vdCBjb25zaWRlcmluZyBEUCBNU1QgaG90cGx1Zy4g V2l0aCB0aGUKcHJldmlvdXMgcGF0Y2hlcyB3ZSBoYXZlIHN0YWJsZSBpbmRpY2VzLCBidXQgaXQg bWlnaHQgc3RpbGwgaGFwcGVuCnRoYXQgYSBjb25uZWN0b3IgZ2V0cyBhZGRlZCBiZXR3ZWVuIHdo ZW4gd2UgYWxsb2NhdGUgdGhlIGFycmF5IGFuZAp3aGVuIHdlIGFjdHVhbGx5IGFkZCBhIGNvbm5l Y3Rvci4gRXNwZWNpYWxseSB3aGVuIHdlIGJhY2sgb2ZmIGR1ZSB0bwp3dyBtdXRleCBjb250ZW50 aW9uIG9yIHNpbWlsYXIgaXNzdWVzLgoKU28gc3RvcmUgdGhlIHNpemVzIG9mIHRoZSBhcnJheXMg aW4gc3RydWN0IGRybV9hdG9taWNfc3RhdGUgYW5kIGRvdWJsZQpjaGVjayB0aGVtLiBXZSBkb24n dCByZWFsbHkgY2FyZSBhYm91dCByYWNlcyBleGNlcHQgdGhhdCB3ZSB3YW50IHRvCnVzZSBhIGNv bnNpc3RlbnQgdmFsdWUsIHNvIEFDQ0VTU19PTkNFIGlzIGFsbCB3ZSBuZWVkLiBBbmQgaWYgd2UK aW5kZWVkIG5vdGljZSB0aGF0IHdlJ2Qgb3ZlcnJ1biB0aGUgYXJyYXkgdGhlbiBqdXN0IGdpdmUg dXAgYW5kCnJlc3RhcnQgdGhlIGVudGlyZSBpb2N0bC4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljLmMgICAgICAgIHwgMjYgKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgMjMgKysrKysrKystLS0tLS0tLS0tLS0tLS0K IGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgICAgICAgICAgIHwgIDIgKysKIDMgZmlsZXMgY2hh bmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK aW5kZXggNjdjMWRjODk0YmQ5Li4zNjI0NjMyMDg0ZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAt NTYsNiArNTYsOCBAQCBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJaWYgKCFzdGF0ZSkKIAkJcmV0dXJuIE5VTEw7CiAKKwlzdGF0ZS0+bnVtX2Nvbm5lY3Rv ciA9IEFDQ0VTU19PTkNFKGRldi0+bW9kZV9jb25maWcubnVtX2Nvbm5lY3Rvcik7CisKIAlzdGF0 ZS0+Y3J0Y3MgPSBrY2FsbG9jKGRldi0+bW9kZV9jb25maWcubnVtX2NydGMsCiAJCQkgICAgICAg c2l6ZW9mKCpzdGF0ZS0+Y3J0Y3MpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXN0YXRlLT5jcnRjcykK QEAgLTcyLDEyICs3NCwxMiBAQCBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJCQkJICAgICAgc2l6ZW9mKCpzdGF0ZS0+cGxhbmVfc3RhdGVzKSwgR0ZQX0tF Uk5FTCk7CiAJaWYgKCFzdGF0ZS0+cGxhbmVfc3RhdGVzKQogCQlnb3RvIGZhaWw7Ci0Jc3RhdGUt PmNvbm5lY3RvcnMgPSBrY2FsbG9jKGRldi0+bW9kZV9jb25maWcubnVtX2Nvbm5lY3RvciwKKwlz dGF0ZS0+Y29ubmVjdG9ycyA9IGtjYWxsb2Moc3RhdGUtPm51bV9jb25uZWN0b3IsCiAJCQkJICAg IHNpemVvZigqc3RhdGUtPmNvbm5lY3RvcnMpLAogCQkJCSAgICBHRlBfS0VSTkVMKTsKIAlpZiAo IXN0YXRlLT5jb25uZWN0b3JzKQogCQlnb3RvIGZhaWw7Ci0Jc3RhdGUtPmNvbm5lY3Rvcl9zdGF0 ZXMgPSBrY2FsbG9jKGRldi0+bW9kZV9jb25maWcubnVtX2Nvbm5lY3RvciwKKwlzdGF0ZS0+Y29u bmVjdG9yX3N0YXRlcyA9IGtjYWxsb2Moc3RhdGUtPm51bV9jb25uZWN0b3IsCiAJCQkJCSAgc2l6 ZW9mKCpzdGF0ZS0+Y29ubmVjdG9yX3N0YXRlcyksCiAJCQkJCSAgR0ZQX0tFUk5FTCk7CiAJaWYg KCFzdGF0ZS0+Y29ubmVjdG9yX3N0YXRlcykKQEAgLTExNyw3ICsxMTksNyBAQCB2b2lkIGRybV9h dG9taWNfc3RhdGVfY2xlYXIoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJRFJN X0RFQlVHX0tNUygiQ2xlYXJpbmcgYXRvbWljIHN0YXRlICVwXG4iLCBzdGF0ZSk7CiAKLQlmb3Ig KGkgPSAwOyBpIDwgY29uZmlnLT5udW1fY29ubmVjdG9yOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBp IDwgc3RhdGUtPm51bV9jb25uZWN0b3I7IGkrKykgewogCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yID0gc3RhdGUtPmNvbm5lY3RvcnNbaV07CiAKIAkJaWYgKCFjb25uZWN0b3IpCkBA IC0zMDQsNiArMzA2LDIxIEBAIGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAKIAlpbmRleCA9IGRybV9jb25uZWN0b3JfaW5kZXgo Y29ubmVjdG9yKTsKIAorCS8qCisJICogQ29uc3RydWN0aW9uIG9mIGF0b21pYyBzdGF0ZSB1cGRh dGVzIGNhbiByYWNlIHdpdGggYSBjb25uZWN0b3IKKwkgKiBob3QtYWRkIHdoaWNoIG1pZ2h0IG92 ZXJmbG93LiBJbiB0aGlzIGNhc2UgZmxpcCB0aGUgdGFibGUgYW5kIGp1c3QKKwkgKiByZXN0YXJ0 IHRoZSBlbnRpcmUgaW9jdGwgLSBubyBvbmUgaXMgZmFzdCBlbm91Z2ggdG8gbGl2ZWxvY2sgYSBj cHUKKwkgKiB3aXRoIHBoeXNpY2FsIGhvdHBsdWcgZXZlbnRzIGFueXdheS4KKwkgKgorCSAqIE5v dGUgdGhhdCB3ZSBvbmx5IGdyYWIgdGhlIGluZGV4ZXMgb25jZSB3ZSBoYXZlIHRoZSByaWdodCBs b2NrIHRvCisJICogcHJldmVudCBob3RwbHVnL3VucGx1Z2dpbmcgb2YgY29ubmVjdG9ycy4gU28g cmVtb3ZhbCBpcyBubyBwcm9ibGVtLAorCSAqIGF0IG1vc3QgdGhlIGFycmF5IGlzIGEgYml0IHRv byBsYXJnZS4KKwkgKi8KKwlpZiAoaW5kZXggPj0gc3RhdGUtPm51bV9jb25uZWN0b3IpIHsKKwkJ RFJNX0RFQlVHX0tNUygiSG90LWFkZGVkIGNvbm5lY3RvciB3b3VsZCBvdmVyZmxvdyBzdGF0ZSBh cnJheSwgcmVzdGFydGluZ1xuIik7CisJCXJldHVybiAtRUFHQUlOOworCX0KKwogCWlmIChzdGF0 ZS0+Y29ubmVjdG9yX3N0YXRlc1tpbmRleF0pCiAJCXJldHVybiBzdGF0ZS0+Y29ubmVjdG9yX3N0 YXRlc1tpbmRleF07CiAKQEAgLTQ5OSwxMCArNTE2LDkgQEAgaW50CiBkcm1fYXRvbWljX2Nvbm5l Y3RvcnNfZm9yX2NydGMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJICAgICAg IHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlpbnQgbmNvbm5lY3RvcnMgPSBzdGF0ZS0+ZGV2 LT5tb2RlX2NvbmZpZy5udW1fY29ubmVjdG9yOwogCWludCBpLCBudW1fY29ubmVjdGVkX2Nvbm5l Y3RvcnMgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IG5jb25uZWN0b3JzOyBpKyspIHsKKwlmb3Ig KGkgPSAwOyBpIDwgc3RhdGUtPm51bV9jb25uZWN0b3I7IGkrKykgewogCQlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKIAogCQljb25uX3N0YXRlID0gc3RhdGUtPmNvbm5l Y3Rvcl9zdGF0ZXNbaV07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDBjZDA1 NDYxNTkyMC4uOTkwOTVlZjE0N2VmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpA QCAtMjQ5LDcgKzI0OSw2IEBAIHN0YXRpYyBpbnQKIG1vZGVfZml4dXAoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQogewogCWludCBuY3J0Y3MgPSBzdGF0ZS0+ZGV2LT5tb2RlX2NvbmZp Zy5udW1fY3J0YzsKLQlpbnQgbmNvbm5lY3RvcnMgPSBzdGF0ZS0+ZGV2LT5tb2RlX2NvbmZpZy5u dW1fY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKIAlpbnQgaTsKQEAgLTI2NCw3ICsy NjMsNyBAQCBtb2RlX2ZpeHVwKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJZHJt X21vZGVfY29weSgmY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZSwgJmNydGNfc3RhdGUtPm1vZGUp OwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCBuY29ubmVjdG9yczsgaSsrKSB7CisJZm9yIChpID0g MDsgaSA8IHN0YXRlLT5udW1fY29ubmVjdG9yOyBpKyspIHsKIAkJc3RydWN0IGRybV9lbmNvZGVy X2hlbHBlcl9mdW5jcyAqZnVuY3M7CiAJCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKIApA QCAtMzM2LDcgKzMzNSw2IEBAIGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3ByZXBhcmUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAkJCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7 CiAJaW50IG5jcnRjcyA9IGRldi0+bW9kZV9jb25maWcubnVtX2NydGM7Ci0JaW50IG5jb25uZWN0 b3JzID0gZGV2LT5tb2RlX2NvbmZpZy5udW1fY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YzsKIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJaW50IGksIHJldDsK QEAgLTM2MSw3ICszNTksNyBAQCBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wcmVwYXJlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCX0KIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgbmNvbm5lY3Rv cnM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7 CiAJCS8qCiAJCSAqIFRoaXMgb25seSBzZXRzIGNydGMtPm1vZGVfY2hhbmdlZCBmb3Igcm91dGlu ZyBjaGFuZ2VzLAogCQkgKiBkcml2ZXJzIG11c3Qgc2V0IGNydGMtPm1vZGVfY2hhbmdlZCB0aGVt c2VsdmVzIHdoZW4gY29ubmVjdG9yCkBAIC00ODUsMTAgKzQ4Myw5IEBAIHN0YXRpYyB2b2lkCiBk aXNhYmxlX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKm9sZF9zdGF0ZSkKIHsKIAlpbnQgbmNydGNzID0gb2xkX3N0YXRlLT5kZXYtPm1vZGVf Y29uZmlnLm51bV9jcnRjOwotCWludCBuY29ubmVjdG9ycyA9IG9sZF9zdGF0ZS0+ZGV2LT5tb2Rl X2NvbmZpZy5udW1fY29ubmVjdG9yOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IG5jb25u ZWN0b3JzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgb2xkX3N0YXRlLT5udW1fY29ubmVjdG9y OyBpKyspIHsKIAkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlOwog CQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCQlzdHJ1Y3QgZHJtX2VuY29kZXJf aGVscGVyX2Z1bmNzICpmdW5jczsKQEAgLTU1MywxMiArNTUwLDExIEBAIGRpc2FibGVfb3V0cHV0 cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0 YXRlKQogc3RhdGljIHZvaWQKIHNldF9yb3V0aW5nX2xpbmtzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiB7Ci0JaW50IG5jb25uZWN0 b3JzID0gZGV2LT5tb2RlX2NvbmZpZy5udW1fY29ubmVjdG9yOwogCWludCBuY3J0Y3MgPSBvbGRf c3RhdGUtPmRldi0+bW9kZV9jb25maWcubnVtX2NydGM7CiAJaW50IGk7CiAKIAkvKiBjbGVhciBv dXQgZXhpc3RpbmcgbGlua3MgKi8KLQlmb3IgKGkgPSAwOyBpIDwgbmNvbm5lY3RvcnM7IGkrKykg eworCWZvciAoaSA9IDA7IGkgPCBvbGRfc3RhdGUtPm51bV9jb25uZWN0b3I7IGkrKykgewogCQlz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCiAJCWNvbm5lY3RvciA9IG9sZF9zdGF0 ZS0+Y29ubmVjdG9yc1tpXTsKQEAgLTU3Myw3ICs1NjksNyBAQCBzZXRfcm91dGluZ19saW5rcyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRl KQogCX0KIAogCS8qIHNldCBuZXcgbGlua3MgKi8KLQlmb3IgKGkgPSAwOyBpIDwgbmNvbm5lY3Rv cnM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBvbGRfc3RhdGUtPm51bV9jb25uZWN0b3I7IGkr KykgewogCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCiAJCWNvbm5lY3RvciA9 IG9sZF9zdGF0ZS0+Y29ubmVjdG9yc1tpXTsKQEAgLTYwOCw3ICs2MDQsNiBAQCBzdGF0aWMgdm9p ZAogY3J0Y19zZXRfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqb2xkX3N0YXRlKQogewogCWludCBuY3J0Y3MgPSBvbGRfc3RhdGUtPmRldi0+bW9k ZV9jb25maWcubnVtX2NydGM7Ci0JaW50IG5jb25uZWN0b3JzID0gb2xkX3N0YXRlLT5kZXYtPm1v ZGVfY29uZmlnLm51bV9jb25uZWN0b3I7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbmNy dGNzOyBpKyspIHsKQEAgLTYyNiw3ICs2MjEsNyBAQCBjcnRjX3NldF9tb2RlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiAJCQlmdW5j cy0+bW9kZV9zZXRfbm9mYihjcnRjKTsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgbmNvbm5lY3Rv cnM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBvbGRfc3RhdGUtPm51bV9jb25uZWN0b3I7IGkr KykgewogCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCQlzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlOwogCQlzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1 bmNzICpmdW5jczsKQEAgLTY4Nyw3ICs2ODIsNiBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2Nv bW1pdF9wb3N0X3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiB7CiAJaW50IG5jcnRjcyA9IG9sZF9zdGF0ZS0+ ZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YzsKLQlpbnQgbmNvbm5lY3RvcnMgPSBvbGRfc3RhdGUt PmRldi0+bW9kZV9jb25maWcubnVtX2Nvbm5lY3RvcjsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7 IGkgPCBuY3J0Y3M7IGkrKykgewpAQCAtNzA2LDcgKzcwMCw3IEBAIHZvaWQgZHJtX2F0b21pY19o ZWxwZXJfY29tbWl0X3Bvc3RfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQlmdW5j cy0+Y29tbWl0KGNydGMpOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCBuY29ubmVjdG9yczsgaSsr KSB7CisJZm9yIChpID0gMDsgaSA8IG9sZF9zdGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7CiAJ CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CiAJCXN0cnVjdCBkcm1fZW5jb2Rlcl9o ZWxwZXJfZnVuY3MgKmZ1bmNzOwogCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CkBAIC0x MzA0LDcgKzEyOTgsNiBAQCBzdGF0aWMgaW50IHVwZGF0ZV9vdXRwdXRfc3RhdGUoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzZXQt PmNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKLQlp bnQgbmNvbm5lY3RvcnMgPSBzdGF0ZS0+ZGV2LT5tb2RlX2NvbmZpZy5udW1fY29ubmVjdG9yOwog CWludCBuY3J0Y3MgPSBzdGF0ZS0+ZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YzsKIAlpbnQgcmV0 LCBpLCBqOwogCkBAIC0xMzMzLDcgKzEzMjYsNyBAQCBzdGF0aWMgaW50IHVwZGF0ZV9vdXRwdXRf c3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCX0KIAogCS8qIFRoZW4gcmVj b21wdXRlIGNvbm5lY3Rvci0+Y3J0YyBsaW5rcyBhbmQgY3J0YyBlbmFibGluZyBzdGF0ZS4gKi8K LQlmb3IgKGkgPSAwOyBpIDwgbmNvbm5lY3RvcnM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBz dGF0ZS0+bnVtX2Nvbm5lY3RvcjsgaSsrKSB7CiAJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3I7CiAKIAkJY29ubmVjdG9yID0gc3RhdGUtPmNvbm5lY3RvcnNbaV07CmRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAppbmRleCA5 MWMwOTUyMGFhZDMuLmNkYmFlN2JkYWM3MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Ny dGMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCkBAIC04NDUsNiArODQ1LDcgQEAgc3Ry dWN0IGRybV9icmlkZ2UgewogICogQHBsYW5lX3N0YXRlczogcG9pbnRlciB0byBhcnJheSBvZiBw bGFuZSBzdGF0ZXMgcG9pbnRlcnMKICAqIEBjcnRjczogcG9pbnRlciB0byBhcnJheSBvZiBDUlRD IHBvaW50ZXJzCiAgKiBAY3J0Y19zdGF0ZXM6IHBvaW50ZXIgdG8gYXJyYXkgb2YgQ1JUQyBzdGF0 ZXMgcG9pbnRlcnMKKyAqIEBudW1fY29ubmVjdG9yOiBzaXplIG9mIHRoZSBAY29ubmVjdG9ycyBh bmQgQGNvbm5lY3Rvcl9zdGF0ZXMgYXJyYXlzCiAgKiBAY29ubmVjdG9yczogcG9pbnRlciB0byBh cnJheSBvZiBjb25uZWN0b3IgcG9pbnRlcnMKICAqIEBjb25uZWN0b3Jfc3RhdGVzOiBwb2ludGVy IHRvIGFycmF5IG9mIGNvbm5lY3RvciBzdGF0ZXMgcG9pbnRlcnMKICAqIEBhY3F1aXJlX2N0eDog YWNxdWlyZSBjb250ZXh0IGZvciB0aGlzIGF0b21pYyBtb2Rlc2V0IHN0YXRlIHVwZGF0ZQpAQCAt ODU2LDYgKzg1Nyw3IEBAIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIHsKIAlzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICoqcGxhbmVfc3RhdGVzOwogCXN0cnVjdCBkcm1fY3J0YyAqKmNydGNzOwogCXN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqKmNydGNfc3RhdGVzOworCWludCBudW1fY29ubmVjdG9yOwog CXN0cnVjdCBkcm1fY29ubmVjdG9yICoqY29ubmVjdG9yczsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqKmNvbm5lY3Rvcl9zdGF0ZXM7CiAKLS0gCjIuMS4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=