From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 00003FA1FD8 for ; Wed, 22 Apr 2026 16:50:31 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4769D10EEE8; Wed, 22 Apr 2026 16:50:31 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=bootlin.com header.i=@bootlin.com header.b="qeG4FwfX"; dkim-atps=neutral Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8C26410EEDE for ; Wed, 22 Apr 2026 16:50:29 +0000 (UTC) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 7B3241A33B1; Wed, 22 Apr 2026 16:50:28 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 4F6FA5FA8F; Wed, 22 Apr 2026 16:50:28 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 32FCF104609C6; Wed, 22 Apr 2026 18:50:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1776876626; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=YWYQQ4DJG3y5givOnEvKOstRYLRy/YajII17uK3gjZA=; b=qeG4FwfXodwnpLG2EtM8miNOf6msFIFxNXn8Ct8SvO3RpBPJtKHv9TOKYW8wit9v3pOjFm uPkfHVbm+T2OLitxfY2d3/EbiNmOgRwdc+x2hcKUJX8zNDLaJ6whF3kcs9NmmQZYxmSywI sJkkwKZ7BOe2IZz578kUlURUt9VAk0qKRJ/oHGd3EJ0yOysTglouzLEguunU/fhfLNrtyn iSqWDyOC2EDiHrn827z4iKfNj1U1OCpbDnPZlO2BVFvKrAGzy1fEQQhEGtD8F9jwkZV1Ep mrkG3AU8/T0LWk0KG0FrWlNTrkbMSbkBm4yUbLHah5mHwg5IdFyBI2hgKtscUw== From: Louis Chauvet Date: Wed, 22 Apr 2026 18:48:32 +0200 Subject: [PATCH v4 35/37] drm/vkms: Introduce configfs for dynamic connector creation MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-Id: <20260422-vkms-all-config-v4-35-dbb52e9aadc3@bootlin.com> References: <20260422-vkms-all-config-v4-0-dbb52e9aadc3@bootlin.com> In-Reply-To: <20260422-vkms-all-config-v4-0-dbb52e9aadc3@bootlin.com> To: Haneen Mohammed , Simona Vetter , Melissa Wen , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , jose.exposito89@gmail.com, Jonathan Corbet , Shuah Khan , Miguel Ojeda , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: victoria@system76.com, sebastian.wick@redhat.com, victoria@system76.com, airlied@gmail.com, thomas.petazzoni@bootlin.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Louis Chauvet , llvm@lists.linux.dev X-Mailer: b4 0.16-dev X-Last-TLS-Session-Version: TLSv1.3 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RFJNIGFsbG93cyB0aGUgY29ubmVjdG9yIHRvIGJlIGNyZWF0ZWQgYWZ0ZXIgdGhlIGRldmljZS4g VG8gYWxsb3dzCmVtdWxhdGluZyB0aGlzLCBhZGQgdHdvIGNvbmZpZ2ZzIGF0dHJpYnV0ZXMgdG8g Y29ubmVjdG9yIHRvIGFsbG93cyB0aGlzLgoKVXNpbmcgdGhlIGR5bmFtaWMgYXR0cmlidXRlIHlv dSBjYW4gc2V0IGlmIGEgY29ubmVjdG9yIHdpbGwgYmUgZHluYW1pYyBvcgpub3QuClVzaW5nIHRo ZSBlbmFibGVkIGF0dHJpYnV0ZSwgeW91IGNhbiBzZXQgYXQgcnVudGltZSBpZiBhIGR5bmFtaWMg Y29ubmVjdG9yCmlzIHByZXNlbnQgb3Igbm90LgoKQ28tZGV2ZWxvcGVkLWJ5OiBKb3PDqSBFeHDD s3NpdG8gPGpvc2UuZXhwb3NpdG84OUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpvc8OpIEV4 cMOzc2l0byA8am9zZS5leHBvc2l0bzg5QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogTG91aXMg Q2hhdXZldCA8bG91aXMuY2hhdXZldEBib290bGluLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL0FC SS90ZXN0aW5nL2NvbmZpZ2ZzLXZrbXMgfCAgMTQgKysrKwogRG9jdW1lbnRhdGlvbi9ncHUvdmtt cy5yc3QgICAgICAgICAgICAgIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Nv bmZpZ2ZzLmMgICAgfCAxNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDMgZmls ZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9jb25maWdmcy12a21zIGIvRG9jdW1lbnRhdGlv bi9BQkkvdGVzdGluZy9jb25maWdmcy12a21zCmluZGV4IDgyMTVjZDNmZjQ2Ni4uOTk5MTFhYTM2 NDY3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2NvbmZpZ2ZzLXZrbXMK KysrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9jb25maWdmcy12a21zCkBAIC02Miw2ICs2 MiwyMCBAQCBEZXNjcmlwdGlvbjoKIAlDb250ZW50IG9mIHRoZSBFRElEIGZvciB0aGlzIGNvbm5l Y3Rvci4gSWdub3JlZCBpZgogCWVkaWRfZW5hYmxlZCBpcyBub3Qgc2V0LgogCitXaGF0OgkJL3N5 cy9rZXJuZWwvY29uZmlnL3ZrbXMvPGRldmljZT4vY29ubmVjdG9ycy88Y29ubmVjdG9yPi9keW5h bWljCitEYXRlOgkJTm92IDIwMjUKK0NvbnRhY3Q6CWRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKK0Rlc2NyaXB0aW9uOgorCVNldCB0byAxIHRvIGNyZWF0ZSBhIGR5bmFtaWMgY29ubmVj dG9yIChlbXVsYXRlcyBEUCBNU1QpLgorCVZhbHVlOiAxIC0gZHluYW1pYywgMCAtIHN0YXRpYy4K KworV2hhdDoJCS9zeXMva2VybmVsL2NvbmZpZy92a21zLzxkZXZpY2U+L2Nvbm5lY3RvcnMvPGNv bm5lY3Rvcj4vZW5hYmxlZAorRGF0ZToJCU5vdiAyMDI1CitDb250YWN0OglkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCitEZXNjcmlwdGlvbjoKKwlGb3IgZHluYW1pYyBjb25uZWN0b3Jz LCBzZXQgdG8gMSB0byBjcmVhdGUgdGhlIGNvbm5lY3RvciwKKwkwIHRvIHJlbW92ZSBpdC4gVmFs dWU6IDEgLSBlbmFibGVkLCAwIC0gZGlzYWJsZWQuCisKIFdoYXQ6CQkvc3lzL2tlcm5lbC9jb25m aWcvdmttcy88ZGV2aWNlPi9jb25uZWN0b3JzLzxjb25uZWN0b3I+L3Bvc3NpYmxlX2VuY29kZXJz CiBEYXRlOgkJTm92IDIwMjUKIENvbnRhY3Q6CWRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L3ZrbXMucnN0IGIvRG9jdW1lbnRhdGlv bi9ncHUvdmttcy5yc3QKaW5kZXggYTdkNmE0YTNiNTNiLi41YzAxMzAxNGM0NTcgMTAwNjQ0Ci0t LSBhL0RvY3VtZW50YXRpb24vZ3B1L3ZrbXMucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L3Zr bXMucnN0CkBAIC0xMzgsNyArMTM4LDcgQEAgTGFzdCBidXQgbm90IGxlYXN0LCBjcmVhdGUgb25l IG9yIG1vcmUgY29ubmVjdG9yczo6CiAKICAgc3VkbyBta2RpciAvY29uZmlnL3ZrbXMvbXktdmtt cy9jb25uZWN0b3JzL2Nvbm5lY3RvcjAKIAotQ29ubmVjdG9ycyBoYXZlIDUgY29uZmlndXJhYmxl IGF0dHJpYnV0ZToKK0Nvbm5lY3RvcnMgaGF2ZSA3IGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGU6CiAK IC0gc3RhdHVzOiBDb25uZWN0aW9uIHN0YXR1czogMSBjb25uZWN0ZWQsIDIgZGlzY29ubmVjdGVk LCAzIHVua25vd24gKHNhbWUgdmFsdWVzCiAgIGFzIHRob3NlIGV4cG9zZWQgYnkgdGhlICJzdGF0 dXMiIHByb3BlcnR5IG9mIGEgY29ubmVjdG9yKQpAQCAtMTUwLDcgKzE1MCw5IEBAIENvbm5lY3Rv cnMgaGF2ZSA1IGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGU6CiAtIGVkaWRfZW5hYmxlZDogRW5hYmxl IG9yIG5vdCBFRElEIGZvciB0aGlzIGNvbm5lY3Rvci4gU29tZSBjb25uZWN0b3JzIG1heSBub3Qg aGF2ZSBhbgogICBFRElEIGJ1dCBqdXN0IGEgbGlzdCBvZiBtb2RlcywgdGhpcyBhdHRyaWJ1dGUg YWxsb3dzIHRvIGRpc2FibGUgRURJRCBwcm9wZXJ0eS4KIC0gZWRpZDogQ29udGVudCBvZiB0aGUg RURJRC4gSWdub3JlZCBpZiBlZGlkX2VuYWJsZWQgaXMgbm90IHNldAotCistIGR5bmFtaWM6IFNl dCB0byAxIHdoaWxlIGNvbmZpZ3VyaW5nIHRoZSBkZXZpY2UgdG8gY3JlYXRlIGEgZHluYW1pYyBj b25uZWN0b3IuIEEgZHluYW1pYworICBjb25uZWN0b3IgY2FuIGJlIHVzZWQgdG8gZW11bGF0ZSBE UCBNU1QgY29ubmVjdG9ycy4KKy0gZW5hYmxlZDogRm9yIGR5bmFtaWMgY29ubmVjdG9yLCBzZXQg aXQgdG8gMSB0byBjcmVhdGUgdGhlIGNvbm5lY3RvciwgMCB0byByZW1vdmUgaXQuCiAKIFRvIGZp bmlzaCB0aGUgY29uZmlndXJhdGlvbiwgbGluayB0aGUgZGlmZmVyZW50IHBpcGVsaW5lIGl0ZW1z OjoKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jb25maWdmcy5jIGIv ZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jb25maWdmcy5jCmluZGV4IGNmMzg4ODUxOTEwYi4u ZTc3NTJhYzFjZDUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NvbmZp Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jb25maWdmcy5jCkBAIC0xMTQ3 LDYgKzExNDcsMTIgQEAgc3RhdGljIHNzaXplX3QgY29ubmVjdG9yX3N0YXR1c19zaG93KHN0cnVj dCBjb25maWdfaXRlbSAqaXRlbSwgY2hhciAqcGFnZSkKIAlyZXR1cm4gc3ByaW50ZihwYWdlLCAi JXUiLCBzdGF0dXMpOwogfQogCitzdGF0aWMgYm9vbCBjb25uZWN0b3JfaXNfZW5hYmxlZChzdHJ1 Y3Qgdmttc19jb25maWdfY29ubmVjdG9yICpjb25uZWN0b3JfY2ZnKQoreworCXJldHVybiAhY29u bmVjdG9yX2NmZy0+ZHluYW1pYyB8fAorCSAgICAgICAoY29ubmVjdG9yX2NmZy0+ZHluYW1pYyAm JiBjb25uZWN0b3JfY2ZnLT5lbmFibGVkKTsKK30KKwogc3RhdGljIHNzaXplX3QgY29ubmVjdG9y X3N0YXR1c19zdG9yZShzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sCiAJCQkJICAgICAgY29uc3Qg Y2hhciAqcGFnZSwgc2l6ZV90IGNvdW50KQogewpAQCAtMTE2Niw3ICsxMTcyLDcgQEAgc3RhdGlj IHNzaXplX3QgY29ubmVjdG9yX3N0YXR1c19zdG9yZShzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0s CiAJc2NvcGVkX2d1YXJkKG11dGV4LCAmY29ubmVjdG9yLT5kZXYtPmxvY2spIHsKIAkJdmttc19j b25maWdfY29ubmVjdG9yX3NldF9zdGF0dXMoY29ubmVjdG9yLT5jb25maWcsIHN0YXR1cyk7CiAK LQkJaWYgKGNvbm5lY3Rvci0+ZGV2LT5lbmFibGVkKQorCQlpZiAoY29ubmVjdG9yLT5kZXYtPmVu YWJsZWQgJiYgY29ubmVjdG9yX2lzX2VuYWJsZWQoY29ubmVjdG9yLT5jb25maWcpKQogCQkJdmtt c190cmlnZ2VyX2Nvbm5lY3Rvcl9ob3RwbHVnKGNvbm5lY3Rvci0+ZGV2LT5jb25maWctPmRldik7 CiAJfQogCkBAIC0xMjI3LDcgKzEyMzMsNyBAQCBzdGF0aWMgc3NpemVfdCBjb25uZWN0b3JfdHlw ZV9zdG9yZShzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sCiAJfQogCiAJc2NvcGVkX2d1YXJkKG11 dGV4LCAmY29ubmVjdG9yLT5kZXYtPmxvY2spIHsKLQkJaWYgKGNvbm5lY3Rvci0+ZGV2LT5lbmFi bGVkKQorCQlpZiAoY29ubmVjdG9yLT5kZXYtPmVuYWJsZWQgJiYgY29ubmVjdG9yX2lzX2VuYWJs ZWQoY29ubmVjdG9yLT5jb25maWcpKQogCQkJcmV0dXJuIC1FQlVTWTsKIAogCQl2a21zX2NvbmZp Z19jb25uZWN0b3Jfc2V0X3R5cGUoY29ubmVjdG9yLT5jb25maWcsIHZhbCk7CkBAIC0xMzQ2LDYg KzEzNTIsMTA3IEBAIHN0YXRpYyBzc2l6ZV90IGNvbm5lY3Rvcl9lZGlkX3N0b3JlKHN0cnVjdCBj b25maWdfaXRlbSAqaXRlbSwKIAkJICAgIGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkKQog CQkJdmttc190cmlnZ2VyX2Nvbm5lY3Rvcl9ob3RwbHVnKGNvbm5lY3Rvci0+ZGV2LT5jb25maWct PmRldik7CiAJfQorCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIHNzaXplX3QgY29ubmVjdG9y X2VuYWJsZWRfc2hvdyhzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0sIGNoYXIgKnBhZ2UpCit7CisJ c3RydWN0IHZrbXNfY29uZmlnZnNfY29ubmVjdG9yICpjb25uZWN0b3I7CisJYm9vbCBlbmFibGVk OworCisJY29ubmVjdG9yID0gY29ubmVjdG9yX2l0ZW1fdG9fdmttc19jb25maWdmc19jb25uZWN0 b3IoaXRlbSk7CisKKwlzY29wZWRfZ3VhcmQobXV0ZXgsICZjb25uZWN0b3ItPmRldi0+bG9jaykK KwkJZW5hYmxlZCA9IHZrbXNfY29uZmlnX2Nvbm5lY3Rvcl9pc19lbmFibGVkKGNvbm5lY3Rvci0+ Y29uZmlnKTsKKworCXJldHVybiBzcHJpbnRmKHBhZ2UsICIlZFxuIiwgZW5hYmxlZCk7Cit9CisK K3N0YXRpYyBzc2l6ZV90IGNvbm5lY3Rvcl9lbmFibGVkX3N0b3JlKHN0cnVjdCBjb25maWdfaXRl bSAqaXRlbSwKKwkJCQkgICAgICAgY29uc3QgY2hhciAqcGFnZSwgc2l6ZV90IGNvdW50KQorewor CXN0cnVjdCB2a21zX2NvbmZpZ2ZzX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCB2a21z X2NvbmZpZ19jb25uZWN0b3IgKmNvbm5lY3Rvcl9jZmc7CisJYm9vbCBlbmFibGVkLCB3YXNfZW5h YmxlZDsKKworCWNvbm5lY3RvciA9IGNvbm5lY3Rvcl9pdGVtX3RvX3ZrbXNfY29uZmlnZnNfY29u bmVjdG9yKGl0ZW0pOworCWNvbm5lY3Rvcl9jZmcgPSBjb25uZWN0b3ItPmNvbmZpZzsKKworCWlm IChrc3RydG9ib29sKHBhZ2UsICZlbmFibGVkKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJc2NvcGVk X2d1YXJkKG11dGV4LCAmY29ubmVjdG9yLT5kZXYtPmxvY2spIHsKKwkJaWYgKCFjb25uZWN0b3It PmRldi0+ZW5hYmxlZCkgeworCQkJdmttc19jb25maWdfY29ubmVjdG9yX3NldF9lbmFibGVkKGNv bm5lY3Rvcl9jZmcsIGVuYWJsZWQpOworCQl9IGVsc2UgeworCQkJLy8gT25seSBkeW5hbWljIGNv bm5lY3RvciBjYW4gYmUgZW5hYmxlZC9kaXNhYmxlZCBhdCBydW50aW1lCisJCQlpZiAoIWNvbm5l Y3Rvcl9jZmctPmR5bmFtaWMpCisJCQkJcmV0dXJuIC1FQlVTWTsKKworCQkJd2FzX2VuYWJsZWQg PSB2a21zX2NvbmZpZ19jb25uZWN0b3JfaXNfZW5hYmxlZChjb25uZWN0b3JfY2ZnKTsKKwkJCXZr bXNfY29uZmlnX2Nvbm5lY3Rvcl9zZXRfZW5hYmxlZChjb25uZWN0b3JfY2ZnLCBlbmFibGVkKTsK KworCQkJLy8gUmVzdWx0aW5nIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCAobWlzc2luZyBlbmNv ZGVyIGZvciBleGFtcGxlKQorCQkJLy8gRWFybHkgcmV0dXJuIHRvIGF2b2lkIGRybSBjb3JlIGlz c3VlCisJCQlpZiAoIXZrbXNfY29uZmlnX2lzX3ZhbGlkKGNvbm5lY3Rvci0+ZGV2LT5jb25maWcp KSB7CisJCQkJY291bnQgPSAtRUlOVkFMOworCQkJCWdvdG8gcm9sbGJhY2s7CisJCQl9CisKKwkJ CWlmICghd2FzX2VuYWJsZWQgJiYgZW5hYmxlZCkgeworCQkJCS8vIEFkZGluZyB0aGUgY29ubmVj dG9yCisJCQkJY29ubmVjdG9yX2NmZy0+Y29ubmVjdG9yID0gdmttc19jb25uZWN0b3JfaG90X2Fk ZChjb25uZWN0b3ItPmRldi0+Y29uZmlnLT5kZXYsCisJCQkJCQkJCQkJICBjb25uZWN0b3JfY2Zn KTsKKwkJCQlpZiAoSVNfRVJSKGNvbm5lY3Rvcl9jZmctPmNvbm5lY3RvcikpIHsKKwkJCQkJY291 bnQgPSBQVFJfRVJSKGNvbm5lY3Rvcl9jZmctPmNvbm5lY3Rvcik7CisJCQkJCWdvdG8gcm9sbGJh Y2s7CisJCQkJfQorCQkJfSBlbHNlIGlmICh3YXNfZW5hYmxlZCAmJiAhZW5hYmxlZCkgeworCQkJ CXZrbXNfY29ubmVjdG9yX2hvdF9yZW1vdmUoY29ubmVjdG9yLT5kZXYtPmNvbmZpZy0+ZGV2LAor CQkJCQkJCSAgY29ubmVjdG9yX2NmZy0+Y29ubmVjdG9yKTsKKwkJCX0KKwkJfQorCX0KKwlyZXR1 cm4gY291bnQ7CisKK3JvbGxiYWNrOgorCXZrbXNfY29uZmlnX2Nvbm5lY3Rvcl9zZXRfZW5hYmxl ZChjb25uZWN0b3JfY2ZnLCB3YXNfZW5hYmxlZCk7CisJcmV0dXJuIGNvdW50OworfQorCitzdGF0 aWMgc3NpemVfdCBjb25uZWN0b3JfZHluYW1pY19zaG93KHN0cnVjdCBjb25maWdfaXRlbSAqaXRl bSwgY2hhciAqcGFnZSkKK3sKKwlzdHJ1Y3Qgdmttc19jb25maWdmc19jb25uZWN0b3IgKmNvbm5l Y3RvcjsKKwlib29sIGVuYWJsZWQ7CisKKwljb25uZWN0b3IgPSBjb25uZWN0b3JfaXRlbV90b192 a21zX2NvbmZpZ2ZzX2Nvbm5lY3RvcihpdGVtKTsKKworCXNjb3BlZF9ndWFyZChtdXRleCwgJmNv bm5lY3Rvci0+ZGV2LT5sb2NrKSB7CisJCWVuYWJsZWQgPSB2a21zX2NvbmZpZ19jb25uZWN0b3Jf aXNfZHluYW1pYyhjb25uZWN0b3ItPmNvbmZpZyk7CisJfQorCisJcmV0dXJuIHNwcmludGYocGFn ZSwgIiVkXG4iLCBlbmFibGVkKTsKK30KKworc3RhdGljIHNzaXplX3QgY29ubmVjdG9yX2R5bmFt aWNfc3RvcmUoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLAorCQkJCSAgICAgICBjb25zdCBjaGFy ICpwYWdlLCBzaXplX3QgY291bnQpCit7CisJc3RydWN0IHZrbXNfY29uZmlnZnNfY29ubmVjdG9y ICpjb25uZWN0b3I7CisJc3RydWN0IHZrbXNfY29uZmlnX2Nvbm5lY3RvciAqY29ubmVjdG9yX2Nm ZzsKKwlib29sIGR5bmFtaWM7CisKKwljb25uZWN0b3IgPSBjb25uZWN0b3JfaXRlbV90b192a21z X2NvbmZpZ2ZzX2Nvbm5lY3RvcihpdGVtKTsKKwljb25uZWN0b3JfY2ZnID0gY29ubmVjdG9yLT5j b25maWc7CisKKwlpZiAoa3N0cnRvYm9vbChwYWdlLCAmZHluYW1pYykpCisJCXJldHVybiAtRUlO VkFMOworCisJc2NvcGVkX2d1YXJkKG11dGV4LCAmY29ubmVjdG9yLT5kZXYtPmxvY2spIHsKKwkJ Ly8gQ2FuJ3QgY2hhbmdlIHRoZSBkeW5hbWljIHN0YXR1cyB3aGVuIHRoZSBkZXZpY2UgaXMgYWN0 aXZhdGVkCisJCWlmIChjb25uZWN0b3ItPmRldi0+ZW5hYmxlZCkKKwkJCXJldHVybiAtRUJVU1k7 CisKKwkJdmttc19jb25maWdfY29ubmVjdG9yX3NldF9keW5hbWljKGNvbm5lY3Rvcl9jZmcsIGR5 bmFtaWMpOworCX0KIAogCXJldHVybiBjb3VudDsKIH0KQEAgLTEzNTUsNiArMTQ2Miw4IEBAIENP TkZJR0ZTX0FUVFIoY29ubmVjdG9yXywgdHlwZSk7CiBDT05GSUdGU19BVFRSKGNvbm5lY3Rvcl8s IHN1cHBvcnRlZF9jb2xvcnNwYWNlcyk7CiBDT05GSUdGU19BVFRSKGNvbm5lY3Rvcl8sIGVkaWRf ZW5hYmxlZCk7CiBDT05GSUdGU19BVFRSKGNvbm5lY3Rvcl8sIGVkaWQpOworQ09ORklHRlNfQVRU Uihjb25uZWN0b3JfLCBkeW5hbWljKTsKK0NPTkZJR0ZTX0FUVFIoY29ubmVjdG9yXywgZW5hYmxl ZCk7CiAKIHN0YXRpYyBzdHJ1Y3QgY29uZmlnZnNfYXR0cmlidXRlICpjb25uZWN0b3JfaXRlbV9h dHRyc1tdID0gewogCSZjb25uZWN0b3JfYXR0cl9zdGF0dXMsCkBAIC0xMzYyLDE5ICsxNDcxLDI4 IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnZnNfYXR0cmlidXRlICpjb25uZWN0b3JfaXRlbV9hdHRy c1tdID0gewogCSZjb25uZWN0b3JfYXR0cl9zdXBwb3J0ZWRfY29sb3JzcGFjZXMsCiAJJmNvbm5l Y3Rvcl9hdHRyX2VkaWRfZW5hYmxlZCwKIAkmY29ubmVjdG9yX2F0dHJfZWRpZCwKKwkmY29ubmVj dG9yX2F0dHJfZHluYW1pYywKKwkmY29ubmVjdG9yX2F0dHJfZW5hYmxlZCwKIAlOVUxMLAogfTsK IAogc3RhdGljIHZvaWQgY29ubmVjdG9yX3JlbGVhc2Uoc3RydWN0IGNvbmZpZ19pdGVtICppdGVt KQogewogCXN0cnVjdCB2a21zX2NvbmZpZ2ZzX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVj dCB2a21zX2NvbmZpZ19jb25uZWN0b3IgKmNvbm5lY3Rvcl9jZmc7CiAJc3RydWN0IG11dGV4ICps b2NrOwogCiAJY29ubmVjdG9yID0gY29ubmVjdG9yX2l0ZW1fdG9fdmttc19jb25maWdmc19jb25u ZWN0b3IoaXRlbSk7CisJY29ubmVjdG9yX2NmZyA9IGNvbm5lY3Rvci0+Y29uZmlnOwogCWxvY2sg PSAmY29ubmVjdG9yLT5kZXYtPmxvY2s7CiAKIAlzY29wZWRfZ3VhcmQobXV0ZXgsIGxvY2spIHsK KwkJaWYgKGNvbm5lY3Rvci0+ZGV2LT5lbmFibGVkICYmIGNvbm5lY3Rvcl9jZmctPmR5bmFtaWMg JiYgY29ubmVjdG9yX2NmZy0+ZW5hYmxlZCkKKwkJCXZrbXNfY29ubmVjdG9yX2hvdF9yZW1vdmUo Y29ubmVjdG9yLT5kZXYtPmNvbmZpZy0+ZGV2LAorCQkJCQkJICBjb25uZWN0b3JfY2ZnLT5jb25u ZWN0b3IpOworCiAJCXZrbXNfY29uZmlnX2Rlc3Ryb3lfY29ubmVjdG9yKGNvbm5lY3Rvci0+Y29u ZmlnKTsKKwogCQlrZnJlZShjb25uZWN0b3IpOwogCX0KIH0KQEAgLTEzOTMsNiArMTUxMSw3IEBA IHN0YXRpYyBpbnQgY29ubmVjdG9yX3Bvc3NpYmxlX2VuY29kZXJzX2FsbG93X2xpbmsoc3RydWN0 IGNvbmZpZ19pdGVtICpzcmMsCiAJCQkJCQkgIHN0cnVjdCBjb25maWdfaXRlbSAqdGFyZ2V0KQog ewogCXN0cnVjdCB2a21zX2NvbmZpZ2ZzX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCB2 a21zX2NvbmZpZ19jb25uZWN0b3IgKmNvbm5lY3Rvcl9jZmc7CiAJc3RydWN0IHZrbXNfY29uZmln ZnNfZW5jb2RlciAqZW5jb2RlcjsKIAlpbnQgcmV0OwogCkBAIC0xNDAwLDE0ICsxNTE5LDI1IEBA IHN0YXRpYyBpbnQgY29ubmVjdG9yX3Bvc3NpYmxlX2VuY29kZXJzX2FsbG93X2xpbmsoc3RydWN0 IGNvbmZpZ19pdGVtICpzcmMsCiAJCXJldHVybiAtRUlOVkFMOwogCiAJY29ubmVjdG9yID0gY29u bmVjdG9yX3Bvc3NpYmxlX2VuY29kZXJzX2l0ZW1fdG9fdmttc19jb25maWdmc19jb25uZWN0b3Io c3JjKTsKKwljb25uZWN0b3JfY2ZnID0gY29ubmVjdG9yLT5jb25maWc7CiAJZW5jb2RlciA9IGVu Y29kZXJfaXRlbV90b192a21zX2NvbmZpZ2ZzX2VuY29kZXIodGFyZ2V0KTsKIAogCXNjb3BlZF9n dWFyZChtdXRleCwgJmNvbm5lY3Rvci0+ZGV2LT5sb2NrKSB7Ci0JCWlmIChjb25uZWN0b3ItPmRl di0+ZW5hYmxlZCkKLQkJCXJldHVybiAtRUJVU1k7CisJCWlmIChjb25uZWN0b3ItPmRldi0+ZW5h YmxlZCAmJiBjb25uZWN0b3JfY2ZnLT5lbmFibGVkKSB7CisJCQlpZiAoIWNvbm5lY3Rvcl9jZmct PmR5bmFtaWMpCisJCQkJcmV0dXJuIC1FQlVTWTsKKworCQkJcmV0ID0gdmttc19jb25uZWN0b3Jf aG90X2F0dGFjaF9lbmNvZGVyKGNvbm5lY3Rvci0+ZGV2LT5jb25maWctPmRldiwKKwkJCQkJCQkJ Y29ubmVjdG9yLT5jb25maWctPmNvbm5lY3RvciwKKwkJCQkJCQkJZW5jb2Rlci0+Y29uZmlnLT5l bmNvZGVyKTsKKwkJCWlmIChyZXQpCisJCQkJcmV0dXJuIHJldDsKKwkJfQogCiAJCXJldCA9IHZr bXNfY29uZmlnX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3ItPmNvbmZpZywKIAkJ CQkJCQkgICBlbmNvZGVyLT5jb25maWcpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKIAl9 CiAKIAlyZXR1cm4gcmV0OwpAQCAtMTQ0OCw5ICsxNTc4LDYgQEAgc3RhdGljIHN0cnVjdCBjb25m aWdfZ3JvdXAgKm1ha2VfY29ubmVjdG9yX2dyb3VwKHN0cnVjdCBjb25maWdfZ3JvdXAgKmdyb3Vw LAogCWRldiA9IGNoaWxkX2dyb3VwX3RvX3ZrbXNfY29uZmlnZnNfZGV2aWNlKGdyb3VwKTsKIAog CXNjb3BlZF9ndWFyZChtdXRleCwgJmRldi0+bG9jaykgewotCQlpZiAoZGV2LT5lbmFibGVkKQot CQkJcmV0dXJuIEVSUl9QVFIoLUVCVVNZKTsKLQogCQljb25uZWN0b3IgPSBremFsbG9jKHNpemVv ZigqY29ubmVjdG9yKSwgR0ZQX0tFUk5FTCk7CiAJCWlmICghY29ubmVjdG9yKQogCQkJcmV0dXJu IEVSUl9QVFIoLUVOT01FTSk7CkBAIC0xNDY0LDYgKzE1OTEsOSBAQCBzdGF0aWMgc3RydWN0IGNv bmZpZ19ncm91cCAqbWFrZV9jb25uZWN0b3JfZ3JvdXAoc3RydWN0IGNvbmZpZ19ncm91cCAqZ3Jv dXAsCiAJCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCQl9CiAKKwkJdmttc19jb25maWdfY29ubmVj dG9yX3NldF9keW5hbWljKGNvbm5lY3Rvci0+Y29uZmlnLCBjb25uZWN0b3ItPmRldi0+ZW5hYmxl ZCk7CisJCXZrbXNfY29uZmlnX2Nvbm5lY3Rvcl9zZXRfZW5hYmxlZChjb25uZWN0b3ItPmNvbmZp ZywgIWNvbm5lY3Rvci0+ZGV2LT5lbmFibGVkKTsKKwogCQljb25maWdfZ3JvdXBfaW5pdF90eXBl X25hbWUoJmNvbm5lY3Rvci0+Z3JvdXAsIG5hbWUsCiAJCQkJCSAgICAmY29ubmVjdG9yX2l0ZW1f dHlwZSk7CiAKCi0tIAoyLjU0LjAKCg==