From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC v4 13/25] drm/fb-helper: Remove struct drm_fb_helper_crtc Date: Thu, 12 Apr 2018 18:12:25 +0200 Message-ID: <20180412161237.9314-2-noralf@tronnes.org> References: <20180412161237.9314-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180412161237.9314-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , laurent.pinchart@ideasonboard.com, mstaudt@suse.de, dh.herrmann@gmail.com List-Id: dri-devel@lists.freedesktop.org VGhlIHN0YWdlIGlzIG5vdyBzZXQgZm9yIGEgY2xlYW4gcmVtb3ZhbCBvZiBkcm1fZmJfaGVscGVy X2NydGMuCnN0cnVjdCBkcm1fY2xpZW50X2Rpc3BsYXkgaXMgZG9pbmcgaXRzIGpvYiBub3cuCgpB bHNvIHJlbW92ZSB0aGUgZHJtX2ZiX2hlbHBlcl9mdW5jcy0+aW5pdGlhbF9jb25maWcgd2hpY2gg aGFzIGJlZW4Kc3VwZXJzZWRlZCBieSBkcm1fZHJpdmVyLT5pbml0aWFsX2NsaWVudF9kaXNwbGF5 LgoKU2lnbmVkLW9mZi1ieTogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IDEyNCArKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmggICAg IHwgIDMxIC0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTI5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCmluZGV4IDU0MDdiZjZkYzhjMC4u Y2UzOGVhZGNiMzQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKQEAgLTQ0MywyNCArNDQzLDYg QEAgaW50IGRybV9mYl9oZWxwZXJfYmxhbmsoaW50IGJsYW5rLCBzdHJ1Y3QgZmJfaW5mbyAqaW5m bykKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9ibGFuayk7CiAKLXN0YXRpYyB2b2lk IGRybV9mYl9oZWxwZXJfbW9kZXNldF9yZWxlYXNlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxw ZXIsCi0JCQkJCSAgc3RydWN0IGRybV9tb2RlX3NldCAqbW9kZXNldCkKLXsKLQlpbnQgaTsKLQot CWZvciAoaSA9IDA7IGkgPCBtb2Rlc2V0LT5udW1fY29ubmVjdG9yczsgaSsrKSB7Ci0JCWRybV9j b25uZWN0b3JfcHV0KG1vZGVzZXQtPmNvbm5lY3RvcnNbaV0pOwotCQltb2Rlc2V0LT5jb25uZWN0 b3JzW2ldID0gTlVMTDsKLQl9Ci0JbW9kZXNldC0+bnVtX2Nvbm5lY3RvcnMgPSAwOwotCi0JZHJt X21vZGVfZGVzdHJveShoZWxwZXItPmRldiwgbW9kZXNldC0+bW9kZSk7Ci0JbW9kZXNldC0+bW9k ZSA9IE5VTEw7Ci0KLQkvKiBGSVhNRSBzaG91bGQgaG9sZCBhIHJlZj8gKi8KLQltb2Rlc2V0LT5m YiA9IE5VTEw7Ci19Ci0KIHN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfY3J0Y19mcmVlKHN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIpCiB7CiAJaW50IGk7CkBAIC00NzAsMTQgKzQ1Miw2IEBA IHN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfY3J0Y19mcmVlKHN0cnVjdCBkcm1fZmJfaGVscGVy ICpoZWxwZXIpCiAJCWtmcmVlKGhlbHBlci0+Y29ubmVjdG9yX2luZm9baV0pOwogCX0KIAlrZnJl ZShoZWxwZXItPmNvbm5lY3Rvcl9pbmZvKTsKLQotCWZvciAoaSA9IDA7IGkgPCBoZWxwZXItPmNy dGNfY291bnQ7IGkrKykgewotCQlzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0ID0gJmhlbHBl ci0+Y3J0Y19pbmZvW2ldLm1vZGVfc2V0OwotCi0JCWRybV9mYl9oZWxwZXJfbW9kZXNldF9yZWxl YXNlKGhlbHBlciwgbW9kZXNldCk7Ci0JCWtmcmVlKG1vZGVzZXQtPmNvbm5lY3RvcnMpOwotCX0K LQlrZnJlZShoZWxwZXItPmNydGNfaW5mbyk7CiB9CiAKIHN0YXRpYyB2b2lkIGRybV9mYl9oZWxw ZXJfcmVzdW1lX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCkBAIC01NTIsNDggKzUy NiwxOCBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CSAgICAgICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAogCQkgICAgICAgaW50IG1h eF9jb25uX2NvdW50KQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQlzdHJ1Y3QgZHJtX21v ZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKLQlpbnQgaTsKLQogCWlmICgh ZHJtX2ZiZGV2X2VtdWxhdGlvbikgewogCQlkZXYtPmZiX2hlbHBlciA9IGZiX2hlbHBlcjsKIAkJ cmV0dXJuIDA7CiAJfQogCi0JaWYgKCFtYXhfY29ubl9jb3VudCkKLQkJcmV0dXJuIC1FSU5WQUw7 Ci0KLQlmYl9oZWxwZXItPmNydGNfaW5mbyA9IGtjYWxsb2MoY29uZmlnLT5udW1fY3J0Yywgc2l6 ZW9mKHN0cnVjdCBkcm1fZmJfaGVscGVyX2NydGMpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWZiX2hl bHBlci0+Y3J0Y19pbmZvKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWZiX2hlbHBlci0+Y3J0Y19j b3VudCA9IGNvbmZpZy0+bnVtX2NydGM7CiAJZmJfaGVscGVyLT5jb25uZWN0b3JfaW5mbyA9IGtj YWxsb2MoZGV2LT5tb2RlX2NvbmZpZy5udW1fY29ubmVjdG9yLCBzaXplb2Yoc3RydWN0IGRybV9m Yl9oZWxwZXJfY29ubmVjdG9yICopLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWZiX2hlbHBlci0+Y29u bmVjdG9yX2luZm8pIHsKLQkJa2ZyZWUoZmJfaGVscGVyLT5jcnRjX2luZm8pOworCWlmICghZmJf aGVscGVyLT5jb25uZWN0b3JfaW5mbykKIAkJcmV0dXJuIC1FTk9NRU07Ci0JfQorCiAJZmJfaGVs cGVyLT5jb25uZWN0b3JfaW5mb19hbGxvY19jb3VudCA9IGRldi0+bW9kZV9jb25maWcubnVtX2Nv bm5lY3RvcjsKIAlmYl9oZWxwZXItPmNvbm5lY3Rvcl9jb3VudCA9IDA7CiAKLQlmb3IgKGkgPSAw OyBpIDwgZmJfaGVscGVyLT5jcnRjX2NvdW50OyBpKyspIHsKLQkJZmJfaGVscGVyLT5jcnRjX2lu Zm9baV0ubW9kZV9zZXQuY29ubmVjdG9ycyA9Ci0JCQlrY2FsbG9jKG1heF9jb25uX2NvdW50LAot CQkJCXNpemVvZihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqKSwKLQkJCQlHRlBfS0VSTkVMKTsKLQot CQlpZiAoIWZiX2hlbHBlci0+Y3J0Y19pbmZvW2ldLm1vZGVfc2V0LmNvbm5lY3RvcnMpCi0JCQln b3RvIG91dF9mcmVlOwotCQlmYl9oZWxwZXItPmNydGNfaW5mb1tpXS5tb2RlX3NldC5udW1fY29u bmVjdG9ycyA9IDA7Ci0JfQotCi0JaSA9IDA7Ci0JZHJtX2Zvcl9lYWNoX2NydGMoY3J0YywgZGV2 KSB7Ci0JCWZiX2hlbHBlci0+Y3J0Y19pbmZvW2ldLm1vZGVfc2V0LmNydGMgPSBjcnRjOwotCQlp Kys7Ci0JfQotCiAJZmJfaGVscGVyLT5kaXNwbGF5ID0gZHJtX2NsaWVudF9kaXNwbGF5X2NyZWF0 ZShkZXYpOwogCWlmIChJU19FUlIoZmJfaGVscGVyLT5kaXNwbGF5KSkKIAkJZ290byBvdXRfZnJl ZTsKQEAgLTE4MzAsNyArMTc3NCw3IEBAIHN0YXRpYyBib29sIGRybV90YXJnZXRfY2xvbmVkKHN0 cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmRtdF9tb2RlLCAqbW9kZTsKIAogCS8qIG9ubHkgY29udGVtcGxhdGUgY2xvbmluZyBpbiB0aGUg c2luZ2xlIGNydGMgY2FzZSAqLwotCWlmIChmYl9oZWxwZXItPmNydGNfY291bnQgPiAxKQorCWlm IChmYl9oZWxwZXItPmRldi0+bW9kZV9jb25maWcubnVtX2NydGMgPiAxKQogCQlyZXR1cm4gZmFs c2U7CiAKIAljb3VudCA9IDA7CkBAIC0xOTk3LDE2ICsxOTQxLDE4IEBAIHN0YXRpYyBib29sIGRy bV90YXJnZXRfcHJlZmVycmVkKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCiB9CiAK IHN0YXRpYyBpbnQgZHJtX3BpY2tfY3J0Y3Moc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBl ciwKLQkJCSAgc3RydWN0IGRybV9mYl9oZWxwZXJfY3J0YyAqKmJlc3RfY3J0Y3MsCisJCQkgIHN0 cnVjdCBkcm1fY3J0YyAqKmJlc3RfY3J0Y3MsCiAJCQkgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICoqbW9kZXMsCiAJCQkgIGludCBuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7Ci0JaW50IGMs IG87CisJc3RydWN0IGRybV9jbGllbnRfZGlzcGxheSAqZGlzcGxheSA9IGZiX2hlbHBlci0+ZGlz cGxheTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGlzcGxheS0+ZGV2OworCWludCBvLCBt eV9zY29yZSwgYmVzdF9zY29yZSwgc2NvcmU7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcjsKIAljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgKmNvbm5lY3Rv cl9mdW5jczsKKwlzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0OwogCXN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcjsKLQlpbnQgbXlfc2NvcmUsIGJlc3Rfc2NvcmUsIHNjb3JlOwotCXN0cnVj dCBkcm1fZmJfaGVscGVyX2NydGMgKipjcnRjcywgKmNydGM7CisJc3RydWN0IGRybV9jcnRjICoq Y3J0Y3M7CiAJc3RydWN0IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yICpmYl9oZWxwZXJfY29ubjsK IAogCWlmIChuID09IGZiX2hlbHBlci0+Y29ubmVjdG9yX2NvdW50KQpAQCAtMjAyMCw4ICsxOTY2 LDcgQEAgc3RhdGljIGludCBkcm1fcGlja19jcnRjcyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJf aGVscGVyLAogCWlmIChtb2Rlc1tuXSA9PSBOVUxMKQogCQlyZXR1cm4gYmVzdF9zY29yZTsKIAot CWNydGNzID0ga2NhbGxvYyhmYl9oZWxwZXItPmNvbm5lY3Rvcl9jb3VudCwKLQkJCXNpemVvZihz dHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jcnRjICopLCBHRlBfS0VSTkVMKTsKKwljcnRjcyA9IGtjYWxs b2MoZmJfaGVscGVyLT5jb25uZWN0b3JfY291bnQsIHNpemVvZigqY3J0Y3MpLCBHRlBfS0VSTkVM KTsKIAlpZiAoIWNydGNzKQogCQlyZXR1cm4gYmVzdF9zY29yZTsKIApAQCAtMjA1MywxMCArMTk5 OCwxMCBAQCBzdGF0aWMgaW50IGRybV9waWNrX2NydGNzKHN0cnVjdCBkcm1fZmJfaGVscGVyICpm Yl9oZWxwZXIsCiAJICogc2VsZWN0IGEgY3J0YyBmb3IgdGhpcyBjb25uZWN0b3IgYW5kIHRoZW4g YXR0ZW1wdCB0byBjb25maWd1cmUKIAkgKiByZW1haW5pbmcgY29ubmVjdG9ycwogCSAqLwotCWZv ciAoYyA9IDA7IGMgPCBmYl9oZWxwZXItPmNydGNfY291bnQ7IGMrKykgewotCQljcnRjID0gJmZi X2hlbHBlci0+Y3J0Y19pbmZvW2NdOworCWRybV9jbGllbnRfZGlzcGxheV9mb3JfZWFjaF9tb2Rl c2V0KG1vZGVzZXQsIGRpc3BsYXkpIHsKKwkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gbW9kZXNl dC0+Y3J0YzsKIAotCQlpZiAoKGVuY29kZXItPnBvc3NpYmxlX2NydGNzICYgKDEgPDwgYykpID09 IDApCisJCWlmICgoZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgJiBkcm1fY3J0Y19tYXNrKGNydGMp KSA9PSAwKQogCQkJY29udGludWU7CiAKIAkJZm9yIChvID0gMDsgbyA8IG47IG8rKykKQEAgLTIw NjUsNyArMjAxMCw3IEBAIHN0YXRpYyBpbnQgZHJtX3BpY2tfY3J0Y3Moc3RydWN0IGRybV9mYl9o ZWxwZXIgKmZiX2hlbHBlciwKIAogCQlpZiAobyA8IG4pIHsKIAkJCS8qIGlnbm9yZSBjbG9uaW5n IHVubGVzcyBvbmx5IGEgc2luZ2xlIGNydGMgKi8KLQkJCWlmIChmYl9oZWxwZXItPmNydGNfY291 bnQgPiAxKQorCQkJaWYgKGRldi0+bW9kZV9jb25maWcubnVtX2NydGMgPiAxKQogCQkJCWNvbnRp bnVlOwogCiAJCQlpZiAoIWRybV9tb2RlX2VxdWFsKG1vZGVzW29dLCBtb2Rlc1tuXSkpCkBAIC0y MDczLDE0ICsyMDE4LDEzIEBAIHN0YXRpYyBpbnQgZHJtX3BpY2tfY3J0Y3Moc3RydWN0IGRybV9m Yl9oZWxwZXIgKmZiX2hlbHBlciwKIAkJfQogCiAJCWNydGNzW25dID0gY3J0YzsKLQkJbWVtY3B5 KGNydGNzLCBiZXN0X2NydGNzLCBuICogc2l6ZW9mKHN0cnVjdCBkcm1fZmJfaGVscGVyX2NydGMg KikpOworCQltZW1jcHkoY3J0Y3MsIGJlc3RfY3J0Y3MsIG4gKiBzaXplb2YoKmNydGNzKSk7CiAJ CXNjb3JlID0gbXlfc2NvcmUgKyBkcm1fcGlja19jcnRjcyhmYl9oZWxwZXIsIGNydGNzLCBtb2Rl cywgbiArIDEsCiAJCQkJCQkgIHdpZHRoLCBoZWlnaHQpOwogCQlpZiAoc2NvcmUgPiBiZXN0X3Nj b3JlKSB7CiAJCQliZXN0X3Njb3JlID0gc2NvcmU7CiAJCQltZW1jcHkoYmVzdF9jcnRjcywgY3J0 Y3MsCi0JCQkgICAgICAgZmJfaGVscGVyLT5jb25uZWN0b3JfY291bnQgKgotCQkJICAgICAgIHNp emVvZihzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jcnRjICopKTsKKwkJCSAgICAgICBmYl9oZWxwZXIt PmNvbm5lY3Rvcl9jb3VudCAqIHNpemVvZigqY3J0Y3MpKTsKIAkJfQogCX0KIG91dDoKQEAgLTIw OTMsOSArMjAzNyw5IEBAIHN0YXRpYyB2b2lkIGRybV9zZXR1cF9jcnRjcyhzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqZmJfaGVscGVyLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxw ZXItPmRldjsKIAlzdHJ1Y3QgZHJtX2NsaWVudF9kaXNwbGF5ICpkaXNwbGF5OwotCXN0cnVjdCBk cm1fZmJfaGVscGVyX2NydGMgKipjcnRjczsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqKm1v ZGVzOwogCXN0cnVjdCBkcm1fZmJfb2Zmc2V0ICpvZmZzZXRzOworCXN0cnVjdCBkcm1fY3J0YyAq KmNydGNzOwogCWJvb2wgKmVuYWJsZWQ7CiAJaW50IGk7CiAKQEAgLTIxMTcsOCArMjA2MSw3IEBA IHN0YXRpYyB2b2lkIGRybV9zZXR1cF9jcnRjcyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVs cGVyLAogCQl9CiAJfQogCi0JY3J0Y3MgPSBrY2FsbG9jKGZiX2hlbHBlci0+Y29ubmVjdG9yX2Nv dW50LAotCQkJc2l6ZW9mKHN0cnVjdCBkcm1fZmJfaGVscGVyX2NydGMgKiksIEdGUF9LRVJORUwp OworCWNydGNzID0ga2NhbGxvYyhmYl9oZWxwZXItPmNvbm5lY3Rvcl9jb3VudCwgc2l6ZW9mKCpj cnRjcyksIEdGUF9LRVJORUwpOwogCW1vZGVzID0ga2NhbGxvYyhmYl9oZWxwZXItPmNvbm5lY3Rv cl9jb3VudCwKIAkJCXNpemVvZihzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqKSwgR0ZQX0tFUk5F TCk7CiAJb2Zmc2V0cyA9IGtjYWxsb2MoZmJfaGVscGVyLT5jb25uZWN0b3JfY291bnQsCkBAIC0y MTM2LDQzICsyMDc5LDI4IEBAIHN0YXRpYyB2b2lkIGRybV9zZXR1cF9jcnRjcyhzdHJ1Y3QgZHJt X2ZiX2hlbHBlciAqZmJfaGVscGVyLAogCiAJZHJtX2VuYWJsZV9jb25uZWN0b3JzKGZiX2hlbHBl ciwgZW5hYmxlZCk7CiAKLQlpZiAoIShmYl9oZWxwZXItPmZ1bmNzLT5pbml0aWFsX2NvbmZpZyAm JgotCSAgICAgIGZiX2hlbHBlci0+ZnVuY3MtPmluaXRpYWxfY29uZmlnKGZiX2hlbHBlciwgY3J0 Y3MsIG1vZGVzLAotCQkJCQkgICAgICAgb2Zmc2V0cywKLQkJCQkJICAgICAgIGVuYWJsZWQsIHdp ZHRoLCBoZWlnaHQpKSkgewotCQltZW1zZXQobW9kZXMsIDAsIGZiX2hlbHBlci0+Y29ubmVjdG9y X2NvdW50KnNpemVvZihtb2Rlc1swXSkpOwotCQltZW1zZXQoY3J0Y3MsIDAsIGZiX2hlbHBlci0+ Y29ubmVjdG9yX2NvdW50KnNpemVvZihjcnRjc1swXSkpOwotCQltZW1zZXQob2Zmc2V0cywgMCwg ZmJfaGVscGVyLT5jb25uZWN0b3JfY291bnQqc2l6ZW9mKG9mZnNldHNbMF0pKTsKKwlpZiAoIWRy bV90YXJnZXRfY2xvbmVkKGZiX2hlbHBlciwgbW9kZXMsIG9mZnNldHMsIGVuYWJsZWQsIHdpZHRo LCBoZWlnaHQpICYmCisJICAgICFkcm1fdGFyZ2V0X3ByZWZlcnJlZChmYl9oZWxwZXIsIG1vZGVz LCBvZmZzZXRzLCBlbmFibGVkLCB3aWR0aCwgaGVpZ2h0KSkKKwkJRFJNX0VSUk9SKCJVbmFibGUg dG8gZmluZCBpbml0aWFsIG1vZGVzXG4iKTsKIAotCQlpZiAoIWRybV90YXJnZXRfY2xvbmVkKGZi X2hlbHBlciwgbW9kZXMsIG9mZnNldHMsCi0JCQkJICAgICAgIGVuYWJsZWQsIHdpZHRoLCBoZWln aHQpICYmCi0JCSAgICAhZHJtX3RhcmdldF9wcmVmZXJyZWQoZmJfaGVscGVyLCBtb2Rlcywgb2Zm c2V0cywKLQkJCQkJICBlbmFibGVkLCB3aWR0aCwgaGVpZ2h0KSkKLQkJCURSTV9FUlJPUigiVW5h YmxlIHRvIGZpbmQgaW5pdGlhbCBtb2Rlc1xuIik7CisJRFJNX0RFQlVHX0tNUygicGlja2luZyBD UlRDcyBmb3IgJWR4JWQgY29uZmlnXG4iLCB3aWR0aCwgaGVpZ2h0KTsKIAotCQlEUk1fREVCVUdf S01TKCJwaWNraW5nIENSVENzIGZvciAlZHglZCBjb25maWdcbiIsCi0JCQkgICAgICB3aWR0aCwg aGVpZ2h0KTsKLQotCQlkcm1fcGlja19jcnRjcyhmYl9oZWxwZXIsIGNydGNzLCBtb2RlcywgMCwg d2lkdGgsIGhlaWdodCk7Ci0JfQorCWRybV9waWNrX2NydGNzKGZiX2hlbHBlciwgY3J0Y3MsIG1v ZGVzLCAwLCB3aWR0aCwgaGVpZ2h0KTsKIAogCS8qIG5lZWQgdG8gc2V0IHRoZSBtb2Rlc2V0cyB1 cCBoZXJlIGZvciB1c2UgbGF0ZXIgKi8KIAkvKiBmaWxsIG91dCB0aGUgY29ubmVjdG9yPC0+Y3J0 YyBtYXBwaW5ncyBpbnRvIHRoZSBtb2Rlc2V0cyAqLwotCWZvciAoaSA9IDA7IGkgPCBmYl9oZWxw ZXItPmNydGNfY291bnQ7IGkrKykKLQkJZHJtX2ZiX2hlbHBlcl9tb2Rlc2V0X3JlbGVhc2UoZmJf aGVscGVyLAotCQkJCQkgICAgICAmZmJfaGVscGVyLT5jcnRjX2luZm9baV0ubW9kZV9zZXQpOwog CiAJZHJtX2ZiX2hlbHBlcl9mb3JfZWFjaF9jb25uZWN0b3IoZmJfaGVscGVyLCBpKSB7CiAJCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gbW9kZXNbaV07Ci0JCXN0cnVjdCBkcm1fZmJf aGVscGVyX2NydGMgKmZiX2NydGMgPSBjcnRjc1tpXTsKKwkJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gY3J0Y3NbaV07CiAJCXN0cnVjdCBkcm1fZmJfb2Zmc2V0ICpvZmZzZXQgPSAmb2Zmc2V0c1tp XTsKIAotCQlpZiAobW9kZSAmJiBmYl9jcnRjKSB7CisJCWlmIChtb2RlICYmIGNydGMpIHsKIAkJ CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPQogCQkJCWZiX2hlbHBlci0+Y29ubmVj dG9yX2luZm9baV0tPmNvbm5lY3RvcjsKIAkJCXN0cnVjdCBkcm1fbW9kZV9zZXQgKm1vZGVzZXQ7 CiAKLQkJCW1vZGVzZXQgPSBkcm1fY2xpZW50X2Rpc3BsYXlfZmluZF9tb2Rlc2V0KGRpc3BsYXks IGZiX2NydGMtPm1vZGVfc2V0LmNydGMpOworCQkJbW9kZXNldCA9IGRybV9jbGllbnRfZGlzcGxh eV9maW5kX21vZGVzZXQoZGlzcGxheSwgY3J0Yyk7CiAJCQlpZiAoV0FSTl9PTighbW9kZXNldCkp IHsKIAkJCQlkcm1fY2xpZW50X2Rpc3BsYXlfZnJlZShkaXNwbGF5KTsKIAkJCQlnb3RvIG91dDsK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2Ry bV9mYl9oZWxwZXIuaAppbmRleCBmMzc5ZWY2ZDYwODUuLjQwODkzMWY3NjEzZiAxMDA2NDQKLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9mYl9o ZWxwZXIuaApAQCAtNDUsMTIgKzQ1LDYgQEAgc3RydWN0IGRybV9mYl9vZmZzZXQgewogCWludCB4 LCB5OwogfTsKIAotc3RydWN0IGRybV9mYl9oZWxwZXJfY3J0YyB7Ci0Jc3RydWN0IGRybV9tb2Rl X3NldCBtb2RlX3NldDsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVzaXJlZF9tb2RlOwot CWludCB4LCB5OwotfTsKLQogLyoqCiAgKiBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3Np emUgLSBkZXNjcmliZXMgZmJkZXYgc2l6ZSBhbmQgc2Nhbm91dCBzdXJmYWNlIHNpemUKICAqIEBm Yl93aWR0aDogZmJkZXYgd2lkdGgKQEAgLTEwMSwyOSArOTUsNiBAQCBzdHJ1Y3QgZHJtX2ZiX2hl bHBlcl9mdW5jcyB7CiAJICovCiAJaW50ICgqZmJfcHJvYmUpKHN0cnVjdCBkcm1fZmJfaGVscGVy ICpoZWxwZXIsCiAJCQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUgKnNpemVzKTsK LQotCS8qKgotCSAqIEBpbml0aWFsX2NvbmZpZzoKLQkgKgotCSAqIERyaXZlciBjYWxsYmFjayB0 byBzZXR1cCBhbiBpbml0aWFsIGZiZGV2IGRpc3BsYXkgY29uZmlndXJhdGlvbi4KLQkgKiBEcml2 ZXJzIGNhbiB1c2UgdGhpcyBjYWxsYmFjayB0byB0ZWxsIHRoZSBmYmRldiBlbXVsYXRpb24gd2hh dCB0aGUKLQkgKiBwcmVmZXJyZWQgaW5pdGlhbCBjb25maWd1cmF0aW9uIGlzLiBUaGlzIGlzIHVz ZWZ1bCB0byBpbXBsZW1lbnQKLQkgKiBzbW9vdGggYm9vdGluZyB3aGVyZSB0aGUgZmJkZXYgKGFu ZCBzdWJzZXF1ZW50bHkgYWxsIHVzZXJzcGFjZSkgbmV2ZXIKLQkgKiBjaGFuZ2VzIHRoZSBtb2Rl LCBidXQgYWx3YXlzIGluaGVyaXRzIHRoZSBleGlzdGluZyBjb25maWd1cmF0aW9uLgotCSAqCi0J ICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4KLQkgKgotCSAqIFJFVFVSTlM6Ci0JICoKLQkg KiBUaGUgZHJpdmVyIHNob3VsZCByZXR1cm4gdHJ1ZSBpZiBhIHN1aXRhYmxlIGluaXRpYWwgY29u ZmlndXJhdGlvbiBoYXMKLQkgKiBiZWVuIGZpbGxlZCBvdXQgYW5kIGZhbHNlIHdoZW4gdGhlIGZi ZGV2IGhlbHBlciBzaG91bGQgZmFsbCBiYWNrIHRvCi0JICogdGhlIGRlZmF1bHQgcHJvYmluZyBs b2dpYy4KLQkgKi8KLQlib29sICgqaW5pdGlhbF9jb25maWcpKHN0cnVjdCBkcm1fZmJfaGVscGVy ICpmYl9oZWxwZXIsCi0JCQkgICAgICAgc3RydWN0IGRybV9mYl9oZWxwZXJfY3J0YyAqKmNydGNz LAotCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICoqbW9kZXMsCi0JCQkgICAgICAg c3RydWN0IGRybV9mYl9vZmZzZXQgKm9mZnNldHMsCi0JCQkgICAgICAgYm9vbCAqZW5hYmxlZCwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKIH07CiAKIHN0cnVjdCBkcm1fZmJfaGVscGVyX2Nvbm5l Y3RvciB7CkBAIC0xNjMsOCArMTM0LDYgQEAgc3RydWN0IGRybV9mYl9oZWxwZXIgewogCSAqLwog CXN0cnVjdCBkcm1fY2xpZW50X2Rpc3BsYXkgKmRpc3BsYXk7CiAKLQlpbnQgY3J0Y19jb3VudDsK LQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jcnRjICpjcnRjX2luZm87CiAJaW50IGNvbm5lY3Rvcl9j b3VudDsKIAlpbnQgY29ubmVjdG9yX2luZm9fYWxsb2NfY291bnQ7CiAJLyoqCi0tIAoyLjE1LjEK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=