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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 BEFC9CD1284 for ; Thu, 4 Apr 2024 11:42:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=UdYqbXp5uiBLx4DUz5vO1rjNz32M3hFl0FNVdAu9ztM=; b=xkJwpZx0r3YqsL MjTO48jH3lHai5PkGI686Sr1MlF9DNg3iv6xVPxW/gyzT2wJwryImzbK3xlTz7gCn5HNd0NxSBylc YBgv7uj+BZgQdRrUlxw0GXGj7OOmnkNp7DksjnlVziHPMQbLWjRLydc9Z6GhnTJy0McUhESfzlU/e IuRSQyi58xtPiizoTJt27da8J0LNEaPuiFHBRmanRCv12btAgFdw0VDB9HC1c6JWUg2ZSC/1t92Ca Dmnj0mhUuPgHsmEwubyYFSXNzRzbQoSbBvrmccHW+eb6r+uJSJU5rEn8FeiYwkpGeoXt2Qh8OLHp1 MlZtwG5gaLI6GW6dToVA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rsLUW-00000002PDz-3Fed; Thu, 04 Apr 2024 11:42:48 +0000 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rsLUT-00000002PBV-3CNm for linux-riscv@lists.infradead.org; Thu, 04 Apr 2024 11:42:47 +0000 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-4162c210c33so653555e9.0 for ; Thu, 04 Apr 2024 04:42:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712230963; x=1712835763; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Pqy2ewNN48fw3s9qqyDtJ4B3ZHb5tBGwC9kRk5VVgpo=; b=AmuDhd+IwHcgY64Lliym2D7FOj81mW84whQegXwR2UH5ISSz0Z8O3oYGnIci3zYHVn upsqV/2grNqjt2s8fdNb+l9oqXOlN5wswnimWE+8qggZ5U2s99xJ5Fzma+zXYtuC1P/N +nz0iP/PReNESvf74KWvDcc3P5AhzTpcCT5+9OjcORJzj8ra9BiK7pKIy8bgYF5QtBJ+ 2qbmy3OgnKxegF3GE1pv1VGSHaxzXJzQbJDl5O1gpdCDxZkR3N7oygSAQew0rS1BYNM3 oSBTXVSh1A6gOTjjrIEIy9I5Znwkr+VHDJMRgvg3/CG3guz8Y9W7YeNYh8Y2cR5exE8o ZDtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712230963; x=1712835763; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Pqy2ewNN48fw3s9qqyDtJ4B3ZHb5tBGwC9kRk5VVgpo=; b=H7DTHOZAa4ateFPdPtAf6bgC32RShJV1PdZH8IKgNjmFb0x2p4COJhljTGDGur/GgP Rz0B2mgIWwj+lLS6OYGgUUzpzae9OR4T4SKz9k9/H1NktlwJ6kQ4j0w8hM/GEVxXoV0r r5g25aNKho41nVffV6RKfTU2qtjfry56ZeMzTYJdJpzB9SH6XYyy8xTIUGgDsYlzQZc2 0qtKw6CkoDf2uGss78OS/qBNPPQbb9gO/7YwPS9EZYWT90n0OETrmYcN1iclm+fRaB9i KOEHkFH4ungIMyEVGCibil31vD6IoB+UY8wxl6oTYSLqfYm2VdqrMtmSZhTEJqfqERG+ ys9Q== X-Forwarded-Encrypted: i=1; AJvYcCX+PJ0FohbMQXcDSB4/nxJYYbDeSKEhzS4G7vB4iDaqpDIUriiPyf0fKT0Oxu3LZYQFyiRqgwF06w27Uhmuy9W/8qkMYDcgJMjGfjZ59REV X-Gm-Message-State: AOJu0YwY7VSqBd8+C7isS0H0VvzynWqqiX67tlEJTYeiIXLd5kFcSoyI sA4Si1qaPIl/CWbi7Ld/oGWY3BKjP+Dj8bmWZP4Bz38uQItl1Ra/ X-Google-Smtp-Source: AGHT+IFA/9cDcUP+uPEd1G0coB8WW7cw0cn6aZ1Pxac/3Y7Sm4UQrAhtEMAgq2U3Om9UQ/r5uscdqw== X-Received: by 2002:a05:600c:56da:b0:415:46ef:8b6f with SMTP id ju26-20020a05600c56da00b0041546ef8b6fmr1858196wmb.30.1712230962627; Thu, 04 Apr 2024 04:42:42 -0700 (PDT) Received: from localhost (54-240-197-231.amazon.com. [54.240.197.231]) by smtp.gmail.com with ESMTPSA id fm22-20020a05600c0c1600b004162c119b6esm427533wmb.27.2024.04.04.04.42.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Apr 2024 04:42:42 -0700 (PDT) From: Puranjay Mohan To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Luke Nelson , Xi Wang , Paul Walmsley , Palmer Dabbelt , Albert Ou , bpf@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Pu Lehui Cc: puranjay12@gmail.com Subject: [PATCH bpf-next v4 1/2] bpf,riscv: Implement PROBE_MEM32 pseudo instructions Date: Thu, 4 Apr 2024 11:42:02 +0000 Message-Id: <20240404114203.105970-2-puranjay12@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240404114203.105970-1-puranjay12@gmail.com> References: <20240404114203.105970-1-puranjay12@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240404_044245_958385_D871A500 X-CRM114-Status: GOOD ( 22.71 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org QWRkIHN1cHBvcnQgZm9yIFtMRFggfCBTVFggfCBTVF0sIFBST0JFX01FTTMyLCBbQiB8IEggfCBX IHwgRFddCmluc3RydWN0aW9ucy4gIFRoZXkgYXJlIHNpbWlsYXIgdG8gUFJPQkVfTUVNIGluc3Ry dWN0aW9ucyB3aXRoIHRoZQpmb2xsb3dpbmcgZGlmZmVyZW5jZXM6Ci0gUFJPQkVfTUVNMzIgc3Vw cG9ydHMgc3RvcmUuCi0gUFJPQkVfTUVNMzIgcmVsaWVzIG9uIHRoZSB2ZXJpZmllciB0byBjbGVh ciB1cHBlciAzMi1iaXQgb2YgdGhlCiAgc3JjL2RzdCByZWdpc3RlcgotIFBST0JFX01FTTMyIGFk ZHMgNjQtYml0IGtlcm5fdm1fc3RhcnQgYWRkcmVzcyAod2hpY2ggaXMgc3RvcmVkIGluIFM3CiAg aW4gdGhlIHByb2xvZ3VlKS4gRHVlIHRvIGJwZl9hcmVuYSBjb25zdHJ1Y3Rpb25zIHN1Y2ggUzcg KyByZWcgKwogIG9mZjE2IGFjY2VzcyBpcyBndWFyYW50ZWVkIHRvIGJlIHdpdGhpbiBhcmVuYSB2 aXJ0dWFsIHJhbmdlLCBzbyBubwogIGFkZHJlc3MgY2hlY2sgYXQgcnVuLXRpbWUuCi0gUzExIGlz IGEgZnJlZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXIsIHNvIGl0IGlzIHVzZWQgdG8gc3RvcmUga2Vy bl92bV9zdGFydAotIFBST0JFX01FTTMyIGFsbG93cyBTVFggYW5kIFNULiBJZiB0aGV5IGZhdWx0 IHRoZSBzdG9yZSBpcyBhIG5vcC4gV2hlbgogIExEWCBmYXVsdHMgdGhlIGRlc3RpbmF0aW9uIHJl Z2lzdGVyIGlzIHplcm9lZC4KClRvIHN1cHBvcnQgdGhlc2Ugb24gcmlzY3YsIHdlIGRvIHRtcCA9 IFM3ICsgc3JjL2RzdCByZWcgYW5kIHRoZW4gdXNlCnRtcDIgYXMgdGhlIG5ldyBzcmMvZHN0IHJl Z2lzdGVyLiBUaGlzIGFsbG93cyB1cyB0byByZXVzZSBtb3N0IG9mIHRoZQpjb2RlIGZvciBub3Jt YWwgW0xEWCB8IFNUWCB8IFNUXS4KClRlc3RlZC1ieTogQmrDtnJuIFTDtnBlbCA8Ympvcm5Acml2 b3NpbmMuY29tPgpUZXN0ZWQtYnk6IFB1IExlaHVpIDxwdWxlaHVpQGh1YXdlaS5jb20+CkFja2Vk LWJ5OiBCasO2cm4gVMO2cGVsIDxiam9ybkBrZXJuZWwub3JnPgpSZXZpZXdlZC1ieTogUHUgTGVo dWkgPHB1bGVodWlAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogUHVyYW5qYXkgTW9oYW4gPHB1 cmFuamF5MTJAZ21haWwuY29tPgotLS0KIGFyY2gvcmlzY3YvbmV0L2JwZl9qaXQuaCAgICAgICAg fCAgIDEgKwogYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYyB8IDE4OSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQogYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb3JlLmMgICB8 ICAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDE4OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXQuaCBiL2FyY2gvcmlzY3YvbmV0 L2JwZl9qaXQuaAppbmRleCBmNGI2YjNiOWVkZGEuLjhhNDdkYTA4ZGQ5YyAxMDA2NDQKLS0tIGEv YXJjaC9yaXNjdi9uZXQvYnBmX2ppdC5oCisrKyBiL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXQuaApA QCAtODEsNiArODEsNyBAQCBzdHJ1Y3QgcnZfaml0X2NvbnRleHQgewogCWludCBuZXhlbnRyaWVz OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHN0YWNrX3NpemU7CisJdTY0IGFyZW5hX3Zt X3N0YXJ0OwogfTsKIAogLyogQ29udmVydCBmcm9tIG5pbnNucyB0byBieXRlcy4gKi8KZGlmZiAt LWdpdCBhL2FyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMgYi9hcmNoL3Jpc2N2L25ldC9i cGZfaml0X2NvbXA2NC5jCmluZGV4IDFhZGYyZjM5Y2U1OS4uYTRjOGUxZTZjMWUyIDEwMDY0NAot LS0gYS9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jCisrKyBiL2FyY2gvcmlzY3YvbmV0 L2JwZl9qaXRfY29tcDY0LmMKQEAgLTE4LDYgKzE4LDcgQEAKIAogI2RlZmluZSBSVl9SRUdfVEND IFJWX1JFR19BNgogI2RlZmluZSBSVl9SRUdfVENDX1NBVkVEIFJWX1JFR19TNiAvKiBTdG9yZSBB NiBpbiBTNiBpZiBwcm9ncmFtIGRvIGNhbGxzICovCisjZGVmaW5lIFJWX1JFR19BUkVOQSBSVl9S RUdfUzcgLyogRm9yIHN0b3JpbmcgYXJlbmFfdm1fc3RhcnQgKi8KIAogc3RhdGljIGNvbnN0IGlu dCByZWdtYXBbXSA9IHsKIAlbQlBGX1JFR18wXSA9CVJWX1JFR19BNSwKQEAgLTI1NSw2ICsyNTYs MTAgQEAgc3RhdGljIHZvaWQgX19idWlsZF9lcGlsb2d1ZShib29sIGlzX3RhaWxfY2FsbCwgc3Ry dWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgpCiAJCWVtaXRfbGQoUlZfUkVHX1M2LCBzdG9yZV9vZmZz ZXQsIFJWX1JFR19TUCwgY3R4KTsKIAkJc3RvcmVfb2Zmc2V0IC09IDg7CiAJfQorCWlmIChjdHgt PmFyZW5hX3ZtX3N0YXJ0KSB7CisJCWVtaXRfbGQoUlZfUkVHX0FSRU5BLCBzdG9yZV9vZmZzZXQs IFJWX1JFR19TUCwgY3R4KTsKKwkJc3RvcmVfb2Zmc2V0IC09IDg7CisJfQogCiAJZW1pdF9hZGRp KFJWX1JFR19TUCwgUlZfUkVHX1NQLCBzdGFja19hZGp1c3QsIGN0eCk7CiAJLyogU2V0IHJldHVy biB2YWx1ZS4gKi8KQEAgLTU0OCw2ICs1NTMsNyBAQCBzdGF0aWMgdm9pZCBlbWl0X2F0b21pYyh1 OCByZCwgdTggcnMsIHMxNiBvZmYsIHMzMiBpbW0sIGJvb2wgaXM2NCwKIAogI2RlZmluZSBCUEZf RklYVVBfT0ZGU0VUX01BU0sgICBHRU5NQVNLKDI2LCAwKQogI2RlZmluZSBCUEZfRklYVVBfUkVH X01BU0sgICAgICBHRU5NQVNLKDMxLCAyNykKKyNkZWZpbmUgUkVHX0RPTlRfQ0xFQVJfTUFSS0VS CTAJLyogUlZfUkVHX1pFUk8gdW51c2VkIGluIHB0X3JlZ21hcCAqLwogCiBib29sIGV4X2hhbmRs ZXJfYnBmKGNvbnN0IHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKmV4LAogCQkgICAgc3Ry dWN0IHB0X3JlZ3MgKnJlZ3MpCkBAIC01NTUsNyArNTYxLDggQEAgYm9vbCBleF9oYW5kbGVyX2Jw Zihjb25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpleCwKIAlvZmZfdCBvZmZzZXQg PSBGSUVMRF9HRVQoQlBGX0ZJWFVQX09GRlNFVF9NQVNLLCBleC0+Zml4dXApOwogCWludCByZWdz X29mZnNldCA9IEZJRUxEX0dFVChCUEZfRklYVVBfUkVHX01BU0ssIGV4LT5maXh1cCk7CiAKLQkq KHVuc2lnbmVkIGxvbmcgKikoKHZvaWQgKilyZWdzICsgcHRfcmVnbWFwW3JlZ3Nfb2Zmc2V0XSkg PSAwOworCWlmIChyZWdzX29mZnNldCAhPSBSRUdfRE9OVF9DTEVBUl9NQVJLRVIpCisJCSoodW5z aWduZWQgbG9uZyAqKSgodm9pZCAqKXJlZ3MgKyBwdF9yZWdtYXBbcmVnc19vZmZzZXRdKSA9IDA7 CiAJcmVncy0+ZXBjID0gKHVuc2lnbmVkIGxvbmcpJmV4LT5maXh1cCAtIG9mZnNldDsKIAogCXJl dHVybiB0cnVlOwpAQCAtNTcyLDcgKzU3OSw4IEBAIHN0YXRpYyBpbnQgYWRkX2V4Y2VwdGlvbl9o YW5kbGVyKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwKIAlvZmZfdCBmaXh1cF9vZmZzZXQ7 CiAKIAlpZiAoIWN0eC0+aW5zbnMgfHwgIWN0eC0+cm9faW5zbnMgfHwgIWN0eC0+cHJvZy0+YXV4 LT5leHRhYmxlIHx8Ci0JICAgIChCUEZfTU9ERShpbnNuLT5jb2RlKSAhPSBCUEZfUFJPQkVfTUVN ICYmIEJQRl9NT0RFKGluc24tPmNvZGUpICE9IEJQRl9QUk9CRV9NRU1TWCkpCisJICAgIChCUEZf TU9ERShpbnNuLT5jb2RlKSAhPSBCUEZfUFJPQkVfTUVNICYmIEJQRl9NT0RFKGluc24tPmNvZGUp ICE9IEJQRl9QUk9CRV9NRU1TWCAmJgorCSAgICAgQlBGX01PREUoaW5zbi0+Y29kZSkgIT0gQlBG X1BST0JFX01FTTMyKSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoV0FSTl9PTl9PTkNFKGN0eC0+bmV4 ZW50cmllcyA+PSBjdHgtPnByb2ctPmF1eC0+bnVtX2V4ZW50cmllcykpCkBAIC0xNTM5LDYgKzE1 NDcsMTEgQEAgaW50IGJwZl9qaXRfZW1pdF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5z biwgc3RydWN0IHJ2X2ppdF9jb250ZXh0ICpjdHgsCiAJY2FzZSBCUEZfTERYIHwgQlBGX1BST0JF X01FTVNYIHwgQlBGX0I6CiAJY2FzZSBCUEZfTERYIHwgQlBGX1BST0JFX01FTVNYIHwgQlBGX0g6 CiAJY2FzZSBCUEZfTERYIHwgQlBGX1BST0JFX01FTVNYIHwgQlBGX1c6CisJLyogTERYIHwgUFJP QkVfTUVNMzI6IGRzdCA9ICoodW5zaWduZWQgc2l6ZSAqKShzcmMgKyBSVl9SRUdfQVJFTkEgKyBv ZmYpICovCisJY2FzZSBCUEZfTERYIHwgQlBGX1BST0JFX01FTTMyIHwgQlBGX0I6CisJY2FzZSBC UEZfTERYIHwgQlBGX1BST0JFX01FTTMyIHwgQlBGX0g6CisJY2FzZSBCUEZfTERYIHwgQlBGX1BS T0JFX01FTTMyIHwgQlBGX1c6CisJY2FzZSBCUEZfTERYIHwgQlBGX1BST0JFX01FTTMyIHwgQlBG X0RXOgogCXsKIAkJaW50IGluc25fbGVuLCBpbnNuc19zdGFydDsKIAkJYm9vbCBzaWduX2V4dDsK QEAgLTE1NDYsNiArMTU1OSwxMSBAQCBpbnQgYnBmX2ppdF9lbWl0X2luc24oY29uc3Qgc3RydWN0 IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3QgcnZfaml0X2NvbnRleHQgKmN0eCwKIAkJc2lnbl9leHQg PSBCUEZfTU9ERShpbnNuLT5jb2RlKSA9PSBCUEZfTUVNU1ggfHwKIAkJCSAgIEJQRl9NT0RFKGlu c24tPmNvZGUpID09IEJQRl9QUk9CRV9NRU1TWDsKIAorCQlpZiAoQlBGX01PREUoaW5zbi0+Y29k ZSkgPT0gQlBGX1BST0JFX01FTTMyKSB7CisJCQllbWl0X2FkZChSVl9SRUdfVDIsIHJzLCBSVl9S RUdfQVJFTkEsIGN0eCk7CisJCQlycyA9IFJWX1JFR19UMjsKKwkJfQorCiAJCXN3aXRjaCAoQlBG X1NJWkUoY29kZSkpIHsKIAkJY2FzZSBCUEZfQjoKIAkJCWlmIChpc18xMmJfaW50KG9mZikpIHsK QEAgLTE2ODIsNiArMTcwMCw4NiBAQCBpbnQgYnBmX2ppdF9lbWl0X2luc24oY29uc3Qgc3RydWN0 IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3QgcnZfaml0X2NvbnRleHQgKmN0eCwKIAkJZW1pdF9zZChS Vl9SRUdfVDIsIDAsIFJWX1JFR19UMSwgY3R4KTsKIAkJYnJlYWs7CiAKKwljYXNlIEJQRl9TVCB8 IEJQRl9QUk9CRV9NRU0zMiB8IEJQRl9COgorCWNhc2UgQlBGX1NUIHwgQlBGX1BST0JFX01FTTMy IHwgQlBGX0g6CisJY2FzZSBCUEZfU1QgfCBCUEZfUFJPQkVfTUVNMzIgfCBCUEZfVzoKKwljYXNl IEJQRl9TVCB8IEJQRl9QUk9CRV9NRU0zMiB8IEJQRl9EVzoKKwl7CisJCWludCBpbnNuX2xlbiwg aW5zbnNfc3RhcnQ7CisKKwkJZW1pdF9hZGQoUlZfUkVHX1QzLCByZCwgUlZfUkVHX0FSRU5BLCBj dHgpOworCQlyZCA9IFJWX1JFR19UMzsKKworCQkvKiBMb2FkIGltbSB0byBhIHJlZ2lzdGVyIHRo ZW4gc3RvcmUgaXQgKi8KKwkJZW1pdF9pbW0oUlZfUkVHX1QxLCBpbW0sIGN0eCk7CisKKwkJc3dp dGNoIChCUEZfU0laRShjb2RlKSkgeworCQljYXNlIEJQRl9COgorCQkJaWYgKGlzXzEyYl9pbnQo b2ZmKSkgeworCQkJCWluc25zX3N0YXJ0ID0gY3R4LT5uaW5zbnM7CisJCQkJZW1pdChydl9zYihy ZCwgb2ZmLCBSVl9SRUdfVDEpLCBjdHgpOworCQkJCWluc25fbGVuID0gY3R4LT5uaW5zbnMgLSBp bnNuc19zdGFydDsKKwkJCQlicmVhazsKKwkJCX0KKworCQkJZW1pdF9pbW0oUlZfUkVHX1QyLCBv ZmYsIGN0eCk7CisJCQllbWl0X2FkZChSVl9SRUdfVDIsIFJWX1JFR19UMiwgcmQsIGN0eCk7CisJ CQlpbnNuc19zdGFydCA9IGN0eC0+bmluc25zOworCQkJZW1pdChydl9zYihSVl9SRUdfVDIsIDAs IFJWX1JFR19UMSksIGN0eCk7CisJCQlpbnNuX2xlbiA9IGN0eC0+bmluc25zIC0gaW5zbnNfc3Rh cnQ7CisJCQlicmVhazsKKwkJY2FzZSBCUEZfSDoKKwkJCWlmIChpc18xMmJfaW50KG9mZikpIHsK KwkJCQlpbnNuc19zdGFydCA9IGN0eC0+bmluc25zOworCQkJCWVtaXQocnZfc2gocmQsIG9mZiwg UlZfUkVHX1QxKSwgY3R4KTsKKwkJCQlpbnNuX2xlbiA9IGN0eC0+bmluc25zIC0gaW5zbnNfc3Rh cnQ7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCWVtaXRfaW1tKFJWX1JFR19UMiwgb2ZmLCBjdHgp OworCQkJZW1pdF9hZGQoUlZfUkVHX1QyLCBSVl9SRUdfVDIsIHJkLCBjdHgpOworCQkJaW5zbnNf c3RhcnQgPSBjdHgtPm5pbnNuczsKKwkJCWVtaXQocnZfc2goUlZfUkVHX1QyLCAwLCBSVl9SRUdf VDEpLCBjdHgpOworCQkJaW5zbl9sZW4gPSBjdHgtPm5pbnNucyAtIGluc25zX3N0YXJ0OworCQkJ YnJlYWs7CisJCWNhc2UgQlBGX1c6CisJCQlpZiAoaXNfMTJiX2ludChvZmYpKSB7CisJCQkJaW5z bnNfc3RhcnQgPSBjdHgtPm5pbnNuczsKKwkJCQllbWl0X3N3KHJkLCBvZmYsIFJWX1JFR19UMSwg Y3R4KTsKKwkJCQlpbnNuX2xlbiA9IGN0eC0+bmluc25zIC0gaW5zbnNfc3RhcnQ7CisJCQkJYnJl YWs7CisJCQl9CisKKwkJCWVtaXRfaW1tKFJWX1JFR19UMiwgb2ZmLCBjdHgpOworCQkJZW1pdF9h ZGQoUlZfUkVHX1QyLCBSVl9SRUdfVDIsIHJkLCBjdHgpOworCQkJaW5zbnNfc3RhcnQgPSBjdHgt Pm5pbnNuczsKKwkJCWVtaXRfc3coUlZfUkVHX1QyLCAwLCBSVl9SRUdfVDEsIGN0eCk7CisJCQlp bnNuX2xlbiA9IGN0eC0+bmluc25zIC0gaW5zbnNfc3RhcnQ7CisJCQlicmVhazsKKwkJY2FzZSBC UEZfRFc6CisJCQlpZiAoaXNfMTJiX2ludChvZmYpKSB7CisJCQkJaW5zbnNfc3RhcnQgPSBjdHgt Pm5pbnNuczsKKwkJCQllbWl0X3NkKHJkLCBvZmYsIFJWX1JFR19UMSwgY3R4KTsKKwkJCQlpbnNu X2xlbiA9IGN0eC0+bmluc25zIC0gaW5zbnNfc3RhcnQ7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJ CWVtaXRfaW1tKFJWX1JFR19UMiwgb2ZmLCBjdHgpOworCQkJZW1pdF9hZGQoUlZfUkVHX1QyLCBS Vl9SRUdfVDIsIHJkLCBjdHgpOworCQkJaW5zbnNfc3RhcnQgPSBjdHgtPm5pbnNuczsKKwkJCWVt aXRfc2QoUlZfUkVHX1QyLCAwLCBSVl9SRUdfVDEsIGN0eCk7CisJCQlpbnNuX2xlbiA9IGN0eC0+ bmluc25zIC0gaW5zbnNfc3RhcnQ7CisJCQlicmVhazsKKwkJfQorCisJCXJldCA9IGFkZF9leGNl cHRpb25faGFuZGxlcihpbnNuLCBjdHgsIFJFR19ET05UX0NMRUFSX01BUktFUiwKKwkJCQkJICAg IGluc25fbGVuKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJYnJlYWs7CisJfQor CiAJLyogU1RYOiAqKHNpemUgKikoZHN0ICsgb2ZmKSA9IHNyYyAqLwogCWNhc2UgQlBGX1NUWCB8 IEJQRl9NRU0gfCBCUEZfQjoKIAkJaWYgKGlzXzEyYl9pbnQob2ZmKSkgewpAQCAtMTcyOCw2ICsx ODI2LDg0IEBAIGludCBicGZfaml0X2VtaXRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmlu c24sIHN0cnVjdCBydl9qaXRfY29udGV4dCAqY3R4LAogCQllbWl0X2F0b21pYyhyZCwgcnMsIG9m ZiwgaW1tLAogCQkJICAgIEJQRl9TSVpFKGNvZGUpID09IEJQRl9EVywgY3R4KTsKIAkJYnJlYWs7 CisKKwljYXNlIEJQRl9TVFggfCBCUEZfUFJPQkVfTUVNMzIgfCBCUEZfQjoKKwljYXNlIEJQRl9T VFggfCBCUEZfUFJPQkVfTUVNMzIgfCBCUEZfSDoKKwljYXNlIEJQRl9TVFggfCBCUEZfUFJPQkVf TUVNMzIgfCBCUEZfVzoKKwljYXNlIEJQRl9TVFggfCBCUEZfUFJPQkVfTUVNMzIgfCBCUEZfRFc6 CisJeworCQlpbnQgaW5zbl9sZW4sIGluc25zX3N0YXJ0OworCisJCWVtaXRfYWRkKFJWX1JFR19U MiwgcmQsIFJWX1JFR19BUkVOQSwgY3R4KTsKKwkJcmQgPSBSVl9SRUdfVDI7CisKKwkJc3dpdGNo IChCUEZfU0laRShjb2RlKSkgeworCQljYXNlIEJQRl9COgorCQkJaWYgKGlzXzEyYl9pbnQob2Zm KSkgeworCQkJCWluc25zX3N0YXJ0ID0gY3R4LT5uaW5zbnM7CisJCQkJZW1pdChydl9zYihyZCwg b2ZmLCBycyksIGN0eCk7CisJCQkJaW5zbl9sZW4gPSBjdHgtPm5pbnNucyAtIGluc25zX3N0YXJ0 OworCQkJCWJyZWFrOworCQkJfQorCisJCQllbWl0X2ltbShSVl9SRUdfVDEsIG9mZiwgY3R4KTsK KwkJCWVtaXRfYWRkKFJWX1JFR19UMSwgUlZfUkVHX1QxLCByZCwgY3R4KTsKKwkJCWluc25zX3N0 YXJ0ID0gY3R4LT5uaW5zbnM7CisJCQllbWl0KHJ2X3NiKFJWX1JFR19UMSwgMCwgcnMpLCBjdHgp OworCQkJaW5zbl9sZW4gPSBjdHgtPm5pbnNucyAtIGluc25zX3N0YXJ0OworCQkJYnJlYWs7CisJ CWNhc2UgQlBGX0g6CisJCQlpZiAoaXNfMTJiX2ludChvZmYpKSB7CisJCQkJaW5zbnNfc3RhcnQg PSBjdHgtPm5pbnNuczsKKwkJCQllbWl0KHJ2X3NoKHJkLCBvZmYsIHJzKSwgY3R4KTsKKwkJCQlp bnNuX2xlbiA9IGN0eC0+bmluc25zIC0gaW5zbnNfc3RhcnQ7CisJCQkJYnJlYWs7CisJCQl9CisK KwkJCWVtaXRfaW1tKFJWX1JFR19UMSwgb2ZmLCBjdHgpOworCQkJZW1pdF9hZGQoUlZfUkVHX1Qx LCBSVl9SRUdfVDEsIHJkLCBjdHgpOworCQkJaW5zbnNfc3RhcnQgPSBjdHgtPm5pbnNuczsKKwkJ CWVtaXQocnZfc2goUlZfUkVHX1QxLCAwLCBycyksIGN0eCk7CisJCQlpbnNuX2xlbiA9IGN0eC0+ bmluc25zIC0gaW5zbnNfc3RhcnQ7CisJCQlicmVhazsKKwkJY2FzZSBCUEZfVzoKKwkJCWlmIChp c18xMmJfaW50KG9mZikpIHsKKwkJCQlpbnNuc19zdGFydCA9IGN0eC0+bmluc25zOworCQkJCWVt aXRfc3cocmQsIG9mZiwgcnMsIGN0eCk7CisJCQkJaW5zbl9sZW4gPSBjdHgtPm5pbnNucyAtIGlu c25zX3N0YXJ0OworCQkJCWJyZWFrOworCQkJfQorCisJCQllbWl0X2ltbShSVl9SRUdfVDEsIG9m ZiwgY3R4KTsKKwkJCWVtaXRfYWRkKFJWX1JFR19UMSwgUlZfUkVHX1QxLCByZCwgY3R4KTsKKwkJ CWluc25zX3N0YXJ0ID0gY3R4LT5uaW5zbnM7CisJCQllbWl0X3N3KFJWX1JFR19UMSwgMCwgcnMs IGN0eCk7CisJCQlpbnNuX2xlbiA9IGN0eC0+bmluc25zIC0gaW5zbnNfc3RhcnQ7CisJCQlicmVh azsKKwkJY2FzZSBCUEZfRFc6CisJCQlpZiAoaXNfMTJiX2ludChvZmYpKSB7CisJCQkJaW5zbnNf c3RhcnQgPSBjdHgtPm5pbnNuczsKKwkJCQllbWl0X3NkKHJkLCBvZmYsIHJzLCBjdHgpOworCQkJ CWluc25fbGVuID0gY3R4LT5uaW5zbnMgLSBpbnNuc19zdGFydDsKKwkJCQlicmVhazsKKwkJCX0K KworCQkJZW1pdF9pbW0oUlZfUkVHX1QxLCBvZmYsIGN0eCk7CisJCQllbWl0X2FkZChSVl9SRUdf VDEsIFJWX1JFR19UMSwgcmQsIGN0eCk7CisJCQlpbnNuc19zdGFydCA9IGN0eC0+bmluc25zOwor CQkJZW1pdF9zZChSVl9SRUdfVDEsIDAsIHJzLCBjdHgpOworCQkJaW5zbl9sZW4gPSBjdHgtPm5p bnNucyAtIGluc25zX3N0YXJ0OworCQkJYnJlYWs7CisJCX0KKworCQlyZXQgPSBhZGRfZXhjZXB0 aW9uX2hhbmRsZXIoaW5zbiwgY3R4LCBSRUdfRE9OVF9DTEVBUl9NQVJLRVIsCisJCQkJCSAgICBp bnNuX2xlbik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCWJyZWFrOworCX0KKwog CWRlZmF1bHQ6CiAJCXByX2VycigiYnBmLWppdDogdW5rbm93biBvcGNvZGUgJTAyeFxuIiwgY29k ZSk7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTc1OSw2ICsxOTM1LDggQEAgdm9pZCBicGZfaml0 X2J1aWxkX3Byb2xvZ3VlKHN0cnVjdCBydl9qaXRfY29udGV4dCAqY3R4LCBib29sIGlzX3N1YnBy b2cpCiAJCXN0YWNrX2FkanVzdCArPSA4OwogCWlmIChzZWVuX3JlZyhSVl9SRUdfUzYsIGN0eCkp CiAJCXN0YWNrX2FkanVzdCArPSA4OworCWlmIChjdHgtPmFyZW5hX3ZtX3N0YXJ0KQorCQlzdGFj a19hZGp1c3QgKz0gODsKIAogCXN0YWNrX2FkanVzdCA9IHJvdW5kX3VwKHN0YWNrX2FkanVzdCwg MTYpOwogCXN0YWNrX2FkanVzdCArPSBicGZfc3RhY2tfYWRqdXN0OwpAQCAtMTgxMCw2ICsxOTg4 LDEwIEBAIHZvaWQgYnBmX2ppdF9idWlsZF9wcm9sb2d1ZShzdHJ1Y3QgcnZfaml0X2NvbnRleHQg KmN0eCwgYm9vbCBpc19zdWJwcm9nKQogCQllbWl0X3NkKFJWX1JFR19TUCwgc3RvcmVfb2Zmc2V0 LCBSVl9SRUdfUzYsIGN0eCk7CiAJCXN0b3JlX29mZnNldCAtPSA4OwogCX0KKwlpZiAoY3R4LT5h cmVuYV92bV9zdGFydCkgeworCQllbWl0X3NkKFJWX1JFR19TUCwgc3RvcmVfb2Zmc2V0LCBSVl9S RUdfQVJFTkEsIGN0eCk7CisJCXN0b3JlX29mZnNldCAtPSA4OworCX0KIAogCWVtaXRfYWRkaShS Vl9SRUdfRlAsIFJWX1JFR19TUCwgc3RhY2tfYWRqdXN0LCBjdHgpOwogCkBAIC0xODIzLDYgKzIw MDUsOSBAQCB2b2lkIGJwZl9qaXRfYnVpbGRfcHJvbG9ndWUoc3RydWN0IHJ2X2ppdF9jb250ZXh0 ICpjdHgsIGJvb2wgaXNfc3VicHJvZykKIAkJZW1pdF9tdihSVl9SRUdfVENDX1NBVkVELCBSVl9S RUdfVENDLCBjdHgpOwogCiAJY3R4LT5zdGFja19zaXplID0gc3RhY2tfYWRqdXN0OworCisJaWYg KGN0eC0+YXJlbmFfdm1fc3RhcnQpCisJCWVtaXRfaW1tKFJWX1JFR19BUkVOQSwgY3R4LT5hcmVu YV92bV9zdGFydCwgY3R4KTsKIH0KIAogdm9pZCBicGZfaml0X2J1aWxkX2VwaWxvZ3VlKHN0cnVj dCBydl9qaXRfY29udGV4dCAqY3R4KQpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9uZXQvYnBmX2pp dF9jb3JlLmMgYi9hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvcmUuYwppbmRleCA2YjNhY2FjMzBj MDYuLjlhYjczOWI5ZjlhMiAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb3Jl LmMKKysrIGIvYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb3JlLmMKQEAgLTgwLDYgKzgwLDcgQEAg c3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfcHJvZyAqcHJv ZykKIAkJZ290byBza2lwX2luaXRfY3R4OwogCX0KIAorCWN0eC0+YXJlbmFfdm1fc3RhcnQgPSBi cGZfYXJlbmFfZ2V0X2tlcm5fdm1fc3RhcnQocHJvZy0+YXV4LT5hcmVuYSk7CiAJY3R4LT5wcm9n ID0gcHJvZzsKIAljdHgtPm9mZnNldCA9IGtjYWxsb2MocHJvZy0+bGVuLCBzaXplb2YoaW50KSwg R0ZQX0tFUk5FTCk7CiAJaWYgKCFjdHgtPm9mZnNldCkgewotLSAKMi40MC4xCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGlu ZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=