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 44DBAC4167D for ; Sat, 9 Apr 2022 04:52:47 +0000 (UTC) Received: from [127.0.0.1] (helo=sfs-ml-1.v29.lw.sourceforge.com) by sfs-ml-1.v29.lw.sourceforge.com with esmtp (Exim 4.94.2) (envelope-from ) id 1nd35a-0002kK-Ki; Sat, 09 Apr 2022 04:52:45 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-1.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nd35Y-0002jr-Lv; Sat, 09 Apr 2022 04:52:43 +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=lhrI7Npx42D1AuR/cMyqCoOjrZczBcvFSvpyDVoTBuM=; b=dThtKU8LkN1PZzpAvWeBKP5LG+ 0rINQNbWnzfd8wr9wFQf1mLd9TXf+3bOO/0IOrixNrmfkjZY+siysxOeXy+S42JowUgQ0Ro8Y4PCA PhZo+bxb1wVAv5wjGmokzmkpJ5uRcNwe8zFaJP1bSV7rtcUP41z5VEU9onB6EHYyILDU=; 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=lhrI7Npx42D1AuR/cMyqCoOjrZczBcvFSvpyDVoTBuM=; b=lFdivjdnc9a3qqSiOw7R++fRwj sZkMXNc0gjK4SqI+Jy9Iszq17a9f4kUOiX7/UupCiFeJux7GUzNVwnm9Llt34i63UAAODsuIjDtYk nYeeVNC5mG2ahyFXu8AKEHYbyADULUyUEGY7Hj6Q8A6ff9n+s9oE4qgwDYBftiEaLEmA=; 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 1nd35U-0001BS-6q; Sat, 09 Apr 2022 04:52:43 +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=lhrI7Npx42D1AuR/cMyqCoOjrZczBcvFSvpyDVoTBuM=; b=Sjapi7eI4Jh86xiPLIzL2g0V1J mjcOCE9buuik3xQceo12VbO7h4X1i/S8+EGUcf1u3xFqviUr0IXMxs/3Qij4rUA/BVYuftFH0B+QL 15jKW5DOWLXn3fZpnfOdPjT+8sq7nSyHdBxT6coOufp9mqpgHjMXvI28DvNWovru926kmp5e+ex7c /jYKn9KuBgqzsQrl/W/fJF4dNs6aceGzPpdLj4fBSiNAx7tFXGHLE6PclN+/DWpkJQW8eCCHQlhYf t5bRpzLnnxe4LGnXML4qPk3asM8WCBUpA/jrjYRG0MkY4Dc8Ud6n31tOOsdykMc3zj9OSK9AysXdb fD5Kz47g==; 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 1nd354-0021dK-Sw; Sat, 09 Apr 2022 04:52:15 +0000 From: Christoph Hellwig To: Jens Axboe Date: Sat, 9 Apr 2022 06:50:40 +0200 Message-Id: <20220409045043.23593-25-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: 1nd35U-0001BS-6q Subject: [f2fs-dev] [PATCH 24/27] block: remove QUEUE_FLAG_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, ceph-devel@vger.kernel.org, Coly Li , 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 SnVzdCB1c2UgYSBub24temVybyBtYXhfZGlzY2FyZF9zZWN0b3JzIGFzIGFuIGluZGljYXRvciBm b3IgZGlzY2FyZApzdXBwb3J0LCBzaW1pbGFyIHRvIHdoYXQgaXMgZG9uZSBmb3Igd3JpdGUgemVy b2VzLgoKVGhlIG9ubHkgcGxhY2VzIHdoZXJlIG5lZWRzIHNwZWNpYWwgYXR0ZW50aW9uIGlzIHRo ZSBSQUlENSBkcml2ZXIsCndoaWNoIG11c3QgY2xlYXIgZGlzY2FyZCBzdXBwb3J0IGZvciBzZWN1 cml0eSByZWFzb25zIGJ5IGRlZmF1bHQsCmV2ZW4gaWYgdGhlIGRlZmF1bHQgc3RhY2tpbmcgcnVs ZXMgd291bGQgYWxsb3cgZm9yIGl0LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIEhlbGx3aWcg PGhjaEBsc3QuZGU+ClJldmlld2VkLWJ5OiBNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRl cnNlbkBvcmFjbGUuY29tPgpBY2tlZC1ieTogQ2hyaXN0b3BoIELDtmhtd2FsZGVyIDxjaHJpc3Rv cGguYm9laG13YWxkZXJAbGluYml0LmNvbT4gW2J0cmZzXQpBY2tlZC1ieTogQ29seSBMaSA8Y29s eWxpQHN1c2UuZGU+IFtiY2FjaGVdCi0tLQogYXJjaC91bS9kcml2ZXJzL3ViZF9rZXJuLmMgICAg ICAgICAgfCAgMiAtLQogYmxvY2svYmxrLWNvcmUuYyAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogYmxvY2svYmxrLWxpYi5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogYmxvY2svYmxr LW1xLWRlYnVnZnMuYyAgICAgICAgICAgICAgfCAgMSAtCiBibG9jay9pb2N0bC5jICAgICAgICAg ICAgICAgICAgICAgICB8ICAzICstLQogZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbWFpbi5jICAg ICAgfCAgMiArLQogZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYyAgICAgICAgfCAxOSArKy0t LS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jICB8ICAz ICstLQogZHJpdmVycy9ibG9jay9sb29wLmMgICAgICAgICAgICAgICAgfCAxMSArKystLS0tLS0t LQogZHJpdmVycy9ibG9jay9uYmQuYyAgICAgICAgICAgICAgICAgfCAgNSArLS0tLQogZHJpdmVy cy9ibG9jay9udWxsX2Jsay9tYWluLmMgICAgICAgfCAgMSAtCiBkcml2ZXJzL2Jsb2NrL3JiZC5j ICAgICAgICAgICAgICAgICB8ICAxIC0KIGRyaXZlcnMvYmxvY2svcm5iZC9ybmJkLWNsdC5jICAg ICAgIHwgIDIgLS0KIGRyaXZlcnMvYmxvY2svcm5iZC9ybmJkLXNydi1kZXYuaCAgIHwgIDMgLS0t CiBkcml2ZXJzL2Jsb2NrL3ZpcnRpb19ibGsuYyAgICAgICAgICB8ICAyIC0tCiBkcml2ZXJzL2Js b2NrL3hlbi1ibGtiYWNrL3hlbmJ1cy5jICB8ICAyICstCiBkcml2ZXJzL2Jsb2NrL3hlbi1ibGtm cm9udC5jICAgICAgICB8ICAyIC0tCiBkcml2ZXJzL2Jsb2NrL3pyYW0venJhbV9kcnYuYyAgICAg ICB8ICAxIC0KIGRyaXZlcnMvbWQvYmNhY2hlL3JlcXVlc3QuYyAgICAgICAgIHwgIDQgKystLQog ZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIuYyAgICAgICAgICAgfCAgMyArLS0KIGRyaXZlcnMvbWQv YmNhY2hlL3N5c2ZzLmMgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWQvZG0tY2FjaGUtdGFy Z2V0LmMgICAgICAgIHwgIDkgKy0tLS0tLS0tCiBkcml2ZXJzL21kL2RtLWNsb25lLXRhcmdldC5j ICAgICAgICB8ICA5ICstLS0tLS0tLQogZHJpdmVycy9tZC9kbS1sb2ctd3JpdGVzLmMgICAgICAg ICAgfCAgMyArLS0KIGRyaXZlcnMvbWQvZG0tcmFpZC5jICAgICAgICAgICAgICAgIHwgIDkgKyst LS0tLS0tCiBkcml2ZXJzL21kL2RtLXRhYmxlLmMgICAgICAgICAgICAgICB8ICA5ICsrLS0tLS0t LQogZHJpdmVycy9tZC9kbS10aGluLmMgICAgICAgICAgICAgICAgfCAxMSArLS0tLS0tLS0tLQog ZHJpdmVycy9tZC9kbS5jICAgICAgICAgICAgICAgICAgICAgfCAgMyArLS0KIGRyaXZlcnMvbWQv bWQtbGluZWFyLmMgICAgICAgICAgICAgIHwgMTEgKy0tLS0tLS0tLS0KIGRyaXZlcnMvbWQvcmFp ZDAuYyAgICAgICAgICAgICAgICAgIHwgIDcgLS0tLS0tLQogZHJpdmVycy9tZC9yYWlkMS5jICAg ICAgICAgICAgICAgICAgfCAxNiArLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL21kL3JhaWQxMC5j ICAgICAgICAgICAgICAgICB8IDE4ICsrLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9tZC9yYWlk NS1jYWNoZS5jICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9tZC9yYWlkNS5jICAgICAgICAg ICAgICAgICAgfCAxMiArKysrLS0tLS0tLS0KIGRyaXZlcnMvbW1jL2NvcmUvcXVldWUuYyAgICAg ICAgICAgIHwgIDEgLQogZHJpdmVycy9tdGQvbXRkX2Jsa2RldnMuYyAgICAgICAgICAgfCAgMSAt CiBkcml2ZXJzL252bWUvaG9zdC9jb3JlLmMgICAgICAgICAgICB8ICA2ICsrLS0tLQogZHJpdmVy cy9zMzkwL2Jsb2NrL2Rhc2RfZmJhLmMgICAgICAgfCAgMSAtCiBkcml2ZXJzL3Njc2kvc2QuYyAg ICAgICAgICAgICAgICAgICB8ICAyIC0tCiBkcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV9kZXZp Y2UuYyB8ICAyICstCiBmcy9idHJmcy9leHRlbnQtdHJlZS5jICAgICAgICAgICAgICB8ICA0ICsr LS0KIGZzL2J0cmZzL2lvY3RsLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL2V4ZmF0 L2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL2V4ZmF0L3N1cGVyLmMgICAg ICAgICAgICAgICAgICAgIHwgMTAgKysrLS0tLS0tLQogZnMvZXh0NC9pb2N0bC5jICAgICAgICAg ICAgICAgICAgICAgfCAxMCArKystLS0tLS0tCiBmcy9leHQ0L3N1cGVyLmMgICAgICAgICAgICAg ICAgICAgICB8IDEwICsrKy0tLS0tLS0KIGZzL2YyZnMvZjJmcy5oICAgICAgICAgICAgICAgICAg ICAgIHwgIDMgKy0tCiBmcy9mYXQvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBmcy9mYXQvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKy0tLS0tLS0KIGZz L2dmczIvcmdycC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL2piZDIvam91cm5h bC5jICAgICAgICAgICAgICAgICAgIHwgIDcgKystLS0tLQogZnMvamZzL2lvY3RsLmMgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogZnMvamZzL3N1cGVyLmMgICAgICAgICAgICAgICAgICAg ICAgfCAgOCArKy0tLS0tLQogZnMvbmlsZnMyL2lvY3RsLmMgICAgICAgICAgICAgICAgICAgfCAg MiArLQogZnMvbnRmczMvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMvbnRm czMvc3VwZXIuYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMvb2NmczIvaW9jdGwuYyAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMveGZzL3hmc19kaXNjYXJkLmMgICAgICAgICAg ICAgICAgfCAgMiArLQogZnMveGZzL3hmc19zdXBlci5jICAgICAgICAgICAgICAgICAgfCAxMiAr KysrLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvYmxrZGV2LmggICAgICAgICAgICAgIHwgIDIgLS0K IG1tL3N3YXBmaWxlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKystLS0tLS0tLS0tLS0t LS0KIDYxIGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDI0NiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdWJkX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVy cy91YmRfa2Vybi5jCmluZGV4IGIwMzI2OWZhZWY3MTQuLjA4NWZmZGY5OGU1N2UgMTAwNjQ0Ci0t LSBhL2FyY2gvdW0vZHJpdmVycy91YmRfa2Vybi5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy91YmRf a2Vybi5jCkBAIC00ODMsNyArNDgzLDYgQEAgc3RhdGljIHZvaWQgdWJkX2hhbmRsZXIodm9pZCkK IAkJCWlmICgoaW9fcmVxLT5lcnJvciA9PSBCTEtfU1RTX05PVFNVUFApICYmIChyZXFfb3AoaW9f cmVxLT5yZXEpID09IFJFUV9PUF9ESVNDQVJEKSkgewogCQkJCWJsa19xdWV1ZV9tYXhfZGlzY2Fy ZF9zZWN0b3JzKGlvX3JlcS0+cmVxLT5xLCAwKTsKIAkJCQlibGtfcXVldWVfbWF4X3dyaXRlX3pl cm9lc19zZWN0b3JzKGlvX3JlcS0+cmVxLT5xLCAwKTsKLQkJCQlibGtfcXVldWVfZmxhZ19jbGVh cihRVUVVRV9GTEFHX0RJU0NBUkQsIGlvX3JlcS0+cmVxLT5xKTsKIAkJCX0KIAkJCWJsa19tcV9l bmRfcmVxdWVzdChpb19yZXEtPnJlcSwgaW9fcmVxLT5lcnJvcik7CiAJCQlrZnJlZShpb19yZXEp OwpAQCAtODAzLDcgKzgwMiw2IEBAIHN0YXRpYyBpbnQgdWJkX29wZW5fZGV2KHN0cnVjdCB1YmQg KnViZF9kZXYpCiAJCXViZF9kZXYtPnF1ZXVlLT5saW1pdHMuZGlzY2FyZF9hbGlnbm1lbnQgPSBT RUNUT1JfU0laRTsKIAkJYmxrX3F1ZXVlX21heF9kaXNjYXJkX3NlY3RvcnModWJkX2Rldi0+cXVl dWUsIFVCRF9NQVhfUkVRVUVTVCk7CiAJCWJsa19xdWV1ZV9tYXhfd3JpdGVfemVyb2VzX3NlY3Rv cnModWJkX2Rldi0+cXVldWUsIFVCRF9NQVhfUkVRVUVTVCk7Ci0JCWJsa19xdWV1ZV9mbGFnX3Nl dChRVUVVRV9GTEFHX0RJU0NBUkQsIHViZF9kZXYtPnF1ZXVlKTsKIAl9CiAJYmxrX3F1ZXVlX2Zs YWdfc2V0KFFVRVVFX0ZMQUdfTk9OUk9ULCB1YmRfZGV2LT5xdWV1ZSk7CiAJcmV0dXJuIDA7CmRp ZmYgLS1naXQgYS9ibG9jay9ibGstY29yZS5jIGIvYmxvY2svYmxrLWNvcmUuYwppbmRleCA5Mzdi YjZiODYzMzE3Li5iNWMzYTgwNDkxMzRjIDEwMDY0NAotLS0gYS9ibG9jay9ibGstY29yZS5jCisr KyBiL2Jsb2NrL2Jsay1jb3JlLmMKQEAgLTgyMCw3ICs4MjAsNyBAQCB2b2lkIHN1Ym1pdF9iaW9f bm9hY2N0KHN0cnVjdCBiaW8gKmJpbykKIAogCXN3aXRjaCAoYmlvX29wKGJpbykpIHsKIAljYXNl IFJFUV9PUF9ESVNDQVJEOgotCQlpZiAoIWJsa19xdWV1ZV9kaXNjYXJkKHEpKQorCQlpZiAoIWJk ZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhiZGV2KSkKIAkJCWdvdG8gbm90X3N1cHBvcnRlZDsKIAkJ YnJlYWs7CiAJY2FzZSBSRVFfT1BfU0VDVVJFX0VSQVNFOgpkaWZmIC0tZ2l0IGEvYmxvY2svYmxr LWxpYi5jIGIvYmxvY2svYmxrLWxpYi5jCmluZGV4IDJhZTMyYTcyMjg1MWMuLjhiNGI2NmQzYTli ZmMgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1saWIuYworKysgYi9ibG9jay9ibGstbGliLmMKQEAg LTUzLDcgKzUzLDcgQEAgaW50IF9fYmxrZGV2X2lzc3VlX2Rpc2NhcmQoc3RydWN0IGJsb2NrX2Rl dmljZSAqYmRldiwgc2VjdG9yX3Qgc2VjdG9yLAogCQkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCQlv cCA9IFJFUV9PUF9TRUNVUkVfRVJBU0U7CiAJfSBlbHNlIHsKLQkJaWYgKCFibGtfcXVldWVfZGlz Y2FyZChxKSkKKwkJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoYmRldikpCiAJCQlyZXR1 cm4gLUVPUE5PVFNVUFA7CiAJCW9wID0gUkVRX09QX0RJU0NBUkQ7CiAJfQpkaWZmIC0tZ2l0IGEv YmxvY2svYmxrLW1xLWRlYnVnZnMuYyBiL2Jsb2NrL2Jsay1tcS1kZWJ1Z2ZzLmMKaW5kZXggYWEw MzQ5ZTlmMDgzYi4uZmQxMTFjNTAwMTI1NiAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLW1xLWRlYnVn ZnMuYworKysgYi9ibG9jay9ibGstbXEtZGVidWdmcy5jCkBAIC0xMTMsNyArMTEzLDYgQEAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IGJsa19xdWV1ZV9mbGFnX25hbWVbXSA9IHsKIAlRVUVVRV9G TEFHX05BTUUoRkFJTF9JTyksCiAJUVVFVUVfRkxBR19OQU1FKE5PTlJPVCksCiAJUVVFVUVfRkxB R19OQU1FKElPX1NUQVQpLAotCVFVRVVFX0ZMQUdfTkFNRShESVNDQVJEKSwKIAlRVUVVRV9GTEFH X05BTUUoTk9YTUVSR0VTKSwKIAlRVUVVRV9GTEFHX05BTUUoQUREX1JBTkRPTSksCiAJUVVFVUVf RkxBR19OQU1FKFNFQ0VSQVNFKSwKZGlmZiAtLWdpdCBhL2Jsb2NrL2lvY3RsLmMgYi9ibG9jay9p b2N0bC5jCmluZGV4IGFkMzc3MWIyNjhiODEuLmMyY2QzYmE1MjkwY2UgMTAwNjQ0Ci0tLSBhL2Js b2NrL2lvY3RsLmMKKysrIGIvYmxvY2svaW9jdGwuYwpAQCAtODcsMTQgKzg3LDEzIEBAIHN0YXRp YyBpbnQgYmxrX2lvY3RsX2Rpc2NhcmQoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVf dCBtb2RlLAogewogCXVpbnQ2NF90IHJhbmdlWzJdOwogCXVpbnQ2NF90IHN0YXJ0LCBsZW47Ci0J c3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBiZGV2X2dldF9xdWV1ZShiZGV2KTsKIAlzdHJ1Y3Qg aW5vZGUgKmlub2RlID0gYmRldi0+YmRfaW5vZGU7CiAJaW50IGVycjsKIAogCWlmICghKG1vZGUg JiBGTU9ERV9XUklURSkpCiAJCXJldHVybiAtRUJBREY7CiAKLQlpZiAoIWJsa19xdWV1ZV9kaXNj YXJkKHEpKQorCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGJkZXYpKQogCQlyZXR1cm4g LUVPUE5PVFNVUFA7CiAKIAlpZiAoY29weV9mcm9tX3VzZXIocmFuZ2UsICh2b2lkIF9fdXNlciAq KWFyZywgc2l6ZW9mKHJhbmdlKSkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJi ZF9tYWluLmMgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9tYWluLmMKaW5kZXggZWFlNjI5YzRm NmVhZi4uYTY5NDc1ZTU5MjgyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRf bWFpbi5jCisrKyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX21haW4uYwpAQCAtOTQyLDcgKzk0 Miw3IEBAIGludCBkcmJkX3NlbmRfc2l6ZXMoc3RydWN0IGRyYmRfcGVlcl9kZXZpY2UgKnBlZXJf ZGV2aWNlLCBpbnQgdHJpZ2dlcl9yZXBseSwgZW51CiAJCQljcHVfdG9fYmUzMihiZGV2X2FsaWdu bWVudF9vZmZzZXQoYmRldikpOwogCQlwLT5xbGltLT5pb19taW4gPSBjcHVfdG9fYmUzMihiZGV2 X2lvX21pbihiZGV2KSk7CiAJCXAtPnFsaW0tPmlvX29wdCA9IGNwdV90b19iZTMyKGJkZXZfaW9f b3B0KGJkZXYpKTsKLQkJcC0+cWxpbS0+ZGlzY2FyZF9lbmFibGVkID0gYmxrX3F1ZXVlX2Rpc2Nh cmQocSk7CisJCXAtPnFsaW0tPmRpc2NhcmRfZW5hYmxlZCA9ICEhYmRldl9tYXhfZGlzY2FyZF9z ZWN0b3JzKGJkZXYpOwogCQlwdXRfbGRldihkZXZpY2UpOwogCX0gZWxzZSB7CiAJCXN0cnVjdCBy ZXF1ZXN0X3F1ZXVlICpxID0gZGV2aWNlLT5ycV9xdWV1ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv YmxvY2svZHJiZC9kcmJkX25sLmMgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jCmluZGV4 IGQ0ZGFjYzMyOWFjMmUuLmI1NWU1ZmNjMjFlMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2sv ZHJiZC9kcmJkX25sLmMKKysrIGIvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYwpAQCAtMTIx MCw3ICsxMjEwLDcgQEAgc3RhdGljIHZvaWQgZGVjaWRlX29uX2Rpc2NhcmRfc3VwcG9ydChzdHJ1 Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwKIAkJZmlyc3RfcGVlcl9kZXZpY2UoZGV2aWNlKS0+Y29u bmVjdGlvbjsKIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGRldmljZS0+cnFfcXVldWU7CiAK LQlpZiAoYmRldiAmJiAhYmxrX3F1ZXVlX2Rpc2NhcmQoYmRldi0+YmFja2luZ19iZGV2LT5iZF9k aXNrLT5xdWV1ZSkpCisJaWYgKGJkZXYgJiYgIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhiZGV2 LT5iYWNraW5nX2JkZXYpKQogCQlnb3RvIG5vdF9zdXBwb3J0ZWQ7CiAKIAlpZiAoY29ubmVjdGlv bi0+Y3N0YXRlID49IENfQ09OTkVDVEVEICYmCkBAIC0xMjMwLDMwICsxMjMwLDE2IEBAIHN0YXRp YyB2b2lkIGRlY2lkZV9vbl9kaXNjYXJkX3N1cHBvcnQoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZp Y2UsCiAJICovCiAJYmxrX3F1ZXVlX2Rpc2NhcmRfZ3JhbnVsYXJpdHkocSwgNTEyKTsKIAlxLT5s aW1pdHMubWF4X2Rpc2NhcmRfc2VjdG9ycyA9IGRyYmRfbWF4X2Rpc2NhcmRfc2VjdG9ycyhjb25u ZWN0aW9uKTsKLQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJELCBxKTsKIAlx LT5saW1pdHMubWF4X3dyaXRlX3plcm9lc19zZWN0b3JzID0KIAkJZHJiZF9tYXhfZGlzY2FyZF9z ZWN0b3JzKGNvbm5lY3Rpb24pOwogCXJldHVybjsKIAogbm90X3N1cHBvcnRlZDoKLQlibGtfcXVl dWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX0RJU0NBUkQsIHEpOwogCWJsa19xdWV1ZV9kaXNjYXJk X2dyYW51bGFyaXR5KHEsIDApOwogCXEtPmxpbWl0cy5tYXhfZGlzY2FyZF9zZWN0b3JzID0gMDsK IAlxLT5saW1pdHMubWF4X3dyaXRlX3plcm9lc19zZWN0b3JzID0gMDsKIH0KIAotc3RhdGljIHZv aWQgZml4dXBfZGlzY2FyZF9pZl9ub3Rfc3VwcG9ydGVkKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpx KQotewotCS8qIFRvIGF2b2lkIGNvbmZ1c2lvbiwgaWYgdGhpcyBxdWV1ZSBkb2VzIG5vdCBzdXBw b3J0IGRpc2NhcmQsIGNsZWFyCi0JICogbWF4X2Rpc2NhcmRfc2VjdG9ycywgd2hpY2ggaXMgd2hh dCBsc2JsayAtRCByZXBvcnRzIHRvIHRoZSB1c2VyLgotCSAqIE9sZGVyIGtlcm5lbHMgZ290IHRo aXMgd3JvbmcgaW4gInN0YWNrIGxpbWl0cyIuCi0JICogKi8KLQlpZiAoIWJsa19xdWV1ZV9kaXNj YXJkKHEpKSB7Ci0JCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKHEsIDApOwotCQlibGtf cXVldWVfZGlzY2FyZF9ncmFudWxhcml0eShxLCAwKTsKLQl9Ci19Ci0KIHN0YXRpYyB2b2lkIGZp eHVwX3dyaXRlX3plcm9lcyhzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSwgc3RydWN0IHJlcXVl c3RfcXVldWUgKnEpCiB7CiAJLyogRml4dXAgbWF4X3dyaXRlX3plcm9lc19zZWN0b3JzIGFmdGVy IGJsa19zdGFja19saW1pdHMoKToKQEAgLTEzMDAsNyArMTI4Niw2IEBAIHN0YXRpYyB2b2lkIGRy YmRfc2V0dXBfcXVldWVfcGFyYW0oc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBk cmJkX2JhY2tpCiAJCWJsa19zdGFja19saW1pdHMoJnEtPmxpbWl0cywgJmItPmxpbWl0cywgMCk7 CiAJCWRpc2tfdXBkYXRlX3JlYWRhaGVhZChkZXZpY2UtPnZkaXNrKTsKIAl9Ci0JZml4dXBfZGlz Y2FyZF9pZl9ub3Rfc3VwcG9ydGVkKHEpOwogCWZpeHVwX3dyaXRlX3plcm9lcyhkZXZpY2UsIHEp OwogfQogCkBAIC0xNDQ3LDcgKzE0MzIsNyBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9kaXNrX2Nv bmYoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBkaXNrX2NvbmYgKmRpcwogCWlm IChkaXNrX2NvbmYtPmFsX2V4dGVudHMgPiBkcmJkX2FsX2V4dGVudHNfbWF4KG5iYykpCiAJCWRp c2tfY29uZi0+YWxfZXh0ZW50cyA9IGRyYmRfYWxfZXh0ZW50c19tYXgobmJjKTsKIAotCWlmICgh YmxrX3F1ZXVlX2Rpc2NhcmQocSkpIHsKKwlpZiAoIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhi ZGV2KSkgewogCQlpZiAoZGlza19jb25mLT5yc19kaXNjYXJkX2dyYW51bGFyaXR5KSB7CiAJCQlk aXNrX2NvbmYtPnJzX2Rpc2NhcmRfZ3JhbnVsYXJpdHkgPSAwOyAvKiBkaXNhYmxlIGZlYXR1cmUg Ki8KIAkJCWRyYmRfaW5mbyhkZXZpY2UsICJyc19kaXNjYXJkX2dyYW51bGFyaXR5IGZlYXR1cmUg ZGlzYWJsZWRcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfcmVjZWl2 ZXIuYyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX3JlY2VpdmVyLmMKaW5kZXggMGI0YzdkZTQ2 Mzk4OS4uOGE0YTQ3ZGE1NmZlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRf cmVjZWl2ZXIuYworKysgYi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jCkBAIC0x NTc1LDExICsxNTc1LDEwIEBAIGludCBkcmJkX2lzc3VlX2Rpc2NhcmRfb3JfemVyb19vdXQoc3Ry dWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIHNlY3Rvcl90IHN0YXJ0LCB1CiAKIHN0YXRpYyBib29s IGNhbl9kb19yZWxpYWJsZV9kaXNjYXJkcyhzdHJ1Y3QgZHJiZF9kZXZpY2UgKmRldmljZSkKIHsK LQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKGRldmljZS0+bGRldi0+ YmFja2luZ19iZGV2KTsKIAlzdHJ1Y3QgZGlza19jb25mICpkYzsKIAlib29sIGNhbl9kbzsKIAot CWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpCisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3Rv cnMoZGV2aWNlLT5sZGV2LT5iYWNraW5nX2JkZXYpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlyY3Vf cmVhZF9sb2NrKCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2xvb3AuYyBiL2RyaXZlcnMv YmxvY2svbG9vcC5jCmluZGV4IDhkODAwZDQ2ZTQ5ODUuLjBlMDYxYzk4OTZlZmYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvYmxvY2svbG9vcC5jCisrKyBiL2RyaXZlcnMvYmxvY2svbG9vcC5jCkBAIC0z MTQsMTUgKzMxNCwxMiBAQCBzdGF0aWMgaW50IGxvX2ZhbGxvY2F0ZShzdHJ1Y3QgbG9vcF9kZXZp Y2UgKmxvLCBzdHJ1Y3QgcmVxdWVzdCAqcnEsIGxvZmZfdCBwb3MsCiAKIAltb2RlIHw9IEZBTExP Q19GTF9LRUVQX1NJWkU7CiAKLQlpZiAoIWJsa19xdWV1ZV9kaXNjYXJkKGxvLT5sb19xdWV1ZSkp IHsKLQkJcmV0ID0gLUVPUE5PVFNVUFA7Ci0JCWdvdG8gb3V0OwotCX0KKwlpZiAoIWJkZXZfbWF4 X2Rpc2NhcmRfc2VjdG9ycyhsby0+bG9fZGV2aWNlKSkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOwog CiAJcmV0ID0gZmlsZS0+Zl9vcC0+ZmFsbG9jYXRlKGZpbGUsIG1vZGUsIHBvcywgYmxrX3JxX2J5 dGVzKHJxKSk7CiAJaWYgKHVubGlrZWx5KHJldCAmJiByZXQgIT0gLUVJTlZBTCAmJiByZXQgIT0g LUVPUE5PVFNVUFApKQotCQlyZXQgPSAtRUlPOwotIG91dDoKKwkJcmV0dXJuIC1FSU87CiAJcmV0 dXJuIHJldDsKIH0KIApAQCAtNzg3LDEyICs3ODQsMTAgQEAgc3RhdGljIHZvaWQgbG9vcF9jb25m aWdfZGlzY2FyZChzdHJ1Y3QgbG9vcF9kZXZpY2UgKmxvKQogCQlxLT5saW1pdHMuZGlzY2FyZF9n cmFudWxhcml0eSA9IGdyYW51bGFyaXR5OwogCQlibGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9y cyhxLCBtYXhfZGlzY2FyZF9zZWN0b3JzKTsKIAkJYmxrX3F1ZXVlX21heF93cml0ZV96ZXJvZXNf c2VjdG9ycyhxLCBtYXhfZGlzY2FyZF9zZWN0b3JzKTsKLQkJYmxrX3F1ZXVlX2ZsYWdfc2V0KFFV RVVFX0ZMQUdfRElTQ0FSRCwgcSk7CiAJfSBlbHNlIHsKIAkJcS0+bGltaXRzLmRpc2NhcmRfZ3Jh bnVsYXJpdHkgPSAwOwogCQlibGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9ycyhxLCAwKTsKIAkJ YmxrX3F1ZXVlX21heF93cml0ZV96ZXJvZXNfc2VjdG9ycyhxLCAwKTsKLQkJYmxrX3F1ZXVlX2Zs YWdfY2xlYXIoUVVFVUVfRkxBR19ESVNDQVJELCBxKTsKIAl9CiAJcS0+bGltaXRzLmRpc2NhcmRf YWxpZ25tZW50ID0gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svbmJkLmMgYi9kcml2 ZXJzL2Jsb2NrL25iZC5jCmluZGV4IDVhMWY5ODQ5NGRkZGYuLjQ3MjlhZWY4YzY0NjIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvYmxvY2svbmJkLmMKKysrIGIvZHJpdmVycy9ibG9jay9uYmQuYwpAQCAt MTIzMSw4ICsxMjMxLDYgQEAgc3RhdGljIHZvaWQgbmJkX3BhcnNlX2ZsYWdzKHN0cnVjdCBuYmRf ZGV2aWNlICpuYmQpCiAJCXNldF9kaXNrX3JvKG5iZC0+ZGlzaywgdHJ1ZSk7CiAJZWxzZQogCQlz ZXRfZGlza19ybyhuYmQtPmRpc2ssIGZhbHNlKTsKLQlpZiAoY29uZmlnLT5mbGFncyAmIE5CRF9G TEFHX1NFTkRfVFJJTSkKLQkJYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwg bmJkLT5kaXNrLT5xdWV1ZSk7CiAJaWYgKGNvbmZpZy0+ZmxhZ3MgJiBOQkRfRkxBR19TRU5EX0ZM VVNIKSB7CiAJCWlmIChjb25maWctPmZsYWdzICYgTkJEX0ZMQUdfU0VORF9GVUEpCiAJCQlibGtf cXVldWVfd3JpdGVfY2FjaGUobmJkLT5kaXNrLT5xdWV1ZSwgdHJ1ZSwgdHJ1ZSk7CkBAIC0xMzE5 LDggKzEzMTcsNyBAQCBzdGF0aWMgdm9pZCBuYmRfY29uZmlnX3B1dChzdHJ1Y3QgbmJkX2Rldmlj ZSAqbmJkKQogCQluYmQtPnRhZ19zZXQudGltZW91dCA9IDA7CiAJCW5iZC0+ZGlzay0+cXVldWUt PmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5ID0gMDsKIAkJbmJkLT5kaXNrLT5xdWV1ZS0+bGlt aXRzLmRpc2NhcmRfYWxpZ25tZW50ID0gMDsKLQkJYmxrX3F1ZXVlX21heF9kaXNjYXJkX3NlY3Rv cnMobmJkLT5kaXNrLT5xdWV1ZSwgVUlOVF9NQVgpOwotCQlibGtfcXVldWVfZmxhZ19jbGVhcihR VUVVRV9GTEFHX0RJU0NBUkQsIG5iZC0+ZGlzay0+cXVldWUpOworCQlibGtfcXVldWVfbWF4X2Rp c2NhcmRfc2VjdG9ycyhuYmQtPmRpc2stPnF1ZXVlLCAwKTsKIAogCQltdXRleF91bmxvY2soJm5i ZC0+Y29uZmlnX2xvY2spOwogCQluYmRfcHV0KG5iZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Js b2NrL251bGxfYmxrL21haW4uYyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jCmluZGV4 IDA1YjExMjBlNjYyMzQuLmY2NDkzYTllODVlZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2sv bnVsbF9ibGsvbWFpbi5jCisrKyBiL2RyaXZlcnMvYmxvY2svbnVsbF9ibGsvbWFpbi5jCkBAIC0x NzY3LDcgKzE3NjcsNiBAQCBzdGF0aWMgdm9pZCBudWxsX2NvbmZpZ19kaXNjYXJkKHN0cnVjdCBu dWxsYiAqbnVsbGIpCiAJbnVsbGItPnEtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5ID0gbnVs bGItPmRldi0+YmxvY2tzaXplOwogCW51bGxiLT5xLT5saW1pdHMuZGlzY2FyZF9hbGlnbm1lbnQg PSBudWxsYi0+ZGV2LT5ibG9ja3NpemU7CiAJYmxrX3F1ZXVlX21heF9kaXNjYXJkX3NlY3RvcnMo bnVsbGItPnEsIFVJTlRfTUFYID4+IDkpOwotCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFH X0RJU0NBUkQsIG51bGxiLT5xKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBibG9ja19kZXZp Y2Vfb3BlcmF0aW9ucyBudWxsX2Jpb19vcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2Nr L3JiZC5jIGIvZHJpdmVycy9ibG9jay9yYmQuYwppbmRleCBiODQ0NDMyYmFkMjBiLi4yYjIxZjcx N2NjZTFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3JiZC5jCisrKyBiL2RyaXZlcnMvYmxv Y2svcmJkLmMKQEAgLTQ5NDIsNyArNDk0Miw2IEBAIHN0YXRpYyBpbnQgcmJkX2luaXRfZGlzayhz dHJ1Y3QgcmJkX2RldmljZSAqcmJkX2RldikKIAlibGtfcXVldWVfaW9fb3B0KHEsIHJiZF9kZXYt Pm9wdHMtPmFsbG9jX3NpemUpOwogCiAJaWYgKHJiZF9kZXYtPm9wdHMtPnRyaW0pIHsKLQkJYmxr X3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwgcSk7CiAJCXEtPmxpbWl0cy5kaXNj YXJkX2dyYW51bGFyaXR5ID0gcmJkX2Rldi0+b3B0cy0+YWxsb2Nfc2l6ZTsKIAkJYmxrX3F1ZXVl X21heF9kaXNjYXJkX3NlY3RvcnMocSwgb2Jqc2V0X2J5dGVzID4+IFNFQ1RPUl9TSElGVCk7CiAJ CWJsa19xdWV1ZV9tYXhfd3JpdGVfemVyb2VzX3NlY3RvcnMocSwgb2Jqc2V0X2J5dGVzID4+IFNF Q1RPUl9TSElGVCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3JuYmQvcm5iZC1jbHQuYyBi L2RyaXZlcnMvYmxvY2svcm5iZC9ybmJkLWNsdC5jCmluZGV4IGI2NmU4ODQwYjk0YjguLmVmYTk5 YTM4ODQ1MDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svcm5iZC9ybmJkLWNsdC5jCisrKyBi L2RyaXZlcnMvYmxvY2svcm5iZC9ybmJkLWNsdC5jCkBAIC0xMzY0LDggKzEzNjQsNiBAQCBzdGF0 aWMgdm9pZCBzZXR1cF9yZXF1ZXN0X3F1ZXVlKHN0cnVjdCBybmJkX2NsdF9kZXYgKmRldikKIAli bGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9ycyhkZXYtPnF1ZXVlLCBkZXYtPm1heF9kaXNjYXJk X3NlY3RvcnMpOwogCWRldi0+cXVldWUtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5CT0gZGV2 LT5kaXNjYXJkX2dyYW51bGFyaXR5OwogCWRldi0+cXVldWUtPmxpbWl0cy5kaXNjYXJkX2FsaWdu bWVudAk9IGRldi0+ZGlzY2FyZF9hbGlnbm1lbnQ7Ci0JaWYgKGRldi0+bWF4X2Rpc2NhcmRfc2Vj dG9ycykKLQkJYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwgZGV2LT5xdWV1 ZSk7CiAJaWYgKGRldi0+c2VjdXJlX2Rpc2NhcmQpCiAJCWJsa19xdWV1ZV9mbGFnX3NldChRVUVV RV9GTEFHX1NFQ0VSQVNFLCBkZXYtPnF1ZXVlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9j ay9ybmJkL3JuYmQtc3J2LWRldi5oIGIvZHJpdmVycy9ibG9jay9ybmJkL3JuYmQtc3J2LWRldi5o CmluZGV4IGY4MmZiYjRiYmRhOGUuLjFmN2UxYzhmZDRkOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv YmxvY2svcm5iZC9ybmJkLXNydi1kZXYuaAorKysgYi9kcml2ZXJzL2Jsb2NrL3JuYmQvcm5iZC1z cnYtZGV2LmgKQEAgLTQ5LDkgKzQ5LDYgQEAgc3RhdGljIGlubGluZSBpbnQgcm5iZF9kZXZfZ2V0 X3NlY3VyZV9kaXNjYXJkKGNvbnN0IHN0cnVjdCBybmJkX2RldiAqZGV2KQogCiBzdGF0aWMgaW5s aW5lIGludCBybmJkX2Rldl9nZXRfbWF4X2Rpc2NhcmRfc2VjdHMoY29uc3Qgc3RydWN0IHJuYmRf ZGV2ICpkZXYpCiB7Ci0JaWYgKCFibGtfcXVldWVfZGlzY2FyZChiZGV2X2dldF9xdWV1ZShkZXYt PmJkZXYpKSkKLQkJcmV0dXJuIDA7Ci0KIAlyZXR1cm4gYmRldl9tYXhfZGlzY2FyZF9zZWN0b3Jz KGRldi0+YmRldik7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svdmlydGlvX2Jsay5j IGIvZHJpdmVycy9ibG9jay92aXJ0aW9fYmxrLmMKaW5kZXggYThiY2YzZjY2NGFmMS4uNmNjZjE1 MjUzZGVlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay92aXJ0aW9fYmxrLmMKKysrIGIvZHJp dmVycy9ibG9jay92aXJ0aW9fYmxrLmMKQEAgLTg4OCw4ICs4ODgsNiBAQCBzdGF0aWMgaW50IHZp cnRibGtfcHJvYmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCiAJCQl2ID0gc2dfZWxlbXM7 CiAJCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWdtZW50cyhxLAogCQkJCQkgICAgICAgbWluKHYs IE1BWF9ESVNDQVJEX1NFR01FTlRTKSk7Ci0KLQkJYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZM QUdfRElTQ0FSRCwgcSk7CiAJfQogCiAJaWYgKHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LCBWSVJU SU9fQkxLX0ZfV1JJVEVfWkVST0VTKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay94ZW4t YmxrYmFjay94ZW5idXMuYyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2sveGVuYnVzLmMKaW5k ZXggOGI2OTFmZTUwNDc1Zi4uODNjZDA4MDQxZTZiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9j ay94ZW4tYmxrYmFjay94ZW5idXMuYworKysgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL3hl bmJ1cy5jCkBAIC01ODMsNyArNTgzLDcgQEAgc3RhdGljIHZvaWQgeGVuX2Jsa2JrX2Rpc2NhcmQo c3RydWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQsIHN0cnVjdCBiYWNrZW5kX2luZm8KIAlpZiAo IXhlbmJ1c19yZWFkX3Vuc2lnbmVkKGRldi0+bm9kZW5hbWUsICJkaXNjYXJkLWVuYWJsZSIsIDEp KQogCQlyZXR1cm47CiAKLQlpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQocSkpIHsKKwlpZiAoYmRldl9t YXhfZGlzY2FyZF9zZWN0b3JzKGJkZXYpKSB7CiAJCWVyciA9IHhlbmJ1c19wcmludGYoeGJ0LCBk ZXYtPm5vZGVuYW1lLAogCQkJImRpc2NhcmQtZ3JhbnVsYXJpdHkiLCAiJXUiLAogCQkJcS0+bGlt aXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay94ZW4t YmxrZnJvbnQuYyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKaW5kZXggMDAzMDU2ZDRm N2Y1Zi4uMjUzYmY4MzVhY2ExZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJv bnQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCkBAIC05NDQsNyArOTQ0LDYg QEAgc3RhdGljIHZvaWQgYmxraWZfc2V0X3F1ZXVlX2xpbWl0cyhzdHJ1Y3QgYmxrZnJvbnRfaW5m byAqaW5mbykKIAlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19WSVJULCBycSk7CiAKIAlp ZiAoaW5mby0+ZmVhdHVyZV9kaXNjYXJkKSB7Ci0JCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9G TEFHX0RJU0NBUkQsIHJxKTsKIAkJYmxrX3F1ZXVlX21heF9kaXNjYXJkX3NlY3RvcnMocnEsIGdl dF9jYXBhY2l0eShnZCkpOwogCQlycS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkgPSBpbmZv LT5kaXNjYXJkX2dyYW51bGFyaXR5ID86CiAJCQkJCQkgaW5mby0+cGh5c2ljYWxfc2VjdG9yX3Np emU7CkBAIC0xNjA2LDcgKzE2MDUsNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYmxraWZfaW50ZXJy dXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIAkJCQlibGtpZl9yZXEocmVxKS0+ZXJyb3IgPSBC TEtfU1RTX05PVFNVUFA7CiAJCQkJaW5mby0+ZmVhdHVyZV9kaXNjYXJkID0gMDsKIAkJCQlpbmZv LT5mZWF0dXJlX3NlY2Rpc2NhcmQgPSAwOwotCQkJCWJsa19xdWV1ZV9mbGFnX2NsZWFyKFFVRVVF X0ZMQUdfRElTQ0FSRCwgcnEpOwogCQkJCWJsa19xdWV1ZV9mbGFnX2NsZWFyKFFVRVVFX0ZMQUdf U0VDRVJBU0UsIHJxKTsKIAkJCX0KIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9j ay96cmFtL3pyYW1fZHJ2LmMgYi9kcml2ZXJzL2Jsb2NrL3pyYW0venJhbV9kcnYuYwppbmRleCBl OTQ3NGIwMjAxMmRlLi41OWZmNDQ0YmY2Yzc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3py YW0venJhbV9kcnYuYworKysgYi9kcml2ZXJzL2Jsb2NrL3pyYW0venJhbV9kcnYuYwpAQCAtMTk1 Miw3ICsxOTUyLDYgQEAgc3RhdGljIGludCB6cmFtX2FkZCh2b2lkKQogCWJsa19xdWV1ZV9pb19v cHQoenJhbS0+ZGlzay0+cXVldWUsIFBBR0VfU0laRSk7CiAJenJhbS0+ZGlzay0+cXVldWUtPmxp bWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5ID0gUEFHRV9TSVpFOwogCWJsa19xdWV1ZV9tYXhfZGlz Y2FyZF9zZWN0b3JzKHpyYW0tPmRpc2stPnF1ZXVlLCBVSU5UX01BWCk7Ci0JYmxrX3F1ZXVlX2Zs YWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwgenJhbS0+ZGlzay0+cXVldWUpOwogCiAJLyoKIAkg KiB6cmFtX2Jpb19kaXNjYXJkKCkgd2lsbCBjbGVhciBhbGwgbG9naWNhbCBibG9ja3MgaWYgbG9n aWNhbCBibG9jawpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9iY2FjaGUvcmVxdWVzdC5jIGIvZHJp dmVycy9tZC9iY2FjaGUvcmVxdWVzdC5jCmluZGV4IGZkZDAxOTRmODRkZDAuLmUyN2Y2N2YwNmE0 MjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvYmNhY2hlL3JlcXVlc3QuYworKysgYi9kcml2ZXJz L21kL2JjYWNoZS9yZXF1ZXN0LmMKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHN0YXRpYyB2b2lkIGNh Y2hlZF9kZXZfd3JpdGUoc3RydWN0IGNhY2hlZF9kZXYgKmRjLCBzdHJ1Y3Qgc2VhcmNoICpzKQog CQliaW9fZ2V0KHMtPmlvcC5iaW8pOwogCiAJCWlmIChiaW9fb3AoYmlvKSA9PSBSRVFfT1BfRElT Q0FSRCAmJgotCQkgICAgIWJsa19xdWV1ZV9kaXNjYXJkKGJkZXZfZ2V0X3F1ZXVlKGRjLT5iZGV2 KSkpCisJCSAgICAhYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGRjLT5iZGV2KSkKIAkJCWdvdG8g aW5zZXJ0X2RhdGE7CiAKIAkJLyogSS9PIHJlcXVlc3Qgc2VudCB0byBiYWNraW5nIGRldmljZSAq LwpAQCAtMTExNSw3ICsxMTE1LDcgQEAgc3RhdGljIHZvaWQgZGV0YWNoZWRfZGV2X2RvX3JlcXVl c3Qoc3RydWN0IGJjYWNoZV9kZXZpY2UgKmQsIHN0cnVjdCBiaW8gKmJpbywKIAliaW8tPmJpX3By aXZhdGUgPSBkZGlwOwogCiAJaWYgKChiaW9fb3AoYmlvKSA9PSBSRVFfT1BfRElTQ0FSRCkgJiYK LQkgICAgIWJsa19xdWV1ZV9kaXNjYXJkKGJkZXZfZ2V0X3F1ZXVlKGRjLT5iZGV2KSkpCisJICAg ICFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoZGMtPmJkZXYpKQogCQliaW8tPmJpX2VuZF9pbyhi aW8pOwogCWVsc2UKIAkJc3VibWl0X2Jpb19ub2FjY3QoYmlvKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbWQvYmNhY2hlL3N1cGVyLmMgYi9kcml2ZXJzL21kL2JjYWNoZS9zdXBlci5jCmluZGV4IGJm M2RlMTQ5ZDNjOWYuLjJmNDllMzExNDJmNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvYmNhY2hl L3N1cGVyLmMKKysrIGIvZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIuYwpAQCAtOTczLDcgKzk3Myw2 IEBAIHN0YXRpYyBpbnQgYmNhY2hlX2RldmljZV9pbml0KHN0cnVjdCBiY2FjaGVfZGV2aWNlICpk LCB1bnNpZ25lZCBpbnQgYmxvY2tfc2l6ZSwKIAogCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9G TEFHX05PTlJPVCwgZC0+ZGlzay0+cXVldWUpOwogCWJsa19xdWV1ZV9mbGFnX2NsZWFyKFFVRVVF X0ZMQUdfQUREX1JBTkRPTSwgZC0+ZGlzay0+cXVldWUpOwotCWJsa19xdWV1ZV9mbGFnX3NldChR VUVVRV9GTEFHX0RJU0NBUkQsIGQtPmRpc2stPnF1ZXVlKTsKIAogCWJsa19xdWV1ZV93cml0ZV9j YWNoZShxLCB0cnVlLCB0cnVlKTsKIApAQCAtMjM1MCw3ICsyMzQ5LDcgQEAgc3RhdGljIGludCBy ZWdpc3Rlcl9jYWNoZShzdHJ1Y3QgY2FjaGVfc2IgKnNiLCBzdHJ1Y3QgY2FjaGVfc2JfZGlzayAq c2JfZGlzaywKIAljYS0+YmRldi0+YmRfaG9sZGVyID0gY2E7CiAJY2EtPnNiX2Rpc2sgPSBzYl9k aXNrOwogCi0JaWYgKGJsa19xdWV1ZV9kaXNjYXJkKGJkZXZfZ2V0X3F1ZXVlKGJkZXYpKSkKKwlp ZiAoYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKChiZGV2KSkpCiAJCWNhLT5kaXNjYXJkID0gQ0FD SEVfRElTQ0FSRCgmY2EtPnNiKTsKIAogCXJldCA9IGNhY2hlX2FsbG9jKGNhKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWQvYmNhY2hlL3N5c2ZzLmMgYi9kcml2ZXJzL21kL2JjYWNoZS9zeXNmcy5j CmluZGV4IGQxMDI5ZDcxZmYzYmMuLmM2ZjY3NzA1OTIxNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bWQvYmNhY2hlL3N5c2ZzLmMKKysrIGIvZHJpdmVycy9tZC9iY2FjaGUvc3lzZnMuYwpAQCAtMTE1 MSw3ICsxMTUxLDcgQEAgU1RPUkUoX19iY2hfY2FjaGUpCiAJaWYgKGF0dHIgPT0gJnN5c2ZzX2Rp c2NhcmQpIHsKIAkJYm9vbCB2ID0gc3RydG91bF9vcl9yZXR1cm4oYnVmKTsKIAotCQlpZiAoYmxr X3F1ZXVlX2Rpc2NhcmQoYmRldl9nZXRfcXVldWUoY2EtPmJkZXYpKSkKKwkJaWYgKGJkZXZfbWF4 X2Rpc2NhcmRfc2VjdG9ycyhjYS0+YmRldikpCiAJCQljYS0+ZGlzY2FyZCA9IHY7CiAKIAkJaWYg KHYgIT0gQ0FDSEVfRElTQ0FSRCgmY2EtPnNiKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9k bS1jYWNoZS10YXJnZXQuYyBiL2RyaXZlcnMvbWQvZG0tY2FjaGUtdGFyZ2V0LmMKaW5kZXggNzgw YTYxYmM2Y2MwMy4uMjhjNWRlOGVjYTRhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9kbS1jYWNo ZS10YXJnZXQuYworKysgYi9kcml2ZXJzL21kL2RtLWNhY2hlLXRhcmdldC5jCkBAIC0zMzI5LDEz ICszMzI5LDYgQEAgc3RhdGljIGludCBjYWNoZV9pdGVyYXRlX2RldmljZXMoc3RydWN0IGRtX3Rh cmdldCAqdGksCiAJcmV0dXJuIHI7CiB9CiAKLXN0YXRpYyBib29sIG9yaWdpbl9kZXZfc3VwcG9y dHNfZGlzY2FyZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpvcmlnaW5fYmRldikKLXsKLQlzdHJ1Y3Qg cmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKG9yaWdpbl9iZGV2KTsKLQotCXJldHVy biBibGtfcXVldWVfZGlzY2FyZChxKTsKLX0KLQogLyoKICAqIElmIGRpc2NhcmRfcGFzc2Rvd24g d2FzIGVuYWJsZWQgdmVyaWZ5IHRoYXQgdGhlIG9yaWdpbiBkZXZpY2UKICAqIHN1cHBvcnRzIGRp c2NhcmRzLiAgRGlzYWJsZSBkaXNjYXJkX3Bhc3Nkb3duIGlmIG5vdC4KQEAgLTMzNDksNyArMzM0 Miw3IEBAIHN0YXRpYyB2b2lkIGRpc2FibGVfcGFzc2Rvd25faWZfbm90X3N1cHBvcnRlZChzdHJ1 Y3QgY2FjaGUgKmNhY2hlKQogCWlmICghY2FjaGUtPmZlYXR1cmVzLmRpc2NhcmRfcGFzc2Rvd24p CiAJCXJldHVybjsKIAotCWlmICghb3JpZ2luX2Rldl9zdXBwb3J0c19kaXNjYXJkKG9yaWdpbl9i ZGV2KSkKKwlpZiAoIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhvcmlnaW5fYmRldikpCiAJCXJl YXNvbiA9ICJkaXNjYXJkIHVuc3VwcG9ydGVkIjsKIAogCWVsc2UgaWYgKG9yaWdpbl9saW1pdHMt Pm1heF9kaXNjYXJkX3NlY3RvcnMgPCBjYWNoZS0+c2VjdG9yc19wZXJfYmxvY2spCmRpZmYgLS1n aXQgYS9kcml2ZXJzL21kL2RtLWNsb25lLXRhcmdldC5jIGIvZHJpdmVycy9tZC9kbS1jbG9uZS10 YXJnZXQuYwppbmRleCAxMjgzMTZhNzNkMDE2Li44MTFiMGE1Mzc5ZDAzIDEwMDY0NAotLS0gYS9k cml2ZXJzL21kL2RtLWNsb25lLXRhcmdldC5jCisrKyBiL2RyaXZlcnMvbWQvZG0tY2xvbmUtdGFy Z2V0LmMKQEAgLTIwMTYsMTMgKzIwMTYsNiBAQCBzdGF0aWMgdm9pZCBjbG9uZV9yZXN1bWUoc3Ry dWN0IGRtX3RhcmdldCAqdGkpCiAJZG9fd2FrZXIoJmNsb25lLT53YWtlci53b3JrKTsKIH0KIAot c3RhdGljIGJvb2wgYmRldl9zdXBwb3J0c19kaXNjYXJkcyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi ZGV2KQotewotCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRfcXVldWUoYmRldik7 Ci0KLQlyZXR1cm4gKHEgJiYgYmxrX3F1ZXVlX2Rpc2NhcmQocSkpOwotfQotCiAvKgogICogSWYg ZGlzY2FyZF9wYXNzZG93biB3YXMgZW5hYmxlZCB2ZXJpZnkgdGhhdCB0aGUgZGVzdGluYXRpb24g ZGV2aWNlIHN1cHBvcnRzCiAgKiBkaXNjYXJkcy4gRGlzYWJsZSBkaXNjYXJkX3Bhc3Nkb3duIGlm IG5vdC4KQEAgLTIwMzYsNyArMjAyOSw3IEBAIHN0YXRpYyB2b2lkIGRpc2FibGVfcGFzc2Rvd25f aWZfbm90X3N1cHBvcnRlZChzdHJ1Y3QgY2xvbmUgKmNsb25lKQogCWlmICghdGVzdF9iaXQoRE1f Q0xPTkVfRElTQ0FSRF9QQVNTRE9XTiwgJmNsb25lLT5mbGFncykpCiAJCXJldHVybjsKIAotCWlm ICghYmRldl9zdXBwb3J0c19kaXNjYXJkcyhkZXN0X2RldikpCisJaWYgKCFiZGV2X21heF9kaXNj YXJkX3NlY3RvcnMoZGVzdF9kZXYpKQogCQlyZWFzb24gPSAiZGlzY2FyZCB1bnN1cHBvcnRlZCI7 CiAJZWxzZSBpZiAoZGVzdF9saW1pdHMtPm1heF9kaXNjYXJkX3NlY3RvcnMgPCBjbG9uZS0+cmVn aW9uX3NpemUpCiAJCXJlYXNvbiA9ICJtYXggZGlzY2FyZCBzZWN0b3JzIHNtYWxsZXIgdGhhbiBh IHJlZ2lvbiI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLWxvZy13cml0ZXMuYyBiL2RyaXZl cnMvbWQvZG0tbG9nLXdyaXRlcy5jCmluZGV4IGM5ZDAzNmQ2YmIyZWUuLmUxOTQyMjZjODllNTQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tbG9nLXdyaXRlcy5jCisrKyBiL2RyaXZlcnMvbWQv ZG0tbG9nLXdyaXRlcy5jCkBAIC04NjYsOSArODY2LDggQEAgc3RhdGljIGludCBsb2dfd3JpdGVz X21lc3NhZ2Uoc3RydWN0IGRtX3RhcmdldCAqdGksIHVuc2lnbmVkIGFyZ2MsIGNoYXIgKiphcmd2 LAogc3RhdGljIHZvaWQgbG9nX3dyaXRlc19pb19oaW50cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwg c3RydWN0IHF1ZXVlX2xpbWl0cyAqbGltaXRzKQogewogCXN0cnVjdCBsb2dfd3JpdGVzX2MgKmxj ID0gdGktPnByaXZhdGU7Ci0Jc3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBiZGV2X2dldF9xdWV1 ZShsYy0+ZGV2LT5iZGV2KTsKIAotCWlmICghcSB8fCAhYmxrX3F1ZXVlX2Rpc2NhcmQocSkpIHsK KwlpZiAoIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhsYy0+ZGV2LT5iZGV2KSkgewogCQlsYy0+ ZGV2aWNlX3N1cHBvcnRzX2Rpc2NhcmQgPSBmYWxzZTsKIAkJbGltaXRzLT5kaXNjYXJkX2dyYW51 bGFyaXR5ID0gbGMtPnNlY3RvcnNpemU7CiAJCWxpbWl0cy0+bWF4X2Rpc2NhcmRfc2VjdG9ycyA9 IChVSU5UX01BWCA+PiBTRUNUT1JfU0hJRlQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1y YWlkLmMgYi9kcml2ZXJzL21kL2RtLXJhaWQuYwppbmRleCAyYjI2NDM1YTY5NDZlLi45NTI2Y2Ni ZWRhZmJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLXJhaWQuYworKysgYi9kcml2ZXJzL21k L2RtLXJhaWQuYwpAQCAtMjk2MywxMyArMjk2Myw4IEBAIHN0YXRpYyB2b2lkIGNvbmZpZ3VyZV9k aXNjYXJkX3N1cHBvcnQoc3RydWN0IHJhaWRfc2V0ICpycykKIAlyYWlkNDU2ID0gcnNfaXNfcmFp ZDQ1Nihycyk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcnMtPnJhaWRfZGlza3M7IGkrKykgewotCQlz dHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcTsKLQotCQlpZiAoIXJzLT5kZXZbaV0ucmRldi5iZGV2KQot CQkJY29udGludWU7Ci0KLQkJcSA9IGJkZXZfZ2V0X3F1ZXVlKHJzLT5kZXZbaV0ucmRldi5iZGV2 KTsKLQkJaWYgKCFxIHx8ICFibGtfcXVldWVfZGlzY2FyZChxKSkKKwkJaWYgKCFycy0+ZGV2W2ld LnJkZXYuYmRldiB8fAorCQkgICAgIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhycy0+ZGV2W2ld LnJkZXYuYmRldikpCiAJCQlyZXR1cm47CiAKIAkJaWYgKHJhaWQ0NTYpIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbWQvZG0tdGFibGUuYyBiL2RyaXZlcnMvbWQvZG0tdGFibGUuYwppbmRleCBkNDY4 MzlmYWEwY2E1Li4wZGZmNjkwN2ZkMDBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLXRhYmxl LmMKKysrIGIvZHJpdmVycy9tZC9kbS10YWJsZS5jCkBAIC0xODg4LDkgKzE4ODgsNyBAQCBzdGF0 aWMgYm9vbCBkbV90YWJsZV9zdXBwb3J0c19ub3dhaXQoc3RydWN0IGRtX3RhYmxlICp0KQogc3Rh dGljIGludCBkZXZpY2Vfbm90X2Rpc2NhcmRfY2FwYWJsZShzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwg c3RydWN0IGRtX2RldiAqZGV2LAogCQkJCSAgICAgIHNlY3Rvcl90IHN0YXJ0LCBzZWN0b3JfdCBs ZW4sIHZvaWQgKmRhdGEpCiB7Ci0Jc3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBiZGV2X2dldF9x dWV1ZShkZXYtPmJkZXYpOwotCi0JcmV0dXJuICFibGtfcXVldWVfZGlzY2FyZChxKTsKKwlyZXR1 cm4gIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhkZXYtPmJkZXYpOwogfQogCiBzdGF0aWMgYm9v bCBkbV90YWJsZV9zdXBwb3J0c19kaXNjYXJkcyhzdHJ1Y3QgZG1fdGFibGUgKnQpCkBAIC0xOTcw LDE1ICsxOTY4LDEyIEBAIGludCBkbV90YWJsZV9zZXRfcmVzdHJpY3Rpb25zKHN0cnVjdCBkbV90 YWJsZSAqdCwgc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCiAJCWJsa19xdWV1ZV9mbGFnX2NsZWFy KFFVRVVFX0ZMQUdfTk9XQUlULCBxKTsKIAogCWlmICghZG1fdGFibGVfc3VwcG9ydHNfZGlzY2Fy ZHModCkpIHsKLQkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19ESVNDQVJELCBxKTsK LQkJLyogTXVzdCBhbHNvIGNsZWFyIGRpc2NhcmQgbGltaXRzLi4uICovCiAJCXEtPmxpbWl0cy5t YXhfZGlzY2FyZF9zZWN0b3JzID0gMDsKIAkJcS0+bGltaXRzLm1heF9od19kaXNjYXJkX3NlY3Rv cnMgPSAwOwogCQlxLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSA9IDA7CiAJCXEtPmxpbWl0 cy5kaXNjYXJkX2FsaWdubWVudCA9IDA7CiAJCXEtPmxpbWl0cy5kaXNjYXJkX21pc2FsaWduZWQg PSAwOwotCX0gZWxzZQotCQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJELCBx KTsKKwl9CiAKIAlpZiAoZG1fdGFibGVfc3VwcG9ydHNfc2VjdXJlX2VyYXNlKHQpKQogCQlibGtf cXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19TRUNFUkFTRSwgcSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL21kL2RtLXRoaW4uYyBiL2RyaXZlcnMvbWQvZG0tdGhpbi5jCmluZGV4IDRkMjVkMGUyNzAz MTMuLmVkZWQ0YmNjNDU0NWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tdGhpbi5jCisrKyBi L2RyaXZlcnMvbWQvZG0tdGhpbi5jCkBAIC0yODAyLDEzICsyODAyLDYgQEAgc3RhdGljIHZvaWQg cmVxdWV1ZV9iaW9zKHN0cnVjdCBwb29sICpwb29sKQogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBCaW5kaW5nIG9m IGNvbnRyb2wgdGFyZ2V0cyB0byBhIHBvb2wgb2JqZWN0CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLXN0YXRpYyBib29s IGRhdGFfZGV2X3N1cHBvcnRzX2Rpc2NhcmQoc3RydWN0IHBvb2xfYyAqcHQpCi17Ci0Jc3RydWN0 IHJlcXVlc3RfcXVldWUgKnEgPSBiZGV2X2dldF9xdWV1ZShwdC0+ZGF0YV9kZXYtPmJkZXYpOwot Ci0JcmV0dXJuIGJsa19xdWV1ZV9kaXNjYXJkKHEpOwotfQotCiBzdGF0aWMgYm9vbCBpc19mYWN0 b3Ioc2VjdG9yX3QgYmxvY2tfc2l6ZSwgdWludDMyX3QgbikKIHsKIAlyZXR1cm4gIXNlY3Rvcl9k aXYoYmxvY2tfc2l6ZSwgbik7CkBAIC0yODI4LDcgKzI4MjEsNyBAQCBzdGF0aWMgdm9pZCBkaXNh YmxlX3Bhc3Nkb3duX2lmX25vdF9zdXBwb3J0ZWQoc3RydWN0IHBvb2xfYyAqcHQpCiAJaWYgKCFw dC0+YWRqdXN0ZWRfcGYuZGlzY2FyZF9wYXNzZG93bikKIAkJcmV0dXJuOwogCi0JaWYgKCFkYXRh X2Rldl9zdXBwb3J0c19kaXNjYXJkKHB0KSkKKwlpZiAoIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9y cyhwdC0+ZGF0YV9kZXYtPmJkZXYpKQogCQlyZWFzb24gPSAiZGlzY2FyZCB1bnN1cHBvcnRlZCI7 CiAKIAllbHNlIGlmIChkYXRhX2xpbWl0cy0+bWF4X2Rpc2NhcmRfc2VjdG9ycyA8IHBvb2wtPnNl Y3RvcnNfcGVyX2Jsb2NrKQpAQCAtNDA1Nyw4ICs0MDUwLDYgQEAgc3RhdGljIHZvaWQgcG9vbF9p b19oaW50cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RydWN0IHF1ZXVlX2xpbWl0cyAqbGltaXRz KQogCQkvKgogCQkgKiBNdXN0IGV4cGxpY2l0bHkgZGlzYWxsb3cgc3RhY2tpbmcgZGlzY2FyZCBs aW1pdHMgb3RoZXJ3aXNlIHRoZQogCQkgKiBibG9jayBsYXllciB3aWxsIHN0YWNrIHRoZW0gaWYg cG9vbCdzIGRhdGEgZGV2aWNlIGhhcyBzdXBwb3J0LgotCQkgKiBRVUVVRV9GTEFHX0RJU0NBUkQg d291bGRuJ3QgYmUgc2V0IGJ1dCB0aGVyZSBpcyBubyB3YXkgZm9yIHRoZQotCQkgKiB1c2VyIHRv IHNlZSB0aGF0LCBzbyBtYWtlIHN1cmUgdG8gc2V0IGFsbCBkaXNjYXJkIGxpbWl0cyB0byAwLgog CQkgKi8KIAkJbGltaXRzLT5kaXNjYXJkX2dyYW51bGFyaXR5ID0gMDsKIAkJcmV0dXJuOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZC9kbS5jIGIvZHJpdmVycy9tZC9kbS5jCmluZGV4IDNjNWZhZDdj NGVlNjguLmRiYmY2NGNlN2U5MjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0uYworKysgYi9k cml2ZXJzL21kL2RtLmMKQEAgLTk1NSw3ICs5NTUsNiBAQCB2b2lkIGRpc2FibGVfZGlzY2FyZChz dHJ1Y3QgbWFwcGVkX2RldmljZSAqbWQpCiAKIAkvKiBkZXZpY2UgZG9lc24ndCByZWFsbHkgc3Vw cG9ydCBESVNDQVJELCBkaXNhYmxlIGl0ICovCiAJbGltaXRzLT5tYXhfZGlzY2FyZF9zZWN0b3Jz ID0gMDsKLQlibGtfcXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX0RJU0NBUkQsIG1kLT5xdWV1 ZSk7CiB9CiAKIHZvaWQgZGlzYWJsZV93cml0ZV96ZXJvZXMoc3RydWN0IG1hcHBlZF9kZXZpY2Ug Km1kKQpAQCAtOTgyLDcgKzk4MSw3IEBAIHN0YXRpYyB2b2lkIGNsb25lX2VuZGlvKHN0cnVjdCBi aW8gKmJpbykKIAogCWlmICh1bmxpa2VseShlcnJvciA9PSBCTEtfU1RTX1RBUkdFVCkpIHsKIAkJ aWYgKGJpb19vcChiaW8pID09IFJFUV9PUF9ESVNDQVJEICYmCi0JCSAgICAhcS0+bGltaXRzLm1h eF9kaXNjYXJkX3NlY3RvcnMpCisJCSAgICAhYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGJpby0+ YmlfYmRldikpCiAJCQlkaXNhYmxlX2Rpc2NhcmQobWQpOwogCQllbHNlIGlmIChiaW9fb3AoYmlv KSA9PSBSRVFfT1BfV1JJVEVfWkVST0VTICYmCiAJCQkgIXEtPmxpbWl0cy5tYXhfd3JpdGVfemVy b2VzX3NlY3RvcnMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL21kLWxpbmVhci5jIGIvZHJpdmVy cy9tZC9tZC1saW5lYXIuYwppbmRleCAwZjU1YjA3OTM3MWIxLi4xMzhhM2IyNWM1YzgyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL21kL21kLWxpbmVhci5jCisrKyBiL2RyaXZlcnMvbWQvbWQtbGluZWFy LmMKQEAgLTY0LDcgKzY0LDYgQEAgc3RhdGljIHN0cnVjdCBsaW5lYXJfY29uZiAqbGluZWFyX2Nv bmYoc3RydWN0IG1kZGV2ICptZGRldiwgaW50IHJhaWRfZGlza3MpCiAJc3RydWN0IGxpbmVhcl9j b25mICpjb25mOwogCXN0cnVjdCBtZF9yZGV2ICpyZGV2OwogCWludCBpLCBjbnQ7Ci0JYm9vbCBk aXNjYXJkX3N1cHBvcnRlZCA9IGZhbHNlOwogCiAJY29uZiA9IGt6YWxsb2Moc3RydWN0X3NpemUo Y29uZiwgZGlza3MsIHJhaWRfZGlza3MpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNvbmYpCkBAIC05 Niw5ICs5NSw2IEBAIHN0YXRpYyBzdHJ1Y3QgbGluZWFyX2NvbmYgKmxpbmVhcl9jb25mKHN0cnVj dCBtZGRldiAqbWRkZXYsIGludCByYWlkX2Rpc2tzKQogCiAJCWNvbmYtPmFycmF5X3NlY3RvcnMg Kz0gcmRldi0+c2VjdG9yczsKIAkJY250Kys7Ci0KLQkJaWYgKGJsa19xdWV1ZV9kaXNjYXJkKGJk ZXZfZ2V0X3F1ZXVlKHJkZXYtPmJkZXYpKSkKLQkJCWRpc2NhcmRfc3VwcG9ydGVkID0gdHJ1ZTsK IAl9CiAJaWYgKGNudCAhPSByYWlkX2Rpc2tzKSB7CiAJCXByX3dhcm4oIm1kL2xpbmVhcjolczog bm90IGVub3VnaCBkcml2ZXMgcHJlc2VudC4gQWJvcnRpbmchXG4iLApAQCAtMTA2LDExICsxMDIs NiBAQCBzdGF0aWMgc3RydWN0IGxpbmVhcl9jb25mICpsaW5lYXJfY29uZihzdHJ1Y3QgbWRkZXYg Km1kZGV2LCBpbnQgcmFpZF9kaXNrcykKIAkJZ290byBvdXQ7CiAJfQogCi0JaWYgKCFkaXNjYXJk X3N1cHBvcnRlZCkKLQkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19ESVNDQVJELCBt ZGRldi0+cXVldWUpOwotCWVsc2UKLQkJYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElT Q0FSRCwgbWRkZXYtPnF1ZXVlKTsKLQogCS8qCiAJICogSGVyZSB3ZSBjYWxjdWxhdGUgdGhlIGRl dmljZSBvZmZzZXRzLgogCSAqLwpAQCAtMjUyLDcgKzI0Myw3IEBAIHN0YXRpYyBib29sIGxpbmVh cl9tYWtlX3JlcXVlc3Qoc3RydWN0IG1kZGV2ICptZGRldiwgc3RydWN0IGJpbyAqYmlvKQogCQlz dGFydF9zZWN0b3IgKyBkYXRhX29mZnNldDsKIAogCWlmICh1bmxpa2VseSgoYmlvX29wKGJpbykg PT0gUkVRX09QX0RJU0NBUkQpICYmCi0JCSAgICAgIWJsa19xdWV1ZV9kaXNjYXJkKGJpby0+Ymlf YmRldi0+YmRfZGlzay0+cXVldWUpKSkgeworCQkgICAgICFiZGV2X21heF9kaXNjYXJkX3NlY3Rv cnMoYmlvLT5iaV9iZGV2KSkpIHsKIAkJLyogSnVzdCBpZ25vcmUgaXQgKi8KIAkJYmlvX2VuZGlv KGJpbyk7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDAuYyBiL2RyaXZl cnMvbWQvcmFpZDAuYwppbmRleCBiMjFlMTAxMTgzZjQ0Li43MjMxZjVlMWVhYTczIDEwMDY0NAot LS0gYS9kcml2ZXJzL21kL3JhaWQwLmMKKysrIGIvZHJpdmVycy9tZC9yYWlkMC5jCkBAIC0zOTks NyArMzk5LDYgQEAgc3RhdGljIGludCByYWlkMF9ydW4oc3RydWN0IG1kZGV2ICptZGRldikKIAlj b25mID0gbWRkZXYtPnByaXZhdGU7CiAJaWYgKG1kZGV2LT5xdWV1ZSkgewogCQlzdHJ1Y3QgbWRf cmRldiAqcmRldjsKLQkJYm9vbCBkaXNjYXJkX3N1cHBvcnRlZCA9IGZhbHNlOwogCiAJCWJsa19x dWV1ZV9tYXhfaHdfc2VjdG9ycyhtZGRldi0+cXVldWUsIG1kZGV2LT5jaHVua19zZWN0b3JzKTsK IAkJYmxrX3F1ZXVlX21heF93cml0ZV96ZXJvZXNfc2VjdG9ycyhtZGRldi0+cXVldWUsIG1kZGV2 LT5jaHVua19zZWN0b3JzKTsKQEAgLTQxMiwxMyArNDExLDcgQEAgc3RhdGljIGludCByYWlkMF9y dW4oc3RydWN0IG1kZGV2ICptZGRldikKIAkJcmRldl9mb3JfZWFjaChyZGV2LCBtZGRldikgewog CQkJZGlza19zdGFja19saW1pdHMobWRkZXYtPmdlbmRpc2ssIHJkZXYtPmJkZXYsCiAJCQkJCSAg cmRldi0+ZGF0YV9vZmZzZXQgPDwgOSk7Ci0JCQlpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQoYmRldl9n ZXRfcXVldWUocmRldi0+YmRldikpKQotCQkJCWRpc2NhcmRfc3VwcG9ydGVkID0gdHJ1ZTsKIAkJ fQotCQlpZiAoIWRpc2NhcmRfc3VwcG9ydGVkKQotCQkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVF VUVfRkxBR19ESVNDQVJELCBtZGRldi0+cXVldWUpOwotCQllbHNlCi0JCQlibGtfcXVldWVfZmxh Z19zZXQoUVVFVUVfRkxBR19ESVNDQVJELCBtZGRldi0+cXVldWUpOwogCX0KIAogCS8qIGNhbGN1 bGF0ZSBhcnJheSBkZXZpY2Ugc2l6ZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkMS5j IGIvZHJpdmVycy9tZC9yYWlkMS5jCmluZGV4IGQ4MWI4OTY4NTVmOWYuLjNkYTc0OWQxNTBhMTcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDEuYworKysgYi9kcml2ZXJzL21kL3JhaWQxLmMK QEAgLTgwMiw3ICs4MDIsNyBAQCBzdGF0aWMgdm9pZCBmbHVzaF9iaW9fbGlzdChzdHJ1Y3QgcjFj b25mICpjb25mLCBzdHJ1Y3QgYmlvICpiaW8pCiAJCWlmICh0ZXN0X2JpdChGYXVsdHksICZyZGV2 LT5mbGFncykpIHsKIAkJCWJpb19pb19lcnJvcihiaW8pOwogCQl9IGVsc2UgaWYgKHVubGlrZWx5 KChiaW9fb3AoYmlvKSA9PSBSRVFfT1BfRElTQ0FSRCkgJiYKLQkJCQkgICAgIWJsa19xdWV1ZV9k aXNjYXJkKGJpby0+YmlfYmRldi0+YmRfZGlzay0+cXVldWUpKSkKKwkJCQkgICAgIWJkZXZfbWF4 X2Rpc2NhcmRfc2VjdG9ycyhiaW8tPmJpX2JkZXYpKSkKIAkJCS8qIEp1c3QgaWdub3JlIGl0ICov CiAJCQliaW9fZW5kaW8oYmlvKTsKIAkJZWxzZQpAQCAtMTgyNiw4ICsxODI2LDYgQEAgc3RhdGlj IGludCByYWlkMV9hZGRfZGlzayhzdHJ1Y3QgbWRkZXYgKm1kZGV2LCBzdHJ1Y3QgbWRfcmRldiAq cmRldikKIAkJCWJyZWFrOwogCQl9CiAJfQotCWlmIChtZGRldi0+cXVldWUgJiYgYmxrX3F1ZXVl X2Rpc2NhcmQoYmRldl9nZXRfcXVldWUocmRldi0+YmRldikpKQotCQlibGtfcXVldWVfZmxhZ19z ZXQoUVVFVUVfRkxBR19ESVNDQVJELCBtZGRldi0+cXVldWUpOwogCXByaW50X2NvbmYoY29uZik7 CiAJcmV0dXJuIGVycjsKIH0KQEAgLTMxMDYsNyArMzEwNCw2IEBAIHN0YXRpYyBpbnQgcmFpZDFf cnVuKHN0cnVjdCBtZGRldiAqbWRkZXYpCiAJaW50IGk7CiAJc3RydWN0IG1kX3JkZXYgKnJkZXY7 CiAJaW50IHJldDsKLQlib29sIGRpc2NhcmRfc3VwcG9ydGVkID0gZmFsc2U7CiAKIAlpZiAobWRk ZXYtPmxldmVsICE9IDEpIHsKIAkJcHJfd2FybigibWQvcmFpZDE6JXM6IHJhaWQgbGV2ZWwgbm90 IHNldCB0byBtaXJyb3JpbmcgKCVkKVxuIiwKQEAgLTMxNDEsOCArMzEzOCw2IEBAIHN0YXRpYyBp bnQgcmFpZDFfcnVuKHN0cnVjdCBtZGRldiAqbWRkZXYpCiAJCQljb250aW51ZTsKIAkJZGlza19z dGFja19saW1pdHMobWRkZXYtPmdlbmRpc2ssIHJkZXYtPmJkZXYsCiAJCQkJICByZGV2LT5kYXRh X29mZnNldCA8PCA5KTsKLQkJaWYgKGJsa19xdWV1ZV9kaXNjYXJkKGJkZXZfZ2V0X3F1ZXVlKHJk ZXYtPmJkZXYpKSkKLQkJCWRpc2NhcmRfc3VwcG9ydGVkID0gdHJ1ZTsKIAl9CiAKIAltZGRldi0+ ZGVncmFkZWQgPSAwOwpAQCAtMzE3OSwxNSArMzE3NCw2IEBAIHN0YXRpYyBpbnQgcmFpZDFfcnVu KHN0cnVjdCBtZGRldiAqbWRkZXYpCiAKIAltZF9zZXRfYXJyYXlfc2VjdG9ycyhtZGRldiwgcmFp ZDFfc2l6ZShtZGRldiwgMCwgMCkpOwogCi0JaWYgKG1kZGV2LT5xdWV1ZSkgewotCQlpZiAoZGlz Y2FyZF9zdXBwb3J0ZWQpCi0JCQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJE LAotCQkJCQkJbWRkZXYtPnF1ZXVlKTsKLQkJZWxzZQotCQkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIo UVVFVUVfRkxBR19ESVNDQVJELAotCQkJCQkJICBtZGRldi0+cXVldWUpOwotCX0KLQogCXJldCA9 IG1kX2ludGVncml0eV9yZWdpc3RlcihtZGRldik7CiAJaWYgKHJldCkgewogCQltZF91bnJlZ2lz dGVyX3RocmVhZCgmbWRkZXYtPnRocmVhZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL3JhaWQx MC5jIGIvZHJpdmVycy9tZC9yYWlkMTAuYwppbmRleCA3ODE2YzhiMmU4MDg3Li4zNmE0NjAwMTVj ZjU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL3JhaWQxMC5jCisrKyBiL2RyaXZlcnMvbWQvcmFp ZDEwLmMKQEAgLTg4OCw3ICs4ODgsNyBAQCBzdGF0aWMgdm9pZCBmbHVzaF9wZW5kaW5nX3dyaXRl cyhzdHJ1Y3QgcjEwY29uZiAqY29uZikKIAkJCWlmICh0ZXN0X2JpdChGYXVsdHksICZyZGV2LT5m bGFncykpIHsKIAkJCQliaW9faW9fZXJyb3IoYmlvKTsKIAkJCX0gZWxzZSBpZiAodW5saWtlbHko KGJpb19vcChiaW8pID09ICBSRVFfT1BfRElTQ0FSRCkgJiYKLQkJCQkJICAgICFibGtfcXVldWVf ZGlzY2FyZChiaW8tPmJpX2JkZXYtPmJkX2Rpc2stPnF1ZXVlKSkpCisJCQkJCSAgICAhYmRldl9t YXhfZGlzY2FyZF9zZWN0b3JzKGJpby0+YmlfYmRldikpKQogCQkJCS8qIEp1c3QgaWdub3JlIGl0 ICovCiAJCQkJYmlvX2VuZGlvKGJpbyk7CiAJCQllbHNlCkBAIC0xMDgzLDcgKzEwODMsNyBAQCBz dGF0aWMgdm9pZCByYWlkMTBfdW5wbHVnKHN0cnVjdCBibGtfcGx1Z19jYiAqY2IsIGJvb2wgZnJv bV9zY2hlZHVsZSkKIAkJaWYgKHRlc3RfYml0KEZhdWx0eSwgJnJkZXYtPmZsYWdzKSkgewogCQkJ YmlvX2lvX2Vycm9yKGJpbyk7CiAJCX0gZWxzZSBpZiAodW5saWtlbHkoKGJpb19vcChiaW8pID09 ICBSRVFfT1BfRElTQ0FSRCkgJiYKLQkJCQkgICAgIWJsa19xdWV1ZV9kaXNjYXJkKGJpby0+Ymlf YmRldi0+YmRfZGlzay0+cXVldWUpKSkKKwkJCQkgICAgIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9y cyhiaW8tPmJpX2JkZXYpKSkKIAkJCS8qIEp1c3QgaWdub3JlIGl0ICovCiAJCQliaW9fZW5kaW8o YmlvKTsKIAkJZWxzZQpAQCAtMjE0NCw4ICsyMTQ0LDYgQEAgc3RhdGljIGludCByYWlkMTBfYWRk X2Rpc2soc3RydWN0IG1kZGV2ICptZGRldiwgc3RydWN0IG1kX3JkZXYgKnJkZXYpCiAJCXJjdV9h c3NpZ25fcG9pbnRlcihwLT5yZGV2LCByZGV2KTsKIAkJYnJlYWs7CiAJfQotCWlmIChtZGRldi0+ cXVldWUgJiYgYmxrX3F1ZXVlX2Rpc2NhcmQoYmRldl9nZXRfcXVldWUocmRldi0+YmRldikpKQot CQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJELCBtZGRldi0+cXVldWUpOwog CiAJcHJpbnRfY29uZihjb25mKTsKIAlyZXR1cm4gZXJyOwpAQCAtNDA2OSw3ICs0MDY3LDYgQEAg c3RhdGljIGludCByYWlkMTBfcnVuKHN0cnVjdCBtZGRldiAqbWRkZXYpCiAJc2VjdG9yX3Qgc2l6 ZTsKIAlzZWN0b3JfdCBtaW5fb2Zmc2V0X2RpZmYgPSAwOwogCWludCBmaXJzdCA9IDE7Ci0JYm9v bCBkaXNjYXJkX3N1cHBvcnRlZCA9IGZhbHNlOwogCiAJaWYgKG1kZGV2X2luaXRfd3JpdGVzX3Bl bmRpbmcobWRkZXYpIDwgMCkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC00MTQwLDIwICs0MTM3LDkg QEAgc3RhdGljIGludCByYWlkMTBfcnVuKHN0cnVjdCBtZGRldiAqbWRkZXYpCiAJCQkJCSAgcmRl di0+ZGF0YV9vZmZzZXQgPDwgOSk7CiAKIAkJZGlzay0+aGVhZF9wb3NpdGlvbiA9IDA7Ci0KLQkJ aWYgKGJsa19xdWV1ZV9kaXNjYXJkKGJkZXZfZ2V0X3F1ZXVlKHJkZXYtPmJkZXYpKSkKLQkJCWRp c2NhcmRfc3VwcG9ydGVkID0gdHJ1ZTsKIAkJZmlyc3QgPSAwOwogCX0KIAotCWlmIChtZGRldi0+ cXVldWUpIHsKLQkJaWYgKGRpc2NhcmRfc3VwcG9ydGVkKQotCQkJYmxrX3F1ZXVlX2ZsYWdfc2V0 KFFVRVVFX0ZMQUdfRElTQ0FSRCwKLQkJCQkJCW1kZGV2LT5xdWV1ZSk7Ci0JCWVsc2UKLQkJCWJs a19xdWV1ZV9mbGFnX2NsZWFyKFFVRVVFX0ZMQUdfRElTQ0FSRCwKLQkJCQkJCSAgbWRkZXYtPnF1 ZXVlKTsKLQl9CiAJLyogbmVlZCB0byBjaGVjayB0aGF0IGV2ZXJ5IGJsb2NrIGhhcyBhdCBsZWFz dCBvbmUgd29ya2luZyBtaXJyb3IgKi8KIAlpZiAoIWVub3VnaChjb25mLCAtMSkpIHsKIAkJcHJf ZXJyKCJtZC9yYWlkMTA6JXM6IG5vdCBlbm91Z2ggb3BlcmF0aW9uYWwgbWlycm9ycy5cbiIsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL21kL3JhaWQ1LWNhY2hlLmMgYi9kcml2ZXJzL21kL3JhaWQ1LWNh Y2hlLmMKaW5kZXggYTdkNTBmZjkwMjBhOC4uYzNjYmY5YTU3NGEzOSAxMDA2NDQKLS0tIGEvZHJp dmVycy9tZC9yYWlkNS1jYWNoZS5jCisrKyBiL2RyaXZlcnMvbWQvcmFpZDUtY2FjaGUuYwpAQCAt MTMxOCw3ICsxMzE4LDcgQEAgc3RhdGljIHZvaWQgcjVsX3dyaXRlX3N1cGVyX2FuZF9kaXNjYXJk X3NwYWNlKHN0cnVjdCByNWxfbG9nICpsb2csCiAKIAlyNWxfd3JpdGVfc3VwZXIobG9nLCBlbmQp OwogCi0JaWYgKCFibGtfcXVldWVfZGlzY2FyZChiZGV2X2dldF9xdWV1ZShiZGV2KSkpCisJaWYg KCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoYmRldikpCiAJCXJldHVybjsKIAogCW1kZGV2ID0g bG9nLT5yZGV2LT5tZGRldjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDUuYyBiL2RyaXZl cnMvbWQvcmFpZDUuYwppbmRleCAwYmJhZTBlNjM4NjY2Li41OWY5MWUzOTJhMmFlIDEwMDY0NAot LS0gYS9kcml2ZXJzL21kL3JhaWQ1LmMKKysrIGIvZHJpdmVycy9tZC9yYWlkNS5jCkBAIC03Nzc2 LDE0ICs3Nzc2LDEwIEBAIHN0YXRpYyBpbnQgcmFpZDVfcnVuKHN0cnVjdCBtZGRldiAqbWRkZXYp CiAJCSAqIEEgYmV0dGVyIGlkZWEgbWlnaHQgYmUgdG8gdHVybiBESVNDQVJEIGludG8gV1JJVEVf WkVST0VTCiAJCSAqIHJlcXVlc3RzLCBhcyB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlIHNhZmUuCiAJ CSAqLwotCQlpZiAoZGV2aWNlc19oYW5kbGVfZGlzY2FyZF9zYWZlbHkgJiYKLQkJICAgIG1kZGV2 LT5xdWV1ZS0+bGltaXRzLm1heF9kaXNjYXJkX3NlY3RvcnMgPj0gKHN0cmlwZSA+PiA5KSAmJgot CQkgICAgbWRkZXYtPnF1ZXVlLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSA+PSBzdHJpcGUp Ci0JCQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJELAotCQkJCQkJbWRkZXYt PnF1ZXVlKTsKLQkJZWxzZQotCQkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19ESVND QVJELAotCQkJCQkJbWRkZXYtPnF1ZXVlKTsKKwkJaWYgKCFkZXZpY2VzX2hhbmRsZV9kaXNjYXJk X3NhZmVseSB8fAorCQkgICAgbWRkZXYtPnF1ZXVlLT5saW1pdHMubWF4X2Rpc2NhcmRfc2VjdG9y cyA8IChzdHJpcGUgPj4gOSkgfHwKKwkJICAgIG1kZGV2LT5xdWV1ZS0+bGltaXRzLmRpc2NhcmRf Z3JhbnVsYXJpdHkgPCBzdHJpcGUpCisJCQlibGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9ycyht ZGRldi0+cXVldWUsIDApOwogCiAJCWJsa19xdWV1ZV9tYXhfaHdfc2VjdG9ycyhtZGRldi0+cXVl dWUsIFVJTlRfTUFYKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jb3JlL3F1ZXVlLmMg Yi9kcml2ZXJzL21tYy9jb3JlL3F1ZXVlLmMKaW5kZXggYzY5YjJkOWRmNmYxNi4uY2FjNjMxNTAx MGEzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvY29yZS9xdWV1ZS5jCisrKyBiL2RyaXZlcnMv bW1jL2NvcmUvcXVldWUuYwpAQCAtMTgzLDcgKzE4Myw2IEBAIHN0YXRpYyB2b2lkIG1tY19xdWV1 ZV9zZXR1cF9kaXNjYXJkKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAogCWlmICghbWF4X2Rpc2Nh cmQpCiAJCXJldHVybjsKIAotCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX0RJU0NBUkQs IHEpOwogCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKHEsIG1heF9kaXNjYXJkKTsKIAlx LT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSA9IGNhcmQtPnByZWZfZXJhc2UgPDwgOTsKIAkv KiBncmFudWxhcml0eSBtdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gbWF4LiBkaXNjYXJkICovCmRp ZmYgLS1naXQgYS9kcml2ZXJzL210ZC9tdGRfYmxrZGV2cy5jIGIvZHJpdmVycy9tdGQvbXRkX2Js a2RldnMuYwppbmRleCA2NGQyYjA5M2YxMTRiLi5mNzMxNzIxMTE0NjU1IDEwMDY0NAotLS0gYS9k cml2ZXJzL210ZC9tdGRfYmxrZGV2cy5jCisrKyBiL2RyaXZlcnMvbXRkL210ZF9ibGtkZXZzLmMK QEAgLTM3Nyw3ICszNzcsNiBAQCBpbnQgYWRkX210ZF9ibGt0cmFuc19kZXYoc3RydWN0IG10ZF9i bGt0cmFuc19kZXYgKm5ldykKIAlibGtfcXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX0FERF9S QU5ET00sIG5ldy0+cnEpOwogCiAJaWYgKHRyLT5kaXNjYXJkKSB7Ci0JCWJsa19xdWV1ZV9mbGFn X3NldChRVUVVRV9GTEFHX0RJU0NBUkQsIG5ldy0+cnEpOwogCQlibGtfcXVldWVfbWF4X2Rpc2Nh cmRfc2VjdG9ycyhuZXctPnJxLCBVSU5UX01BWCk7CiAJCW5ldy0+cnEtPmxpbWl0cy5kaXNjYXJk X2dyYW51bGFyaXR5ID0gdHItPmJsa3NpemU7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1l L2hvc3QvY29yZS5jIGIvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jCmluZGV4IGVmYjg1YzZkOGUy ZDUuLjdlMDdkZDY5MjYyYTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYwor KysgYi9kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMKQEAgLTE2MDcsMTAgKzE2MDcsOCBAQCBzdGF0 aWMgdm9pZCBudm1lX2NvbmZpZ19kaXNjYXJkKHN0cnVjdCBnZW5kaXNrICpkaXNrLCBzdHJ1Y3Qg bnZtZV9ucyAqbnMpCiAJc3RydWN0IHJlcXVlc3RfcXVldWUgKnF1ZXVlID0gZGlzay0+cXVldWU7 CiAJdTMyIHNpemUgPSBxdWV1ZV9sb2dpY2FsX2Jsb2NrX3NpemUocXVldWUpOwogCi0JaWYgKGN0 cmwtPm1heF9kaXNjYXJkX3NlY3RvcnMgPT0gMCkgewotCQlibGtfcXVldWVfZmxhZ19jbGVhcihR VUVVRV9GTEFHX0RJU0NBUkQsIHF1ZXVlKTsKKwlpZiAoY3RybC0+bWF4X2Rpc2NhcmRfc2VjdG9y cyA9PSAwKQogCQlyZXR1cm47Ci0JfQogCiAJQlVJTERfQlVHX09OKFBBR0VfU0laRSAvIHNpemVv ZihzdHJ1Y3QgbnZtZV9kc21fcmFuZ2UpIDwKIAkJCU5WTUVfRFNNX01BWF9SQU5HRVMpOwpAQCAt MTYxOSw3ICsxNjE3LDcgQEAgc3RhdGljIHZvaWQgbnZtZV9jb25maWdfZGlzY2FyZChzdHJ1Y3Qg Z2VuZGlzayAqZGlzaywgc3RydWN0IG52bWVfbnMgKm5zKQogCXF1ZXVlLT5saW1pdHMuZGlzY2Fy ZF9ncmFudWxhcml0eSA9IHNpemU7CiAKIAkvKiBJZiBkaXNjYXJkIGlzIGFscmVhZHkgZW5hYmxl ZCwgZG9uJ3QgcmVzZXQgcXVldWUgbGltaXRzICovCi0JaWYgKGJsa19xdWV1ZV9mbGFnX3Rlc3Rf YW5kX3NldChRVUVVRV9GTEFHX0RJU0NBUkQsIHF1ZXVlKSkKKwlpZiAocXVldWUtPmxpbWl0cy5t YXhfZGlzY2FyZF9zZWN0b3JzKQogCQlyZXR1cm47CiAKIAlibGtfcXVldWVfbWF4X2Rpc2NhcmRf c2VjdG9ycyhxdWV1ZSwgY3RybC0+bWF4X2Rpc2NhcmRfc2VjdG9ycyk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL3MzOTAvYmxvY2svZGFzZF9mYmEuYyBiL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Zi YS5jCmluZGV4IGUwODRmNGRlZGRkZGQuLjhiZDU2NjVkYjkxOTggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvczM5MC9ibG9jay9kYXNkX2ZiYS5jCisrKyBiL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Zi YS5jCkBAIC03OTEsNyArNzkxLDYgQEAgc3RhdGljIHZvaWQgZGFzZF9mYmFfc2V0dXBfYmxrX3F1 ZXVlKHN0cnVjdCBkYXNkX2Jsb2NrICpibG9jaykKIAogCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9z ZWN0b3JzKHEsIG1heF9kaXNjYXJkX3NlY3RvcnMpOwogCWJsa19xdWV1ZV9tYXhfd3JpdGVfemVy b2VzX3NlY3RvcnMocSwgbWF4X2Rpc2NhcmRfc2VjdG9ycyk7Ci0JYmxrX3F1ZXVlX2ZsYWdfc2V0 KFFVRVVFX0ZMQUdfRElTQ0FSRCwgcSk7CiB9CiAKIHN0YXRpYyBpbnQgZGFzZF9mYmFfcGVfaGFu ZGxlcihzdHJ1Y3QgZGFzZF9kZXZpY2UgKmRldmljZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2Nz aS9zZC5jIGIvZHJpdmVycy9zY3NpL3NkLmMKaW5kZXggYTM5MDY3OWNmNDU4NC4uNDQ0NDc5NjU3 YjdmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NkLmMKKysrIGIvZHJpdmVycy9zY3NpL3Nk LmMKQEAgLTc5Nyw3ICs3OTcsNiBAQCBzdGF0aWMgdm9pZCBzZF9jb25maWdfZGlzY2FyZChzdHJ1 Y3Qgc2NzaV9kaXNrICpzZGtwLCB1bnNpZ25lZCBpbnQgbW9kZSkKIAljYXNlIFNEX0xCUF9GVUxM OgogCWNhc2UgU0RfTEJQX0RJU0FCTEU6CiAJCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3Jz KHEsIDApOwotCQlibGtfcXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX0RJU0NBUkQsIHEpOwog CQlyZXR1cm47CiAKIAljYXNlIFNEX0xCUF9VTk1BUDoKQEAgLTgzMCw3ICs4MjksNiBAQCBzdGF0 aWMgdm9pZCBzZF9jb25maWdfZGlzY2FyZChzdHJ1Y3Qgc2NzaV9kaXNrICpzZGtwLCB1bnNpZ25l ZCBpbnQgbW9kZSkKIAl9CiAKIAlibGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9ycyhxLCBtYXhf YmxvY2tzICogKGxvZ2ljYWxfYmxvY2tfc2l6ZSA+PiA5KSk7Ci0JYmxrX3F1ZXVlX2ZsYWdfc2V0 KFFVRVVFX0ZMQUdfRElTQ0FSRCwgcSk7CiB9CiAKIHN0YXRpYyBibGtfc3RhdHVzX3Qgc2Rfc2V0 dXBfdW5tYXBfY21uZChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCmRpZmYgLS1naXQgYS9kcml2ZXJz L3RhcmdldC90YXJnZXRfY29yZV9kZXZpY2UuYyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3Jl X2RldmljZS5jCmluZGV4IGMzZTI1YmFjOTBkNTkuLjZjYjlmODc4NDMyNzggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2RldmljZS5jCisrKyBiL2RyaXZlcnMvdGFyZ2V0 L3RhcmdldF9jb3JlX2RldmljZS5jCkBAIC04MzgsNyArODM4LDcgQEAgYm9vbCB0YXJnZXRfY29u ZmlndXJlX3VubWFwX2Zyb21fcXVldWUoc3RydWN0IHNlX2Rldl9hdHRyaWIgKmF0dHJpYiwKIAlz dHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKGJkZXYpOwogCWludCBibG9j a19zaXplID0gYmRldl9sb2dpY2FsX2Jsb2NrX3NpemUoYmRldik7CiAKLQlpZiAoIWJsa19xdWV1 ZV9kaXNjYXJkKHEpKQorCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGJkZXYpKQogCQly ZXR1cm4gZmFsc2U7CiAKIAlhdHRyaWItPm1heF91bm1hcF9sYmFfY291bnQgPQpkaWZmIC0tZ2l0 IGEvZnMvYnRyZnMvZXh0ZW50LXRyZWUuYyBiL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMKaW5kZXgg ZjQ3NzAzNWEyYWMyMy4uZWZkOGRlYjNhYjdlOCAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvZXh0ZW50 LXRyZWUuYworKysgYi9mcy9idHJmcy9leHRlbnQtdHJlZS5jCkBAIC0xMjkxLDcgKzEyOTEsNyBA QCBzdGF0aWMgaW50IGRvX2Rpc2NhcmRfZXh0ZW50KHN0cnVjdCBidHJmc19pb19zdHJpcGUgKnN0 cmlwZSwgdTY0ICpieXRlcykKIAkJcmV0ID0gYnRyZnNfcmVzZXRfZGV2aWNlX3pvbmUoZGV2X3Jl cGxhY2UtPnRndGRldiwgcGh5cywgbGVuLAogCQkJCQkgICAgICAmZGlzY2FyZGVkKTsKIAkJZGlz Y2FyZGVkICs9IHNyY19kaXNjOwotCX0gZWxzZSBpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQoYmRldl9n ZXRfcXVldWUoc3RyaXBlLT5kZXYtPmJkZXYpKSkgeworCX0gZWxzZSBpZiAoYmRldl9tYXhfZGlz Y2FyZF9zZWN0b3JzKHN0cmlwZS0+ZGV2LT5iZGV2KSkgewogCQlyZXQgPSBidHJmc19pc3N1ZV9k aXNjYXJkKGRldi0+YmRldiwgcGh5cywgbGVuLCAmZGlzY2FyZGVkKTsKIAl9IGVsc2UgewogCQly ZXQgPSAwOwpAQCAtNTk4Nyw3ICs1OTg3LDcgQEAgc3RhdGljIGludCBidHJmc190cmltX2ZyZWVf ZXh0ZW50cyhzdHJ1Y3QgYnRyZnNfZGV2aWNlICpkZXZpY2UsIHU2NCAqdHJpbW1lZCkKIAkqdHJp bW1lZCA9IDA7CiAKIAkvKiBEaXNjYXJkIG5vdCBzdXBwb3J0ZWQgPSBub3RoaW5nIHRvIGRvLiAq LwotCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQoYmRldl9nZXRfcXVldWUoZGV2aWNlLT5iZGV2KSkp CisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoZGV2aWNlLT5iZGV2KSkKIAkJcmV0dXJu IDA7CiAKIAkvKiBOb3Qgd3JpdGFibGUgPSBub3RoaW5nIHRvIGRvLiAqLwpkaWZmIC0tZ2l0IGEv ZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmMKaW5kZXggZjQ2ZTcxMDYxOTQyZC4u MDk2YmIwZGEwM2YxYyAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvaW9jdGwuYworKysgYi9mcy9idHJm cy9pb2N0bC5jCkBAIC01MDEsNyArNTAxLDcgQEAgc3RhdGljIG5vaW5saW5lIGludCBidHJmc19p b2N0bF9maXRyaW0oc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8sCiAJCWlmICghZGV2aWNl LT5iZGV2KQogCQkJY29udGludWU7CiAJCXEgPSBiZGV2X2dldF9xdWV1ZShkZXZpY2UtPmJkZXYp OwotCQlpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQocSkpIHsKKwkJaWYgKGJkZXZfbWF4X2Rpc2NhcmRf c2VjdG9ycyhkZXZpY2UtPmJkZXYpKSB7CiAJCQludW1fZGV2aWNlcysrOwogCQkJbWlubGVuID0g bWluX3QodTY0LCBxLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSwKIAkJCQkgICAgIG1pbmxl bik7CmRpZmYgLS1naXQgYS9mcy9leGZhdC9maWxlLmMgYi9mcy9leGZhdC9maWxlLmMKaW5kZXgg MmY1MTMwMDU5MjM2Ni4uNzY1ZTRmNjNkZDE4ZCAxMDA2NDQKLS0tIGEvZnMvZXhmYXQvZmlsZS5j CisrKyBiL2ZzL2V4ZmF0L2ZpbGUuYwpAQCAtMzU4LDcgKzM1OCw3IEBAIHN0YXRpYyBpbnQgZXhm YXRfaW9jdGxfZml0cmltKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVuc2lnbmVkIGxvbmcgYXJnKQog CWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJcmV0dXJuIC1FUEVSTTsKIAotCWlmICgh YmxrX3F1ZXVlX2Rpc2NhcmQocSkpCisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoaW5v ZGUtPmlfc2ItPnNfYmRldikpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCWlmIChjb3B5X2Zy b21fdXNlcigmcmFuZ2UsIChzdHJ1Y3QgZnN0cmltX3JhbmdlIF9fdXNlciAqKWFyZywgc2l6ZW9m KHJhbmdlKSkpCmRpZmYgLS1naXQgYS9mcy9leGZhdC9zdXBlci5jIGIvZnMvZXhmYXQvc3VwZXIu YwppbmRleCA4Y2EyMWU3OTE3ZDE2Li5iZTA3ODhlY2FmMjBlIDEwMDY0NAotLS0gYS9mcy9leGZh dC9zdXBlci5jCisrKyBiL2ZzL2V4ZmF0L3N1cGVyLmMKQEAgLTYyNywxMyArNjI3LDkgQEAgc3Rh dGljIGludCBleGZhdF9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBm c19jb250ZXh0ICpmYykKIAlpZiAob3B0cy0+YWxsb3dfdXRpbWUgPT0gKHVuc2lnbmVkIHNob3J0 KS0xKQogCQlvcHRzLT5hbGxvd191dGltZSA9IH5vcHRzLT5mc19kbWFzayAmIDAwMjI7CiAKLQlp ZiAob3B0cy0+ZGlzY2FyZCkgewotCQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0 X3F1ZXVlKHNiLT5zX2JkZXYpOwotCi0JCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpIHsKLQkJ CWV4ZmF0X3dhcm4oc2IsICJtb3VudGluZyB3aXRoIFwiZGlzY2FyZFwiIG9wdGlvbiwgYnV0IHRo ZSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBkaXNjYXJkIik7Ci0JCQlvcHRzLT5kaXNjYXJkID0g MDsKLQkJfQorCWlmIChvcHRzLT5kaXNjYXJkICYmICFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMo c2ItPnNfYmRldikpIHsKKwkJZXhmYXRfd2FybihzYiwgIm1vdW50aW5nIHdpdGggXCJkaXNjYXJk XCIgb3B0aW9uLCBidXQgdGhlIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IGRpc2NhcmQiKTsKKwkJ b3B0cy0+ZGlzY2FyZCA9IDA7CiAJfQogCiAJc2ItPnNfZmxhZ3MgfD0gU0JfTk9ESVJBVElNRTsK ZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW9jdGwuYyBiL2ZzL2V4dDQvaW9jdGwuYwppbmRleCA5OTIy MjljYTJkODMwLi42ZTNiOWVlYTEyNmY0IDEwMDY0NAotLS0gYS9mcy9leHQ0L2lvY3RsLmMKKysr IGIvZnMvZXh0NC9pb2N0bC5jCkBAIC0xMDQ0LDcgKzEwNDQsNiBAQCBzdGF0aWMgaW50IGV4dDRf aW9jdGxfY2hlY2twb2ludChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJ X191MzIgZmxhZ3MgPSAwOwogCXVuc2lnbmVkIGludCBmbHVzaF9mbGFncyA9IDA7CiAJc3RydWN0 IHN1cGVyX2Jsb2NrICpzYiA9IGZpbGVfaW5vZGUoZmlscCktPmlfc2I7Ci0Jc3RydWN0IHJlcXVl c3RfcXVldWUgKnE7CiAKIAlpZiAoY29weV9mcm9tX3VzZXIoJmZsYWdzLCAoX191MzIgX191c2Vy ICopYXJnLAogCQkJCXNpemVvZihfX3UzMikpKQpAQCAtMTA2NSwxMCArMTA2NCw4IEBAIHN0YXRp YyBpbnQgZXh0NF9pb2N0bF9jaGVja3BvaW50KHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBs b25nIGFyZykKIAlpZiAoZmxhZ3MgJiB+RVhUNF9JT0NfQ0hFQ0tQT0lOVF9GTEFHX1ZBTElEKQog CQlyZXR1cm4gLUVJTlZBTDsKIAotCXEgPSBiZGV2X2dldF9xdWV1ZShFWFQ0X1NCKHNiKS0+c19q b3VybmFsLT5qX2Rldik7Ci0JaWYgKCFxKQotCQlyZXR1cm4gLUVOWElPOwotCWlmICgoZmxhZ3Mg JiBKQkQyX0pPVVJOQUxfRkxVU0hfRElTQ0FSRCkgJiYgIWJsa19xdWV1ZV9kaXNjYXJkKHEpKQor CWlmICgoZmxhZ3MgJiBKQkQyX0pPVVJOQUxfRkxVU0hfRElTQ0FSRCkgJiYKKwkgICAgIWJkZXZf bWF4X2Rpc2NhcmRfc2VjdG9ycyhFWFQ0X1NCKHNiKS0+c19qb3VybmFsLT5qX2RldikpCiAJCXJl dHVybiAtRU9QTk9UU1VQUDsKIAogCWlmIChmbGFncyAmIEVYVDRfSU9DX0NIRUNLUE9JTlRfRkxB R19EUllfUlVOKQpAQCAtMTM5MywxNCArMTM5MCwxMyBAQCBzdGF0aWMgbG9uZyBfX2V4dDRfaW9j dGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJn KQogCiAJY2FzZSBGSVRSSU06CiAJewotCQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZf Z2V0X3F1ZXVlKHNiLT5zX2JkZXYpOwogCQlzdHJ1Y3QgZnN0cmltX3JhbmdlIHJhbmdlOwogCQlp bnQgcmV0ID0gMDsKIAogCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpCiAJCQlyZXR1cm4g LUVQRVJNOwogCi0JCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpCisJCWlmICghYmRldl9tYXhf ZGlzY2FyZF9zZWN0b3JzKHNiLT5zX2JkZXYpKQogCQkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCiAJ CS8qCmRpZmYgLS1naXQgYS9mcy9leHQ0L3N1cGVyLmMgYi9mcy9leHQ0L3N1cGVyLmMKaW5kZXgg ODE3NDllYWRkZjRjMS4uOTNmNGU0ZTllMjYzMSAxMDA2NDQKLS0tIGEvZnMvZXh0NC9zdXBlci5j CisrKyBiL2ZzL2V4dDQvc3VwZXIuYwpAQCAtNTQ1OCwxMyArNTQ1OCw5IEBAIHN0YXRpYyBpbnQg X19leHQ0X2ZpbGxfc3VwZXIoc3RydWN0IGZzX2NvbnRleHQgKmZjLCBzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKnNiKQogCQkJZ290byBmYWlsZWRfbW91bnQ5OwogCX0KIAotCWlmICh0ZXN0X29wdChzYiwg RElTQ0FSRCkpIHsKLQkJc3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBiZGV2X2dldF9xdWV1ZShz Yi0+c19iZGV2KTsKLQkJaWYgKCFibGtfcXVldWVfZGlzY2FyZChxKSkKLQkJCWV4dDRfbXNnKHNi LCBLRVJOX1dBUk5JTkcsCi0JCQkJICJtb3VudGluZyB3aXRoIFwiZGlzY2FyZFwiIG9wdGlvbiwg YnV0ICIKLQkJCQkgInRoZSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBkaXNjYXJkIik7Ci0JfQor CWlmICh0ZXN0X29wdChzYiwgRElTQ0FSRCkgJiYgIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhz Yi0+c19iZGV2KSkKKwkJZXh0NF9tc2coc2IsIEtFUk5fV0FSTklORywKKwkJCSAibW91bnRpbmcg d2l0aCBcImRpc2NhcmRcIiBvcHRpb24sIGJ1dCB0aGUgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQg ZGlzY2FyZCIpOwogCiAJaWYgKGVzLT5zX2Vycm9yX2NvdW50KQogCQltb2RfdGltZXIoJnNiaS0+ c19lcnJfcmVwb3J0LCBqaWZmaWVzICsgMzAwKkhaKTsgLyogNSBtaW51dGVzICovCmRpZmYgLS1n aXQgYS9mcy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5oCmluZGV4IGNkMWU2NWJjZjBiMDQu LjBlYTlhNWZhN2MxZGQgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMvZjJmcy5oCisrKyBiL2ZzL2YyZnMv ZjJmcy5oCkBAIC00MzgxLDggKzQzODEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZjJmc19od19z aG91bGRfZGlzY2FyZChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCiAKIHN0YXRpYyBpbmxpbmUg Ym9vbCBmMmZzX2JkZXZfc3VwcG9ydF9kaXNjYXJkKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYp CiB7Ci0JcmV0dXJuIGJsa19xdWV1ZV9kaXNjYXJkKGJkZXZfZ2V0X3F1ZXVlKGJkZXYpKSB8fAot CSAgICAgICBiZGV2X2lzX3pvbmVkKGJkZXYpOworCXJldHVybiBiZGV2X21heF9kaXNjYXJkX3Nl Y3RvcnMoYmRldikgfHwgYmRldl9pc196b25lZChiZGV2KTsKIH0KIAogc3RhdGljIGlubGluZSBi b29sIGYyZnNfaHdfc3VwcG9ydF9kaXNjYXJkKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKZGlm ZiAtLWdpdCBhL2ZzL2ZhdC9maWxlLmMgYi9mcy9mYXQvZmlsZS5jCmluZGV4IGE1YTMwOWZjYzdm YWYuLmU0YzdkMTBlODAxMjkgMTAwNjQ0Ci0tLSBhL2ZzL2ZhdC9maWxlLmMKKysrIGIvZnMvZmF0 L2ZpbGUuYwpAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRpYyBpbnQgZmF0X2lvY3RsX2ZpdHJpbShz dHJ1Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBsb25nIGFyZykKIAlpZiAoIWNhcGFibGUoQ0FQ X1NZU19BRE1JTikpCiAJCXJldHVybiAtRVBFUk07CiAKLQlpZiAoIWJsa19xdWV1ZV9kaXNjYXJk KHEpKQorCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHNiLT5zX2JkZXYpKQogCQlyZXR1 cm4gLUVPUE5PVFNVUFA7CiAKIAl1c2VyX3JhbmdlID0gKHN0cnVjdCBmc3RyaW1fcmFuZ2UgX191 c2VyICopYXJnOwpkaWZmIC0tZ2l0IGEvZnMvZmF0L2lub2RlLmMgYi9mcy9mYXQvaW5vZGUuYwpp bmRleCBiZjYwNTFiZGYxZDFkLi4zZDFhZmI5NWE5MjVhIDEwMDY0NAotLS0gYS9mcy9mYXQvaW5v ZGUuYworKysgYi9mcy9mYXQvaW5vZGUuYwpAQCAtMTg3MiwxMyArMTg3Miw5IEBAIGludCBmYXRf ZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50 LCBpbnQgaXN2ZmF0LAogCQlnb3RvIG91dF9mYWlsOwogCX0KIAotCWlmIChzYmktPm9wdGlvbnMu ZGlzY2FyZCkgewotCQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKHNi LT5zX2JkZXYpOwotCQlpZiAoIWJsa19xdWV1ZV9kaXNjYXJkKHEpKQotCQkJZmF0X21zZyhzYiwg S0VSTl9XQVJOSU5HLAotCQkJCQkibW91bnRpbmcgd2l0aCBcImRpc2NhcmRcIiBvcHRpb24sIGJ1 dCAiCi0JCQkJCSJ0aGUgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgZGlzY2FyZCIpOwotCX0KKwlp ZiAoc2JpLT5vcHRpb25zLmRpc2NhcmQgJiYgIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhzYi0+ c19iZGV2KSkKKwkJZmF0X21zZyhzYiwgS0VSTl9XQVJOSU5HLAorCQkJIm1vdW50aW5nIHdpdGgg XCJkaXNjYXJkXCIgb3B0aW9uLCBidXQgdGhlIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IGRpc2Nh cmQiKTsKIAogCWZhdF9zZXRfc3RhdGUoc2IsIDEsIDApOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0 IGEvZnMvZ2ZzMi9yZ3JwLmMgYi9mcy9nZnMyL3JncnAuYwppbmRleCA4MDFhZDlmNGYyYmVmLi43 ZjIwYWM5MTMzYmM2IDEwMDY0NAotLS0gYS9mcy9nZnMyL3JncnAuYworKysgYi9mcy9nZnMyL3Jn cnAuYwpAQCAtMTQwNSw3ICsxNDA1LDcgQEAgaW50IGdmczJfZml0cmltKHN0cnVjdCBmaWxlICpm aWxwLCB2b2lkIF9fdXNlciAqYXJncCkKIAlpZiAoIXRlc3RfYml0KFNERl9KT1VSTkFMX0xJVkUs ICZzZHAtPnNkX2ZsYWdzKSkKIAkJcmV0dXJuIC1FUk9GUzsKIAotCWlmICghYmxrX3F1ZXVlX2Rp c2NhcmQocSkpCisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoc2RwLT5zZF92ZnMtPnNf YmRldikpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCWlmIChjb3B5X2Zyb21fdXNlcigmciwg YXJncCwgc2l6ZW9mKHIpKSkKZGlmZiAtLWdpdCBhL2ZzL2piZDIvam91cm5hbC5jIGIvZnMvamJk Mi9qb3VybmFsLmMKaW5kZXggZmNhY2FmYTQ1MTBkMS4uMTlkMjI2Y2Q0ZmY0ZCAxMDA2NDQKLS0t IGEvZnMvamJkMi9qb3VybmFsLmMKKysrIGIvZnMvamJkMi9qb3VybmFsLmMKQEAgLTE3NjIsNyAr MTc2Miw2IEBAIHN0YXRpYyBpbnQgX19qYmQyX2pvdXJuYWxfZXJhc2Uoam91cm5hbF90ICpqb3Vy bmFsLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJdW5zaWduZWQgbG9uZyBibG9jaywgbG9nX29mZnNl dDsgLyogbG9naWNhbCAqLwogCXVuc2lnbmVkIGxvbmcgbG9uZyBwaHlzX2Jsb2NrLCBibG9ja19z dGFydCwgYmxvY2tfc3RvcDsgLyogcGh5c2ljYWwgKi8KIAlsb2ZmX3QgYnl0ZV9zdGFydCwgYnl0 ZV9zdG9wLCBieXRlX2NvdW50OwotCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRf cXVldWUoam91cm5hbC0+al9kZXYpOwogCiAJLyogZmxhZ3MgbXVzdCBiZSBzZXQgdG8gZWl0aGVy IGRpc2NhcmQgb3IgemVyb291dCAqLwogCWlmICgoZmxhZ3MgJiB+SkJEMl9KT1VSTkFMX0ZMVVNI X1ZBTElEKSB8fCAhZmxhZ3MgfHwKQEAgLTE3NzAsMTAgKzE3NjksOCBAQCBzdGF0aWMgaW50IF9f amJkMl9qb3VybmFsX2VyYXNlKGpvdXJuYWxfdCAqam91cm5hbCwgdW5zaWduZWQgaW50IGZsYWdz KQogCQkJKGZsYWdzICYgSkJEMl9KT1VSTkFMX0ZMVVNIX1pFUk9PVVQpKSkKIAkJcmV0dXJuIC1F SU5WQUw7CiAKLQlpZiAoIXEpCi0JCXJldHVybiAtRU5YSU87Ci0KLQlpZiAoKGZsYWdzICYgSkJE Ml9KT1VSTkFMX0ZMVVNIX0RJU0NBUkQpICYmICFibGtfcXVldWVfZGlzY2FyZChxKSkKKwlpZiAo KGZsYWdzICYgSkJEMl9KT1VSTkFMX0ZMVVNIX0RJU0NBUkQpICYmCisJICAgICFiZGV2X21heF9k aXNjYXJkX3NlY3RvcnMoam91cm5hbC0+al9kZXYpKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAK IAkvKgpkaWZmIC0tZ2l0IGEvZnMvamZzL2lvY3RsLmMgYi9mcy9qZnMvaW9jdGwuYwppbmRleCAw M2E4NDVhYjRmMDA5Li4zNTdhZTZlNWMzNmVjIDEwMDY0NAotLS0gYS9mcy9qZnMvaW9jdGwuYwor KysgYi9mcy9qZnMvaW9jdGwuYwpAQCAtMTE3LDcgKzExNyw3IEBAIGxvbmcgamZzX2lvY3RsKHN0 cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIAkJ aWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQogCQkJcmV0dXJuIC1FUEVSTTsKIAotCQlpZiAo IWJsa19xdWV1ZV9kaXNjYXJkKHEpKSB7CisJCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3Jz KHNiLT5zX2JkZXYpKSB7CiAJCQlqZnNfd2FybigiRklUUklNIG5vdCBzdXBwb3J0ZWQgb24gZGV2 aWNlIik7CiAJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJCX0KZGlmZiAtLWdpdCBhL2ZzL2pmcy9z dXBlci5jIGIvZnMvamZzL3N1cGVyLmMKaW5kZXggZjFhMTNhNzRjZGRmMy4uODVkNGY0NGYyYWM0 ZCAxMDA2NDQKLS0tIGEvZnMvamZzL3N1cGVyLmMKKysrIGIvZnMvamZzL3N1cGVyLmMKQEAgLTM3 MiwxOSArMzcyLDE2IEBAIHN0YXRpYyBpbnQgcGFyc2Vfb3B0aW9ucyhjaGFyICpvcHRpb25zLCBz dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzNjQgKm5ld0xWU2l6ZSwKIAkJfQogCiAJCWNhc2UgT3B0 X2Rpc2NhcmQ6Ci0JCXsKLQkJCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRfcXVl dWUoc2ItPnNfYmRldik7CiAJCQkvKiBpZiBzZXQgdG8gMSwgZXZlbiBjb3B5aW5nIGZpbGVzIHdp bGwgY2F1c2UKIAkJCSAqIHRyaW1taW5nIDpPCiAJCQkgKiAtPiB1c2VyIGhhcyBtb3JlIGNvbnRy b2wgb3ZlciB0aGUgb25saW5lIHRyaW1taW5nCiAJCQkgKi8KIAkJCXNiaS0+bWluYmxrc190cmlt ID0gNjQ7Ci0JCQlpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQocSkpCisJCQlpZiAoYmRldl9tYXhfZGlz Y2FyZF9zZWN0b3JzKHNiLT5zX2JkZXYpKQogCQkJCSpmbGFnIHw9IEpGU19ESVNDQVJEOwogCQkJ ZWxzZQogCQkJCXByX2VycigiSkZTOiBkaXNjYXJkIG9wdGlvbiBub3Qgc3VwcG9ydGVkIG9uIGRl dmljZVxuIik7CiAJCQlicmVhazsKLQkJfQogCiAJCWNhc2UgT3B0X25vZGlzY2FyZDoKIAkJCSpm bGFnICY9IH5KRlNfRElTQ0FSRDsKQEAgLTM5MiwxMCArMzg5LDkgQEAgc3RhdGljIGludCBwYXJz ZV9vcHRpb25zKGNoYXIgKm9wdGlvbnMsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHM2NCAqbmV3 TFZTaXplLAogCiAJCWNhc2UgT3B0X2Rpc2NhcmRfbWluYmxrOgogCQl7Ci0JCQlzdHJ1Y3QgcmVx dWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKHNiLT5zX2JkZXYpOwogCQkJY2hhciAqbWlu Ymxrc190cmltID0gYXJnc1swXS5mcm9tOwogCQkJaW50IHJjOwotCQkJaWYgKGJsa19xdWV1ZV9k aXNjYXJkKHEpKSB7CisJCQlpZiAoYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHNiLT5zX2JkZXYp KSB7CiAJCQkJKmZsYWcgfD0gSkZTX0RJU0NBUkQ7CiAJCQkJcmMgPSBrc3RydG91aW50KG1pbmJs a3NfdHJpbSwgMCwKIAkJCQkJCSZzYmktPm1pbmJsa3NfdHJpbSk7CmRpZmYgLS1naXQgYS9mcy9u aWxmczIvaW9jdGwuYyBiL2ZzL25pbGZzMi9pb2N0bC5jCmluZGV4IGZlYzE5NGE2NjZmNGIuLjUy YjczZjU1OGZjYjEgMTAwNjQ0Ci0tLSBhL2ZzL25pbGZzMi9pb2N0bC5jCisrKyBiL2ZzL25pbGZz Mi9pb2N0bC5jCkBAIC0xMDU5LDcgKzEwNTksNyBAQCBzdGF0aWMgaW50IG5pbGZzX2lvY3RsX3Ry aW1fZnMoc3RydWN0IGlub2RlICppbm9kZSwgdm9pZCBfX3VzZXIgKmFyZ3ApCiAJaWYgKCFjYXBh YmxlKENBUF9TWVNfQURNSU4pKQogCQlyZXR1cm4gLUVQRVJNOwogCi0JaWYgKCFibGtfcXVldWVf ZGlzY2FyZChxKSkKKwlpZiAoIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhuaWxmcy0+bnNfYmRl dikpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCWlmIChjb3B5X2Zyb21fdXNlcigmcmFuZ2Us IGFyZ3AsIHNpemVvZihyYW5nZSkpKQpkaWZmIC0tZ2l0IGEvZnMvbnRmczMvZmlsZS5jIGIvZnMv bnRmczMvZmlsZS5jCmluZGV4IDc4N2I1M2I5ODRlZTEuLmU3NjMyMzYxNjkzMzEgMTAwNjQ0Ci0t LSBhL2ZzL250ZnMzL2ZpbGUuYworKysgYi9mcy9udGZzMy9maWxlLmMKQEAgLTI4LDcgKzI4LDcg QEAgc3RhdGljIGludCBudGZzX2lvY3RsX2ZpdHJpbShzdHJ1Y3QgbnRmc19zYl9pbmZvICpzYmks IHVuc2lnbmVkIGxvbmcgYXJnKQogCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJcmV0 dXJuIC1FUEVSTTsKIAotCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpCisJaWYgKCFiZGV2X21h eF9kaXNjYXJkX3NlY3RvcnMoc2JpLT5zYi0+c19iZGV2KSkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQ OwogCiAJdXNlcl9yYW5nZSA9IChzdHJ1Y3QgZnN0cmltX3JhbmdlIF9fdXNlciAqKWFyZzsKZGlm ZiAtLWdpdCBhL2ZzL250ZnMzL3N1cGVyLmMgYi9mcy9udGZzMy9zdXBlci5jCmluZGV4IGNkMzBl ODFhYmJjZTAuLmM3MzQwODViY2NlNGEgMTAwNjQ0Ci0tLSBhL2ZzL250ZnMzL3N1cGVyLmMKKysr IGIvZnMvbnRmczMvc3VwZXIuYwpAQCAtOTEzLDcgKzkxMyw3IEBAIHN0YXRpYyBpbnQgbnRmc19m aWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykK IAl9CiAKIAlycSA9IGJkZXZfZ2V0X3F1ZXVlKGJkZXYpOwotCWlmIChibGtfcXVldWVfZGlzY2Fy ZChycSkgJiYgcnEtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5KSB7CisJaWYgKGJkZXZfbWF4 X2Rpc2NhcmRfc2VjdG9ycyhiZGV2KSAmJiBycS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkp IHsKIAkJc2JpLT5kaXNjYXJkX2dyYW51bGFyaXR5ID0gcnEtPmxpbWl0cy5kaXNjYXJkX2dyYW51 bGFyaXR5OwogCQlzYmktPmRpc2NhcmRfZ3JhbnVsYXJpdHlfbWFza19pbnYgPQogCQkJfih1NjQp KHNiaS0+ZGlzY2FyZF9ncmFudWxhcml0eSAtIDEpOwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvaW9j dGwuYyBiL2ZzL29jZnMyL2lvY3RsLmMKaW5kZXggZjU5NDYxZDg1ZGE0NS4uOWI3OGVmMTAzYWRh NiAxMDA2NDQKLS0tIGEvZnMvb2NmczIvaW9jdGwuYworKysgYi9mcy9vY2ZzMi9pb2N0bC5jCkBA IC05MTAsNyArOTEwLDcgQEAgbG9uZyBvY2ZzMl9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5z aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJCWlmICghY2FwYWJsZShDQVBfU1lT X0FETUlOKSkKIAkJCXJldHVybiAtRVBFUk07CiAKLQkJaWYgKCFibGtfcXVldWVfZGlzY2FyZChx KSkKKwkJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoc2ItPnNfYmRldikpCiAJCQlyZXR1 cm4gLUVPUE5PVFNVUFA7CiAKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZyYW5nZSwgYXJncCwgc2l6 ZW9mKHJhbmdlKSkpCmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX2Rpc2NhcmQuYyBiL2ZzL3hmcy94 ZnNfZGlzY2FyZC5jCmluZGV4IDAxOTFkZThjZTljZWQuLmE0ZTY2MDlkNjE2YjcgMTAwNjQ0Ci0t LSBhL2ZzL3hmcy94ZnNfZGlzY2FyZC5jCisrKyBiL2ZzL3hmcy94ZnNfZGlzY2FyZC5jCkBAIC0x NjIsNyArMTYyLDcgQEAgeGZzX2lvY190cmltKAogCiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURN SU4pKQogCQlyZXR1cm4gLUVQRVJNOwotCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpCisJaWYg KCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMobXAtPm1fZGRldl90YXJncC0+YnRfYmRldikpCiAJ CXJldHVybiAtRU9QTk9UU1VQUDsKIAogCS8qCmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX3N1cGVy LmMgYi9mcy94ZnMveGZzX3N1cGVyLmMKaW5kZXggNTRiZTlkNjQwOTNlZC4uYTI3NmI4MTExZjYz NiAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc19zdXBlci5jCisrKyBiL2ZzL3hmcy94ZnNfc3VwZXIu YwpAQCAtMTYwOCwxNCArMTYwOCwxMCBAQCB4ZnNfZnNfZmlsbF9zdXBlcigKIAkJCWdvdG8gb3V0 X2ZpbGVzdHJlYW1fdW5tb3VudDsKIAl9CiAKLQlpZiAoeGZzX2hhc19kaXNjYXJkKG1wKSkgewot CQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKHNiLT5zX2JkZXYpOwot Ci0JCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpIHsKLQkJCXhmc193YXJuKG1wLCAibW91bnRp bmcgd2l0aCBcImRpc2NhcmRcIiBvcHRpb24sIGJ1dCAiCi0JCQkJCSJ0aGUgZGV2aWNlIGRvZXMg bm90IHN1cHBvcnQgZGlzY2FyZCIpOwotCQkJbXAtPm1fZmVhdHVyZXMgJj0gflhGU19GRUFUX0RJ U0NBUkQ7Ci0JCX0KKwlpZiAoeGZzX2hhc19kaXNjYXJkKG1wKSAmJiAhYmRldl9tYXhfZGlzY2Fy ZF9zZWN0b3JzKHNiLT5zX2JkZXYpKSB7CisJCXhmc193YXJuKG1wLAorCSJtb3VudGluZyB3aXRo IFwiZGlzY2FyZFwiIG9wdGlvbiwgYnV0IHRoZSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBkaXNj YXJkIik7CisJCW1wLT5tX2ZlYXR1cmVzICY9IH5YRlNfRkVBVF9ESVNDQVJEOwogCX0KIAogCWlm ICh4ZnNfaGFzX3JlZmxpbmsobXApKSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Jsa2Rl di5oIGIvaW5jbHVkZS9saW51eC9ibGtkZXYuaAppbmRleCBjZTE2MjQ3ZDNhZmFiLi43NjdhYjIy ZTEwNTJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oCisrKyBiL2luY2x1ZGUv bGludXgvYmxrZGV2LmgKQEAgLTU0MCw3ICs1NDAsNiBAQCBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSB7 CiAjZGVmaW5lIFFVRVVFX0ZMQUdfTk9OUk9UCTYJLyogbm9uLXJvdGF0aW9uYWwgZGV2aWNlIChT U0QpICovCiAjZGVmaW5lIFFVRVVFX0ZMQUdfVklSVAkJUVVFVUVfRkxBR19OT05ST1QgLyogcGFy YXZpcnQgZGV2aWNlICovCiAjZGVmaW5lIFFVRVVFX0ZMQUdfSU9fU1RBVAk3CS8qIGRvIGRpc2sv cGFydGl0aW9ucyBJTyBhY2NvdW50aW5nICovCi0jZGVmaW5lIFFVRVVFX0ZMQUdfRElTQ0FSRAk4 CS8qIHN1cHBvcnRzIERJU0NBUkQgKi8KICNkZWZpbmUgUVVFVUVfRkxBR19OT1hNRVJHRVMJOQkv KiBObyBleHRlbmRlZCBtZXJnZXMgKi8KICNkZWZpbmUgUVVFVUVfRkxBR19BRERfUkFORE9NCTEw CS8qIENvbnRyaWJ1dGVzIHRvIHJhbmRvbSBwb29sICovCiAjZGVmaW5lIFFVRVVFX0ZMQUdfU0VD RVJBU0UJMTEJLyogc3VwcG9ydHMgc2VjdXJlIGVyYXNlICovCkBAIC01ODIsNyArNTgxLDYgQEAg Ym9vbCBibGtfcXVldWVfZmxhZ190ZXN0X2FuZF9zZXQodW5zaWduZWQgaW50IGZsYWcsIHN0cnVj dCByZXF1ZXN0X3F1ZXVlICpxKTsKIAl0ZXN0X2JpdChRVUVVRV9GTEFHX1NUQUJMRV9XUklURVMs ICYocSktPnF1ZXVlX2ZsYWdzKQogI2RlZmluZSBibGtfcXVldWVfaW9fc3RhdChxKQl0ZXN0X2Jp dChRVUVVRV9GTEFHX0lPX1NUQVQsICYocSktPnF1ZXVlX2ZsYWdzKQogI2RlZmluZSBibGtfcXVl dWVfYWRkX3JhbmRvbShxKQl0ZXN0X2JpdChRVUVVRV9GTEFHX0FERF9SQU5ET00sICYocSktPnF1 ZXVlX2ZsYWdzKQotI2RlZmluZSBibGtfcXVldWVfZGlzY2FyZChxKQl0ZXN0X2JpdChRVUVVRV9G TEFHX0RJU0NBUkQsICYocSktPnF1ZXVlX2ZsYWdzKQogI2RlZmluZSBibGtfcXVldWVfem9uZV9y ZXNldGFsbChxKQlcCiAJdGVzdF9iaXQoUVVFVUVfRkxBR19aT05FX1JFU0VUQUxMLCAmKHEpLT5x dWV1ZV9mbGFncykKICNkZWZpbmUgYmxrX3F1ZXVlX3NlY3VyZV9lcmFzZShxKSBcCmRpZmYgLS1n aXQgYS9tbS9zd2FwZmlsZS5jIGIvbW0vc3dhcGZpbGUuYwppbmRleCA0MDY5ZjE3YTgyYzhlLi41 ZDljZWRmOWU3Yjg0IDEwMDY0NAotLS0gYS9tbS9zd2FwZmlsZS5jCisrKyBiL21tL3N3YXBmaWxl LmMKQEAgLTI5NTcsMjAgKzI5NTcsNiBAQCBzdGF0aWMgaW50IHNldHVwX3N3YXBfbWFwX2FuZF9l eHRlbnRzKHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpwLAogCXJldHVybiBucl9leHRlbnRzOwog fQogCi0vKgotICogSGVscGVyIHRvIHN5c19zd2Fwb24gZGV0ZXJtaW5pbmcgaWYgYSBnaXZlbiBz d2FwCi0gKiBiYWNraW5nIGRldmljZSBxdWV1ZSBzdXBwb3J0cyBESVNDQVJEIG9wZXJhdGlvbnMu Ci0gKi8KLXN0YXRpYyBib29sIHN3YXBfZGlzY2FyZGFibGUoc3RydWN0IHN3YXBfaW5mb19zdHJ1 Y3QgKnNpKQotewotCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRfcXVldWUoc2kt PmJkZXYpOwotCi0JaWYgKCFibGtfcXVldWVfZGlzY2FyZChxKSkKLQkJcmV0dXJuIGZhbHNlOwot Ci0JcmV0dXJuIHRydWU7Ci19Ci0KIFNZU0NBTExfREVGSU5FMihzd2Fwb24sIGNvbnN0IGNoYXIg X191c2VyICosIHNwZWNpYWxmaWxlLCBpbnQsIHN3YXBfZmxhZ3MpCiB7CiAJc3RydWN0IHN3YXBf aW5mb19zdHJ1Y3QgKnA7CkBAIC0zMTMyLDcgKzMxMTgsOCBAQCBTWVNDQUxMX0RFRklORTIoc3dh cG9uLCBjb25zdCBjaGFyIF9fdXNlciAqLCBzcGVjaWFsZmlsZSwgaW50LCBzd2FwX2ZsYWdzKQog CQkJCQkgc2l6ZW9mKGxvbmcpLAogCQkJCQkgR0ZQX0tFUk5FTCk7CiAKLQlpZiAocC0+YmRldiAm JiAoc3dhcF9mbGFncyAmIFNXQVBfRkxBR19ESVNDQVJEKSAmJiBzd2FwX2Rpc2NhcmRhYmxlKHAp KSB7CisJaWYgKChzd2FwX2ZsYWdzICYgU1dBUF9GTEFHX0RJU0NBUkQpICYmCisJICAgIHAtPmJk ZXYgJiYgYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHAtPmJkZXYpKSB7CiAJCS8qCiAJCSAqIFdo ZW4gZGlzY2FyZCBpcyBlbmFibGVkIGZvciBzd2FwIHdpdGggbm8gcGFydGljdWxhcgogCQkgKiBw b2xpY3kgZmxhZ2dlZCwgd2Ugc2V0IGFsbCBzd2FwIGRpc2NhcmQgZmxhZ3MgaGVyZSBpbgotLSAK Mi4zMC4yCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkxpbnV4LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291 cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZv L2xpbnV4LWYyZnMtZGV2ZWwK