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 lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (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 BDE98C4167E for ; Sat, 9 Apr 2022 04:52:48 +0000 (UTC) Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com) by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.94.2) (envelope-from ) id 1nd35c-0000SR-Nw; Sat, 09 Apr 2022 04:52:47 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nd35c-0000S0-55; Sat, 09 Apr 2022 04:52:46 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:MIME-Version :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=MR1dBREWEzr7uhm77WcgVZfNn+irLPCXxWfbv0Y8Fx8=; b=hkOIDeHUPYgA3M1LD6ejjVr0PO zvdhJIyTLGvODKW3C/ZmUjgLktdONB1sdxyQT2eYQLzohxeGdsiHTXcwcg7TiE4aUALofy1wXixhT xIqqPR9BkLvSB8dccH2YMFU0bCUB20EP8+NqIXDWFPwKD0V+OAZ0q1z4Q0C8cVi/dIGA=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=MR1dBREWEzr7uhm77WcgVZfNn+irLPCXxWfbv0Y8Fx8=; b=dyRV3ObAXYKQPJjY9cea0hwcge FoZ6q+iBO+xRySH1LQqxJf8STJ69sPHl/R/YHYaMXyX13zEH4RG+Es3Ic4jl4lQJuTOAN9jhzeIRU 7lrIRTIU7RD1kR2aYtobx9CuscRDB9qSIZjYCKZJe4R1hag905poh6oaU5GSKrc35h5U=; Received: from bombadil.infradead.org ([198.137.202.133]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.94.2) id 1nd35Y-0001Bv-SE; Sat, 09 Apr 2022 04:52:46 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Sender:Reply-To:Content-ID:Content-Description; bh=MR1dBREWEzr7uhm77WcgVZfNn+irLPCXxWfbv0Y8Fx8=; b=g1JrWZZU7gXqi54KSSq2td5NGg JTv8uprg5injPH7nKkeNRWdn6oTNLWZZnzaHqHhPeHQKztSOiA4sj9FfMAEZJ7/a9B/nIKLTwqwGB PuDRNI4dm2AH1PLgWy6G6WT6g3S55JW0fBof3tJZn4+4Uz4tLd0IKxpSOJszbSZ5S5fhGHf6HQiq8 tfOI2qhlZHSzdLNHIOgkox+DFYK8KmZY72c/I/6yjiFdBqWpjKEKpQemLV7RLvoqpLXmpYDnm9R+M 6+YRTeKl4k0OAcFvjw1Z1NHUh/0kBaNpv9L8pEjsBLMomqJ9Ip1F1RfoaNm2SYWGY95WZH5q/4P5S xDXG8m/A==; Received: from 213-147-167-116.nat.highway.webapn.at ([213.147.167.116] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1nd35C-0021lf-95; Sat, 09 Apr 2022 04:52:23 +0000 From: Christoph Hellwig To: Jens Axboe Date: Sat, 9 Apr 2022 06:50:42 +0200 Message-Id: <20220409045043.23593-27-hch@lst.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220409045043.23593-1-hch@lst.de> References: <20220409045043.23593-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Headers-End: 1nd35Y-0001Bv-SE Subject: [f2fs-dev] [PATCH 26/27] block: decouple REQ_OP_SECURE_ERASE from REQ_OP_DISCARD X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jfs-discussion@lists.sourceforge.net, linux-nvme@lists.infradead.org, virtualization@lists.linux-foundation.org, linux-mm@kvack.org, dm-devel@redhat.com, target-devel@vger.kernel.org, linux-mtd@lists.infradead.org, drbd-dev@lists.linbit.com, linux-s390@vger.kernel.org, linux-nilfs@vger.kernel.org, linux-scsi@vger.kernel.org, cluster-devel@redhat.com, xen-devel@lists.xenproject.org, linux-ext4@vger.kernel.org, linux-um@lists.infradead.org, nbd@other.debian.org, linux-block@vger.kernel.org, linux-bcache@vger.kernel.org, David Sterba , ceph-devel@vger.kernel.org, Coly Li , Ryusuke Konishi , linux-raid@vger.kernel.org, "Martin K . Petersen" , linux-mmc@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-xfs@vger.kernel.org, =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= , ocfs2-devel@oss.oracle.com, linux-fsdevel@vger.kernel.org, ntfs3@lists.linux.dev, linux-btrfs@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net U2VjdXJlIGVyYXNlIGlzIGEgdmVyeSBkaWZmZXJlbnQgb3BlcmF0aW9uIGZyb20gZGlzY2FyZCBp biB0aGF0IGl0IGlzCmEgZGF0YSBpbnRlZ3JpdHkgb3BlcmF0aW9uIHZzIGhpbnQuICBGdWxseSBz cGxpdCB0aGUgbGltaXRzIGFuZCBoZWxwZXIKaW5mcmFzdHJ1Y3R1cmUgdG8gbWFrZSB0aGUgc2Vw YXJhdGlvbiBtb3JlIGNsZWFyLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIEhlbGx3aWcgPGhj aEBsc3QuZGU+ClJldmlld2VkLWJ5OiBNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRlcnNl bkBvcmFjbGUuY29tPgpBY2tlZC1ieTogQ2hyaXN0b3BoIELDtmhtd2FsZGVyIDxjaHJpc3RvcGgu Ym9laG13YWxkZXJAbGluYml0LmNvbT4gW2RyYmRdCkFja2VkLWJ5OiBSeXVzdWtlIEtvbmlzaGkg PGtvbmlzaGkucnl1c3VrZUBnbWFpbC5jb20+IFtuaWZzMl0KQWNrZWQtYnk6IENvbHkgTGkgPGNv bHlsaUBzdXNlLmRlPiBbZHJiZF0KQWNrZWQtYnk6IERhdmlkIFN0ZXJiYSA8ZHN0ZXJiYUBzdXNl LmNvbT4gW2J0cmZzXQotLS0KIGJsb2NrL2Jsay1jb3JlLmMgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGJsb2NrL2Jsay1saWIuYyAgICAgICAgICAgICAgICAgICAgIHwgNjQgKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0KIGJsb2NrL2Jsay1tcS1kZWJ1Z2ZzLmMgICAgICAgICAgICAg IHwgIDEgLQogYmxvY2svYmxrLXNldHRpbmdzLmMgICAgICAgICAgICAgICAgfCAxNiArKysrKysr LQogYmxvY2svZm9wcy5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogYmxvY2svaW9j dGwuYyAgICAgICAgICAgICAgICAgICAgICAgfCA0MyArKysrKysrKysrKysrKystLS0tCiBkcml2 ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jICB8ICA1ICsrLQogZHJpdmVycy9ibG9jay9y bmJkL3JuYmQtY2x0LmMgICAgICAgfCAgNCArLQogZHJpdmVycy9ibG9jay9ybmJkL3JuYmQtc3J2 LWRldi5oICAgfCAgMiArLQogZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay9ibGtiYWNrLmMgfCAx NSArKystLS0tCiBkcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL3hlbmJ1cy5jICB8ICA1ICstLQog ZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYyAgICAgICAgfCAgNSArKy0KIGRyaXZlcnMvbWQv YmNhY2hlL2FsbG9jLmMgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWQvZG0tdGFibGUuYyAg ICAgICAgICAgICAgIHwgIDggKystLQogZHJpdmVycy9tZC9kbS10aGluLmMgICAgICAgICAgICAg ICAgfCAgNCArLQogZHJpdmVycy9tZC9tZC5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQog ZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5jICAgICAgICAgICAgfCAgNiArLS0KIGRyaXZlcnMvbW1j L2NvcmUvcXVldWUuYyAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbnZtZS90YXJnZXQvaW8t Y21kLWJkZXYuYyAgIHwgIDIgKy0KIGRyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2ZpbGUuYyAg IHwgIDIgKy0KIGRyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2libG9jay5jIHwgIDIgKy0KIGZz L2J0cmZzL2V4dGVudC10cmVlLmMgICAgICAgICAgICAgIHwgIDQgKy0KIGZzL2V4dDQvbWJhbGxv Yy5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL2YyZnMvZmlsZS5jICAgICAgICAgICAg ICAgICAgICAgIHwgMTYgKysrKy0tLS0KIGZzL2YyZnMvc2VnbWVudC5jICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGZzL2piZDIvam91cm5hbC5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGZzL25pbGZzMi9zdWZpbGUuYyAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIGZzL25pbGZzMi90 aGVfbmlsZnMuYyAgICAgICAgICAgICAgIHwgIDQgKy0KIGZzL250ZnMzL3N1cGVyLmMgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3hmcy94ZnNfZGlzY2FyZC5jICAgICAgICAgICAgICAg IHwgIDIgKy0KIGZzL3hmcy94ZnNfbG9nX2NpbC5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIGlu Y2x1ZGUvbGludXgvYmxrZGV2LmggICAgICAgICAgICAgIHwgMjcgKysrKysrKy0tLS0tCiBtbS9z d2FwZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICstLQogMzMgZmlsZXMgY2hhbmdl ZCwgMTY4IGluc2VydGlvbnMoKyksIDk5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Jsb2Nr L2Jsay1jb3JlLmMgYi9ibG9jay9ibGstY29yZS5jCmluZGV4IGI1YzNhODA0OTEzNGMuLmVlMThi NmE2OTliZGYgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1jb3JlLmMKKysrIGIvYmxvY2svYmxrLWNv cmUuYwpAQCAtODI0LDcgKzgyNCw3IEBAIHZvaWQgc3VibWl0X2Jpb19ub2FjY3Qoc3RydWN0IGJp byAqYmlvKQogCQkJZ290byBub3Rfc3VwcG9ydGVkOwogCQlicmVhazsKIAljYXNlIFJFUV9PUF9T RUNVUkVfRVJBU0U6Ci0JCWlmICghYmxrX3F1ZXVlX3NlY3VyZV9lcmFzZShxKSkKKwkJaWYgKCFi ZGV2X21heF9zZWN1cmVfZXJhc2Vfc2VjdG9ycyhiZGV2KSkKIAkJCWdvdG8gbm90X3N1cHBvcnRl ZDsKIAkJYnJlYWs7CiAJY2FzZSBSRVFfT1BfWk9ORV9BUFBFTkQ6CmRpZmYgLS1naXQgYS9ibG9j ay9ibGstbGliLmMgYi9ibG9jay9ibGstbGliLmMKaW5kZXggNDNhYTRkN2ZlODU5Zi4uMDliN2Ux MjAwYzBmNCAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLWxpYi5jCisrKyBiL2Jsb2NrL2Jsay1saWIu YwpAQCAtMzYsMjYgKzM2LDE1IEBAIHN0YXRpYyBzZWN0b3JfdCBiaW9fZGlzY2FyZF9saW1pdChz dHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0b3JfdCBzZWN0b3IpCiB9CiAKIGludCBfX2Js a2Rldl9pc3N1ZV9kaXNjYXJkKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHNlY3Rvcl90IHNl Y3RvciwKLQkJc2VjdG9yX3QgbnJfc2VjdHMsIGdmcF90IGdmcF9tYXNrLCBpbnQgZmxhZ3MsCi0J CXN0cnVjdCBiaW8gKipiaW9wKQorCQlzZWN0b3JfdCBucl9zZWN0cywgZ2ZwX3QgZ2ZwX21hc2ss IHN0cnVjdCBiaW8gKipiaW9wKQogewotCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gYmRldl9n ZXRfcXVldWUoYmRldik7CiAJc3RydWN0IGJpbyAqYmlvID0gKmJpb3A7Ci0JdW5zaWduZWQgaW50 IG9wOwogCXNlY3Rvcl90IGJzX21hc2s7CiAKIAlpZiAoYmRldl9yZWFkX29ubHkoYmRldikpCiAJ CXJldHVybiAtRVBFUk07Ci0KLQlpZiAoZmxhZ3MgJiBCTEtERVZfRElTQ0FSRF9TRUNVUkUpIHsK LQkJaWYgKCFibGtfcXVldWVfc2VjdXJlX2VyYXNlKHEpKQotCQkJcmV0dXJuIC1FT1BOT1RTVVBQ OwotCQlvcCA9IFJFUV9PUF9TRUNVUkVfRVJBU0U7Ci0JfSBlbHNlIHsKLQkJaWYgKCFiZGV2X21h eF9kaXNjYXJkX3NlY3RvcnMoYmRldikpCi0JCQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci0JCW9wID0g UkVRX09QX0RJU0NBUkQ7Ci0JfQorCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGJkZXYp KQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAkvKiBJbiBjYXNlIHRoZSBkaXNjYXJkIGdyYW51 bGFyaXR5IGlzbid0IHNldCBieSBidWdneSBkZXZpY2UgZHJpdmVyICovCiAJaWYgKFdBUk5fT05f T05DRSghYmRldl9kaXNjYXJkX2dyYW51bGFyaXR5KGJkZXYpKSkgewpAQCAtNzcsNyArNjYsNyBA QCBpbnQgX19ibGtkZXZfaXNzdWVfZGlzY2FyZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBz ZWN0b3JfdCBzZWN0b3IsCiAJCXNlY3Rvcl90IHJlcV9zZWN0cyA9CiAJCQltaW4obnJfc2VjdHMs IGJpb19kaXNjYXJkX2xpbWl0KGJkZXYsIHNlY3RvcikpOwogCi0JCWJpbyA9IGJsa19uZXh0X2Jp byhiaW8sIGJkZXYsIDAsIG9wLCBnZnBfbWFzayk7CisJCWJpbyA9IGJsa19uZXh0X2JpbyhiaW8s IGJkZXYsIDAsIFJFUV9PUF9ESVNDQVJELCBnZnBfbWFzayk7CiAJCWJpby0+YmlfaXRlci5iaV9z ZWN0b3IgPSBzZWN0b3I7CiAJCWJpby0+YmlfaXRlci5iaV9zaXplID0gcmVxX3NlY3RzIDw8IDk7 CiAJCXNlY3RvciArPSByZXFfc2VjdHM7CkBAIC0xMDMsMjEgKzkyLDE5IEBAIEVYUE9SVF9TWU1C T0woX19ibGtkZXZfaXNzdWVfZGlzY2FyZCk7CiAgKiBAc2VjdG9yOglzdGFydCBzZWN0b3IKICAq IEBucl9zZWN0czoJbnVtYmVyIG9mIHNlY3RvcnMgdG8gZGlzY2FyZAogICogQGdmcF9tYXNrOglt ZW1vcnkgYWxsb2NhdGlvbiBmbGFncyAoZm9yIGJpb19hbGxvYykKLSAqIEBmbGFnczoJQkxLREVW X0RJU0NBUkRfKiBmbGFncyB0byBjb250cm9sIGJlaGF2aW91cgogICoKICAqIERlc2NyaXB0aW9u OgogICogICAgSXNzdWUgYSBkaXNjYXJkIHJlcXVlc3QgZm9yIHRoZSBzZWN0b3JzIGluIHF1ZXN0 aW9uLgogICovCiBpbnQgYmxrZGV2X2lzc3VlX2Rpc2NhcmQoc3RydWN0IGJsb2NrX2RldmljZSAq YmRldiwgc2VjdG9yX3Qgc2VjdG9yLAotCQlzZWN0b3JfdCBucl9zZWN0cywgZ2ZwX3QgZ2ZwX21h c2ssIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCisJCXNlY3Rvcl90IG5yX3NlY3RzLCBnZnBfdCBnZnBf bWFzaykKIHsKIAlzdHJ1Y3QgYmlvICpiaW8gPSBOVUxMOwogCXN0cnVjdCBibGtfcGx1ZyBwbHVn OwogCWludCByZXQ7CiAKIAlibGtfc3RhcnRfcGx1ZygmcGx1Zyk7Ci0JcmV0ID0gX19ibGtkZXZf aXNzdWVfZGlzY2FyZChiZGV2LCBzZWN0b3IsIG5yX3NlY3RzLCBnZnBfbWFzaywgZmxhZ3MsCi0J CQkmYmlvKTsKKwlyZXQgPSBfX2Jsa2Rldl9pc3N1ZV9kaXNjYXJkKGJkZXYsIHNlY3RvciwgbnJf c2VjdHMsIGdmcF9tYXNrLCAmYmlvKTsKIAlpZiAoIXJldCAmJiBiaW8pIHsKIAkJcmV0ID0gc3Vi bWl0X2Jpb193YWl0KGJpbyk7CiAJCWlmIChyZXQgPT0gLUVPUE5PVFNVUFApCkBAIC0zMTQsMyAr MzAxLDQyIEBAIGludCBibGtkZXZfaXNzdWVfemVyb291dChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi ZGV2LCBzZWN0b3JfdCBzZWN0b3IsCiAJcmV0dXJuIHJldDsKIH0KIEVYUE9SVF9TWU1CT0woYmxr ZGV2X2lzc3VlX3plcm9vdXQpOworCitpbnQgYmxrZGV2X2lzc3VlX3NlY3VyZV9lcmFzZShzdHJ1 Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0b3JfdCBzZWN0b3IsCisJCXNlY3Rvcl90IG5yX3Nl Y3RzLCBnZnBfdCBnZnApCit7CisJc2VjdG9yX3QgYnNfbWFzayA9IChiZGV2X2xvZ2ljYWxfYmxv Y2tfc2l6ZShiZGV2KSA+PiA5KSAtIDE7CisJdW5zaWduZWQgaW50IG1heF9zZWN0b3JzID0gYmRl dl9tYXhfc2VjdXJlX2VyYXNlX3NlY3RvcnMoYmRldik7CisJc3RydWN0IGJpbyAqYmlvID0gTlVM TDsKKwlzdHJ1Y3QgYmxrX3BsdWcgcGx1ZzsKKwlpbnQgcmV0ID0gMDsKKworCWlmIChtYXhfc2Vj dG9ycyA9PSAwKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJaWYgKChzZWN0b3IgfCBucl9zZWN0 cykgJiBic19tYXNrKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoYmRldl9yZWFkX29ubHkoYmRl dikpCisJCXJldHVybiAtRVBFUk07CisKKwlibGtfc3RhcnRfcGx1ZygmcGx1Zyk7CisJZm9yICg7 OykgeworCQl1bnNpZ25lZCBpbnQgbGVuID0gbWluX3Qoc2VjdG9yX3QsIG5yX3NlY3RzLCBtYXhf c2VjdG9ycyk7CisKKwkJYmlvID0gYmxrX25leHRfYmlvKGJpbywgYmRldiwgMCwgUkVRX09QX1NF Q1VSRV9FUkFTRSwgZ2ZwKTsKKwkJYmlvLT5iaV9pdGVyLmJpX3NlY3RvciA9IHNlY3RvcjsKKwkJ YmlvLT5iaV9pdGVyLmJpX3NpemUgPSBsZW47CisKKwkJc2VjdG9yICs9IGxlbiA8PCBTRUNUT1Jf U0hJRlQ7CisJCW5yX3NlY3RzIC09IGxlbiA8PCBTRUNUT1JfU0hJRlQ7CisJCWlmICghbnJfc2Vj dHMpIHsKKwkJCXJldCA9IHN1Ym1pdF9iaW9fd2FpdChiaW8pOworCQkJYmlvX3B1dChiaW8pOwor CQkJYnJlYWs7CisJCX0KKwkJY29uZF9yZXNjaGVkKCk7CisJfQorCWJsa19maW5pc2hfcGx1Zygm cGx1Zyk7CisKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChibGtkZXZfaXNzdWVfc2Vj dXJlX2VyYXNlKTsKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tcS1kZWJ1Z2ZzLmMgYi9ibG9jay9i bGstbXEtZGVidWdmcy5jCmluZGV4IGZkMTExYzUwMDEyNTYuLjdlNDEzNmE2MGUxY2MgMTAwNjQ0 Ci0tLSBhL2Jsb2NrL2Jsay1tcS1kZWJ1Z2ZzLmMKKysrIGIvYmxvY2svYmxrLW1xLWRlYnVnZnMu YwpAQCAtMTE1LDcgKzExNSw2IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBibGtfcXVldWVf ZmxhZ19uYW1lW10gPSB7CiAJUVVFVUVfRkxBR19OQU1FKElPX1NUQVQpLAogCVFVRVVFX0ZMQUdf TkFNRShOT1hNRVJHRVMpLAogCVFVRVVFX0ZMQUdfTkFNRShBRERfUkFORE9NKSwKLQlRVUVVRV9G TEFHX05BTUUoU0VDRVJBU0UpLAogCVFVRVVFX0ZMQUdfTkFNRShTQU1FX0ZPUkNFKSwKIAlRVUVV RV9GTEFHX05BTUUoREVBRCksCiAJUVVFVUVfRkxBR19OQU1FKElOSVRfRE9ORSksCmRpZmYgLS1n aXQgYS9ibG9jay9ibGstc2V0dGluZ3MuYyBiL2Jsb2NrL2Jsay1zZXR0aW5ncy5jCmluZGV4IGZk ODNkNjc0YWZkMGEuLjZjY2NlYjQyMWVkMmYgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1zZXR0aW5n cy5jCisrKyBiL2Jsb2NrL2Jsay1zZXR0aW5ncy5jCkBAIC00Niw2ICs0Niw3IEBAIHZvaWQgYmxr X3NldF9kZWZhdWx0X2xpbWl0cyhzdHJ1Y3QgcXVldWVfbGltaXRzICpsaW0pCiAJbGltLT5tYXhf em9uZV9hcHBlbmRfc2VjdG9ycyA9IDA7CiAJbGltLT5tYXhfZGlzY2FyZF9zZWN0b3JzID0gMDsK IAlsaW0tPm1heF9od19kaXNjYXJkX3NlY3RvcnMgPSAwOworCWxpbS0+bWF4X3NlY3VyZV9lcmFz ZV9zZWN0b3JzID0gMDsKIAlsaW0tPmRpc2NhcmRfZ3JhbnVsYXJpdHkgPSAwOwogCWxpbS0+ZGlz Y2FyZF9hbGlnbm1lbnQgPSAwOwogCWxpbS0+ZGlzY2FyZF9taXNhbGlnbmVkID0gMDsKQEAgLTE3 Niw2ICsxNzcsMTggQEAgdm9pZCBibGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9ycyhzdHJ1Y3Qg cmVxdWVzdF9xdWV1ZSAqcSwKIH0KIEVYUE9SVF9TWU1CT0woYmxrX3F1ZXVlX21heF9kaXNjYXJk X3NlY3RvcnMpOwogCisvKioKKyAqIGJsa19xdWV1ZV9tYXhfc2VjdXJlX2VyYXNlX3NlY3RvcnMg LSBzZXQgbWF4IHNlY3RvcnMgZm9yIGEgc2VjdXJlIGVyYXNlCisgKiBAcTogIHRoZSByZXF1ZXN0 IHF1ZXVlIGZvciB0aGUgZGV2aWNlCisgKiBAbWF4X3NlY3RvcnM6IG1heGltdW0gbnVtYmVyIG9m IHNlY3RvcnMgdG8gc2VjdXJlX2VyYXNlCisgKiovCit2b2lkIGJsa19xdWV1ZV9tYXhfc2VjdXJl X2VyYXNlX3NlY3RvcnMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCisJCXVuc2lnbmVkIGludCBt YXhfc2VjdG9ycykKK3sKKwlxLT5saW1pdHMubWF4X3NlY3VyZV9lcmFzZV9zZWN0b3JzID0gbWF4 X3NlY3RvcnM7Cit9CitFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV9tYXhfc2VjdXJlX2VyYXNlX3Nl Y3RvcnMpOworCiAvKioKICAqIGJsa19xdWV1ZV9tYXhfd3JpdGVfemVyb2VzX3NlY3RvcnMgLSBz ZXQgbWF4IHNlY3RvcnMgZm9yIGEgc2luZ2xlCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgd3JpdGUgemVyb2VzCkBAIC02NjEsNyArNjc0LDggQEAgaW50IGJsa19zdGFj a19saW1pdHMoc3RydWN0IHF1ZXVlX2xpbWl0cyAqdCwgc3RydWN0IHF1ZXVlX2xpbWl0cyAqYiwK IAkJdC0+ZGlzY2FyZF9hbGlnbm1lbnQgPSBsY21fbm90X3plcm8odC0+ZGlzY2FyZF9hbGlnbm1l bnQsIGFsaWdubWVudCkgJQogCQkJdC0+ZGlzY2FyZF9ncmFudWxhcml0eTsKIAl9Ci0KKwl0LT5t YXhfc2VjdXJlX2VyYXNlX3NlY3RvcnMgPSBtaW5fbm90X3plcm8odC0+bWF4X3NlY3VyZV9lcmFz ZV9zZWN0b3JzLAorCQkJCQkJICAgYi0+bWF4X3NlY3VyZV9lcmFzZV9zZWN0b3JzKTsKIAl0LT56 b25lX3dyaXRlX2dyYW51bGFyaXR5ID0gbWF4KHQtPnpvbmVfd3JpdGVfZ3JhbnVsYXJpdHksCiAJ CQkJCWItPnpvbmVfd3JpdGVfZ3JhbnVsYXJpdHkpOwogCXQtPnpvbmVkID0gbWF4KHQtPnpvbmVk LCBiLT56b25lZCk7CmRpZmYgLS1naXQgYS9ibG9jay9mb3BzLmMgYi9ibG9jay9mb3BzLmMKaW5k ZXggOWYyZWNlYzQwNmIwNC4uYzBjYTMyNTRkMzhjZiAxMDA2NDQKLS0tIGEvYmxvY2svZm9wcy5j CisrKyBiL2Jsb2NrL2ZvcHMuYwpAQCAtNjcyLDcgKzY3Miw3IEBAIHN0YXRpYyBsb25nIGJsa2Rl dl9mYWxsb2NhdGUoc3RydWN0IGZpbGUgKmZpbGUsIGludCBtb2RlLCBsb2ZmX3Qgc3RhcnQsCiAJ CWJyZWFrOwogCWNhc2UgRkFMTE9DX0ZMX1BVTkNIX0hPTEUgfCBGQUxMT0NfRkxfS0VFUF9TSVpF IHwgRkFMTE9DX0ZMX05PX0hJREVfU1RBTEU6CiAJCWVycm9yID0gYmxrZGV2X2lzc3VlX2Rpc2Nh cmQoYmRldiwgc3RhcnQgPj4gU0VDVE9SX1NISUZULAotCQkJCQkgICAgIGxlbiA+PiBTRUNUT1Jf U0hJRlQsIEdGUF9LRVJORUwsIDApOworCQkJCQkgICAgIGxlbiA+PiBTRUNUT1JfU0hJRlQsIEdG UF9LRVJORUwpOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQllcnJvciA9IC1FT1BOT1RTVVBQOwpk aWZmIC0tZ2l0IGEvYmxvY2svaW9jdGwuYyBiL2Jsb2NrL2lvY3RsLmMKaW5kZXggYzJjZDNiYTUy OTBjZS4uNWI1MDI3ZmE3OGY3ZSAxMDA2NDQKLS0tIGEvYmxvY2svaW9jdGwuYworKysgYi9ibG9j ay9pb2N0bC5jCkBAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyBpbnQgY29tcGF0X2Jsa3BnX2lvY3Rs KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsCiAjZW5kaWYKIAogc3RhdGljIGludCBibGtfaW9j dGxfZGlzY2FyZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUsCi0JCXVu c2lnbmVkIGxvbmcgYXJnLCB1bnNpZ25lZCBsb25nIGZsYWdzKQorCQl1bnNpZ25lZCBsb25nIGFy ZykKIHsKIAl1aW50NjRfdCByYW5nZVsyXTsKIAl1aW50NjRfdCBzdGFydCwgbGVuOwpAQCAtMTE0 LDE1ICsxMTQsNDMgQEAgc3RhdGljIGludCBibGtfaW9jdGxfZGlzY2FyZChzdHJ1Y3QgYmxvY2tf ZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUsCiAJZXJyID0gdHJ1bmNhdGVfYmRldl9yYW5nZShi ZGV2LCBtb2RlLCBzdGFydCwgc3RhcnQgKyBsZW4gLSAxKTsKIAlpZiAoZXJyKQogCQlnb3RvIGZh aWw7Ci0KLQllcnIgPSBibGtkZXZfaXNzdWVfZGlzY2FyZChiZGV2LCBzdGFydCA+PiA5LCBsZW4g Pj4gOSwKLQkJCQkgICBHRlBfS0VSTkVMLCBmbGFncyk7Ci0KKwllcnIgPSBibGtkZXZfaXNzdWVf ZGlzY2FyZChiZGV2LCBzdGFydCA+PiA5LCBsZW4gPj4gOSwgR0ZQX0tFUk5FTCk7CiBmYWlsOgog CWZpbGVtYXBfaW52YWxpZGF0ZV91bmxvY2soaW5vZGUtPmlfbWFwcGluZyk7CiAJcmV0dXJuIGVy cjsKIH0KIAorc3RhdGljIGludCBibGtfaW9jdGxfc2VjdXJlX2VyYXNlKHN0cnVjdCBibG9ja19k ZXZpY2UgKmJkZXYsIGZtb2RlX3QgbW9kZSwKKwkJdm9pZCBfX3VzZXIgKmFyZ3ApCit7CisJdWlu dDY0X3Qgc3RhcnQsIGxlbjsKKwl1aW50NjRfdCByYW5nZVsyXTsKKwlpbnQgZXJyOworCisJaWYg KCEobW9kZSAmIEZNT0RFX1dSSVRFKSkKKwkJcmV0dXJuIC1FQkFERjsKKwlpZiAoIWJkZXZfbWF4 X3NlY3VyZV9lcmFzZV9zZWN0b3JzKGJkZXYpKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJaWYg KGNvcHlfZnJvbV91c2VyKHJhbmdlLCBhcmdwLCBzaXplb2YocmFuZ2UpKSkKKwkJcmV0dXJuIC1F RkFVTFQ7CisKKwlzdGFydCA9IHJhbmdlWzBdOworCWxlbiA9IHJhbmdlWzFdOworCWlmICgoc3Rh cnQgJiA1MTEpIHx8IChsZW4gJiA1MTEpKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoc3RhcnQg KyBsZW4gPiBiZGV2X25yX2J5dGVzKGJkZXYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWZpbGVt YXBfaW52YWxpZGF0ZV9sb2NrKGJkZXYtPmJkX2lub2RlLT5pX21hcHBpbmcpOworCWVyciA9IHRy dW5jYXRlX2JkZXZfcmFuZ2UoYmRldiwgbW9kZSwgc3RhcnQsIHN0YXJ0ICsgbGVuIC0gMSk7CisJ aWYgKCFlcnIpCisJCWVyciA9IGJsa2Rldl9pc3N1ZV9zZWN1cmVfZXJhc2UoYmRldiwgc3RhcnQg Pj4gOSwgbGVuID4+IDksCisJCQkJCQlHRlBfS0VSTkVMKTsKKwlmaWxlbWFwX2ludmFsaWRhdGVf dW5sb2NrKGJkZXYtPmJkX2lub2RlLT5pX21hcHBpbmcpOworCXJldHVybiBlcnI7Cit9CisKKwog c3RhdGljIGludCBibGtfaW9jdGxfemVyb291dChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBm bW9kZV90IG1vZGUsCiAJCXVuc2lnbmVkIGxvbmcgYXJnKQogewpAQCAtNDUwLDEwICs0NzgsOSBA QCBzdGF0aWMgaW50IGJsa2Rldl9jb21tb25faW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqYmRl diwgZm1vZGVfdCBtb2RlLAogCWNhc2UgQkxLUk9TRVQ6CiAJCXJldHVybiBibGtkZXZfcm9zZXQo YmRldiwgbW9kZSwgY21kLCBhcmcpOwogCWNhc2UgQkxLRElTQ0FSRDoKLQkJcmV0dXJuIGJsa19p b2N0bF9kaXNjYXJkKGJkZXYsIG1vZGUsIGFyZywgMCk7CisJCXJldHVybiBibGtfaW9jdGxfZGlz Y2FyZChiZGV2LCBtb2RlLCBhcmcpOwogCWNhc2UgQkxLU0VDRElTQ0FSRDoKLQkJcmV0dXJuIGJs a19pb2N0bF9kaXNjYXJkKGJkZXYsIG1vZGUsIGFyZywKLQkJCQlCTEtERVZfRElTQ0FSRF9TRUNV UkUpOworCQlyZXR1cm4gYmxrX2lvY3RsX3NlY3VyZV9lcmFzZShiZGV2LCBtb2RlLCBhcmdwKTsK IAljYXNlIEJMS1pFUk9PVVQ6CiAJCXJldHVybiBibGtfaW9jdGxfemVyb291dChiZGV2LCBtb2Rl LCBhcmcpOwogCWNhc2UgQkxLR0VURElTS1NFUToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2sv ZHJiZC9kcmJkX3JlY2VpdmVyLmMgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5j CmluZGV4IDI3NWM1M2M3YjYyOWUuLjI5NTdiMGI2OGQ2MDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv YmxvY2svZHJiZC9kcmJkX3JlY2VpdmVyLmMKKysrIGIvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRf cmVjZWl2ZXIuYwpAQCAtMTU0Nyw3ICsxNTQ3LDggQEAgaW50IGRyYmRfaXNzdWVfZGlzY2FyZF9v cl96ZXJvX291dChzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgc2VjdG9yX3Qgc3RhcnQsIHUK IAkJc3RhcnQgPSB0bXA7CiAJfQogCXdoaWxlIChucl9zZWN0b3JzID49IG1heF9kaXNjYXJkX3Nl Y3RvcnMpIHsKLQkJZXJyIHw9IGJsa2Rldl9pc3N1ZV9kaXNjYXJkKGJkZXYsIHN0YXJ0LCBtYXhf ZGlzY2FyZF9zZWN0b3JzLCBHRlBfTk9JTywgMCk7CisJCWVyciB8PSBibGtkZXZfaXNzdWVfZGlz Y2FyZChiZGV2LCBzdGFydCwgbWF4X2Rpc2NhcmRfc2VjdG9ycywKKwkJCQkJICAgIEdGUF9OT0lP KTsKIAkJbnJfc2VjdG9ycyAtPSBtYXhfZGlzY2FyZF9zZWN0b3JzOwogCQlzdGFydCArPSBtYXhf ZGlzY2FyZF9zZWN0b3JzOwogCX0KQEAgLTE1NTksNyArMTU2MCw3IEBAIGludCBkcmJkX2lzc3Vl X2Rpc2NhcmRfb3JfemVyb19vdXQoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIHNlY3Rvcl90 IHN0YXJ0LCB1CiAJCW5yID0gbnJfc2VjdG9yczsKIAkJbnIgLT0gKHVuc2lnbmVkIGludCluciAl IGdyYW51bGFyaXR5OwogCQlpZiAobnIpIHsKLQkJCWVyciB8PSBibGtkZXZfaXNzdWVfZGlzY2Fy ZChiZGV2LCBzdGFydCwgbnIsIEdGUF9OT0lPLCAwKTsKKwkJCWVyciB8PSBibGtkZXZfaXNzdWVf ZGlzY2FyZChiZGV2LCBzdGFydCwgbnIsIEdGUF9OT0lPKTsKIAkJCW5yX3NlY3RvcnMgLT0gbnI7 CiAJCQlzdGFydCArPSBucjsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9ybmJkL3Ju YmQtY2x0LmMgYi9kcml2ZXJzL2Jsb2NrL3JuYmQvcm5iZC1jbHQuYwppbmRleCBlZmE5OWEzODg0 NTA3Li5kMTc4YmUxNzVhZDk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3JuYmQvcm5iZC1j bHQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3JuYmQvcm5iZC1jbHQuYwpAQCAtMTM2NSw4ICsxMzY1 LDggQEAgc3RhdGljIHZvaWQgc2V0dXBfcmVxdWVzdF9xdWV1ZShzdHJ1Y3Qgcm5iZF9jbHRfZGV2 ICpkZXYpCiAJZGV2LT5xdWV1ZS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkJPSBkZXYtPmRp c2NhcmRfZ3JhbnVsYXJpdHk7CiAJZGV2LT5xdWV1ZS0+bGltaXRzLmRpc2NhcmRfYWxpZ25tZW50 CT0gZGV2LT5kaXNjYXJkX2FsaWdubWVudDsKIAlpZiAoZGV2LT5zZWN1cmVfZGlzY2FyZCkKLQkJ YmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfU0VDRVJBU0UsIGRldi0+cXVldWUpOwotCisJ CWJsa19xdWV1ZV9tYXhfc2VjdXJlX2VyYXNlX3NlY3RvcnMoZGV2LT5xdWV1ZSwKKwkJCQlkZXYt Pm1heF9kaXNjYXJkX3NlY3RvcnMpOwogCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX1NB TUVfQ09NUCwgZGV2LT5xdWV1ZSk7CiAJYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfU0FN RV9GT1JDRSwgZGV2LT5xdWV1ZSk7CiAJYmxrX3F1ZXVlX21heF9zZWdtZW50cyhkZXYtPnF1ZXVl LCBkZXYtPm1heF9zZWdtZW50cyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3JuYmQvcm5i ZC1zcnYtZGV2LmggYi9kcml2ZXJzL2Jsb2NrL3JuYmQvcm5iZC1zcnYtZGV2LmgKaW5kZXggMWY3 ZTFjOGZkNGQ5Yi4uZDA4MGEwZGU1OTIyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9ybmJk L3JuYmQtc3J2LWRldi5oCisrKyBiL2RyaXZlcnMvYmxvY2svcm5iZC9ybmJkLXNydi1kZXYuaApA QCAtNDQsNyArNDQsNyBAQCBzdGF0aWMgaW5saW5lIGludCBybmJkX2Rldl9nZXRfbWF4X2h3X3Nl Y3RzKGNvbnN0IHN0cnVjdCBybmJkX2RldiAqZGV2KQogCiBzdGF0aWMgaW5saW5lIGludCBybmJk X2Rldl9nZXRfc2VjdXJlX2Rpc2NhcmQoY29uc3Qgc3RydWN0IHJuYmRfZGV2ICpkZXYpCiB7Ci0J cmV0dXJuIGJsa19xdWV1ZV9zZWN1cmVfZXJhc2UoYmRldl9nZXRfcXVldWUoZGV2LT5iZGV2KSk7 CisJcmV0dXJuIGJkZXZfbWF4X3NlY3VyZV9lcmFzZV9zZWN0b3JzKGRldi0+YmRldik7CiB9CiAK IHN0YXRpYyBpbmxpbmUgaW50IHJuYmRfZGV2X2dldF9tYXhfZGlzY2FyZF9zZWN0cyhjb25zdCBz dHJ1Y3Qgcm5iZF9kZXYgKmRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Jh Y2svYmxrYmFjay5jIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay9ibGtiYWNrLmMKaW5kZXgg ZGU0MjQ1ODE5NWJjMS4uYTk3ZjJiZjViMDFiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay94 ZW4tYmxrYmFjay9ibGtiYWNrLmMKKysrIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay9ibGti YWNrLmMKQEAgLTk3MCw3ICs5NzAsNiBAQCBzdGF0aWMgaW50IGRpc3BhdGNoX2Rpc2NhcmRfaW8o c3RydWN0IHhlbl9ibGtpZl9yaW5nICpyaW5nLAogCWludCBzdGF0dXMgPSBCTEtJRl9SU1BfT0tB WTsKIAlzdHJ1Y3QgeGVuX2Jsa2lmICpibGtpZiA9IHJpbmctPmJsa2lmOwogCXN0cnVjdCBibG9j a19kZXZpY2UgKmJkZXYgPSBibGtpZi0+dmJkLmJkZXY7Ci0JdW5zaWduZWQgbG9uZyBzZWN1cmU7 CiAJc3RydWN0IHBoeXNfcmVxIHByZXE7CiAKIAl4ZW5fYmxraWZfZ2V0KGJsa2lmKTsKQEAgLTk4 NywxMyArOTg2LDE1IEBAIHN0YXRpYyBpbnQgZGlzcGF0Y2hfZGlzY2FyZF9pbyhzdHJ1Y3QgeGVu X2Jsa2lmX3JpbmcgKnJpbmcsCiAJfQogCXJpbmctPnN0X2RzX3JlcSsrOwogCi0Jc2VjdXJlID0g KGJsa2lmLT52YmQuZGlzY2FyZF9zZWN1cmUgJiYKLQkJIChyZXEtPnUuZGlzY2FyZC5mbGFnICYg QkxLSUZfRElTQ0FSRF9TRUNVUkUpKSA/Ci0JCSBCTEtERVZfRElTQ0FSRF9TRUNVUkUgOiAwOwor CWlmIChibGtpZi0+dmJkLmRpc2NhcmRfc2VjdXJlICYmCisJICAgIChyZXEtPnUuZGlzY2FyZC5m bGFnICYgQkxLSUZfRElTQ0FSRF9TRUNVUkUpKQorCQllcnIgPSBibGtkZXZfaXNzdWVfc2VjdXJl X2VyYXNlKGJkZXYsCisJCQkJcmVxLT51LmRpc2NhcmQuc2VjdG9yX251bWJlciwKKwkJCQlyZXEt PnUuZGlzY2FyZC5ucl9zZWN0b3JzLCBHRlBfS0VSTkVMKTsKKwllbHNlCisJCWVyciA9IGJsa2Rl dl9pc3N1ZV9kaXNjYXJkKGJkZXYsIHJlcS0+dS5kaXNjYXJkLnNlY3Rvcl9udW1iZXIsCisJCQkJ cmVxLT51LmRpc2NhcmQubnJfc2VjdG9ycywgR0ZQX0tFUk5FTCk7CiAKLQllcnIgPSBibGtkZXZf aXNzdWVfZGlzY2FyZChiZGV2LCByZXEtPnUuZGlzY2FyZC5zZWN0b3JfbnVtYmVyLAotCQkJCSAg IHJlcS0+dS5kaXNjYXJkLm5yX3NlY3RvcnMsCi0JCQkJICAgR0ZQX0tFUk5FTCwgc2VjdXJlKTsK IGZhaWxfcmVzcG9uc2U6CiAJaWYgKGVyciA9PSAtRU9QTk9UU1VQUCkgewogCQlwcl9kZWJ1Zygi ZGlzY2FyZCBvcCBmYWlsZWQsIG5vdCBzdXBwb3J0ZWRcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ibG9jay94ZW4tYmxrYmFjay94ZW5idXMuYyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2sv eGVuYnVzLmMKaW5kZXggODNjZDA4MDQxZTZiMy4uYjIxYmZmYzljNTBiYyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay94ZW5idXMuYworKysgYi9kcml2ZXJzL2Jsb2NrL3hl bi1ibGtiYWNrL3hlbmJ1cy5jCkBAIC00ODQsNyArNDg0LDYgQEAgc3RhdGljIGludCB4ZW5fdmJk X2NyZWF0ZShzdHJ1Y3QgeGVuX2Jsa2lmICpibGtpZiwgYmxraWZfdmRldl90IGhhbmRsZSwKIHsK IAlzdHJ1Y3QgeGVuX3ZiZCAqdmJkOwogCXN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXY7Ci0Jc3Ry dWN0IHJlcXVlc3RfcXVldWUgKnE7CiAKIAl2YmQgPSAmYmxraWYtPnZiZDsKIAl2YmQtPmhhbmRs ZSAgID0gaGFuZGxlOwpAQCAtNTE2LDExICs1MTUsOSBAQCBzdGF0aWMgaW50IHhlbl92YmRfY3Jl YXRlKHN0cnVjdCB4ZW5fYmxraWYgKmJsa2lmLCBibGtpZl92ZGV2X3QgaGFuZGxlLAogCWlmICh2 YmQtPmJkZXYtPmJkX2Rpc2stPmZsYWdzICYgR0VOSERfRkxfUkVNT1ZBQkxFKQogCQl2YmQtPnR5 cGUgfD0gVkRJU0tfUkVNT1ZBQkxFOwogCi0JcSA9IGJkZXZfZ2V0X3F1ZXVlKGJkZXYpOwogCWlm IChiZGV2X3dyaXRlX2NhY2hlKGJkZXYpKQogCQl2YmQtPmZsdXNoX3N1cHBvcnQgPSB0cnVlOwot Ci0JaWYgKHEgJiYgYmxrX3F1ZXVlX3NlY3VyZV9lcmFzZShxKSkKKwlpZiAoYmRldl9tYXhfc2Vj dXJlX2VyYXNlX3NlY3RvcnMoYmRldikpCiAJCXZiZC0+ZGlzY2FyZF9zZWN1cmUgPSB0cnVlOwog CiAJdmJkLT5mZWF0dXJlX2dudF9wZXJzaXN0ZW50ID0gZmVhdHVyZV9wZXJzaXN0ZW50OwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYyBiL2RyaXZlcnMvYmxvY2sveGVu LWJsa2Zyb250LmMKaW5kZXggMjUzYmY4MzVhY2ExZi4uOWZiN2M2OWY3MmIyZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3hlbi1i bGtmcm9udC5jCkBAIC05NDksNyArOTQ5LDggQEAgc3RhdGljIHZvaWQgYmxraWZfc2V0X3F1ZXVl X2xpbWl0cyhzdHJ1Y3QgYmxrZnJvbnRfaW5mbyAqaW5mbykKIAkJCQkJCSBpbmZvLT5waHlzaWNh bF9zZWN0b3Jfc2l6ZTsKIAkJcnEtPmxpbWl0cy5kaXNjYXJkX2FsaWdubWVudCA9IGluZm8tPmRp c2NhcmRfYWxpZ25tZW50OwogCQlpZiAoaW5mby0+ZmVhdHVyZV9zZWNkaXNjYXJkKQotCQkJYmxr X3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfU0VDRVJBU0UsIHJxKTsKKwkJCWJsa19xdWV1ZV9t YXhfc2VjdXJlX2VyYXNlX3NlY3RvcnMocnEsCisJCQkJCQkJICAgZ2V0X2NhcGFjaXR5KGdkKSk7 CiAJfQogCiAJLyogSGFyZCBzZWN0b3Igc2l6ZSBhbmQgbWF4IHNlY3RvcnMgaW1wZXJzb25hdGUg dGhlIGVxdWl2LiBoYXJkd2FyZS4gKi8KQEAgLTE2MDUsNyArMTYwNiw3IEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCBibGtpZl9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogCQkJCWJsa2lm X3JlcShyZXEpLT5lcnJvciA9IEJMS19TVFNfTk9UU1VQUDsKIAkJCQlpbmZvLT5mZWF0dXJlX2Rp c2NhcmQgPSAwOwogCQkJCWluZm8tPmZlYXR1cmVfc2VjZGlzY2FyZCA9IDA7Ci0JCQkJYmxrX3F1 ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19TRUNFUkFTRSwgcnEpOworCQkJCWJsa19xdWV1ZV9t YXhfc2VjdXJlX2VyYXNlX3NlY3RvcnMocnEsIDApOwogCQkJfQogCQkJYnJlYWs7CiAJCWNhc2Ug QkxLSUZfT1BfRkxVU0hfRElTS0NBQ0hFOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9iY2FjaGUv YWxsb2MuYyBiL2RyaXZlcnMvbWQvYmNhY2hlL2FsbG9jLmMKaW5kZXggMDk3NTc3YWUzYzQ3MS4u Y2UxM2MyNzJjMzg3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9iY2FjaGUvYWxsb2MuYworKysg Yi9kcml2ZXJzL21kL2JjYWNoZS9hbGxvYy5jCkBAIC0zMzYsNyArMzM2LDcgQEAgc3RhdGljIGlu dCBiY2hfYWxsb2NhdG9yX3RocmVhZCh2b2lkICphcmcpCiAJCQkJbXV0ZXhfdW5sb2NrKCZjYS0+ c2V0LT5idWNrZXRfbG9jayk7CiAJCQkJYmxrZGV2X2lzc3VlX2Rpc2NhcmQoY2EtPmJkZXYsCiAJ CQkJCWJ1Y2tldF90b19zZWN0b3IoY2EtPnNldCwgYnVja2V0KSwKLQkJCQkJY2EtPnNiLmJ1Y2tl dF9zaXplLCBHRlBfS0VSTkVMLCAwKTsKKwkJCQkJY2EtPnNiLmJ1Y2tldF9zaXplLCBHRlBfS0VS TkVMKTsKIAkJCQltdXRleF9sb2NrKCZjYS0+c2V0LT5idWNrZXRfbG9jayk7CiAJCQl9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tdGFibGUuYyBiL2RyaXZlcnMvbWQvZG0tdGFibGUuYwpp bmRleCAwZGZmNjkwN2ZkMDBkLi5lN2Q0MmY2MzM1YTJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21k L2RtLXRhYmxlLmMKKysrIGIvZHJpdmVycy9tZC9kbS10YWJsZS5jCkBAIC0xOTIwLDkgKzE5MjAs NyBAQCBzdGF0aWMgaW50IGRldmljZV9ub3Rfc2VjdXJlX2VyYXNlX2NhcGFibGUoc3RydWN0IGRt X3RhcmdldCAqdGksCiAJCQkJCSAgIHN0cnVjdCBkbV9kZXYgKmRldiwgc2VjdG9yX3Qgc3RhcnQs CiAJCQkJCSAgIHNlY3Rvcl90IGxlbiwgdm9pZCAqZGF0YSkKIHsKLQlzdHJ1Y3QgcmVxdWVzdF9x dWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKGRldi0+YmRldik7Ci0KLQlyZXR1cm4gIWJsa19xdWV1 ZV9zZWN1cmVfZXJhc2UocSk7CisJcmV0dXJuICFiZGV2X21heF9zZWN1cmVfZXJhc2Vfc2VjdG9y cyhkZXYtPmJkZXYpOwogfQogCiBzdGF0aWMgYm9vbCBkbV90YWJsZV9zdXBwb3J0c19zZWN1cmVf ZXJhc2Uoc3RydWN0IGRtX3RhYmxlICp0KQpAQCAtMTk3NSw4ICsxOTczLDggQEAgaW50IGRtX3Rh YmxlX3NldF9yZXN0cmljdGlvbnMoc3RydWN0IGRtX3RhYmxlICp0LCBzdHJ1Y3QgcmVxdWVzdF9x dWV1ZSAqcSwKIAkJcS0+bGltaXRzLmRpc2NhcmRfbWlzYWxpZ25lZCA9IDA7CiAJfQogCi0JaWYg KGRtX3RhYmxlX3N1cHBvcnRzX3NlY3VyZV9lcmFzZSh0KSkKLQkJYmxrX3F1ZXVlX2ZsYWdfc2V0 KFFVRVVFX0ZMQUdfU0VDRVJBU0UsIHEpOworCWlmICghZG1fdGFibGVfc3VwcG9ydHNfc2VjdXJl X2VyYXNlKHQpKQorCQlxLT5saW1pdHMubWF4X3NlY3VyZV9lcmFzZV9zZWN0b3JzID0gMDsKIAog CWlmIChkbV90YWJsZV9zdXBwb3J0c19mbHVzaCh0LCAoMVVMIDw8IFFVRVVFX0ZMQUdfV0MpKSkg ewogCQl3YyA9IHRydWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXRoaW4uYyBiL2RyaXZl cnMvbWQvZG0tdGhpbi5jCmluZGV4IGVkZWQ0YmNjNDU0NWYuLjg0YzA4M2Y3NjY3MzYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbWQvZG0tdGhpbi5jCisrKyBiL2RyaXZlcnMvbWQvZG0tdGhpbi5jCkBA IC0zOTgsOCArMzk4LDggQEAgc3RhdGljIGludCBpc3N1ZV9kaXNjYXJkKHN0cnVjdCBkaXNjYXJk X29wICpvcCwgZG1fYmxvY2tfdCBkYXRhX2IsIGRtX2Jsb2NrX3QgZGEKIAlzZWN0b3JfdCBzID0g YmxvY2tfdG9fc2VjdG9ycyh0Yy0+cG9vbCwgZGF0YV9iKTsKIAlzZWN0b3JfdCBsZW4gPSBibG9j a190b19zZWN0b3JzKHRjLT5wb29sLCBkYXRhX2UgLSBkYXRhX2IpOwogCi0JcmV0dXJuIF9fYmxr ZGV2X2lzc3VlX2Rpc2NhcmQodGMtPnBvb2xfZGV2LT5iZGV2LCBzLCBsZW4sCi0JCQkJICAgICAg R0ZQX05PV0FJVCwgMCwgJm9wLT5iaW8pOworCXJldHVybiBfX2Jsa2Rldl9pc3N1ZV9kaXNjYXJk KHRjLT5wb29sX2Rldi0+YmRldiwgcywgbGVuLCBHRlBfTk9XQUlULAorCQkJCSAgICAgICZvcC0+ YmlvKTsKIH0KIAogc3RhdGljIHZvaWQgZW5kX2Rpc2NhcmQoc3RydWN0IGRpc2NhcmRfb3AgKm9w LCBpbnQgcikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvbWQuYyBiL2RyaXZlcnMvbWQvbWQuYwpp bmRleCAxOTYzNmMyZjJjZGE0Li4yNTg3Zjg3MmMwODg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21k L21kLmMKKysrIGIvZHJpdmVycy9tZC9tZC5jCkBAIC04NTg0LDcgKzg1ODQsNyBAQCB2b2lkIG1k X3N1Ym1pdF9kaXNjYXJkX2JpbyhzdHJ1Y3QgbWRkZXYgKm1kZGV2LCBzdHJ1Y3QgbWRfcmRldiAq cmRldiwKIHsKIAlzdHJ1Y3QgYmlvICpkaXNjYXJkX2JpbyA9IE5VTEw7CiAKLQlpZiAoX19ibGtk ZXZfaXNzdWVfZGlzY2FyZChyZGV2LT5iZGV2LCBzdGFydCwgc2l6ZSwgR0ZQX05PSU8sIDAsCisJ aWYgKF9fYmxrZGV2X2lzc3VlX2Rpc2NhcmQocmRldi0+YmRldiwgc3RhcnQsIHNpemUsIEdGUF9O T0lPLAogCQkJJmRpc2NhcmRfYmlvKSB8fCAhZGlzY2FyZF9iaW8pCiAJCXJldHVybjsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5jIGIvZHJpdmVycy9tZC9yYWlkNS1jYWNo ZS5jCmluZGV4IGMzY2JmOWE1NzRhMzkuLjA5NGE0MDQyNTg5ZWIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbWQvcmFpZDUtY2FjaGUuYworKysgYi9kcml2ZXJzL21kL3JhaWQ1LWNhY2hlLmMKQEAgLTEz NDQsMTQgKzEzNDQsMTQgQEAgc3RhdGljIHZvaWQgcjVsX3dyaXRlX3N1cGVyX2FuZF9kaXNjYXJk X3NwYWNlKHN0cnVjdCByNWxfbG9nICpsb2csCiAJaWYgKGxvZy0+bGFzdF9jaGVja3BvaW50IDwg ZW5kKSB7CiAJCWJsa2Rldl9pc3N1ZV9kaXNjYXJkKGJkZXYsCiAJCQkJbG9nLT5sYXN0X2NoZWNr cG9pbnQgKyBsb2ctPnJkZXYtPmRhdGFfb2Zmc2V0LAotCQkJCWVuZCAtIGxvZy0+bGFzdF9jaGVj a3BvaW50LCBHRlBfTk9JTywgMCk7CisJCQkJZW5kIC0gbG9nLT5sYXN0X2NoZWNrcG9pbnQsIEdG UF9OT0lPKTsKIAl9IGVsc2UgewogCQlibGtkZXZfaXNzdWVfZGlzY2FyZChiZGV2LAogCQkJCWxv Zy0+bGFzdF9jaGVja3BvaW50ICsgbG9nLT5yZGV2LT5kYXRhX29mZnNldCwKIAkJCQlsb2ctPmRl dmljZV9zaXplIC0gbG9nLT5sYXN0X2NoZWNrcG9pbnQsCi0JCQkJR0ZQX05PSU8sIDApOworCQkJ CUdGUF9OT0lPKTsKIAkJYmxrZGV2X2lzc3VlX2Rpc2NhcmQoYmRldiwgbG9nLT5yZGV2LT5kYXRh X29mZnNldCwgZW5kLAotCQkJCUdGUF9OT0lPLCAwKTsKKwkJCQlHRlBfTk9JTyk7CiAJfQogfQog CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jb3JlL3F1ZXVlLmMgYi9kcml2ZXJzL21tYy9jb3Jl L3F1ZXVlLmMKaW5kZXggY2FjNjMxNTAxMGEzZC4uYTNkNDQ2MDA1NTcxNiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9tbWMvY29yZS9xdWV1ZS5jCisrKyBiL2RyaXZlcnMvbW1jL2NvcmUvcXVldWUuYwpA QCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyB2b2lkIG1tY19xdWV1ZV9zZXR1cF9kaXNjYXJkKHN0 cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAogCWlmIChjYXJkLT5wcmVmX2VyYXNlID4gbWF4X2Rpc2Nh cmQpCiAJCXEtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5ID0gU0VDVE9SX1NJWkU7CiAJaWYg KG1tY19jYW5fc2VjdXJlX2VyYXNlX3RyaW0oY2FyZCkpCi0JCWJsa19xdWV1ZV9mbGFnX3NldChR VUVVRV9GTEFHX1NFQ0VSQVNFLCBxKTsKKwkJYmxrX3F1ZXVlX21heF9zZWN1cmVfZXJhc2Vfc2Vj dG9ycyhxLCBtYXhfZGlzY2FyZCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBtbWNfZ2V0 X21heF9zZWdtZW50cyhzdHJ1Y3QgbW1jX2hvc3QgKmhvc3QpCmRpZmYgLS1naXQgYS9kcml2ZXJz L252bWUvdGFyZ2V0L2lvLWNtZC1iZGV2LmMgYi9kcml2ZXJzL252bWUvdGFyZ2V0L2lvLWNtZC1i ZGV2LmMKaW5kZXggZDg4NmMyYzU5NTU0Zi4uMjdhNzI1MDRkMzFjZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9udm1lL3RhcmdldC9pby1jbWQtYmRldi5jCisrKyBiL2RyaXZlcnMvbnZtZS90YXJnZXQv aW8tY21kLWJkZXYuYwpAQCAtMzYwLDcgKzM2MCw3IEBAIHN0YXRpYyB1MTYgbnZtZXRfYmRldl9k aXNjYXJkX3JhbmdlKHN0cnVjdCBudm1ldF9yZXEgKnJlcSwKIAlyZXQgPSBfX2Jsa2Rldl9pc3N1 ZV9kaXNjYXJkKG5zLT5iZGV2LAogCQkJbnZtZXRfbGJhX3RvX3NlY3QobnMsIHJhbmdlLT5zbGJh KSwKIAkJCWxlMzJfdG9fY3B1KHJhbmdlLT5ubGIpIDw8IChucy0+Ymxrc2l6ZV9zaGlmdCAtIDkp LAotCQkJR0ZQX0tFUk5FTCwgMCwgYmlvKTsKKwkJCUdGUF9LRVJORUwsIGJpbyk7CiAJaWYgKHJl dCAmJiByZXQgIT0gLUVPUE5PVFNVUFApIHsKIAkJcmVxLT5lcnJvcl9zbGJhID0gbGU2NF90b19j cHUocmFuZ2UtPnNsYmEpOwogCQlyZXR1cm4gZXJybm9fdG9fbnZtZV9zdGF0dXMocmVxLCByZXQp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfZmlsZS5jIGIvZHJpdmVy cy90YXJnZXQvdGFyZ2V0X2NvcmVfZmlsZS5jCmluZGV4IGI2YmE1ODJiMDY3NzUuLmU2OGYxY2M4 ZWY5OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2ZpbGUuYworKysg Yi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV9maWxlLmMKQEAgLTU1OCw3ICs1NTgsNyBAQCBm ZF9leGVjdXRlX3VubWFwKHN0cnVjdCBzZV9jbWQgKmNtZCwgc2VjdG9yX3QgbGJhLCBzZWN0b3Jf dCBub2xiKQogCQlyZXQgPSBibGtkZXZfaXNzdWVfZGlzY2FyZChiZGV2LAogCQkJCQkgICB0YXJn ZXRfdG9fbGludXhfc2VjdG9yKGRldiwgbGJhKSwKIAkJCQkJICAgdGFyZ2V0X3RvX2xpbnV4X3Nl Y3RvcihkZXYsICBub2xiKSwKLQkJCQkJICAgR0ZQX0tFUk5FTCwgMCk7CisJCQkJCSAgIEdGUF9L RVJORUwpOwogCQlpZiAocmV0IDwgMCkgewogCQkJcHJfd2FybigiRklMRUlPOiBibGtkZXZfaXNz dWVfZGlzY2FyZCgpIGZhaWxlZDogJWRcbiIsCiAJCQkJcmV0KTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdGFyZ2V0L3RhcmdldF9jb3JlX2libG9jay5jIGIvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2Nv cmVfaWJsb2NrLmMKaW5kZXggYzRhOTAzYjhhNDdmYy4uMzc4YzgwMzEzYTBmMiAxMDA2NDQKLS0t IGEvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfaWJsb2NrLmMKKysrIGIvZHJpdmVycy90YXJn ZXQvdGFyZ2V0X2NvcmVfaWJsb2NrLmMKQEAgLTQzNCw3ICs0MzQsNyBAQCBpYmxvY2tfZXhlY3V0 ZV91bm1hcChzdHJ1Y3Qgc2VfY21kICpjbWQsIHNlY3Rvcl90IGxiYSwgc2VjdG9yX3Qgbm9sYikK IAlyZXQgPSBibGtkZXZfaXNzdWVfZGlzY2FyZChiZGV2LAogCQkJCSAgIHRhcmdldF90b19saW51 eF9zZWN0b3IoZGV2LCBsYmEpLAogCQkJCSAgIHRhcmdldF90b19saW51eF9zZWN0b3IoZGV2LCAg bm9sYiksCi0JCQkJICAgR0ZQX0tFUk5FTCwgMCk7CisJCQkJICAgR0ZQX0tFUk5FTCk7CiAJaWYg KHJldCA8IDApIHsKIAkJcHJfZXJyKCJibGtkZXZfaXNzdWVfZGlzY2FyZCgpIGZhaWxlZDogJWRc biIsIHJldCk7CiAJCXJldHVybiBUQ01fTE9HSUNBTF9VTklUX0NPTU1VTklDQVRJT05fRkFJTFVS RTsKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMgYi9mcy9idHJmcy9leHRlbnQt dHJlZS5jCmluZGV4IGVmZDhkZWIzYWI3ZTguLjVjMWQzYTU2NGRhNWEgMTAwNjQ0Ci0tLSBhL2Zz L2J0cmZzL2V4dGVudC10cmVlLmMKKysrIGIvZnMvYnRyZnMvZXh0ZW50LXRyZWUuYwpAQCAtMTIz OSw3ICsxMjM5LDcgQEAgc3RhdGljIGludCBidHJmc19pc3N1ZV9kaXNjYXJkKHN0cnVjdCBibG9j a19kZXZpY2UgKmJkZXYsIHU2NCBzdGFydCwgdTY0IGxlbiwKIAogCQlpZiAoc2l6ZSkgewogCQkJ cmV0ID0gYmxrZGV2X2lzc3VlX2Rpc2NhcmQoYmRldiwgc3RhcnQgPj4gOSwgc2l6ZSA+PiA5LAot CQkJCQkJICAgR0ZQX05PRlMsIDApOworCQkJCQkJICAgR0ZQX05PRlMpOwogCQkJaWYgKCFyZXQp CiAJCQkJKmRpc2NhcmRlZF9ieXRlcyArPSBzaXplOwogCQkJZWxzZSBpZiAocmV0ICE9IC1FT1BO T1RTVVBQKQpAQCAtMTI1Niw3ICsxMjU2LDcgQEAgc3RhdGljIGludCBidHJmc19pc3N1ZV9kaXNj YXJkKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHU2NCBzdGFydCwgdTY0IGxlbiwKIAogCWlm IChieXRlc19sZWZ0KSB7CiAJCXJldCA9IGJsa2Rldl9pc3N1ZV9kaXNjYXJkKGJkZXYsIHN0YXJ0 ID4+IDksIGJ5dGVzX2xlZnQgPj4gOSwKLQkJCQkJICAgR0ZQX05PRlMsIDApOworCQkJCQkgICBH RlBfTk9GUyk7CiAJCWlmICghcmV0KQogCQkJKmRpc2NhcmRlZF9ieXRlcyArPSBieXRlc19sZWZ0 OwogCX0KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvbWJhbGxvYy5jIGIvZnMvZXh0NC9tYmFsbG9jLmMK aW5kZXggNmQxODIwNTM2ZDg4ZC4uZWE2NTNkMTlmOWVjNyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9t YmFsbG9jLmMKKysrIGIvZnMvZXh0NC9tYmFsbG9jLmMKQEAgLTM2MjksNyArMzYyOSw3IEBAIHN0 YXRpYyBpbmxpbmUgaW50IGV4dDRfaXNzdWVfZGlzY2FyZChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi LAogCQlyZXR1cm4gX19ibGtkZXZfaXNzdWVfZGlzY2FyZChzYi0+c19iZGV2LAogCQkJKHNlY3Rv cl90KWRpc2NhcmRfYmxvY2sgPDwgKHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzIC0gOSksCiAJCQkoc2Vj dG9yX3QpY291bnQgPDwgKHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzIC0gOSksCi0JCQlHRlBfTk9GUywg MCwgYmlvcCk7CisJCQlHRlBfTk9GUywgYmlvcCk7CiAJfSBlbHNlCiAJCXJldHVybiBzYl9pc3N1 ZV9kaXNjYXJkKHNiLCBkaXNjYXJkX2Jsb2NrLCBjb3VudCwgR0ZQX05PRlMsIDApOwogfQpkaWZm IC0tZ2l0IGEvZnMvZjJmcy9maWxlLmMgYi9mcy9mMmZzL2ZpbGUuYwppbmRleCA4MDUzZDk5ZjM5 MjBiLi4zNWI2YzcyMGMyYmMxIDEwMDY0NAotLS0gYS9mcy9mMmZzL2ZpbGUuYworKysgYi9mcy9m MmZzL2ZpbGUuYwpAQCAtMzY4NSwxOCArMzY4NSwxOCBAQCBzdGF0aWMgaW50IGYyZnNfcmVzZXJ2 ZV9jb21wcmVzc19ibG9ja3Moc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGxvbmcgYXJnKQog c3RhdGljIGludCBmMmZzX3NlY3VyZV9lcmFzZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBz dHJ1Y3QgaW5vZGUgKmlub2RlLAogCQlwZ29mZl90IG9mZiwgYmxvY2tfdCBibG9jaywgYmxvY2tf dCBsZW4sIHUzMiBmbGFncykKIHsKLQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0 X3F1ZXVlKGJkZXYpOwogCXNlY3Rvcl90IHNlY3RvciA9IFNFQ1RPUl9GUk9NX0JMT0NLKGJsb2Nr KTsKIAlzZWN0b3JfdCBucl9zZWN0cyA9IFNFQ1RPUl9GUk9NX0JMT0NLKGxlbik7CiAJaW50IHJl dCA9IDA7CiAKLQlpZiAoIXEpCi0JCXJldHVybiAtRU5YSU87Ci0KLQlpZiAoZmxhZ3MgJiBGMkZT X1RSSU1fRklMRV9ESVNDQVJEKQotCQlyZXQgPSBibGtkZXZfaXNzdWVfZGlzY2FyZChiZGV2LCBz ZWN0b3IsIG5yX3NlY3RzLCBHRlBfTk9GUywKLQkJCQkJCWJsa19xdWV1ZV9zZWN1cmVfZXJhc2Uo cSkgPwotCQkJCQkJQkxLREVWX0RJU0NBUkRfU0VDVVJFIDogMCk7CisJaWYgKGZsYWdzICYgRjJG U19UUklNX0ZJTEVfRElTQ0FSRCkgeworCQlpZiAoYmRldl9tYXhfc2VjdXJlX2VyYXNlX3NlY3Rv cnMoYmRldikpCisJCQlyZXQgPSBibGtkZXZfaXNzdWVfc2VjdXJlX2VyYXNlKGJkZXYsIHNlY3Rv ciwgbnJfc2VjdHMsCisJCQkJCUdGUF9OT0ZTKTsKKwkJZWxzZQorCQkJcmV0ID0gYmxrZGV2X2lz c3VlX2Rpc2NhcmQoYmRldiwgc2VjdG9yLCBucl9zZWN0cywKKwkJCQkJR0ZQX05PRlMpOworCX0K IAogCWlmICghcmV0ICYmIChmbGFncyAmIEYyRlNfVFJJTV9GSUxFX1pFUk9PVVQpKSB7CiAJCWlm IChJU19FTkNSWVBURUQoaW5vZGUpKQpkaWZmIC0tZ2l0IGEvZnMvZjJmcy9zZWdtZW50LmMgYi9m cy9mMmZzL3NlZ21lbnQuYwppbmRleCA3MWYwOWFkYmNiYTg2Li5lNDMzYzYxZTY0YjkzIDEwMDY0 NAotLS0gYS9mcy9mMmZzL3NlZ21lbnQuYworKysgYi9mcy9mMmZzL3NlZ21lbnQuYwpAQCAtMTI0 NCw3ICsxMjQ0LDcgQEAgc3RhdGljIGludCBfX3N1Ym1pdF9kaXNjYXJkX2NtZChzdHJ1Y3QgZjJm c19zYl9pbmZvICpzYmksCiAJCWVyciA9IF9fYmxrZGV2X2lzc3VlX2Rpc2NhcmQoYmRldiwKIAkJ CQkJU0VDVE9SX0ZST01fQkxPQ0soc3RhcnQpLAogCQkJCQlTRUNUT1JfRlJPTV9CTE9DSyhsZW4p LAotCQkJCQlHRlBfTk9GUywgMCwgJmJpbyk7CisJCQkJCUdGUF9OT0ZTLCAmYmlvKTsKIHN1Ym1p dDoKIAkJaWYgKGVycikgewogCQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRjLT5sb2NrLCBmbGFncyk7 CmRpZmYgLS1naXQgYS9mcy9qYmQyL2pvdXJuYWwuYyBiL2ZzL2piZDIvam91cm5hbC5jCmluZGV4 IDE5ZDIyNmNkNGZmNGQuLmMwY2JlZWFlYzJkMWEgMTAwNjQ0Ci0tLSBhL2ZzL2piZDIvam91cm5h bC5jCisrKyBiL2ZzL2piZDIvam91cm5hbC5jCkBAIC0xODI1LDcgKzE4MjUsNyBAQCBzdGF0aWMg aW50IF9famJkMl9qb3VybmFsX2VyYXNlKGpvdXJuYWxfdCAqam91cm5hbCwgdW5zaWduZWQgaW50 IGZsYWdzKQogCQkJZXJyID0gYmxrZGV2X2lzc3VlX2Rpc2NhcmQoam91cm5hbC0+al9kZXYsCiAJ CQkJCWJ5dGVfc3RhcnQgPj4gU0VDVE9SX1NISUZULAogCQkJCQlieXRlX2NvdW50ID4+IFNFQ1RP Ul9TSElGVCwKLQkJCQkJR0ZQX05PRlMsIDApOworCQkJCQlHRlBfTk9GUyk7CiAJCX0gZWxzZSBp ZiAoZmxhZ3MgJiBKQkQyX0pPVVJOQUxfRkxVU0hfWkVST09VVCkgewogCQkJZXJyID0gYmxrZGV2 X2lzc3VlX3plcm9vdXQoam91cm5hbC0+al9kZXYsCiAJCQkJCWJ5dGVfc3RhcnQgPj4gU0VDVE9S X1NISUZULApkaWZmIC0tZ2l0IGEvZnMvbmlsZnMyL3N1ZmlsZS5jIGIvZnMvbmlsZnMyL3N1Zmls ZS5jCmluZGV4IGUzODVjY2EyMDA0YTcuLjc3ZmY4ZTk1NDIxZmEgMTAwNjQ0Ci0tLSBhL2ZzL25p bGZzMi9zdWZpbGUuYworKysgYi9mcy9uaWxmczIvc3VmaWxlLmMKQEAgLTExMDAsNyArMTEwMCw3 IEBAIGludCBuaWxmc19zdWZpbGVfdHJpbV9mcyhzdHJ1Y3QgaW5vZGUgKnN1ZmlsZSwgc3RydWN0 IGZzdHJpbV9yYW5nZSAqcmFuZ2UpCiAJCQkJcmV0ID0gYmxrZGV2X2lzc3VlX2Rpc2NhcmQobmls ZnMtPm5zX2JkZXYsCiAJCQkJCQlzdGFydCAqIHNlY3RzX3Blcl9ibG9jaywKIAkJCQkJCW5ibG9j a3MgKiBzZWN0c19wZXJfYmxvY2ssCi0JCQkJCQlHRlBfTk9GUywgMCk7CisJCQkJCQlHRlBfTk9G Uyk7CiAJCQkJaWYgKHJldCA8IDApIHsKIAkJCQkJcHV0X2JoKHN1X2JoKTsKIAkJCQkJZ290byBv dXRfc2VtOwpAQCAtMTEzNCw3ICsxMTM0LDcgQEAgaW50IG5pbGZzX3N1ZmlsZV90cmltX2ZzKHN0 cnVjdCBpbm9kZSAqc3VmaWxlLCBzdHJ1Y3QgZnN0cmltX3JhbmdlICpyYW5nZSkKIAkJCXJldCA9 IGJsa2Rldl9pc3N1ZV9kaXNjYXJkKG5pbGZzLT5uc19iZGV2LAogCQkJCQlzdGFydCAqIHNlY3Rz X3Blcl9ibG9jaywKIAkJCQkJbmJsb2NrcyAqIHNlY3RzX3Blcl9ibG9jaywKLQkJCQkJR0ZQX05P RlMsIDApOworCQkJCQlHRlBfTk9GUyk7CiAJCQlpZiAoIXJldCkKIAkJCQluZGlzY2FyZGVkICs9 IG5ibG9ja3M7CiAJCX0KZGlmZiAtLWdpdCBhL2ZzL25pbGZzMi90aGVfbmlsZnMuYyBiL2ZzL25p bGZzMi90aGVfbmlsZnMuYwppbmRleCBkZDQ4YThmNzRkNTc3Li4zYjRhMDc5Yzk2MTdjIDEwMDY0 NAotLS0gYS9mcy9uaWxmczIvdGhlX25pbGZzLmMKKysrIGIvZnMvbmlsZnMyL3RoZV9uaWxmcy5j CkBAIC02NzIsNyArNjcyLDcgQEAgaW50IG5pbGZzX2Rpc2NhcmRfc2VnbWVudHMoc3RydWN0IHRo ZV9uaWxmcyAqbmlsZnMsIF9fdTY0ICpzZWdudW1wLAogCQkJcmV0ID0gYmxrZGV2X2lzc3VlX2Rp c2NhcmQobmlsZnMtPm5zX2JkZXYsCiAJCQkJCQkgICBzdGFydCAqIHNlY3RzX3Blcl9ibG9jaywK IAkJCQkJCSAgIG5ibG9ja3MgKiBzZWN0c19wZXJfYmxvY2ssCi0JCQkJCQkgICBHRlBfTk9GUywg MCk7CisJCQkJCQkgICBHRlBfTk9GUyk7CiAJCQlpZiAocmV0IDwgMCkKIAkJCQlyZXR1cm4gcmV0 OwogCQkJbmJsb2NrcyA9IDA7CkBAIC02ODIsNyArNjgyLDcgQEAgaW50IG5pbGZzX2Rpc2NhcmRf c2VnbWVudHMoc3RydWN0IHRoZV9uaWxmcyAqbmlsZnMsIF9fdTY0ICpzZWdudW1wLAogCQlyZXQg PSBibGtkZXZfaXNzdWVfZGlzY2FyZChuaWxmcy0+bnNfYmRldiwKIAkJCQkJICAgc3RhcnQgKiBz ZWN0c19wZXJfYmxvY2ssCiAJCQkJCSAgIG5ibG9ja3MgKiBzZWN0c19wZXJfYmxvY2ssCi0JCQkJ CSAgIEdGUF9OT0ZTLCAwKTsKKwkJCQkJICAgR0ZQX05PRlMpOwogCXJldHVybiByZXQ7CiB9CiAK ZGlmZiAtLWdpdCBhL2ZzL250ZnMzL3N1cGVyLmMgYi9mcy9udGZzMy9zdXBlci5jCmluZGV4IDVm MmU0MTRjZmE3OWIuLjU3ODFiOWU4ZTNkODUgMTAwNjQ0Ci0tLSBhL2ZzL250ZnMzL3N1cGVyLmMK KysrIGIvZnMvbnRmczMvc3VwZXIuYwpAQCAtMTMzMyw3ICsxMzMzLDcgQEAgaW50IG50ZnNfZGlz Y2FyZChzdHJ1Y3QgbnRmc19zYl9pbmZvICpzYmksIENMU1QgbGNuLCBDTFNUIGxlbikKIAkJcmV0 dXJuIDA7CiAKIAllcnIgPSBibGtkZXZfaXNzdWVfZGlzY2FyZChzYi0+c19iZGV2LCBzdGFydCA+ PiA5LCAoZW5kIC0gc3RhcnQpID4+IDksCi0JCQkJICAgR0ZQX05PRlMsIDApOworCQkJCSAgIEdG UF9OT0ZTKTsKIAogCWlmIChlcnIgPT0gLUVPUE5PVFNVUFApCiAJCXNiaS0+ZmxhZ3MgfD0gTlRG U19GTEFHU19OT0RJU0NBUkQ7CmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX2Rpc2NhcmQuYyBiL2Zz L3hmcy94ZnNfZGlzY2FyZC5jCmluZGV4IGUyYWRhMTE1YzIzZjkuLmM2ZmUzZjZlYmI2YjAgMTAw NjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfZGlzY2FyZC5jCisrKyBiL2ZzL3hmcy94ZnNfZGlzY2FyZC5j CkBAIC0xMTQsNyArMTE0LDcgQEAgeGZzX3RyaW1fZXh0ZW50cygKIAkJfQogCiAJCXRyYWNlX3hm c19kaXNjYXJkX2V4dGVudChtcCwgYWdubywgZmJubywgZmxlbik7Ci0JCWVycm9yID0gYmxrZGV2 X2lzc3VlX2Rpc2NhcmQoYmRldiwgZGJubywgZGxlbiwgR0ZQX05PRlMsIDApOworCQllcnJvciA9 IGJsa2Rldl9pc3N1ZV9kaXNjYXJkKGJkZXYsIGRibm8sIGRsZW4sIEdGUF9OT0ZTKTsKIAkJaWYg KGVycm9yKQogCQkJZ290byBvdXRfZGVsX2N1cnNvcjsKIAkJKmJsb2Nrc190cmltbWVkICs9IGZs ZW47CmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX2xvZ19jaWwuYyBiL2ZzL3hmcy94ZnNfbG9nX2Np bC5jCmluZGV4IGJhNTczMjNiZmRjZWEuLmM5ZjU1ZTRmMDk1NzEgMTAwNjQ0Ci0tLSBhL2ZzL3hm cy94ZnNfbG9nX2NpbC5jCisrKyBiL2ZzL3hmcy94ZnNfbG9nX2NpbC5jCkBAIC02MDUsNyArNjA1 LDcgQEAgeGxvZ19kaXNjYXJkX2J1c3lfZXh0ZW50cygKIAkJZXJyb3IgPSBfX2Jsa2Rldl9pc3N1 ZV9kaXNjYXJkKG1wLT5tX2RkZXZfdGFyZ3AtPmJ0X2JkZXYsCiAJCQkJWEZTX0FHQl9UT19EQURE UihtcCwgYnVzeXAtPmFnbm8sIGJ1c3lwLT5ibm8pLAogCQkJCVhGU19GU0JfVE9fQkIobXAsIGJ1 c3lwLT5sZW5ndGgpLAotCQkJCUdGUF9OT0ZTLCAwLCAmYmlvKTsKKwkJCQlHRlBfTk9GUywgJmJp byk7CiAJCWlmIChlcnJvciAmJiBlcnJvciAhPSAtRU9QTk9UU1VQUCkgewogCQkJeGZzX2luZm8o bXAsCiAJICJkaXNjYXJkIGZhaWxlZCBmb3IgZXh0ZW50IFsweCVsbHgsJXVdLCBlcnJvciAlZCIs CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oIGIvaW5jbHVkZS9saW51eC9ibGtk ZXYuaAppbmRleCBmMWNmNTU3ZWEyMGVmLi5jOWI1OTI1YWY1YTNiIDEwMDY0NAotLS0gYS9pbmNs dWRlL2xpbnV4L2Jsa2Rldi5oCisrKyBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgKQEAgLTI0OCw2 ICsyNDgsNyBAQCBzdHJ1Y3QgcXVldWVfbGltaXRzIHsKIAl1bnNpZ25lZCBpbnQJCWlvX29wdDsK IAl1bnNpZ25lZCBpbnQJCW1heF9kaXNjYXJkX3NlY3RvcnM7CiAJdW5zaWduZWQgaW50CQltYXhf aHdfZGlzY2FyZF9zZWN0b3JzOworCXVuc2lnbmVkIGludAkJbWF4X3NlY3VyZV9lcmFzZV9zZWN0 b3JzOwogCXVuc2lnbmVkIGludAkJbWF4X3dyaXRlX3plcm9lc19zZWN0b3JzOwogCXVuc2lnbmVk IGludAkJbWF4X3pvbmVfYXBwZW5kX3NlY3RvcnM7CiAJdW5zaWduZWQgaW50CQlkaXNjYXJkX2dy YW51bGFyaXR5OwpAQCAtNTQyLDcgKzU0Myw2IEBAIHN0cnVjdCByZXF1ZXN0X3F1ZXVlIHsKICNk ZWZpbmUgUVVFVUVfRkxBR19JT19TVEFUCTcJLyogZG8gZGlzay9wYXJ0aXRpb25zIElPIGFjY291 bnRpbmcgKi8KICNkZWZpbmUgUVVFVUVfRkxBR19OT1hNRVJHRVMJOQkvKiBObyBleHRlbmRlZCBt ZXJnZXMgKi8KICNkZWZpbmUgUVVFVUVfRkxBR19BRERfUkFORE9NCTEwCS8qIENvbnRyaWJ1dGVz IHRvIHJhbmRvbSBwb29sICovCi0jZGVmaW5lIFFVRVVFX0ZMQUdfU0VDRVJBU0UJMTEJLyogc3Vw cG9ydHMgc2VjdXJlIGVyYXNlICovCiAjZGVmaW5lIFFVRVVFX0ZMQUdfU0FNRV9GT1JDRQkxMgkv KiBmb3JjZSBjb21wbGV0ZSBvbiBzYW1lIENQVSAqLwogI2RlZmluZSBRVUVVRV9GTEFHX0RFQUQJ CTEzCS8qIHF1ZXVlIHRlYXItZG93biBmaW5pc2hlZCAqLwogI2RlZmluZSBRVUVVRV9GTEFHX0lO SVRfRE9ORQkxNAkvKiBxdWV1ZSBpcyBpbml0aWFsaXplZCAqLwpAQCAtNTgzLDggKzU4Myw2IEBA IGJvb2wgYmxrX3F1ZXVlX2ZsYWdfdGVzdF9hbmRfc2V0KHVuc2lnbmVkIGludCBmbGFnLCBzdHJ1 Y3QgcmVxdWVzdF9xdWV1ZSAqcSk7CiAjZGVmaW5lIGJsa19xdWV1ZV9hZGRfcmFuZG9tKHEpCXRl c3RfYml0KFFVRVVFX0ZMQUdfQUREX1JBTkRPTSwgJihxKS0+cXVldWVfZmxhZ3MpCiAjZGVmaW5l IGJsa19xdWV1ZV96b25lX3Jlc2V0YWxsKHEpCVwKIAl0ZXN0X2JpdChRVUVVRV9GTEFHX1pPTkVf UkVTRVRBTEwsICYocSktPnF1ZXVlX2ZsYWdzKQotI2RlZmluZSBibGtfcXVldWVfc2VjdXJlX2Vy YXNlKHEpIFwKLQkodGVzdF9iaXQoUVVFVUVfRkxBR19TRUNFUkFTRSwgJihxKS0+cXVldWVfZmxh Z3MpKQogI2RlZmluZSBibGtfcXVldWVfZGF4KHEpCXRlc3RfYml0KFFVRVVFX0ZMQUdfREFYLCAm KHEpLT5xdWV1ZV9mbGFncykKICNkZWZpbmUgYmxrX3F1ZXVlX3BjaV9wMnBkbWEocSkJXAogCXRl c3RfYml0KFFVRVVFX0ZMQUdfUENJX1AyUERNQSwgJihxKS0+cXVldWVfZmxhZ3MpCkBAIC05NDcs NiArOTQ1LDggQEAgZXh0ZXJuIHZvaWQgYmxrX3F1ZXVlX2NodW5rX3NlY3RvcnMoc3RydWN0IHJl cXVlc3RfcXVldWUgKiwgdW5zaWduZWQgaW50KTsKIGV4dGVybiB2b2lkIGJsa19xdWV1ZV9tYXhf c2VnbWVudHMoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgdW5zaWduZWQgc2hvcnQpOwogZXh0ZXJu IHZvaWQgYmxrX3F1ZXVlX21heF9kaXNjYXJkX3NlZ21lbnRzKHN0cnVjdCByZXF1ZXN0X3F1ZXVl ICosCiAJCXVuc2lnbmVkIHNob3J0KTsKK3ZvaWQgYmxrX3F1ZXVlX21heF9zZWN1cmVfZXJhc2Vf c2VjdG9ycyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwKKwkJdW5zaWduZWQgaW50IG1heF9zZWN0 b3JzKTsKIGV4dGVybiB2b2lkIGJsa19xdWV1ZV9tYXhfc2VnbWVudF9zaXplKHN0cnVjdCByZXF1 ZXN0X3F1ZXVlICosIHVuc2lnbmVkIGludCk7CiBleHRlcm4gdm9pZCBibGtfcXVldWVfbWF4X2Rp c2NhcmRfc2VjdG9ycyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwKIAkJdW5zaWduZWQgaW50IG1h eF9kaXNjYXJkX3NlY3RvcnMpOwpAQCAtMTA4NywxMyArMTA4NywxMiBAQCBzdGF0aWMgaW5saW5l IGxvbmcgbnJfYmxvY2tkZXZfcGFnZXModm9pZCkKIAogZXh0ZXJuIHZvaWQgYmxrX2lvX3NjaGVk dWxlKHZvaWQpOwogCi0jZGVmaW5lIEJMS0RFVl9ESVNDQVJEX1NFQ1VSRQkoMSA8PCAwKQkvKiBp c3N1ZSBhIHNlY3VyZSBlcmFzZSAqLwotCi1leHRlcm4gaW50IGJsa2Rldl9pc3N1ZV9kaXNjYXJk KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHNlY3Rvcl90IHNlY3RvciwKLQkJc2VjdG9yX3Qg bnJfc2VjdHMsIGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKLWV4dGVybiBp bnQgX19ibGtkZXZfaXNzdWVfZGlzY2FyZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0 b3JfdCBzZWN0b3IsCi0JCXNlY3Rvcl90IG5yX3NlY3RzLCBnZnBfdCBnZnBfbWFzaywgaW50IGZs YWdzLAotCQlzdHJ1Y3QgYmlvICoqYmlvcCk7CitpbnQgYmxrZGV2X2lzc3VlX2Rpc2NhcmQoc3Ry dWN0IGJsb2NrX2RldmljZSAqYmRldiwgc2VjdG9yX3Qgc2VjdG9yLAorCQlzZWN0b3JfdCBucl9z ZWN0cywgZ2ZwX3QgZ2ZwX21hc2spOworaW50IF9fYmxrZGV2X2lzc3VlX2Rpc2NhcmQoc3RydWN0 IGJsb2NrX2RldmljZSAqYmRldiwgc2VjdG9yX3Qgc2VjdG9yLAorCQlzZWN0b3JfdCBucl9zZWN0 cywgZ2ZwX3QgZ2ZwX21hc2ssIHN0cnVjdCBiaW8gKipiaW9wKTsKK2ludCBibGtkZXZfaXNzdWVf c2VjdXJlX2VyYXNlKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHNlY3Rvcl90IHNlY3RvciwK KwkJc2VjdG9yX3QgbnJfc2VjdHMsIGdmcF90IGdmcCk7CiAKICNkZWZpbmUgQkxLREVWX1pFUk9f Tk9VTk1BUAkoMSA8PCAwKSAgLyogZG8gbm90IGZyZWUgYmxvY2tzICovCiAjZGVmaW5lIEJMS0RF Vl9aRVJPX05PRkFMTEJBQ0sJKDEgPDwgMSkgIC8qIGRvbid0IHdyaXRlIGV4cGxpY2l0IHplcm9l cyAqLwpAQCAtMTExMiw3ICsxMTExLDcgQEAgc3RhdGljIGlubGluZSBpbnQgc2JfaXNzdWVfZGlz Y2FyZChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzZWN0b3JfdCBibG9jaywKIAkJCQkJICAgICAg U0VDVE9SX1NISUZUKSwKIAkJCQkgICAgbnJfYmxvY2tzIDw8IChzYi0+c19ibG9ja3NpemVfYml0 cyAtCiAJCQkJCQkgIFNFQ1RPUl9TSElGVCksCi0JCQkJICAgIGdmcF9tYXNrLCBmbGFncyk7CisJ CQkJICAgIGdmcF9tYXNrKTsKIH0KIHN0YXRpYyBpbmxpbmUgaW50IHNiX2lzc3VlX3plcm9vdXQo c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc2VjdG9yX3QgYmxvY2ssCiAJCXNlY3Rvcl90IG5yX2Js b2NrcywgZ2ZwX3QgZ2ZwX21hc2spCkBAIC0xMjYyLDYgKzEyNjEsMTIgQEAgc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBpbnQgYmRldl9kaXNjYXJkX2dyYW51bGFyaXR5KHN0cnVjdCBibG9ja19kZXZp Y2UgKmJkZXYpCiAJcmV0dXJuIGJkZXZfZ2V0X3F1ZXVlKGJkZXYpLT5saW1pdHMuZGlzY2FyZF9n cmFudWxhcml0eTsKIH0KIAorc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKK2JkZXZfbWF4X3Nl Y3VyZV9lcmFzZV9zZWN0b3JzKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpCit7CisJcmV0dXJu IGJkZXZfZ2V0X3F1ZXVlKGJkZXYpLT5saW1pdHMubWF4X3NlY3VyZV9lcmFzZV9zZWN0b3JzOwor fQorCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBiZGV2X3dyaXRlX3plcm9lc19zZWN0b3Jz KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpCiB7CiAJc3RydWN0IHJlcXVlc3RfcXVldWUgKnEg PSBiZGV2X2dldF9xdWV1ZShiZGV2KTsKZGlmZiAtLWdpdCBhL21tL3N3YXBmaWxlLmMgYi9tbS9z d2FwZmlsZS5jCmluZGV4IDVkOWNlZGY5ZTdiODQuLmEyYjMxZmVhMGM0MmUgMTAwNjQ0Ci0tLSBh L21tL3N3YXBmaWxlLmMKKysrIGIvbW0vc3dhcGZpbGUuYwpAQCAtMTc5LDcgKzE3OSw3IEBAIHN0 YXRpYyBpbnQgZGlzY2FyZF9zd2FwKHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpzaSkKIAlucl9i bG9ja3MgPSAoKHNlY3Rvcl90KXNlLT5ucl9wYWdlcyAtIDEpIDw8IChQQUdFX1NISUZUIC0gOSk7 CiAJaWYgKG5yX2Jsb2NrcykgewogCQllcnIgPSBibGtkZXZfaXNzdWVfZGlzY2FyZChzaS0+YmRl diwgc3RhcnRfYmxvY2ssCi0JCQkJbnJfYmxvY2tzLCBHRlBfS0VSTkVMLCAwKTsKKwkJCQlucl9i bG9ja3MsIEdGUF9LRVJORUwpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAkJY29uZF9y ZXNjaGVkKCk7CkBAIC0xOTAsNyArMTkwLDcgQEAgc3RhdGljIGludCBkaXNjYXJkX3N3YXAoc3Ry dWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpKQogCQlucl9ibG9ja3MgPSAoc2VjdG9yX3Qpc2UtPm5y X3BhZ2VzIDw8IChQQUdFX1NISUZUIC0gOSk7CiAKIAkJZXJyID0gYmxrZGV2X2lzc3VlX2Rpc2Nh cmQoc2ktPmJkZXYsIHN0YXJ0X2Jsb2NrLAotCQkJCW5yX2Jsb2NrcywgR0ZQX0tFUk5FTCwgMCk7 CisJCQkJbnJfYmxvY2tzLCBHRlBfS0VSTkVMKTsKIAkJaWYgKGVycikKIAkJCWJyZWFrOwogCkBA IC0yNTQsNyArMjU0LDcgQEAgc3RhdGljIHZvaWQgZGlzY2FyZF9zd2FwX2NsdXN0ZXIoc3RydWN0 IHN3YXBfaW5mb19zdHJ1Y3QgKnNpLAogCQlzdGFydF9ibG9jayA8PD0gUEFHRV9TSElGVCAtIDk7 CiAJCW5yX2Jsb2NrcyA8PD0gUEFHRV9TSElGVCAtIDk7CiAJCWlmIChibGtkZXZfaXNzdWVfZGlz Y2FyZChzaS0+YmRldiwgc3RhcnRfYmxvY2ssCi0JCQkJCW5yX2Jsb2NrcywgR0ZQX05PSU8sIDAp KQorCQkJCQlucl9ibG9ja3MsIEdGUF9OT0lPKSkKIAkJCWJyZWFrOwogCiAJCXNlID0gbmV4dF9z ZShzZSk7Ci0tIAoyLjMwLjIKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KTGludXgtZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QKTGludXgtZjJmcy1kZXZl bEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlz dHMvbGlzdGluZm8vbGludXgtZjJmcy1kZXZlbAo=