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 229A3C47080 for ; Fri, 15 Apr 2022 04:54:42 +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 1nfDyk-00019a-RJ; Fri, 15 Apr 2022 04:54:41 +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 1nfDyj-00019E-FR; Fri, 15 Apr 2022 04:54:40 +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=kNp/brlkIe235G5uL2MrVnIRtgqb7cDd/DmZFPBWIBU=; b=A1TqcReFxQle4tg8t3Pq5UaT06 uHHIB24liK5wwCjHZoaU3qRlipZvyHJcPGpspGt8N+G3i5ZfO9j92+jNIbS+gDXl3HjvVxMaO3DX3 z12mVSivkWQIo2kPwGACwy7PLChB//cc7n2sQ49PJhtSpQyOsIbXmKxA6pWTOTRrBKOI=; 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=kNp/brlkIe235G5uL2MrVnIRtgqb7cDd/DmZFPBWIBU=; b=NB5YCM+ZQ7iqH4ySDtfUnIqt2b ezdUjVKsym2VZ4OJwttvOSXDXv1VEJcNi0dp1pZHlQd8VsxlghzAeSRcWFRnFCJXiWg6DbobC/4ZF 9w9i0bPGezy3/DZifUOzcstJyYNzkazRen7Sb/yNHblJ80Ob6B+qnSOlDi8+kt39k8/o=; Received: from bombadil.infradead.org ([198.137.202.133]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.94.2) id 1nfDyg-00087h-RB; Fri, 15 Apr 2022 04:54:39 +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=kNp/brlkIe235G5uL2MrVnIRtgqb7cDd/DmZFPBWIBU=; b=Co/TUtYjxXhBannRnRPPMzniSz KzMOTkfBm1/hatrRCsXat8xvCYh5GhThX4mzrGtKHb6LAYG+sPH3KwWtVY3xSHJr/UXxKAr/c8lOd 9nzEDK8J1+urJnRHTt8OvyyB9riUUShlfJxQQc5tl17Aeq2Ob83x7bFSyDRg1kFsMfBGYCbDiai4T MmRIecJu05pH8quQ4Da7LC0ahNKk3viQlUZsK3kTx8GJB07Ab+tCpvf4TxuQJg0Ur8EB4xfyeBW86 w/cFJ63yhIzxe5o3O4E4JugMkp6nxsaFU/g8r/FsjvJTzkEcJyR5P45yJBFH2vwfQ5gqACkXysc+F Z7/+X18g==; Received: from [2a02:1205:504b:4280:f5dd:42a4:896c:d877] (helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1nfDyL-008Pnr-T3; Fri, 15 Apr 2022 04:54:18 +0000 From: Christoph Hellwig To: Jens Axboe Date: Fri, 15 Apr 2022 06:52:56 +0200 Message-Id: <20220415045258.199825-26-hch@lst.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220415045258.199825-1-hch@lst.de> References: <20220415045258.199825-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: 1nfDyg-00087h-RB Subject: [f2fs-dev] [PATCH 25/27] block: add a bdev_discard_granularity helper 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, 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 QWJzdHJhY3QgYXdheSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGZyb20gZmlsZSBzeXN0ZW1zIGJ5 IHByb3ZpZGluZyBhCmJsb2NrX2RldmljZSBiYXNlZCBoZWxwZXIgdG8gcmV0cmlldmUgdGhlIGRp c2NhcmQgZ3JhbnVsYXJpdHkuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggSGVsbHdpZyA8aGNo QGxzdC5kZT4KUmV2aWV3ZWQtYnk6IE1hcnRpbiBLLiBQZXRlcnNlbiA8bWFydGluLnBldGVyc2Vu QG9yYWNsZS5jb20+CkFja2VkLWJ5OiBDaHJpc3RvcGggQsO2aG13YWxkZXIgPGNocmlzdG9waC5i b2VobXdhbGRlckBsaW5iaXQuY29tPiBbZHJiZF0KQWNrZWQtYnk6IFJ5dXN1a2UgS29uaXNoaSA8 a29uaXNoaS5yeXVzdWtlQGdtYWlsLmNvbT4KQWNrZWQtYnk6IERhdmlkIFN0ZXJiYSA8ZHN0ZXJi YUBzdXNlLmNvbT4gW2J0cmZzXQotLS0KIGJsb2NrL2Jsay1saWIuYyAgICAgICAgICAgICAgICAg ICAgIHwgIDUgKystLS0KIGRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMgICAgICAgIHwgIDkg KysrKystLS0tCiBkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jICB8ICAzICstLQog ZHJpdmVycy9ibG9jay9sb29wLmMgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy90YXJn ZXQvdGFyZ2V0X2NvcmVfZGV2aWNlLmMgfCAgMyArLS0KIGZzL2J0cmZzL2lvY3RsLmMgICAgICAg ICAgICAgICAgICAgIHwgMTIgKysrKy0tLS0tLS0tCiBmcy9leGZhdC9maWxlLmMgICAgICAgICAg ICAgICAgICAgICB8ICAzICstLQogZnMvZXh0NC9tYmFsbG9jLmMgICAgICAgICAgICAgICAgICAg fCAgNiArKystLS0KIGZzL2YyZnMvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0t CiBmcy9mYXQvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAzICstLQogZnMvZ2ZzMi9y Z3JwLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKystLS0tCiBmcy9qZnMvaW9jdGwuYyAg ICAgICAgICAgICAgICAgICAgICB8ICAzICstLQogZnMvbmlsZnMyL2lvY3RsLmMgICAgICAgICAg ICAgICAgICAgfCAgNCArKy0tCiBmcy9udGZzMy9maWxlLmMgICAgICAgICAgICAgICAgICAgICB8 ICA0ICsrLS0KIGZzL250ZnMzL3N1cGVyLmMgICAgICAgICAgICAgICAgICAgIHwgIDYgKystLS0t CiBmcy9vY2ZzMi9pb2N0bC5jICAgICAgICAgICAgICAgICAgICB8ICAzICstLQogZnMveGZzL3hm c19kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBpbmNsdWRlL2xpbnV4L2Jsa2Rl di5oICAgICAgICAgICAgICB8ICA1ICsrKysrCiAxOCBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRp b25zKCspLCA0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ibG9jay9ibGstbGliLmMgYi9i bG9jay9ibGstbGliLmMKaW5kZXggOGI0YjY2ZDNhOWJmYy4uNDNhYTRkN2ZlODU5ZiAxMDA2NDQK LS0tIGEvYmxvY2svYmxrLWxpYi5jCisrKyBiL2Jsb2NrL2Jsay1saWIuYwpAQCAtMTIsOCArMTIs NyBAQAogCiBzdGF0aWMgc2VjdG9yX3QgYmlvX2Rpc2NhcmRfbGltaXQoc3RydWN0IGJsb2NrX2Rl dmljZSAqYmRldiwgc2VjdG9yX3Qgc2VjdG9yKQogewotCXVuc2lnbmVkIGludCBkaXNjYXJkX2dy YW51bGFyaXR5ID0KLQkJYmRldl9nZXRfcXVldWUoYmRldiktPmxpbWl0cy5kaXNjYXJkX2dyYW51 bGFyaXR5OworCXVuc2lnbmVkIGludCBkaXNjYXJkX2dyYW51bGFyaXR5ID0gYmRldl9kaXNjYXJk X2dyYW51bGFyaXR5KGJkZXYpOwogCXNlY3Rvcl90IGdyYW51bGFyaXR5X2FsaWduZWRfc2VjdG9y OwogCiAJaWYgKGJkZXZfaXNfcGFydGl0aW9uKGJkZXYpKQpAQCAtNTksNyArNTgsNyBAQCBpbnQg X19ibGtkZXZfaXNzdWVfZGlzY2FyZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0b3Jf dCBzZWN0b3IsCiAJfQogCiAJLyogSW4gY2FzZSB0aGUgZGlzY2FyZCBncmFudWxhcml0eSBpc24n dCBzZXQgYnkgYnVnZ3kgZGV2aWNlIGRyaXZlciAqLwotCWlmIChXQVJOX09OX09OQ0UoIXEtPmxp bWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5KSkgeworCWlmIChXQVJOX09OX09OQ0UoIWJkZXZfZGlz Y2FyZF9ncmFudWxhcml0eShiZGV2KSkpIHsKIAkJY2hhciBkZXZfbmFtZVtCREVWTkFNRV9TSVpF XTsKIAogCQliZGV2bmFtZShiZGV2LCBkZXZfbmFtZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Js b2NrL2RyYmQvZHJiZF9ubC5jIGIvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYwppbmRleCAw Njc4Y2ViNTA1Nzk5Li5hNjI4MGRjYjM3Njc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2Ry YmQvZHJiZF9ubC5jCisrKyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMKQEAgLTE0MjUs NyArMTQyNSw2IEBAIHN0YXRpYyB2b2lkIHNhbml0aXplX2Rpc2tfY29uZihzdHJ1Y3QgZHJiZF9k ZXZpY2UgKmRldmljZSwgc3RydWN0IGRpc2tfY29uZiAqZGlzCiAJCQkgICAgICAgc3RydWN0IGRy YmRfYmFja2luZ19kZXYgKm5iYykKIHsKIAlzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2ID0gbmJj LT5iYWNraW5nX2JkZXY7Ci0Jc3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBiZGV2LT5iZF9kaXNr LT5xdWV1ZTsKIAogCWlmIChkaXNrX2NvbmYtPmFsX2V4dGVudHMgPCBEUkJEX0FMX0VYVEVOVFNf TUlOKQogCQlkaXNrX2NvbmYtPmFsX2V4dGVudHMgPSBEUkJEX0FMX0VYVEVOVFNfTUlOOwpAQCAt MTQ0MiwxMiArMTQ0MSwxNCBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9kaXNrX2NvbmYoc3RydWN0 IGRyYmRfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBkaXNrX2NvbmYgKmRpcwogCWlmIChkaXNrX2Nv bmYtPnJzX2Rpc2NhcmRfZ3JhbnVsYXJpdHkpIHsKIAkJaW50IG9yaWdfdmFsdWUgPSBkaXNrX2Nv bmYtPnJzX2Rpc2NhcmRfZ3JhbnVsYXJpdHk7CiAJCXNlY3Rvcl90IGRpc2NhcmRfc2l6ZSA9IGJk ZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhiZGV2KSA8PCA5OworCQl1bnNpZ25lZCBpbnQgZGlzY2Fy ZF9ncmFudWxhcml0eSA9IGJkZXZfZGlzY2FyZF9ncmFudWxhcml0eShiZGV2KTsKIAkJaW50IHJl bWFpbmRlcjsKIAotCQlpZiAocS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkgPiBkaXNrX2Nv bmYtPnJzX2Rpc2NhcmRfZ3JhbnVsYXJpdHkpCi0JCQlkaXNrX2NvbmYtPnJzX2Rpc2NhcmRfZ3Jh bnVsYXJpdHkgPSBxLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eTsKKwkJaWYgKGRpc2NhcmRf Z3JhbnVsYXJpdHkgPiBkaXNrX2NvbmYtPnJzX2Rpc2NhcmRfZ3JhbnVsYXJpdHkpCisJCQlkaXNr X2NvbmYtPnJzX2Rpc2NhcmRfZ3JhbnVsYXJpdHkgPSBkaXNjYXJkX2dyYW51bGFyaXR5OwogCi0J CXJlbWFpbmRlciA9IGRpc2tfY29uZi0+cnNfZGlzY2FyZF9ncmFudWxhcml0eSAlIHEtPmxpbWl0 cy5kaXNjYXJkX2dyYW51bGFyaXR5OworCQlyZW1haW5kZXIgPSBkaXNrX2NvbmYtPnJzX2Rpc2Nh cmRfZ3JhbnVsYXJpdHkgJQorCQkJCWRpc2NhcmRfZ3JhbnVsYXJpdHk7CiAJCWRpc2tfY29uZi0+ cnNfZGlzY2FyZF9ncmFudWxhcml0eSArPSByZW1haW5kZXI7CiAKIAkJaWYgKGRpc2tfY29uZi0+ cnNfZGlzY2FyZF9ncmFudWxhcml0eSA+IGRpc2NhcmRfc2l6ZSkKZGlmZiAtLWdpdCBhL2RyaXZl cnMvYmxvY2svZHJiZC9kcmJkX3JlY2VpdmVyLmMgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9y ZWNlaXZlci5jCmluZGV4IDhhNGE0N2RhNTZmZTkuLjI3NWM1M2M3YjYyOWUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX3JlY2VpdmVyLmMKKysrIGIvZHJpdmVycy9ibG9jay9k cmJkL2RyYmRfcmVjZWl2ZXIuYwpAQCAtMTUxMSw3ICsxNTExLDYgQEAgdm9pZCBkcmJkX2J1bXBf d3JpdGVfb3JkZXJpbmcoc3RydWN0IGRyYmRfcmVzb3VyY2UgKnJlc291cmNlLCBzdHJ1Y3QgZHJi ZF9iYWNraW4KIGludCBkcmJkX2lzc3VlX2Rpc2NhcmRfb3JfemVyb19vdXQoc3RydWN0IGRyYmRf ZGV2aWNlICpkZXZpY2UsIHNlY3Rvcl90IHN0YXJ0LCB1bnNpZ25lZCBpbnQgbnJfc2VjdG9ycywg aW50IGZsYWdzKQogewogCXN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYgPSBkZXZpY2UtPmxkZXYt PmJhY2tpbmdfYmRldjsKLQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVl KGJkZXYpOwogCXNlY3Rvcl90IHRtcCwgbnI7CiAJdW5zaWduZWQgaW50IG1heF9kaXNjYXJkX3Nl Y3RvcnMsIGdyYW51bGFyaXR5OwogCWludCBhbGlnbm1lbnQ7CkBAIC0xNTIxLDcgKzE1MjAsNyBA QCBpbnQgZHJiZF9pc3N1ZV9kaXNjYXJkX29yX3plcm9fb3V0KHN0cnVjdCBkcmJkX2RldmljZSAq ZGV2aWNlLCBzZWN0b3JfdCBzdGFydCwgdQogCQlnb3RvIHplcm9fb3V0OwogCiAJLyogWmVyby1z ZWN0b3IgKHVua25vd24pIGFuZCBvbmUtc2VjdG9yIGdyYW51bGFyaXRpZXMgYXJlIHRoZSBzYW1l LiAgKi8KLQlncmFudWxhcml0eSA9IG1heChxLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSA+ PiA5LCAxVSk7CisJZ3JhbnVsYXJpdHkgPSBtYXgoYmRldl9kaXNjYXJkX2dyYW51bGFyaXR5KGJk ZXYpID4+IDksIDFVKTsKIAlhbGlnbm1lbnQgPSAoYmRldl9kaXNjYXJkX2FsaWdubWVudChiZGV2 KSA+PiA5KSAlIGdyYW51bGFyaXR5OwogCiAJbWF4X2Rpc2NhcmRfc2VjdG9ycyA9IG1pbihiZGV2 X21heF9kaXNjYXJkX3NlY3RvcnMoYmRldiksICgxVSA8PCAyMikpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ibG9jay9sb29wLmMgYi9kcml2ZXJzL2Jsb2NrL2xvb3AuYwppbmRleCAwZTA2MWM5ODk2 ZWZmLi45NzZjZjk4N2IzOTIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2xvb3AuYworKysg Yi9kcml2ZXJzL2Jsb2NrL2xvb3AuYwpAQCAtNzU5LDcgKzc1OSw3IEBAIHN0YXRpYyB2b2lkIGxv b3BfY29uZmlnX2Rpc2NhcmQoc3RydWN0IGxvb3BfZGV2aWNlICpsbykKIAkJc3RydWN0IHJlcXVl c3RfcXVldWUgKmJhY2tpbmdxID0gYmRldl9nZXRfcXVldWUoSV9CREVWKGlub2RlKSk7CiAKIAkJ bWF4X2Rpc2NhcmRfc2VjdG9ycyA9IGJhY2tpbmdxLT5saW1pdHMubWF4X3dyaXRlX3plcm9lc19z ZWN0b3JzOwotCQlncmFudWxhcml0eSA9IGJhY2tpbmdxLT5saW1pdHMuZGlzY2FyZF9ncmFudWxh cml0eSA/OgorCQlncmFudWxhcml0eSA9IGJkZXZfZGlzY2FyZF9ncmFudWxhcml0eShJX0JERVYo aW5vZGUpKSA/OgogCQkJcXVldWVfcGh5c2ljYWxfYmxvY2tfc2l6ZShiYWNraW5ncSk7CiAKIAkv KgpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfZGV2aWNlLmMgYi9kcml2 ZXJzL3RhcmdldC90YXJnZXRfY29yZV9kZXZpY2UuYwppbmRleCA2Y2I5Zjg3ODQzMjc4Li4yNWYz M2ViMjUzMzdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV9kZXZpY2Uu YworKysgYi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV9kZXZpY2UuYwpAQCAtODM1LDcgKzgz NSw2IEBAIHN0cnVjdCBzZV9kZXZpY2UgKnRhcmdldF9hbGxvY19kZXZpY2Uoc3RydWN0IHNlX2hi YSAqaGJhLCBjb25zdCBjaGFyICpuYW1lKQogYm9vbCB0YXJnZXRfY29uZmlndXJlX3VubWFwX2Zy b21fcXVldWUoc3RydWN0IHNlX2Rldl9hdHRyaWIgKmF0dHJpYiwKIAkJCQkgICAgICAgc3RydWN0 IGJsb2NrX2RldmljZSAqYmRldikKIHsKLQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZf Z2V0X3F1ZXVlKGJkZXYpOwogCWludCBibG9ja19zaXplID0gYmRldl9sb2dpY2FsX2Jsb2NrX3Np emUoYmRldik7CiAKIAlpZiAoIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhiZGV2KSkKQEAgLTg0 Nyw3ICs4NDYsNyBAQCBib29sIHRhcmdldF9jb25maWd1cmVfdW5tYXBfZnJvbV9xdWV1ZShzdHJ1 Y3Qgc2VfZGV2X2F0dHJpYiAqYXR0cmliLAogCSAqIEN1cnJlbnRseSBoYXJkY29kZWQgdG8gMSBp biBMaW51eC9TQ1NJIGNvZGUuLgogCSAqLwogCWF0dHJpYi0+bWF4X3VubWFwX2Jsb2NrX2Rlc2Nf Y291bnQgPSAxOwotCWF0dHJpYi0+dW5tYXBfZ3JhbnVsYXJpdHkgPSBxLT5saW1pdHMuZGlzY2Fy ZF9ncmFudWxhcml0eSAvIGJsb2NrX3NpemU7CisJYXR0cmliLT51bm1hcF9ncmFudWxhcml0eSA9 IGJkZXZfZGlzY2FyZF9ncmFudWxhcml0eShiZGV2KSAvIGJsb2NrX3NpemU7CiAJYXR0cmliLT51 bm1hcF9ncmFudWxhcml0eV9hbGlnbm1lbnQgPQogCQliZGV2X2Rpc2NhcmRfYWxpZ25tZW50KGJk ZXYpIC8gYmxvY2tfc2l6ZTsKIAlyZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2lv Y3RsLmMgYi9mcy9idHJmcy9pb2N0bC5jCmluZGV4IDA5NmJiMGRhMDNmMWMuLjcwNzY1ZDU5NjE2 YTUgMTAwNjQ0Ci0tLSBhL2ZzL2J0cmZzL2lvY3RsLmMKKysrIGIvZnMvYnRyZnMvaW9jdGwuYwpA QCAtNDY4LDcgKzQ2OCw2IEBAIHN0YXRpYyBub2lubGluZSBpbnQgYnRyZnNfaW9jdGxfZml0cmlt KHN0cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZvLAogCQkJCQl2b2lkIF9fdXNlciAqYXJnKQog ewogCXN0cnVjdCBidHJmc19kZXZpY2UgKmRldmljZTsKLQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAq cTsKIAlzdHJ1Y3QgZnN0cmltX3JhbmdlIHJhbmdlOwogCXU2NCBtaW5sZW4gPSBVTExPTkdfTUFY OwogCXU2NCBudW1fZGV2aWNlcyA9IDA7CkBAIC00OTgsMTQgKzQ5NywxMSBAQCBzdGF0aWMgbm9p bmxpbmUgaW50IGJ0cmZzX2lvY3RsX2ZpdHJpbShzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5m bywKIAlyY3VfcmVhZF9sb2NrKCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoZGV2aWNlLCAm ZnNfaW5mby0+ZnNfZGV2aWNlcy0+ZGV2aWNlcywKIAkJCQlkZXZfbGlzdCkgewotCQlpZiAoIWRl dmljZS0+YmRldikKKwkJaWYgKCFkZXZpY2UtPmJkZXYgfHwgIWJkZXZfbWF4X2Rpc2NhcmRfc2Vj dG9ycyhkZXZpY2UtPmJkZXYpKQogCQkJY29udGludWU7Ci0JCXEgPSBiZGV2X2dldF9xdWV1ZShk ZXZpY2UtPmJkZXYpOwotCQlpZiAoYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGRldmljZS0+YmRl dikpIHsKLQkJCW51bV9kZXZpY2VzKys7Ci0JCQltaW5sZW4gPSBtaW5fdCh1NjQsIHEtPmxpbWl0 cy5kaXNjYXJkX2dyYW51bGFyaXR5LAotCQkJCSAgICAgbWlubGVuKTsKLQkJfQorCQludW1fZGV2 aWNlcysrOworCQltaW5sZW4gPSBtaW5fdCh1NjQsIGJkZXZfZGlzY2FyZF9ncmFudWxhcml0eShk ZXZpY2UtPmJkZXYpLAorCQkJCSAgICBtaW5sZW4pOwogCX0KIAlyY3VfcmVhZF91bmxvY2soKTsK IApkaWZmIC0tZ2l0IGEvZnMvZXhmYXQvZmlsZS5jIGIvZnMvZXhmYXQvZmlsZS5jCmluZGV4IDc2 NWU0ZjYzZGQxOGQuLjIwZDRlNDdmNTdhYjIgMTAwNjQ0Ci0tLSBhL2ZzL2V4ZmF0L2ZpbGUuYwor KysgYi9mcy9leGZhdC9maWxlLmMKQEAgLTM1MSw3ICszNTEsNiBAQCBpbnQgZXhmYXRfc2V0YXR0 cihzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm1udF91c2VybnMsIHN0cnVjdCBkZW50cnkgKmRlbnRy eSwKIAogc3RhdGljIGludCBleGZhdF9pb2N0bF9maXRyaW0oc3RydWN0IGlub2RlICppbm9kZSwg dW5zaWduZWQgbG9uZyBhcmcpCiB7Ci0Jc3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBiZGV2X2dl dF9xdWV1ZShpbm9kZS0+aV9zYi0+c19iZGV2KTsKIAlzdHJ1Y3QgZnN0cmltX3JhbmdlIHJhbmdl OwogCWludCByZXQgPSAwOwogCkBAIC0zNjUsNyArMzY0LDcgQEAgc3RhdGljIGludCBleGZhdF9p b2N0bF9maXRyaW0oc3RydWN0IGlub2RlICppbm9kZSwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCXJl dHVybiAtRUZBVUxUOwogCiAJcmFuZ2UubWlubGVuID0gbWF4X3QodW5zaWduZWQgaW50LCByYW5n ZS5taW5sZW4sCi0JCQkJcS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkpOworCQkJCWJkZXZf ZGlzY2FyZF9ncmFudWxhcml0eShpbm9kZS0+aV9zYi0+c19iZGV2KSk7CiAKIAlyZXQgPSBleGZh dF90cmltX2ZzKGlub2RlLCAmcmFuZ2UpOwogCWlmIChyZXQgPCAwKQpkaWZmIC0tZ2l0IGEvZnMv ZXh0NC9tYmFsbG9jLmMgYi9mcy9leHQ0L21iYWxsb2MuYwppbmRleCBjMzY2OGM5NzdjZDk5Li42 ZDE4MjA1MzZkODhkIDEwMDY0NAotLS0gYS9mcy9leHQ0L21iYWxsb2MuYworKysgYi9mcy9leHQ0 L21iYWxsb2MuYwpAQCAtNjQ1NSw3ICs2NDU1LDcgQEAgZXh0NF90cmltX2FsbF9mcmVlKHN0cnVj dCBzdXBlcl9ibG9jayAqc2IsIGV4dDRfZ3JvdXBfdCBncm91cCwKICAqLwogaW50IGV4dDRfdHJp bV9mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnN0cmltX3JhbmdlICpyYW5nZSkK IHsKLQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKHNiLT5zX2JkZXYp OworCXVuc2lnbmVkIGludCBkaXNjYXJkX2dyYW51bGFyaXR5ID0gYmRldl9kaXNjYXJkX2dyYW51 bGFyaXR5KHNiLT5zX2JkZXYpOwogCXN0cnVjdCBleHQ0X2dyb3VwX2luZm8gKmdycDsKIAlleHQ0 X2dyb3VwX3QgZ3JvdXAsIGZpcnN0X2dyb3VwLCBsYXN0X2dyb3VwOwogCWV4dDRfZ3JwYmxrX3Qg Y250ID0gMCwgZmlyc3RfY2x1c3RlciwgbGFzdF9jbHVzdGVyOwpAQCAtNjQ3NSw5ICs2NDc1LDkg QEAgaW50IGV4dDRfdHJpbV9mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnN0cmlt X3JhbmdlICpyYW5nZSkKIAkgICAgcmFuZ2UtPmxlbiA8IHNiLT5zX2Jsb2Nrc2l6ZSkKIAkJcmV0 dXJuIC1FSU5WQUw7CiAJLyogTm8gcG9pbnQgdG8gdHJ5IHRvIHRyaW0gbGVzcyB0aGFuIGRpc2Nh cmQgZ3JhbnVsYXJpdHkgKi8KLQlpZiAocmFuZ2UtPm1pbmxlbiA8IHEtPmxpbWl0cy5kaXNjYXJk X2dyYW51bGFyaXR5KSB7CisJaWYgKHJhbmdlLT5taW5sZW4gPCBkaXNjYXJkX2dyYW51bGFyaXR5 KSB7CiAJCW1pbmxlbiA9IEVYVDRfTlVNX0IyQyhFWFQ0X1NCKHNiKSwKLQkJCXEtPmxpbWl0cy5k aXNjYXJkX2dyYW51bGFyaXR5ID4+IHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzKTsKKwkJCQlkaXNjYXJk X2dyYW51bGFyaXR5ID4+IHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzKTsKIAkJaWYgKG1pbmxlbiA+IEVY VDRfQ0xVU1RFUlNfUEVSX0dST1VQKHNiKSkKIAkJCWdvdG8gb3V0OwogCX0KZGlmZiAtLWdpdCBh L2ZzL2YyZnMvZmlsZS5jIGIvZnMvZjJmcy9maWxlLmMKaW5kZXggNWI4OWFmMGYyN2YwNS4uODA1 M2Q5OWYzOTIwYiAxMDA2NDQKLS0tIGEvZnMvZjJmcy9maWxlLmMKKysrIGIvZnMvZjJmcy9maWxl LmMKQEAgLTIyODUsNyArMjI4NSw2IEBAIHN0YXRpYyBpbnQgZjJmc19pb2NfZml0cmltKHN0cnVj dCBmaWxlICpmaWxwLCB1bnNpZ25lZCBsb25nIGFyZykKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2Rl ID0gZmlsZV9pbm9kZShmaWxwKTsKIAlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlf c2I7Ci0Jc3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBiZGV2X2dldF9xdWV1ZShzYi0+c19iZGV2 KTsKIAlzdHJ1Y3QgZnN0cmltX3JhbmdlIHJhbmdlOwogCWludCByZXQ7CiAKQEAgLTIzMDQsNyAr MjMwMyw3IEBAIHN0YXRpYyBpbnQgZjJmc19pb2NfZml0cmltKHN0cnVjdCBmaWxlICpmaWxwLCB1 bnNpZ25lZCBsb25nIGFyZykKIAkJcmV0dXJuIHJldDsKIAogCXJhbmdlLm1pbmxlbiA9IG1heCgo dW5zaWduZWQgaW50KXJhbmdlLm1pbmxlbiwKLQkJCQlxLT5saW1pdHMuZGlzY2FyZF9ncmFudWxh cml0eSk7CisJCQkgICBiZGV2X2Rpc2NhcmRfZ3JhbnVsYXJpdHkoc2ItPnNfYmRldikpOwogCXJl dCA9IGYyZnNfdHJpbV9mcyhGMkZTX1NCKHNiKSwgJnJhbmdlKTsKIAltbnRfZHJvcF93cml0ZV9m aWxlKGZpbHApOwogCWlmIChyZXQgPCAwKQpkaWZmIC0tZ2l0IGEvZnMvZmF0L2ZpbGUuYyBiL2Zz L2ZhdC9maWxlLmMKaW5kZXggZTRjN2QxMGU4MDEyOS4uYmY5MWY5NzdkZWJlYSAxMDA2NDQKLS0t IGEvZnMvZmF0L2ZpbGUuYworKysgYi9mcy9mYXQvZmlsZS5jCkBAIC0xMjcsNyArMTI3LDYgQEAg c3RhdGljIGludCBmYXRfaW9jdGxfZml0cmltKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVk IGxvbmcgYXJnKQogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBpbm9kZS0+aV9zYjsKIAlzdHJ1 Y3QgZnN0cmltX3JhbmdlIF9fdXNlciAqdXNlcl9yYW5nZTsKIAlzdHJ1Y3QgZnN0cmltX3Jhbmdl IHJhbmdlOwotCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRfcXVldWUoc2ItPnNf YmRldik7CiAJaW50IGVycjsKIAogCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKQEAgLTE0 MSw3ICsxNDAsNyBAQCBzdGF0aWMgaW50IGZhdF9pb2N0bF9maXRyaW0oc3RydWN0IGlub2RlICpp bm9kZSwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCXJldHVybiAtRUZBVUxUOwogCiAJcmFuZ2UubWlu bGVuID0gbWF4X3QodW5zaWduZWQgaW50LCByYW5nZS5taW5sZW4sCi0JCQkgICAgIHEtPmxpbWl0 cy5kaXNjYXJkX2dyYW51bGFyaXR5KTsKKwkJCSAgICAgYmRldl9kaXNjYXJkX2dyYW51bGFyaXR5 KHNiLT5zX2JkZXYpKTsKIAogCWVyciA9IGZhdF90cmltX2ZzKGlub2RlLCAmcmFuZ2UpOwogCWlm IChlcnIgPCAwKQpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9yZ3JwLmMgYi9mcy9nZnMyL3JncnAuYwpp bmRleCA3ZjIwYWM5MTMzYmM2Li42ZDI2YmI1MjU0ODQ0IDEwMDY0NAotLS0gYS9mcy9nZnMyL3Jn cnAuYworKysgYi9mcy9nZnMyL3JncnAuYwpAQCAtMTM4Niw3ICsxMzg2LDcgQEAgaW50IGdmczJf Zml0cmltKHN0cnVjdCBmaWxlICpmaWxwLCB2b2lkIF9fdXNlciAqYXJncCkKIHsKIAlzdHJ1Y3Qg aW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxwKTsKIAlzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCA9 IEdGUzJfU0IoaW5vZGUpOwotCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRfcXVl dWUoc2RwLT5zZF92ZnMtPnNfYmRldik7CisJc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiA9IHNk cC0+c2RfdmZzLT5zX2JkZXY7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKIAlzdHJ1Y3QgZ2Zz Ml9yZ3JwZCAqcmdkOwogCXN0cnVjdCBnZnMyX3JncnBkICpyZ2RfZW5kOwpAQCAtMTQwNSw3ICsx NDA1LDcgQEAgaW50IGdmczJfZml0cmltKHN0cnVjdCBmaWxlICpmaWxwLCB2b2lkIF9fdXNlciAq YXJncCkKIAlpZiAoIXRlc3RfYml0KFNERl9KT1VSTkFMX0xJVkUsICZzZHAtPnNkX2ZsYWdzKSkK IAkJcmV0dXJuIC1FUk9GUzsKIAotCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHNkcC0+ c2RfdmZzLT5zX2JkZXYpKQorCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGJkZXYpKQog CQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAlpZiAoY29weV9mcm9tX3VzZXIoJnIsIGFyZ3AsIHNp emVvZihyKSkpCkBAIC0xNDE4LDggKzE0MTgsNyBAQCBpbnQgZ2ZzMl9maXRyaW0oc3RydWN0IGZp bGUgKmZpbHAsIHZvaWQgX191c2VyICphcmdwKQogCXN0YXJ0ID0gci5zdGFydCA+PiBic19zaGlm dDsKIAllbmQgPSBzdGFydCArIChyLmxlbiA+PiBic19zaGlmdCk7CiAJbWlubGVuID0gbWF4X3Qo dTY0LCByLm1pbmxlbiwgc2RwLT5zZF9zYi5zYl9ic2l6ZSk7Ci0JbWlubGVuID0gbWF4X3QodTY0 LCBtaW5sZW4sCi0JCSAgICAgICBxLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSkgPj4gYnNf c2hpZnQ7CisJbWlubGVuID0gbWF4X3QodTY0LCBtaW5sZW4sIGJkZXZfZGlzY2FyZF9ncmFudWxh cml0eShiZGV2KSkgPj4gYnNfc2hpZnQ7CiAKIAlpZiAoZW5kIDw9IHN0YXJ0IHx8IG1pbmxlbiA+ IHNkcC0+c2RfbWF4X3JnX2RhdGEpCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZnMv amZzL2lvY3RsLmMgYi9mcy9qZnMvaW9jdGwuYwppbmRleCAzNTdhZTZlNWMzNmVjLi4xZTdiMTc3 ZWNlNjA1IDEwMDY0NAotLS0gYS9mcy9qZnMvaW9jdGwuYworKysgYi9mcy9qZnMvaW9jdGwuYwpA QCAtMTEwLDcgKzExMCw2IEBAIGxvbmcgamZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNp Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIAljYXNlIEZJVFJJTToKIAl7CiAJCXN0 cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBpbm9kZS0+aV9zYjsKLQkJc3RydWN0IHJlcXVlc3RfcXVl dWUgKnEgPSBiZGV2X2dldF9xdWV1ZShzYi0+c19iZGV2KTsKIAkJc3RydWN0IGZzdHJpbV9yYW5n ZSByYW5nZTsKIAkJczY0IHJldCA9IDA7CiAKQEAgLTEyNyw3ICsxMjYsNyBAQCBsb25nIGpmc19p b2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBh cmcpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAogCQlyYW5nZS5taW5sZW4gPSBtYXhfdCh1bnNpZ25l ZCBpbnQsIHJhbmdlLm1pbmxlbiwKLQkJCXEtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5KTsK KwkJCQkgICAgIGJkZXZfZGlzY2FyZF9ncmFudWxhcml0eShzYi0+c19iZGV2KSk7CiAKIAkJcmV0 ID0gamZzX2lvY190cmltKGlub2RlLCAmcmFuZ2UpOwogCQlpZiAocmV0IDwgMCkKZGlmZiAtLWdp dCBhL2ZzL25pbGZzMi9pb2N0bC5jIGIvZnMvbmlsZnMyL2lvY3RsLmMKaW5kZXggNTJiNzNmNTU4 ZmNiMS4uODdlMTAwNGI2MDZkMiAxMDA2NDQKLS0tIGEvZnMvbmlsZnMyL2lvY3RsLmMKKysrIGIv ZnMvbmlsZnMyL2lvY3RsLmMKQEAgLTEwNTIsNyArMTA1Miw2IEBAIHN0YXRpYyBpbnQgbmlsZnNf aW9jdGxfcmVzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwLAogc3Rh dGljIGludCBuaWxmc19pb2N0bF90cmltX2ZzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHZvaWQgX191 c2VyICphcmdwKQogewogCXN0cnVjdCB0aGVfbmlsZnMgKm5pbGZzID0gaW5vZGUtPmlfc2ItPnNf ZnNfaW5mbzsKLQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKG5pbGZz LT5uc19iZGV2KTsKIAlzdHJ1Y3QgZnN0cmltX3JhbmdlIHJhbmdlOwogCWludCByZXQ7CiAKQEAg LTEwNjUsNyArMTA2NCw4IEBAIHN0YXRpYyBpbnQgbmlsZnNfaW9jdGxfdHJpbV9mcyhzdHJ1Y3Qg aW5vZGUgKmlub2RlLCB2b2lkIF9fdXNlciAqYXJncCkKIAlpZiAoY29weV9mcm9tX3VzZXIoJnJh bmdlLCBhcmdwLCBzaXplb2YocmFuZ2UpKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKLQlyYW5nZS5t aW5sZW4gPSBtYXhfdCh1NjQsIHJhbmdlLm1pbmxlbiwgcS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVs YXJpdHkpOworCXJhbmdlLm1pbmxlbiA9IG1heF90KHU2NCwgcmFuZ2UubWlubGVuLAorCQkJICAg ICBiZGV2X2Rpc2NhcmRfZ3JhbnVsYXJpdHkobmlsZnMtPm5zX2JkZXYpKTsKIAogCWRvd25fcmVh ZCgmbmlsZnMtPm5zX3NlZ2N0b3Jfc2VtKTsKIAlyZXQgPSBuaWxmc19zdWZpbGVfdHJpbV9mcyhu aWxmcy0+bnNfc3VmaWxlLCAmcmFuZ2UpOwpkaWZmIC0tZ2l0IGEvZnMvbnRmczMvZmlsZS5jIGIv ZnMvbnRmczMvZmlsZS5jCmluZGV4IGU3NjMyMzYxNjkzMzEuLjE1ODA2ZWVhZTIxN2EgMTAwNjQ0 Ci0tLSBhL2ZzL250ZnMzL2ZpbGUuYworKysgYi9mcy9udGZzMy9maWxlLmMKQEAgLTIyLDcgKzIy LDYgQEAgc3RhdGljIGludCBudGZzX2lvY3RsX2ZpdHJpbShzdHJ1Y3QgbnRmc19zYl9pbmZvICpz YmksIHVuc2lnbmVkIGxvbmcgYXJnKQogewogCXN0cnVjdCBmc3RyaW1fcmFuZ2UgX191c2VyICp1 c2VyX3JhbmdlOwogCXN0cnVjdCBmc3RyaW1fcmFuZ2UgcmFuZ2U7Ci0Jc3RydWN0IHJlcXVlc3Rf cXVldWUgKnEgPSBiZGV2X2dldF9xdWV1ZShzYmktPnNiLT5zX2JkZXYpOwogCWludCBlcnI7CiAK IAlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpCkBAIC0zNSw3ICszNCw4IEBAIHN0YXRpYyBp bnQgbnRmc19pb2N0bF9maXRyaW0oc3RydWN0IG50ZnNfc2JfaW5mbyAqc2JpLCB1bnNpZ25lZCBs b25nIGFyZykKIAlpZiAoY29weV9mcm9tX3VzZXIoJnJhbmdlLCB1c2VyX3JhbmdlLCBzaXplb2Yo cmFuZ2UpKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKLQlyYW5nZS5taW5sZW4gPSBtYXhfdCh1MzIs IHJhbmdlLm1pbmxlbiwgcS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkpOworCXJhbmdlLm1p bmxlbiA9IG1heF90KHUzMiwgcmFuZ2UubWlubGVuLAorCQkJICAgICBiZGV2X2Rpc2NhcmRfZ3Jh bnVsYXJpdHkoc2JpLT5zYi0+c19iZGV2KSk7CiAKIAllcnIgPSBudGZzX3RyaW1fZnMoc2JpLCAm cmFuZ2UpOwogCWlmIChlcnIgPCAwKQpkaWZmIC0tZ2l0IGEvZnMvbnRmczMvc3VwZXIuYyBiL2Zz L250ZnMzL3N1cGVyLmMKaW5kZXggYzczNDA4NWJjY2U0YS4uNWYyZTQxNGNmYTc5YiAxMDA2NDQK LS0tIGEvZnMvbnRmczMvc3VwZXIuYworKysgYi9mcy9udGZzMy9zdXBlci5jCkBAIC04ODIsNyAr ODgyLDYgQEAgc3RhdGljIGludCBudGZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpz Yiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKQogCWludCBlcnI7CiAJc3RydWN0IG50ZnNfc2JfaW5m byAqc2JpID0gc2ItPnNfZnNfaW5mbzsKIAlzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2ID0gc2It PnNfYmRldjsKLQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcnE7CiAJc3RydWN0IGlub2RlICppbm9k ZTsKIAlzdHJ1Y3QgbnRmc19pbm9kZSAqbmk7CiAJc2l6ZV90IGksIHR0OwpAQCAtOTEyLDkgKzkx MSw4IEBAIHN0YXRpYyBpbnQgbnRmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2Is IHN0cnVjdCBmc19jb250ZXh0ICpmYykKIAkJZ290byBvdXQ7CiAJfQogCi0JcnEgPSBiZGV2X2dl dF9xdWV1ZShiZGV2KTsKLQlpZiAoYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGJkZXYpICYmIHJx LT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSkgewotCQlzYmktPmRpc2NhcmRfZ3JhbnVsYXJp dHkgPSBycS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHk7CisJaWYgKGJkZXZfbWF4X2Rpc2Nh cmRfc2VjdG9ycyhiZGV2KSAmJiBiZGV2X2Rpc2NhcmRfZ3JhbnVsYXJpdHkoYmRldikpIHsKKwkJ c2JpLT5kaXNjYXJkX2dyYW51bGFyaXR5ID0gYmRldl9kaXNjYXJkX2dyYW51bGFyaXR5KGJkZXYp OwogCQlzYmktPmRpc2NhcmRfZ3JhbnVsYXJpdHlfbWFza19pbnYgPQogCQkJfih1NjQpKHNiaS0+ ZGlzY2FyZF9ncmFudWxhcml0eSAtIDEpOwogCX0KZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2lvY3Rs LmMgYi9mcy9vY2ZzMi9pb2N0bC5jCmluZGV4IDliNzhlZjEwM2FkYTYuLmFmZDU0ZWM2NjEwMzAg MTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2lvY3RsLmMKKysrIGIvZnMvb2NmczIvaW9jdGwuYwpAQCAt OTAzLDcgKzkwMyw2IEBAIGxvbmcgb2NmczJfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2ln bmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCWNhc2UgRklUUklNOgogCXsKIAkJc3Ry dWN0IHN1cGVyX2Jsb2NrICpzYiA9IGlub2RlLT5pX3NiOwotCQlzdHJ1Y3QgcmVxdWVzdF9xdWV1 ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKHNiLT5zX2JkZXYpOwogCQlzdHJ1Y3QgZnN0cmltX3Jhbmdl IHJhbmdlOwogCQlpbnQgcmV0ID0gMDsKIApAQCAtOTE2LDcgKzkxNSw3IEBAIGxvbmcgb2NmczJf aW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcg YXJnKQogCQlpZiAoY29weV9mcm9tX3VzZXIoJnJhbmdlLCBhcmdwLCBzaXplb2YocmFuZ2UpKSkK IAkJCXJldHVybiAtRUZBVUxUOwogCi0JCXJhbmdlLm1pbmxlbiA9IG1heF90KHU2NCwgcS0+bGlt aXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHksCisJCXJhbmdlLm1pbmxlbiA9IG1heF90KHU2NCwgYmRl dl9kaXNjYXJkX2dyYW51bGFyaXR5KHNiLT5zX2JkZXYpLAogCQkJCSAgICAgcmFuZ2UubWlubGVu KTsKIAkJcmV0ID0gb2NmczJfdHJpbV9mcyhzYiwgJnJhbmdlKTsKIAkJaWYgKHJldCA8IDApCmRp ZmYgLS1naXQgYS9mcy94ZnMveGZzX2Rpc2NhcmQuYyBiL2ZzL3hmcy94ZnNfZGlzY2FyZC5jCmlu ZGV4IGE0ZTY2MDlkNjE2YjcuLmUyYWRhMTE1YzIzZjkgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNf ZGlzY2FyZC5jCisrKyBiL2ZzL3hmcy94ZnNfZGlzY2FyZC5jCkBAIC0xNTIsOCArMTUyLDggQEAg eGZzX2lvY190cmltKAogCXN0cnVjdCB4ZnNfbW91bnQJCSptcCwKIAlzdHJ1Y3QgZnN0cmltX3Jh bmdlIF9fdXNlcgkqdXJhbmdlKQogewotCXN0cnVjdCByZXF1ZXN0X3F1ZXVlCSpxID0gYmRldl9n ZXRfcXVldWUobXAtPm1fZGRldl90YXJncC0+YnRfYmRldik7Ci0JdW5zaWduZWQgaW50CQlncmFu dWxhcml0eSA9IHEtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5OworCXVuc2lnbmVkIGludAkJ Z3JhbnVsYXJpdHkgPQorCQliZGV2X2Rpc2NhcmRfZ3JhbnVsYXJpdHkobXAtPm1fZGRldl90YXJn cC0+YnRfYmRldik7CiAJc3RydWN0IGZzdHJpbV9yYW5nZQlyYW5nZTsKIAl4ZnNfZGFkZHJfdAkJ c3RhcnQsIGVuZCwgbWlubGVuOwogCXhmc19hZ251bWJlcl90CQlzdGFydF9hZ25vLCBlbmRfYWdu bywgYWdubzsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYmxrZGV2LmggYi9pbmNsdWRlL2xp bnV4L2Jsa2Rldi5oCmluZGV4IDc2N2FiMjJlMTA1MmEuLmYxY2Y1NTdlYTIwZWYgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvYmxrZGV2LmgKKysrIGIvaW5jbHVkZS9saW51eC9ibGtkZXYuaApA QCAtMTI1Nyw2ICsxMjU3LDExIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJkZXZfbWF4 X2Rpc2NhcmRfc2VjdG9ycyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQogCXJldHVybiBiZGV2 X2dldF9xdWV1ZShiZGV2KS0+bGltaXRzLm1heF9kaXNjYXJkX3NlY3RvcnM7CiB9CiAKK3N0YXRp YyBpbmxpbmUgdW5zaWduZWQgaW50IGJkZXZfZGlzY2FyZF9ncmFudWxhcml0eShzdHJ1Y3QgYmxv Y2tfZGV2aWNlICpiZGV2KQoreworCXJldHVybiBiZGV2X2dldF9xdWV1ZShiZGV2KS0+bGltaXRz LmRpc2NhcmRfZ3JhbnVsYXJpdHk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJk ZXZfd3JpdGVfemVyb2VzX3NlY3RvcnMoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldikKIHsKIAlz dHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKGJkZXYpOwotLSAKMi4zMC4y CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4 LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9y Z2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4 LWYyZnMtZGV2ZWwK