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=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 45711C83007 for ; Wed, 29 Apr 2020 19:55:22 +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 18DD520B1F for ; Wed, 29 Apr 2020 19:55:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=poorly.run header.i=@poorly.run header.b="STXf2J/w" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 18DD520B1F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=poorly.run Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0AEFE6F3A0; Wed, 29 Apr 2020 19:55:14 +0000 (UTC) Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) by gabe.freedesktop.org (Postfix) with ESMTPS id C55A66F39E for ; Wed, 29 Apr 2020 19:55:12 +0000 (UTC) Received: by mail-qk1-x744.google.com with SMTP id s9so643354qkm.6 for ; Wed, 29 Apr 2020 12:55:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=poorly.run; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pmXgLca7hxu7alCV4P75y6Ka/sozRh9k7CAUjPFLD4c=; b=STXf2J/w3xPhVs/PpeKDpTebuxeQCQeOZeNd4TnhlLZ0zAxL8PmYfqzDNPf5unaEWz stJuJ7G7kEL19Jr7baUPxx5b24plUatihjaXuYVWhejZU2hOWsmBVxqadn6GuV1bctxF TJHjWSFIpcxObgmFFujKcgzlH/cyo0zonEWw/9A/c0c5E7SbFwO1RgJBBVhoAYLsGfQY y7azF/rfQvQKzDe8Qpcg+nzkYaRimtN4EqgRNCyasQUggvvf+GpImocaKRue+TVaMQgi bz908yfC1d+P7zrjxKL/7DogO2118xzXbvQEkZYpGkz72HL/kJesm0c51jg+f6ogAUsy 2QNQ== 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=pmXgLca7hxu7alCV4P75y6Ka/sozRh9k7CAUjPFLD4c=; b=BQKEUZOkDNrCX5YraTaz8TgPsJUPRSIlAD6me2cLOUcCq4TV0qFuF1+vmonwjr+Eaj Htbp25BpS59sy4aVBSaaBP6eeF+j26GgbcyjSufEL0FPke+jHx3sdcaU6VSvCnhQndRj jEIX98+qHSfFFUcKsH9OnN6Q7w0dmCnXktDtRyB12/GmRyhc+xK7mNWnJz47QRQ9s5YI M0BMOcCH8fVXyALQ9zCC5b5N51DcmUMQiBksayunv6Sd8zzcBCaUdw/w5jCX6ia16aml YEuhhBpHmk/ykvEnZz7m1KKBz2Wov9uwU2sZ97aeRIN1TdLzuwnD21CzwfE3BQfwvuM9 U4LA== X-Gm-Message-State: AGi0PubNZ6m71wWHhPYZNuScbT9IlLkpJxnIDWiHIjD22lTUuix0I6uf vYk07c6Mw2C3vQKZ2ANjMtphgnY224M= X-Google-Smtp-Source: APiQypLPgV1TnQ5CSKA94TEqxINVsmDRnuI4cmTzTgW9yTiFwdN6LfCD89MhFgUefki9lDkuO8mgVQ== X-Received: by 2002:a37:a7cd:: with SMTP id q196mr121258qke.160.1588190111167; Wed, 29 Apr 2020 12:55:11 -0700 (PDT) Received: from localhost (mobile-166-170-55-34.mycingular.net. [166.170.55.34]) by smtp.gmail.com with ESMTPSA id l9sm159695qth.60.2020.04.29.12.55.10 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 Apr 2020 12:55:10 -0700 (PDT) From: Sean Paul To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Subject: [PATCH v6 04/16] drm/i915: Intercept Aksv writes in the aux hooks Date: Wed, 29 Apr 2020 15:54:50 -0400 Message-Id: <20200429195502.39919-5-sean@poorly.run> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200429195502.39919-1-sean@poorly.run> References: <20200429195502.39919-1-sean@poorly.run> MIME-Version: 1.0 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: , Cc: daniel.vetter@ffwll.ch, seanpaul@chromium.org, juston.li@intel.com, rodrigo.vivi@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpJbnN0ZWFkIG9mIGhhbmQg cm9sbGluZyB0aGUgdHJhbnNmZXIgb3Vyc2VsdmVzIGluIHRoZSBoZGNwIGhvb2ssIGluc3BlY3QK YXV4IG1lc3NhZ2VzIGFuZCBhZGQgdGhlIGFrc3YgZmxhZyBpbiB0aGUgYXV4IHRyYW5zZmVyIGhv b2suCgpJSVJDLCB0aGlzIHdhcyB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gYW5kIGZvbGtz IHdhbnRlZCB0aGlzIGhhY2sgdG8KYmUgaXNvbGF0ZWQgdG8gdGhlIGhkY3AgY29kZSwgd2hpY2gg bWFrZXMgc2Vuc2UuCgpIb3dldmVyIGluIHRlc3RpbmcgYW4gTEcgbW9uaXRvciBvbiBteSBkZXNr LCBJIG5vdGljZWQgaXQgd2FzIHBhc3NpbmcKYmFjayBhIERFRkVSIHJlcGx5LiBUaGlzIHdhc24n dCBoYW5kbGVkIGluIG91ciBoYW5kLXJvbGxlZCBjb2RlIGFuZCBIRENQCmF1dGggd2FzIGZhaWxp bmcgYXMgYSByZXN1bHQuIEluc3RlYWQgb2YgY29weS9wYXN0aW5nIGFsbCBvZiB0aGUgcmV0cnkK bG9naWMgYW5kIGRlbGF5cyBmcm9tIGRybSBkcCBoZWxwZXJzLCBsZXQncyBqdXN0IHVzZSB0aGUg aGVscGVycyBhbmQgaGlkZQp0aGUgYWtzdiBzZWxlY3QgYXMgYmVzdCBhcyB3ZSBjYW4uCgpSZXZp ZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K UmV2aWV3ZWQtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Ckxpbms6IGh0dHBzOi8v cGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC9tc2dpZC8yMDE5MTIwMzE3MzYzOC45NDkx OS0zLXNlYW5AcG9vcmx5LnJ1biAjdjEKTGluazogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0 b3Aub3JnL3BhdGNoL21zZ2lkLzIwMTkxMjEyMTkwMjMwLjE4ODUwNS01LXNlYW5AcG9vcmx5LnJ1 biAjdjIKTGluazogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoL21zZ2lk LzIwMjAwMTE3MTkzMTAzLjE1NjgyMS01LXNlYW5AcG9vcmx5LnJ1biAjdjMKTGluazogaHR0cHM6 Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoL21zZ2lkLzIwMjAwMjE4MjIwMjQyLjEw NzI2NS01LXNlYW5AcG9vcmx5LnJ1biAjdjQKTGluazogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRl c2t0b3Aub3JnL3BhdGNoL21zZ2lkLzIwMjAwMzA1MjAxMjM2LjE1MjMwNy01LXNlYW5AcG9vcmx5 LnJ1biAjdjUKCkNoYW5nZXMgaW4gdjI6Ci1SZW1vdmUgJ2dlbmVyYXRlJyBpbiBpbnRlbF9kcF9h dXhfZ2VuZXJhdGVfeGZlcl9mbGFncywgbWFrZSBhcmcgY29uc3QgKFZpbGxlKQotQnVuZGxlIEFr c3YgaWYgc3RhdGVtZW50IHRvZ2V0aGVyIChWaWxsZSkKLVJlbmFtZSAndHhidWYnIHRvICdha3N2 JyAoVmlsbGUpCkNoYW5nZXMgaW4gdjM6Ci1Ob25lCkNoYW5nZXMgaW4gdjQ6Ci1Ob25lCkNoYW5n ZXMgaW4gdjU6Ci1Ob25lCkNoYW5nZXMgaW4gdjY6Ci1Ob25lCi0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jIHwgNjMgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwppbmRleCA2OTUyYjAyOTUwOTYuLmYzM2Iz ZTI3M2UwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k cC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwpAQCAtMTU1 MCwxMiArMTU1MCwyNyBAQCBpbnRlbF9kcF9hdXhfaGVhZGVyKHU4IHR4YnVmW0hFQURFUl9TSVpF XSwKIAl0eGJ1ZlszXSA9IG1zZy0+c2l6ZSAtIDE7CiB9CiAKK3N0YXRpYyB1MzIgaW50ZWxfZHBf YXV4X3hmZXJfZmxhZ3MoY29uc3Qgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2cpCit7CisJLyoK KwkgKiBJZiB3ZSdyZSB0cnlpbmcgdG8gc2VuZCB0aGUgSERDUCBBa3N2LCB3ZSBuZWVkIHRvIHNl dCBhIHRoZSBBa3N2CisJICogc2VsZWN0IGJpdCB0byBpbmZvcm0gdGhlIGhhcmR3YXJlIHRvIHNl bmQgdGhlIEFrc3YgYWZ0ZXIgb3VyIGhlYWRlcgorCSAqIHNpbmNlIHdlIGNhbid0IGFjY2VzcyB0 aGF0IGRhdGEgZnJvbSBzb2Z0d2FyZS4KKwkgKi8KKwlpZiAoKG1zZy0+cmVxdWVzdCAmIH5EUF9B VVhfSTJDX01PVCkgPT0gRFBfQVVYX05BVElWRV9XUklURSAmJgorCSAgICBtc2ctPmFkZHJlc3Mg PT0gRFBfQVVYX0hEQ1BfQUtTVikKKwkJcmV0dXJuIERQX0FVWF9DSF9DVExfQVVYX0FLU1ZfU0VM RUNUOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBzc2l6ZV90CiBpbnRlbF9kcF9hdXhfdHJh bnNmZXIoc3RydWN0IGRybV9kcF9hdXggKmF1eCwgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2cp CiB7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGNvbnRhaW5lcl9vZihhdXgsIHN0cnVj dCBpbnRlbF9kcCwgYXV4KTsKIAl1OCB0eGJ1ZlsyMF0sIHJ4YnVmWzIwXTsKIAlzaXplX3QgdHhz aXplLCByeHNpemU7CisJdTMyIGZsYWdzID0gaW50ZWxfZHBfYXV4X3hmZXJfZmxhZ3MobXNnKTsK IAlpbnQgcmV0OwogCiAJaW50ZWxfZHBfYXV4X2hlYWRlcih0eGJ1ZiwgbXNnKTsKQEAgLTE1NzYs NyArMTU5MSw3IEBAIGludGVsX2RwX2F1eF90cmFuc2ZlcihzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4 LCBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZykKIAkJCW1lbWNweSh0eGJ1ZiArIEhFQURFUl9T SVpFLCBtc2ctPmJ1ZmZlciwgbXNnLT5zaXplKTsKIAogCQlyZXQgPSBpbnRlbF9kcF9hdXhfeGZl cihpbnRlbF9kcCwgdHhidWYsIHR4c2l6ZSwKLQkJCQkJcnhidWYsIHJ4c2l6ZSwgMCk7CisJCQkJ CXJ4YnVmLCByeHNpemUsIGZsYWdzKTsKIAkJaWYgKHJldCA+IDApIHsKIAkJCW1zZy0+cmVwbHkg PSByeGJ1ZlswXSA+PiA0OwogCkBAIC0xNTk5LDcgKzE2MTQsNyBAQCBpbnRlbF9kcF9hdXhfdHJh bnNmZXIoc3RydWN0IGRybV9kcF9hdXggKmF1eCwgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2cp CiAJCQlyZXR1cm4gLUUyQklHOwogCiAJCXJldCA9IGludGVsX2RwX2F1eF94ZmVyKGludGVsX2Rw LCB0eGJ1ZiwgdHhzaXplLAotCQkJCQlyeGJ1ZiwgcnhzaXplLCAwKTsKKwkJCQkJcnhidWYsIHJ4 c2l6ZSwgZmxhZ3MpOwogCQlpZiAocmV0ID4gMCkgewogCQkJbXNnLT5yZXBseSA9IHJ4YnVmWzBd ID4+IDQ7CiAJCQkvKgpAQCAtNjU1MywxNyArNjU2OCw5IEBAIGludCBpbnRlbF9kcF9oZGNwX3dy aXRlX2FuX2Frc3Yoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJ CQkJdTggKmFuKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShp bnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGVuY190b19pbnRlbF9kcCh0b19pbnRlbF9lbmNvZGVyKCZpbnRlbF9kaWdfcG9ydC0+YmFz ZS5iYXNlKSk7Ci0Jc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZHBfYXV4X21zZyBtc2cgPSB7Ci0J CS5yZXF1ZXN0ID0gRFBfQVVYX05BVElWRV9XUklURSwKLQkJLmFkZHJlc3MgPSBEUF9BVVhfSERD UF9BS1NWLAotCQkuc2l6ZSA9IERSTV9IRENQX0tTVl9MRU4sCi0JfTsKLQl1OCB0eGJ1ZltIRUFE RVJfU0laRSArIERSTV9IRENQX0tTVl9MRU5dID0ge30sIHJ4YnVmWzJdLCByZXBseSA9IDA7CisJ dTggYWtzdltEUk1fSERDUF9LU1ZfTEVOXSA9IHt9OwogCXNzaXplX3QgZHBjZF9yZXQ7Ci0JaW50 IHJldDsKIAotCS8qIE91dHB1dCBBbiBmaXJzdCwgdGhhdCdzIGVhc3kgKi8KIAlkcGNkX3JldCA9 IGRybV9kcF9kcGNkX3dyaXRlKCZpbnRlbF9kaWdfcG9ydC0+ZHAuYXV4LCBEUF9BVVhfSERDUF9B TiwKIAkJCQkgICAgIGFuLCBEUk1fSERDUF9BTl9MRU4pOwogCWlmIChkcGNkX3JldCAhPSBEUk1f SERDUF9BTl9MRU4pIHsKQEAgLTY1NzQsMzEgKzY1ODEsMTkgQEAgaW50IGludGVsX2RwX2hkY3Bf d3JpdGVfYW5fYWtzdihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwK IAl9CiAKIAkvKgotCSAqIFNpbmNlIEFrc3YgaXMgT2gtU28tU2VjcmV0LCB3ZSBjYW4ndCBhY2Nl c3MgaXQgaW4gc29mdHdhcmUuIFNvIGluCi0JICogb3JkZXIgdG8gZ2V0IGl0IG9uIHRoZSB3aXJl LCB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgQVVYIGhlYWRlciBhcyBpZgotCSAqIHdlIHdlcmUgd3Jp dGluZyB0aGUgZGF0YSwgYW5kIHRoZW4gdGlja2xlIHRoZSBoYXJkd2FyZSB0byBvdXRwdXQgdGhl Ci0JICogZGF0YSBvbmNlIHRoZSBoZWFkZXIgaXMgc2VudCBvdXQuCisJICogU2luY2UgQWtzdiBp cyBPaC1Tby1TZWNyZXQsIHdlIGNhbid0IGFjY2VzcyBpdCBpbiBzb2Z0d2FyZS4gU28gd2UKKwkg KiBzZW5kIGFuIGVtcHR5IGJ1ZmZlciBvZiB0aGUgY29ycmVjdCBsZW5ndGggdGhyb3VnaCB0aGUg RFAgaGVscGVycy4gT24KKwkgKiB0aGUgb3RoZXIgc2lkZSwgaW4gdGhlIHRyYW5zZmVyIGhvb2ss IHdlJ2xsIGdlbmVyYXRlIGEgZmxhZyBiYXNlZCBvbgorCSAqIHRoZSBkZXN0aW5hdGlvbiBhZGRy ZXNzIHdoaWNoIHdpbGwgdGlja2xlIHRoZSBoYXJkd2FyZSB0byBvdXRwdXQgdGhlCisJICogQWtz diBvbiBvdXIgYmVoYWxmIGFmdGVyIHRoZSBoZWFkZXIgaXMgc2VudC4KIAkgKi8KLQlpbnRlbF9k cF9hdXhfaGVhZGVyKHR4YnVmLCAmbXNnKTsKLQotCXJldCA9IGludGVsX2RwX2F1eF94ZmVyKGlu dGVsX2RwLCB0eGJ1ZiwgSEVBREVSX1NJWkUgKyBtc2cuc2l6ZSwKLQkJCQlyeGJ1Ziwgc2l6ZW9m KHJ4YnVmKSwKLQkJCQlEUF9BVVhfQ0hfQ1RMX0FVWF9BS1NWX1NFTEVDVCk7Ci0JaWYgKHJldCA8 IDApIHsKLQkJZHJtX2RiZ19rbXMoJmk5MTUtPmRybSwKLQkJCSAgICAiV3JpdGUgQWtzdiBvdmVy IERQL0FVWCBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9IGVsc2UgaWYg KHJldCA9PSAwKSB7Ci0JCWRybV9kYmdfa21zKCZpOTE1LT5kcm0sICJBa3N2IHdyaXRlIG92ZXIg RFAvQVVYIHdhcyBlbXB0eVxuIik7Ci0JCXJldHVybiAtRUlPOwotCX0KLQotCXJlcGx5ID0gKHJ4 YnVmWzBdID4+IDQpICYgRFBfQVVYX05BVElWRV9SRVBMWV9NQVNLOwotCWlmIChyZXBseSAhPSBE UF9BVVhfTkFUSVZFX1JFUExZX0FDSykgeworCWRwY2RfcmV0ID0gZHJtX2RwX2RwY2Rfd3JpdGUo JmludGVsX2RpZ19wb3J0LT5kcC5hdXgsIERQX0FVWF9IRENQX0FLU1YsCisJCQkJICAgICBha3N2 LCBEUk1fSERDUF9LU1ZfTEVOKTsKKwlpZiAoZHBjZF9yZXQgIT0gRFJNX0hEQ1BfS1NWX0xFTikg ewogCQlkcm1fZGJnX2ttcygmaTkxNS0+ZHJtLAotCQkJICAgICJBa3N2IHdyaXRlOiBubyBEUF9B VVhfTkFUSVZFX1JFUExZX0FDSyAleFxuIiwKLQkJCSAgICByZXBseSk7Ci0JCXJldHVybiAtRUlP OworCQkJICAgICJGYWlsZWQgdG8gd3JpdGUgQWtzdiBvdmVyIERQL0FVWCAoJXpkKVxuIiwKKwkJ CSAgICBkcGNkX3JldCk7CisJCXJldHVybiBkcGNkX3JldCA+PSAwID8gLUVJTyA6IGRwY2RfcmV0 OwogCX0KIAlyZXR1cm4gMDsKIH0KLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdv b2dsZSAvIENocm9taXVtIE9TCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK 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=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 C4DA9C8300A for ; Wed, 29 Apr 2020 19:55:20 +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 9B69B206D9 for ; Wed, 29 Apr 2020 19:55:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=poorly.run header.i=@poorly.run header.b="STXf2J/w" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9B69B206D9 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=poorly.run Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B3A176F3A4; Wed, 29 Apr 2020 19:55:14 +0000 (UTC) Received: from mail-qk1-x743.google.com (mail-qk1-x743.google.com [IPv6:2607:f8b0:4864:20::743]) by gabe.freedesktop.org (Postfix) with ESMTPS id 82C006F39E for ; Wed, 29 Apr 2020 19:55:12 +0000 (UTC) Received: by mail-qk1-x743.google.com with SMTP id 20so3334113qkl.10 for ; Wed, 29 Apr 2020 12:55:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=poorly.run; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pmXgLca7hxu7alCV4P75y6Ka/sozRh9k7CAUjPFLD4c=; b=STXf2J/w3xPhVs/PpeKDpTebuxeQCQeOZeNd4TnhlLZ0zAxL8PmYfqzDNPf5unaEWz stJuJ7G7kEL19Jr7baUPxx5b24plUatihjaXuYVWhejZU2hOWsmBVxqadn6GuV1bctxF TJHjWSFIpcxObgmFFujKcgzlH/cyo0zonEWw/9A/c0c5E7SbFwO1RgJBBVhoAYLsGfQY y7azF/rfQvQKzDe8Qpcg+nzkYaRimtN4EqgRNCyasQUggvvf+GpImocaKRue+TVaMQgi bz908yfC1d+P7zrjxKL/7DogO2118xzXbvQEkZYpGkz72HL/kJesm0c51jg+f6ogAUsy 2QNQ== 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=pmXgLca7hxu7alCV4P75y6Ka/sozRh9k7CAUjPFLD4c=; b=rF7VEQcn3Mm7LVrE+r0k42wr/WYSOWRPcFYHun7AGrxgNQmnbWy5Szum7ER54hNjNg rH0BUjKOuPHh8sWl3LTAK1h1HXuypV5AHF562V0U6dN7Uycr7vWY8k+qqKbv7wSXq7N2 WxL2hprdGahM30WtHew7ntswe12ADJVMTtVAk5WP05hZklhWLpSOGxLbyVaQGjyEDbpO 5EnqHRzZoxDDk44T2AzMjKG1jpQC7WN+QBzKiepZpwneUCBcC4iQQz9Uol6nJH4v1sk+ O51GYAgmvMn82l/89qsvKP1jIDS00LI6O+DAvs4WcheNyWHpszbGSjvdkCssqpdJF+7W LaFw== X-Gm-Message-State: AGi0PuaxB+COKd2ixovLxCszjy3Kwp06u2/j0EdgdetPlxKmx1h0CQC5 WAsdqUzCKmMxLbAWstLg8mTYNg== X-Google-Smtp-Source: APiQypLPgV1TnQ5CSKA94TEqxINVsmDRnuI4cmTzTgW9yTiFwdN6LfCD89MhFgUefki9lDkuO8mgVQ== X-Received: by 2002:a37:a7cd:: with SMTP id q196mr121258qke.160.1588190111167; Wed, 29 Apr 2020 12:55:11 -0700 (PDT) Received: from localhost (mobile-166-170-55-34.mycingular.net. [166.170.55.34]) by smtp.gmail.com with ESMTPSA id l9sm159695qth.60.2020.04.29.12.55.10 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 29 Apr 2020 12:55:10 -0700 (PDT) From: Sean Paul To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Date: Wed, 29 Apr 2020 15:54:50 -0400 Message-Id: <20200429195502.39919-5-sean@poorly.run> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200429195502.39919-1-sean@poorly.run> References: <20200429195502.39919-1-sean@poorly.run> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v6 04/16] drm/i915: Intercept Aksv writes in the aux hooks 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@ffwll.ch, seanpaul@chromium.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpJbnN0ZWFkIG9mIGhhbmQg cm9sbGluZyB0aGUgdHJhbnNmZXIgb3Vyc2VsdmVzIGluIHRoZSBoZGNwIGhvb2ssIGluc3BlY3QK YXV4IG1lc3NhZ2VzIGFuZCBhZGQgdGhlIGFrc3YgZmxhZyBpbiB0aGUgYXV4IHRyYW5zZmVyIGhv b2suCgpJSVJDLCB0aGlzIHdhcyB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gYW5kIGZvbGtz IHdhbnRlZCB0aGlzIGhhY2sgdG8KYmUgaXNvbGF0ZWQgdG8gdGhlIGhkY3AgY29kZSwgd2hpY2gg bWFrZXMgc2Vuc2UuCgpIb3dldmVyIGluIHRlc3RpbmcgYW4gTEcgbW9uaXRvciBvbiBteSBkZXNr LCBJIG5vdGljZWQgaXQgd2FzIHBhc3NpbmcKYmFjayBhIERFRkVSIHJlcGx5LiBUaGlzIHdhc24n dCBoYW5kbGVkIGluIG91ciBoYW5kLXJvbGxlZCBjb2RlIGFuZCBIRENQCmF1dGggd2FzIGZhaWxp bmcgYXMgYSByZXN1bHQuIEluc3RlYWQgb2YgY29weS9wYXN0aW5nIGFsbCBvZiB0aGUgcmV0cnkK bG9naWMgYW5kIGRlbGF5cyBmcm9tIGRybSBkcCBoZWxwZXJzLCBsZXQncyBqdXN0IHVzZSB0aGUg aGVscGVycyBhbmQgaGlkZQp0aGUgYWtzdiBzZWxlY3QgYXMgYmVzdCBhcyB3ZSBjYW4uCgpSZXZp ZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K UmV2aWV3ZWQtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Ckxpbms6IGh0dHBzOi8v cGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC9tc2dpZC8yMDE5MTIwMzE3MzYzOC45NDkx OS0zLXNlYW5AcG9vcmx5LnJ1biAjdjEKTGluazogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0 b3Aub3JnL3BhdGNoL21zZ2lkLzIwMTkxMjEyMTkwMjMwLjE4ODUwNS01LXNlYW5AcG9vcmx5LnJ1 biAjdjIKTGluazogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoL21zZ2lk LzIwMjAwMTE3MTkzMTAzLjE1NjgyMS01LXNlYW5AcG9vcmx5LnJ1biAjdjMKTGluazogaHR0cHM6 Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoL21zZ2lkLzIwMjAwMjE4MjIwMjQyLjEw NzI2NS01LXNlYW5AcG9vcmx5LnJ1biAjdjQKTGluazogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRl c2t0b3Aub3JnL3BhdGNoL21zZ2lkLzIwMjAwMzA1MjAxMjM2LjE1MjMwNy01LXNlYW5AcG9vcmx5 LnJ1biAjdjUKCkNoYW5nZXMgaW4gdjI6Ci1SZW1vdmUgJ2dlbmVyYXRlJyBpbiBpbnRlbF9kcF9h dXhfZ2VuZXJhdGVfeGZlcl9mbGFncywgbWFrZSBhcmcgY29uc3QgKFZpbGxlKQotQnVuZGxlIEFr c3YgaWYgc3RhdGVtZW50IHRvZ2V0aGVyIChWaWxsZSkKLVJlbmFtZSAndHhidWYnIHRvICdha3N2 JyAoVmlsbGUpCkNoYW5nZXMgaW4gdjM6Ci1Ob25lCkNoYW5nZXMgaW4gdjQ6Ci1Ob25lCkNoYW5n ZXMgaW4gdjU6Ci1Ob25lCkNoYW5nZXMgaW4gdjY6Ci1Ob25lCi0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jIHwgNjMgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwppbmRleCA2OTUyYjAyOTUwOTYuLmYzM2Iz ZTI3M2UwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k cC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwpAQCAtMTU1 MCwxMiArMTU1MCwyNyBAQCBpbnRlbF9kcF9hdXhfaGVhZGVyKHU4IHR4YnVmW0hFQURFUl9TSVpF XSwKIAl0eGJ1ZlszXSA9IG1zZy0+c2l6ZSAtIDE7CiB9CiAKK3N0YXRpYyB1MzIgaW50ZWxfZHBf YXV4X3hmZXJfZmxhZ3MoY29uc3Qgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2cpCit7CisJLyoK KwkgKiBJZiB3ZSdyZSB0cnlpbmcgdG8gc2VuZCB0aGUgSERDUCBBa3N2LCB3ZSBuZWVkIHRvIHNl dCBhIHRoZSBBa3N2CisJICogc2VsZWN0IGJpdCB0byBpbmZvcm0gdGhlIGhhcmR3YXJlIHRvIHNl bmQgdGhlIEFrc3YgYWZ0ZXIgb3VyIGhlYWRlcgorCSAqIHNpbmNlIHdlIGNhbid0IGFjY2VzcyB0 aGF0IGRhdGEgZnJvbSBzb2Z0d2FyZS4KKwkgKi8KKwlpZiAoKG1zZy0+cmVxdWVzdCAmIH5EUF9B VVhfSTJDX01PVCkgPT0gRFBfQVVYX05BVElWRV9XUklURSAmJgorCSAgICBtc2ctPmFkZHJlc3Mg PT0gRFBfQVVYX0hEQ1BfQUtTVikKKwkJcmV0dXJuIERQX0FVWF9DSF9DVExfQVVYX0FLU1ZfU0VM RUNUOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBzc2l6ZV90CiBpbnRlbF9kcF9hdXhfdHJh bnNmZXIoc3RydWN0IGRybV9kcF9hdXggKmF1eCwgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2cp CiB7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGNvbnRhaW5lcl9vZihhdXgsIHN0cnVj dCBpbnRlbF9kcCwgYXV4KTsKIAl1OCB0eGJ1ZlsyMF0sIHJ4YnVmWzIwXTsKIAlzaXplX3QgdHhz aXplLCByeHNpemU7CisJdTMyIGZsYWdzID0gaW50ZWxfZHBfYXV4X3hmZXJfZmxhZ3MobXNnKTsK IAlpbnQgcmV0OwogCiAJaW50ZWxfZHBfYXV4X2hlYWRlcih0eGJ1ZiwgbXNnKTsKQEAgLTE1NzYs NyArMTU5MSw3IEBAIGludGVsX2RwX2F1eF90cmFuc2ZlcihzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4 LCBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZykKIAkJCW1lbWNweSh0eGJ1ZiArIEhFQURFUl9T SVpFLCBtc2ctPmJ1ZmZlciwgbXNnLT5zaXplKTsKIAogCQlyZXQgPSBpbnRlbF9kcF9hdXhfeGZl cihpbnRlbF9kcCwgdHhidWYsIHR4c2l6ZSwKLQkJCQkJcnhidWYsIHJ4c2l6ZSwgMCk7CisJCQkJ CXJ4YnVmLCByeHNpemUsIGZsYWdzKTsKIAkJaWYgKHJldCA+IDApIHsKIAkJCW1zZy0+cmVwbHkg PSByeGJ1ZlswXSA+PiA0OwogCkBAIC0xNTk5LDcgKzE2MTQsNyBAQCBpbnRlbF9kcF9hdXhfdHJh bnNmZXIoc3RydWN0IGRybV9kcF9hdXggKmF1eCwgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2cp CiAJCQlyZXR1cm4gLUUyQklHOwogCiAJCXJldCA9IGludGVsX2RwX2F1eF94ZmVyKGludGVsX2Rw LCB0eGJ1ZiwgdHhzaXplLAotCQkJCQlyeGJ1ZiwgcnhzaXplLCAwKTsKKwkJCQkJcnhidWYsIHJ4 c2l6ZSwgZmxhZ3MpOwogCQlpZiAocmV0ID4gMCkgewogCQkJbXNnLT5yZXBseSA9IHJ4YnVmWzBd ID4+IDQ7CiAJCQkvKgpAQCAtNjU1MywxNyArNjU2OCw5IEBAIGludCBpbnRlbF9kcF9oZGNwX3dy aXRlX2FuX2Frc3Yoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJ CQkJdTggKmFuKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShp bnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGVuY190b19pbnRlbF9kcCh0b19pbnRlbF9lbmNvZGVyKCZpbnRlbF9kaWdfcG9ydC0+YmFz ZS5iYXNlKSk7Ci0Jc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZHBfYXV4X21zZyBtc2cgPSB7Ci0J CS5yZXF1ZXN0ID0gRFBfQVVYX05BVElWRV9XUklURSwKLQkJLmFkZHJlc3MgPSBEUF9BVVhfSERD UF9BS1NWLAotCQkuc2l6ZSA9IERSTV9IRENQX0tTVl9MRU4sCi0JfTsKLQl1OCB0eGJ1ZltIRUFE RVJfU0laRSArIERSTV9IRENQX0tTVl9MRU5dID0ge30sIHJ4YnVmWzJdLCByZXBseSA9IDA7CisJ dTggYWtzdltEUk1fSERDUF9LU1ZfTEVOXSA9IHt9OwogCXNzaXplX3QgZHBjZF9yZXQ7Ci0JaW50 IHJldDsKIAotCS8qIE91dHB1dCBBbiBmaXJzdCwgdGhhdCdzIGVhc3kgKi8KIAlkcGNkX3JldCA9 IGRybV9kcF9kcGNkX3dyaXRlKCZpbnRlbF9kaWdfcG9ydC0+ZHAuYXV4LCBEUF9BVVhfSERDUF9B TiwKIAkJCQkgICAgIGFuLCBEUk1fSERDUF9BTl9MRU4pOwogCWlmIChkcGNkX3JldCAhPSBEUk1f SERDUF9BTl9MRU4pIHsKQEAgLTY1NzQsMzEgKzY1ODEsMTkgQEAgaW50IGludGVsX2RwX2hkY3Bf d3JpdGVfYW5fYWtzdihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwK IAl9CiAKIAkvKgotCSAqIFNpbmNlIEFrc3YgaXMgT2gtU28tU2VjcmV0LCB3ZSBjYW4ndCBhY2Nl c3MgaXQgaW4gc29mdHdhcmUuIFNvIGluCi0JICogb3JkZXIgdG8gZ2V0IGl0IG9uIHRoZSB3aXJl LCB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgQVVYIGhlYWRlciBhcyBpZgotCSAqIHdlIHdlcmUgd3Jp dGluZyB0aGUgZGF0YSwgYW5kIHRoZW4gdGlja2xlIHRoZSBoYXJkd2FyZSB0byBvdXRwdXQgdGhl Ci0JICogZGF0YSBvbmNlIHRoZSBoZWFkZXIgaXMgc2VudCBvdXQuCisJICogU2luY2UgQWtzdiBp cyBPaC1Tby1TZWNyZXQsIHdlIGNhbid0IGFjY2VzcyBpdCBpbiBzb2Z0d2FyZS4gU28gd2UKKwkg KiBzZW5kIGFuIGVtcHR5IGJ1ZmZlciBvZiB0aGUgY29ycmVjdCBsZW5ndGggdGhyb3VnaCB0aGUg RFAgaGVscGVycy4gT24KKwkgKiB0aGUgb3RoZXIgc2lkZSwgaW4gdGhlIHRyYW5zZmVyIGhvb2ss IHdlJ2xsIGdlbmVyYXRlIGEgZmxhZyBiYXNlZCBvbgorCSAqIHRoZSBkZXN0aW5hdGlvbiBhZGRy ZXNzIHdoaWNoIHdpbGwgdGlja2xlIHRoZSBoYXJkd2FyZSB0byBvdXRwdXQgdGhlCisJICogQWtz diBvbiBvdXIgYmVoYWxmIGFmdGVyIHRoZSBoZWFkZXIgaXMgc2VudC4KIAkgKi8KLQlpbnRlbF9k cF9hdXhfaGVhZGVyKHR4YnVmLCAmbXNnKTsKLQotCXJldCA9IGludGVsX2RwX2F1eF94ZmVyKGlu dGVsX2RwLCB0eGJ1ZiwgSEVBREVSX1NJWkUgKyBtc2cuc2l6ZSwKLQkJCQlyeGJ1Ziwgc2l6ZW9m KHJ4YnVmKSwKLQkJCQlEUF9BVVhfQ0hfQ1RMX0FVWF9BS1NWX1NFTEVDVCk7Ci0JaWYgKHJldCA8 IDApIHsKLQkJZHJtX2RiZ19rbXMoJmk5MTUtPmRybSwKLQkJCSAgICAiV3JpdGUgQWtzdiBvdmVy IERQL0FVWCBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9IGVsc2UgaWYg KHJldCA9PSAwKSB7Ci0JCWRybV9kYmdfa21zKCZpOTE1LT5kcm0sICJBa3N2IHdyaXRlIG92ZXIg RFAvQVVYIHdhcyBlbXB0eVxuIik7Ci0JCXJldHVybiAtRUlPOwotCX0KLQotCXJlcGx5ID0gKHJ4 YnVmWzBdID4+IDQpICYgRFBfQVVYX05BVElWRV9SRVBMWV9NQVNLOwotCWlmIChyZXBseSAhPSBE UF9BVVhfTkFUSVZFX1JFUExZX0FDSykgeworCWRwY2RfcmV0ID0gZHJtX2RwX2RwY2Rfd3JpdGUo JmludGVsX2RpZ19wb3J0LT5kcC5hdXgsIERQX0FVWF9IRENQX0FLU1YsCisJCQkJICAgICBha3N2 LCBEUk1fSERDUF9LU1ZfTEVOKTsKKwlpZiAoZHBjZF9yZXQgIT0gRFJNX0hEQ1BfS1NWX0xFTikg ewogCQlkcm1fZGJnX2ttcygmaTkxNS0+ZHJtLAotCQkJICAgICJBa3N2IHdyaXRlOiBubyBEUF9B VVhfTkFUSVZFX1JFUExZX0FDSyAleFxuIiwKLQkJCSAgICByZXBseSk7Ci0JCXJldHVybiAtRUlP OworCQkJICAgICJGYWlsZWQgdG8gd3JpdGUgQWtzdiBvdmVyIERQL0FVWCAoJXpkKVxuIiwKKwkJ CSAgICBkcGNkX3JldCk7CisJCXJldHVybiBkcGNkX3JldCA+PSAwID8gLUVJTyA6IGRwY2RfcmV0 OwogCX0KIAlyZXR1cm4gMDsKIH0KLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdv b2dsZSAvIENocm9taXVtIE9TCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK