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 X-Spam-Level: X-Spam-Status: No, score=-16.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 72BE0C4320A for ; Tue, 27 Jul 2021 12:11:16 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 3FD7861A71 for ; Tue, 27 Jul 2021 12:11:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 3FD7861A71 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 919F56EA2A; Tue, 27 Jul 2021 12:11:02 +0000 (UTC) Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4BD986E9D8 for ; Tue, 27 Jul 2021 12:10:53 +0000 (UTC) Received: by mail-wr1-x430.google.com with SMTP id r2so14985740wrl.1 for ; Tue, 27 Jul 2021 05:10:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QJnqoqOXB9+u6uqWz9HbnyQ59ICs56VzdaGB4gc4dXw=; b=VVYoVGzScvSTwe86Sro86PG/AQn/w7PUzP4czC1sC+v8U4rUuKHm979v15ACT+ToHL 98HCwNZzHjrvbJ4bJO37jIllURjW58cZbeQ4ORZwJ3WyAyyOwDL5ppFKNfgL47VJE0u0 XmYnWVc19KdZf6/1JWtUqRD3VSsjontF4o93M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QJnqoqOXB9+u6uqWz9HbnyQ59ICs56VzdaGB4gc4dXw=; b=kO88khKoUT/uAKkGzLO0xZv5ymJImo4GzYzACS1Y7NW2EKS7HH7/iPY5y2DkMOnCGG ztMZDRwGkEEs0zg1PSl+IzwX76ZFVPqigj37gOLDqvte5Y3J7z26T7NW7ZcJquWAq0sy n83SXMlfzff4Coxx/hq/qOwkV+YMuQQzYB8oikStP232DOlrQyNXLNtq6ShsmxD43PoM OdPfDYC116M9Yg+hzrWL2N2j4yjT0+CaaVyO+JXXFu3TgUjdc5WjoNxOrix+AqDOkVoi Dj7n7TWPKypYzfUCbXixMpCnROyDrg7YUoh2sENZoSZzWIb0VGigyQeVBZMCDsEwGgsB g3ww== X-Gm-Message-State: AOAM5308JKYIGqF6tXPPkKqlu9ILaFAsMzJwsyfGTUuozjpPTHCmqxYH Q2cFvB75w5wBD8jAQqJnOxWFqfyRB15ckg== X-Google-Smtp-Source: ABdhPJw/k/TYh8/3Ihcad2+67nGgvgPfPNRIZGXw4MLMsZtmhE0ZilpkgviilaM2KMi2urq/5XgF/A== X-Received: by 2002:a5d:4e8f:: with SMTP id e15mr16395021wru.313.1627387851808; Tue, 27 Jul 2021 05:10:51 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id k186sm3010577wme.45.2021.07.27.05.10.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jul 2021 05:10:51 -0700 (PDT) From: Daniel Vetter To: DRI Development Date: Tue, 27 Jul 2021 14:10:37 +0200 Message-Id: <20210727121037.2041102-11-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210727121037.2041102-1-daniel.vetter@ffwll.ch> References: <20210727121037.2041102-1-daniel.vetter@ffwll.ch> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 11/11] drm/i915: Extract i915_module.c X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Daniel Vetter , Intel Graphics Development Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" VGhlIG1vZHVsZSBpbml0IGNvZGUgaXMgc29tZXdoYXQgbWlzcGxhY2VkIGluIGk5MTVfcGNpLmMs IHNpbmNlIGl0Cm5lZWRzIHRvIHB1bGwgaW4gaW5pdC9leGl0IGZ1bmN0aW9ucyBmcm9tIGV2ZXJ5 IHBhcnQgb2YgdGhlIGRyaXZlciBhbmQKcG9sbHV0ZXMgdGhlIGluY2x1ZGUgbGlzdCBhIGxvdC4K CkV4dHJhY3QgYW4gaTkxNV9tb2R1bGUuYyBmaWxlIHdoaWNoIHB1bGxzIGFsbCB0aGUgYml0cyB0 b2dldGhlciwgYW5kCmFsbG93cyB1cyB0byBtYXNzaXZlbHkgdHJpbSB0aGUgaW5jbHVkZSBsaXN0 IG9mIGk5MTVfcGNpLmMuCgpUaGUgZG93bnNpZGUgaXMgdGhhdCBoYXZlIHRvIGRyb3AgdGhlIGVy cm9yIHBhdGggY2hlY2sgSmFzb24gYWRkZWQgdG8KY2F0Y2ggd2hlbiB3ZSBzZXQgdXAgdGhlIHBj aSBkcml2ZXIgdG9vIGVhcmx5LiBJIHRoaW5rIHRoYXQgcmlzayBpcwphY2NlcHRhYmxlIGZvciB0 aGlzIHByZXR0eSBuaWNlIGluY2x1ZGUuCgpDYzogSmFzb24gRWtzdHJhbmQgPGphc29uQGpsZWtz dHJhbmQubmV0PgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVs LmNvbT4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICB8ICAgMSArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21vZHVsZS5jIHwgMTEzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgICAgfCAxMTcgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmgg ICAgfCAgIDggKysKIDQgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlvbnMoKyksIDExNCBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21v ZHVsZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2ku aAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggOTAyMmRjNjM4ZWQ2Li40ZWJkOWY0MTdkZGIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlCkBAIC0zOCw2ICszOCw3IEBAIGk5MTUteSArPSBpOTE1X2Rydi5v IFwKIAkgIGk5MTVfaXJxLm8gXAogCSAgaTkxNV9nZXRwYXJhbS5vIFwKIAkgIGk5MTVfbWl0aWdh dGlvbnMubyBcCisJICBpOTE1X21vZHVsZS5vIFwKIAkgIGk5MTVfcGFyYW1zLm8gXAogCSAgaTkx NV9wY2kubyBcCiAJICBpOTE1X3NjYXR0ZXJsaXN0Lm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9tb2R1bGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfbW9k dWxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jNTc4ZWE4ZjU2 YTAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21vZHVsZS5j CkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAor ICoKKyAqIENvcHlyaWdodCDCqSAyMDIxIEludGVsIENvcnBvcmF0aW9uCisgKi8KKworI2luY2x1 ZGUgPGxpbnV4L2NvbnNvbGUuaD4KKworI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9jb250ZXh0Lmgi CisjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX29iamVjdC5oIgorI2luY2x1ZGUgImk5MTVfYWN0aXZl LmgiCisjaW5jbHVkZSAiaTkxNV9idWRkeS5oIgorI2luY2x1ZGUgImk5MTVfcGFyYW1zLmgiCisj aW5jbHVkZSAiaTkxNV9wY2kuaCIKKyNpbmNsdWRlICJpOTE1X3BlcmYuaCIKKyNpbmNsdWRlICJp OTE1X3JlcXVlc3QuaCIKKyNpbmNsdWRlICJpOTE1X3NjaGVkdWxlci5oIgorI2luY2x1ZGUgImk5 MTVfc2VsZnRlc3QuaCIKKyNpbmNsdWRlICJpOTE1X3ZtYS5oIgorCitzdGF0aWMgaW50IGk5MTVf Y2hlY2tfbm9tb2Rlc2V0KHZvaWQpCit7CisJYm9vbCB1c2Vfa21zID0gdHJ1ZTsKKworCS8qCisJ ICogRW5hYmxlIEtNUyBieSBkZWZhdWx0LCB1bmxlc3MgZXhwbGljaXRseSBvdmVycmlkZW4gYnkK KwkgKiBlaXRoZXIgdGhlIGk5MTUubW9kZXNldCBwcmFyYW1ldGVyIG9yIGJ5IHRoZQorCSAqIHZn YV90ZXh0X21vZGVfZm9yY2UgYm9vdCBvcHRpb24uCisJICovCisKKwlpZiAoaTkxNV9tb2RwYXJh bXMubW9kZXNldCA9PSAwKQorCQl1c2Vfa21zID0gZmFsc2U7CisKKwlpZiAodmdhY29uX3RleHRf Zm9yY2UoKSAmJiBpOTE1X21vZHBhcmFtcy5tb2Rlc2V0ID09IC0xKQorCQl1c2Vfa21zID0gZmFs c2U7CisKKwlpZiAoIXVzZV9rbXMpIHsKKwkJLyogU2lsZW50bHkgZmFpbCBsb2FkaW5nIHRvIG5v dCB1cHNldCB1c2Vyc3BhY2UuICovCisJCURSTV9ERUJVR19EUklWRVIoIktNUyBkaXNhYmxlZC5c biIpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCB7CisgICBpbnQgKCppbml0KSh2b2lkKTsKKyAgIHZvaWQgKCpleGl0KSh2b2lkKTsKK30g aW5pdF9mdW5jc1tdID0geworCXsgaTkxNV9jaGVja19ub21vZGVzZXQsIE5VTEwgfSwKKwl7IGk5 MTVfYWN0aXZlX21vZHVsZV9pbml0LCBpOTE1X2FjdGl2ZV9tb2R1bGVfZXhpdCB9LAorCXsgaTkx NV9idWRkeV9tb2R1bGVfaW5pdCwgaTkxNV9idWRkeV9tb2R1bGVfZXhpdCB9LAorCXsgaTkxNV9j b250ZXh0X21vZHVsZV9pbml0LCBpOTE1X2NvbnRleHRfbW9kdWxlX2V4aXQgfSwKKwl7IGk5MTVf Z2VtX2NvbnRleHRfbW9kdWxlX2luaXQsIGk5MTVfZ2VtX2NvbnRleHRfbW9kdWxlX2V4aXQgfSwK Kwl7IGk5MTVfb2JqZWN0c19tb2R1bGVfaW5pdCwgaTkxNV9vYmplY3RzX21vZHVsZV9leGl0IH0s CisJeyBpOTE1X3JlcXVlc3RfbW9kdWxlX2luaXQsIGk5MTVfcmVxdWVzdF9tb2R1bGVfZXhpdCB9 LAorCXsgaTkxNV9zY2hlZHVsZXJfbW9kdWxlX2luaXQsIGk5MTVfc2NoZWR1bGVyX21vZHVsZV9l eGl0IH0sCisJeyBpOTE1X3ZtYV9tb2R1bGVfaW5pdCwgaTkxNV92bWFfbW9kdWxlX2V4aXQgfSwK Kwl7IGk5MTVfbW9ja19zZWxmdGVzdHMsIE5VTEwgfSwKKwl7IGk5MTVfcG11X2luaXQsIGk5MTVf cG11X2V4aXQgfSwKKwl7IGk5MTVfcmVnaXN0ZXJfcGNpX2RyaXZlciwgaTkxNV91bnJlZ2lzdGVy X3BjaV9kcml2ZXIgfSwKKwl7IGk5MTVfcGVyZl9zeXNjdGxfcmVnaXN0ZXIsIGk5MTVfcGVyZl9z eXNjdGxfdW5yZWdpc3RlciB9LAorfTsKK3N0YXRpYyBpbnQgaW5pdF9wcm9ncmVzczsKKworc3Rh dGljIGludCBfX2luaXQgaTkxNV9pbml0KHZvaWQpCit7CisJaW50IGVyciwgaTsKKworCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKGluaXRfZnVuY3MpOyBpKyspIHsKKwkJZXJyID0gaW5pdF9m dW5jc1tpXS5pbml0KCk7CisJCWlmIChlcnIgPCAwKSB7CisJCQl3aGlsZSAoaS0tKSB7CisJCQkJ aWYgKGluaXRfZnVuY3NbaV0uZXhpdCkKKwkJCQkJaW5pdF9mdW5jc1tpXS5leGl0KCk7CisJCQl9 CisJCQlyZXR1cm4gZXJyOworCQl9IGVsc2UgaWYgKGVyciA+IDApIHsKKwkJCS8qCisJCQkgKiBF YXJseS1leGl0IHN1Y2Nlc3MgaXMgcmVzZXJ2ZWQgZm9yIHRoaW5ncyB3aGljaAorCQkJICogZG9u J3QgaGF2ZSBhbiBleGl0KCkgZnVuY3Rpb24gYmVjYXVzZSB3ZSBoYXZlIG5vCisJCQkgKiBpZGVh IGhvdyBmYXIgdGhleSBnb3Qgb3IgaG93IHRvIHBhcnRpYWxseSB0ZWFyCisJCQkgKiB0aGVtIGRv d24uCisJCQkgKi8KKwkJCVdBUk5fT04oaW5pdF9mdW5jc1tpXS5leGl0KTsKKwkJCWJyZWFrOwor CQl9CisJfQorCisJaW5pdF9wcm9ncmVzcyA9IGk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IHZvaWQgX19leGl0IGk5MTVfZXhpdCh2b2lkKQoreworCWludCBpOworCisJZm9yIChpID0gaW5p dF9wcm9ncmVzcyAtIDE7IGkgPj0gMDsgaS0tKSB7CisJCUdFTV9CVUdfT04oaSA+PSBBUlJBWV9T SVpFKGluaXRfZnVuY3MpKTsKKwkJaWYgKGluaXRfZnVuY3NbaV0uZXhpdCkKKwkJCWluaXRfZnVu Y3NbaV0uZXhpdCgpOworCX0KK30KKworbW9kdWxlX2luaXQoaTkxNV9pbml0KTsKK21vZHVsZV9l eGl0KGk5MTVfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIlR1bmdzdGVuIEdyYXBoaWNzLCBJbmMu Iik7CitNT0RVTEVfQVVUSE9SKCJJbnRlbCBDb3Jwb3JhdGlvbiIpOworCitNT0RVTEVfREVTQ1JJ UFRJT04oRFJJVkVSX0RFU0MpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCBhbmQgYWRkaXRpb25hbCBy aWdodHMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCmluZGV4IGI0ZjVlODhhYWFlNi4uMDg2NTFj YTAzNDc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKQEAgLTIyLDI0ICsyMiwxMyBAQAogICoK ICAqLwogCi0jaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgogI2luY2x1ZGUgPGxpbnV4L3ZnYV9z d2l0Y2hlcm9vLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgogI2luY2x1ZGUgPGRybS9p OTE1X3BjaWlkcy5oPgogCi0jaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9mYmRldi5oIgotCi0jaW5j bHVkZSAiaTkxNV9hY3RpdmUuaCIKLSNpbmNsdWRlICJpOTE1X2J1ZGR5LmgiCiAjaW5jbHVkZSAi aTkxNV9kcnYuaCIKLSNpbmNsdWRlICJnZW0vaTkxNV9nZW1fY29udGV4dC5oIgotI2luY2x1ZGUg ImdlbS9pOTE1X2dlbV9vYmplY3QuaCIKLSNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKLSNpbmNs dWRlICJpOTE1X3BlcmYuaCIKLSNpbmNsdWRlICJpOTE1X3NlbGZ0ZXN0LmgiCi0jaW5jbHVkZSAi aTkxNV9zY2hlZHVsZXIuaCIKLSNpbmNsdWRlICJpOTE1X3ZtYS5oIgorI2luY2x1ZGUgImk5MTVf cGNpLmgiCiAKICNkZWZpbmUgUExBVEZPUk0oeCkgLnBsYXRmb3JtID0gKHgpCiAjZGVmaW5lIEdF Tih4KSBcCkBAIC0xMjUxLDMxICsxMjQwLDYgQEAgc3RhdGljIHZvaWQgaTkxNV9wY2lfc2h1dGRv d24oc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJaTkxNV9kcml2ZXJfc2h1dGRvd24oaTkxNSk7CiB9 CiAKLXN0YXRpYyBpbnQgaTkxNV9jaGVja19ub21vZGVzZXQodm9pZCkKLXsKLQlib29sIHVzZV9r bXMgPSB0cnVlOwotCi0JLyoKLQkgKiBFbmFibGUgS01TIGJ5IGRlZmF1bHQsIHVubGVzcyBleHBs aWNpdGx5IG92ZXJyaWRlbiBieQotCSAqIGVpdGhlciB0aGUgaTkxNS5tb2Rlc2V0IHByYXJhbWV0 ZXIgb3IgYnkgdGhlCi0JICogdmdhX3RleHRfbW9kZV9mb3JjZSBib290IG9wdGlvbi4KLQkgKi8K LQotCWlmIChpOTE1X21vZHBhcmFtcy5tb2Rlc2V0ID09IDApCi0JCXVzZV9rbXMgPSBmYWxzZTsK LQotCWlmICh2Z2Fjb25fdGV4dF9mb3JjZSgpICYmIGk5MTVfbW9kcGFyYW1zLm1vZGVzZXQgPT0g LTEpCi0JCXVzZV9rbXMgPSBmYWxzZTsKLQotCWlmICghdXNlX2ttcykgewotCQkvKiBTaWxlbnRs eSBmYWlsIGxvYWRpbmcgdG8gbm90IHVwc2V0IHVzZXJzcGFjZS4gKi8KLQkJRFJNX0RFQlVHX0RS SVZFUigiS01TIGRpc2FibGVkLlxuIik7Ci0JCXJldHVybiAxOwotCX0KLQotCXJldHVybiAwOwot fQotCiBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaTkxNV9wY2lfZHJpdmVyID0gewogCS5uYW1l ID0gRFJJVkVSX05BTUUsCiAJLmlkX3RhYmxlID0gcGNpaWRsaXN0LApAQCAtMTI4NSw4NyArMTI0 OSwxMiBAQCBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaTkxNV9wY2lfZHJpdmVyID0gewogCS5k cml2ZXIucG0gPSAmaTkxNV9wbV9vcHMsCiB9OwogCi1zdGF0aWMgaW50IGk5MTVfcmVnaXN0ZXJf cGNpX2RyaXZlcih2b2lkKQoraW50IGk5MTVfcmVnaXN0ZXJfcGNpX2RyaXZlcih2b2lkKQogewog CXJldHVybiBwY2lfcmVnaXN0ZXJfZHJpdmVyKCZpOTE1X3BjaV9kcml2ZXIpOwogfQogCi1zdGF0 aWMgdm9pZCBpOTE1X3VucmVnaXN0ZXJfcGNpX2RyaXZlcih2b2lkKQordm9pZCBpOTE1X3VucmVn aXN0ZXJfcGNpX2RyaXZlcih2b2lkKQogewogCXBjaV91bnJlZ2lzdGVyX2RyaXZlcigmaTkxNV9w Y2lfZHJpdmVyKTsKIH0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB7Ci0gICBpbnQgKCppbml0KSh2 b2lkKTsKLSAgIHZvaWQgKCpleGl0KSh2b2lkKTsKLX0gaW5pdF9mdW5jc1tdID0gewotCXsgaTkx NV9jaGVja19ub21vZGVzZXQsIE5VTEwgfSwKLQl7IGk5MTVfYWN0aXZlX21vZHVsZV9pbml0LCBp OTE1X2FjdGl2ZV9tb2R1bGVfZXhpdCB9LAotCXsgaTkxNV9idWRkeV9tb2R1bGVfaW5pdCwgaTkx NV9idWRkeV9tb2R1bGVfZXhpdCB9LAotCXsgaTkxNV9jb250ZXh0X21vZHVsZV9pbml0LCBpOTE1 X2NvbnRleHRfbW9kdWxlX2V4aXQgfSwKLQl7IGk5MTVfZ2VtX2NvbnRleHRfbW9kdWxlX2luaXQs IGk5MTVfZ2VtX2NvbnRleHRfbW9kdWxlX2V4aXQgfSwKLQl7IGk5MTVfb2JqZWN0c19tb2R1bGVf aW5pdCwgaTkxNV9vYmplY3RzX21vZHVsZV9leGl0IH0sCi0JeyBpOTE1X3JlcXVlc3RfbW9kdWxl X2luaXQsIGk5MTVfcmVxdWVzdF9tb2R1bGVfZXhpdCB9LAotCXsgaTkxNV9zY2hlZHVsZXJfbW9k dWxlX2luaXQsIGk5MTVfc2NoZWR1bGVyX21vZHVsZV9leGl0IH0sCi0JeyBpOTE1X3ZtYV9tb2R1 bGVfaW5pdCwgaTkxNV92bWFfbW9kdWxlX2V4aXQgfSwKLQl7IGk5MTVfbW9ja19zZWxmdGVzdHMs IE5VTEwgfSwKLQl7IGk5MTVfcG11X2luaXQsIGk5MTVfcG11X2V4aXQgfSwKLQl7IGk5MTVfcmVn aXN0ZXJfcGNpX2RyaXZlciwgaTkxNV91bnJlZ2lzdGVyX3BjaV9kcml2ZXIgfSwKLQl7IGk5MTVf cGVyZl9zeXNjdGxfcmVnaXN0ZXIsIGk5MTVfcGVyZl9zeXNjdGxfdW5yZWdpc3RlciB9LAotfTsK LXN0YXRpYyBpbnQgaW5pdF9wcm9ncmVzczsKLQotc3RhdGljIGludCBfX2luaXQgaTkxNV9pbml0 KHZvaWQpCi17Ci0JaW50IGVyciwgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGlu aXRfZnVuY3MpOyBpKyspIHsKLQkJZXJyID0gaW5pdF9mdW5jc1tpXS5pbml0KCk7Ci0JCWlmIChl cnIgPCAwKSB7Ci0JCQl3aGlsZSAoaS0tKSB7Ci0JCQkJaWYgKGluaXRfZnVuY3NbaV0uZXhpdCkK LQkJCQkJaW5pdF9mdW5jc1tpXS5leGl0KCk7Ci0JCQl9Ci0JCQlyZXR1cm4gZXJyOwotCQl9IGVs c2UgaWYgKGVyciA+IDApIHsKLQkJCS8qCi0JCQkgKiBFYXJseS1leGl0IHN1Y2Nlc3MgaXMgcmVz ZXJ2ZWQgZm9yIHRoaW5ncyB3aGljaAotCQkJICogZG9uJ3QgaGF2ZSBhbiBleGl0KCkgZnVuY3Rp b24gYmVjYXVzZSB3ZSBoYXZlIG5vCi0JCQkgKiBpZGVhIGhvdyBmYXIgdGhleSBnb3Qgb3IgaG93 IHRvIHBhcnRpYWxseSB0ZWFyCi0JCQkgKiB0aGVtIGRvd24uCi0JCQkgKi8KLQkJCVdBUk5fT04o aW5pdF9mdW5jc1tpXS5leGl0KTsKLQotCQkJLyoKLQkJCSAqIFdlIGRvbid0IHdhbnQgdG8gYWR2 ZXJ0aXNlIGRldmljZXMgd2l0aCBhbiBvbmx5Ci0JCQkgKiBwYXJ0aWFsbHkgaW5pdGlhbGl6ZWQg ZHJpdmVyLgotCQkJICovCi0JCQlXQVJOX09OKGk5MTVfcGNpX2RyaXZlci5kcml2ZXIub3duZXIp OwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0KLQlpbml0X3Byb2dyZXNzID0gaTsKLQotCXJldHVybiAw OwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgaTkxNV9leGl0KHZvaWQpCi17Ci0JaW50IGk7Ci0K LQlmb3IgKGkgPSBpbml0X3Byb2dyZXNzIC0gMTsgaSA+PSAwOyBpLS0pIHsKLQkJR0VNX0JVR19P TihpID49IEFSUkFZX1NJWkUoaW5pdF9mdW5jcykpOwotCQlpZiAoaW5pdF9mdW5jc1tpXS5leGl0 KQotCQkJaW5pdF9mdW5jc1tpXS5leGl0KCk7Ci0JfQotfQotCi1tb2R1bGVfaW5pdChpOTE1X2lu aXQpOwotbW9kdWxlX2V4aXQoaTkxNV9leGl0KTsKLQotTU9EVUxFX0FVVEhPUigiVHVuZ3N0ZW4g R3JhcGhpY3MsIEluYy4iKTsKLU1PRFVMRV9BVVRIT1IoIkludGVsIENvcnBvcmF0aW9uIik7Ci0K LU1PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIGFu ZCBhZGRpdGlvbmFsIHJpZ2h0cyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wY2kuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iMzg2ZjMxOWY1MmUKLS0tIC9kZXYvbnVsbAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5oCkBAIC0wLDAgKzEsOCBAQAorLyoK KyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAy MSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKK2ludCBpOTE1X3JlZ2lzdGVyX3BjaV9kcml2ZXIo dm9pZCk7Cit2b2lkIGk5MTVfdW5yZWdpc3Rlcl9wY2lfZHJpdmVyKHZvaWQpOwotLSAKMi4zMi4w CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK