From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C3C2AC433ED for ; Sun, 2 May 2021 11:29:03 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0353D610EA for ; Sun, 2 May 2021 11:29:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0353D610EA Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Moa7e22duj4aospiXuK8Ydci0zL1hVMA7PQ20wGJI6k=; b=PoG/7pEVu6aZXDmBezdHVRNzF ro3CoXZBInFPoFPc3Fp5QH3wcrL1U5yWcUeQRbtQyE1rlBbKN97D02/VecQCUraFuEnRMNBKufYbR y3eHCOe7uZWAR9EvYBQDdOlajWANd+dy768AFmuGk0zlcsZ7qA7wHkQIPN4Eb1bmENHTY8G3a/XUN 2bGDBJHpMRtO1xKvUumPPETQyVJdv7zLrJ9Ep9s+SUk+re7/TAZgSDaJOIjSQ0hOy3VqUl0TBk+Ai fIoa1N5o1mGc/+v97qFApQqu8oWJC0Qe83IXldpcX21n9tv8GXSmcuvhTMjuvYC1bowypLHsHRQ2x UHAEcr0rA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ldAHM-00Bfq4-9i; Sun, 02 May 2021 11:28:52 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ldAHG-00Bfpf-5M for linux-nvme@desiato.infradead.org; Sun, 02 May 2021 11:28:46 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To: Subject:Sender:Reply-To:Content-ID:Content-Description; bh=yR2nvSKozJSdOhGo17fjM5vofYjTyXrXc5RlKQHbg0Q=; b=Y6tKdkKGN+dCe20ytqWXiYCK9O g4CGAoVUx6YzHRWsvwdNqoK/1YWw1PpAW8ufjtzmAbfcRytuQ0oiFGQ8xyMsBZF7/qNEN8TmPXFJQ Dets2f9ebTFdmds1xz78RgsfAG7MWxbhWTbkuiHfEEQrz2ekGIMVVn6we6YQ30DUupCLsfwuIGSON IMX1sY7GN95Z/9jQa2jhRRjYiuRbG/4iF+6RPXPgcUUg5ec6iPpqcbtx6O7KMgHQjjxpYOi/xGkF/ /bQAyfa04hiNCP1aYAdaJE0A+jhGZD+Fu8j0+B1ucqGFysrFc1zllCKFSBA5fAYoTrjMrPQ4Ujy2w nJI763dQ==; Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ldAHC-002V0b-KU for linux-nvme@lists.infradead.org; Sun, 02 May 2021 11:28:44 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 41D0FAE38; Sun, 2 May 2021 11:28:41 +0000 (UTC) Subject: Re: [RFC PATCH v4 17/27] qedn: Add qedn probe To: Shai Malin , netdev@vger.kernel.org, linux-nvme@lists.infradead.org, sagi@grimberg.me, hch@lst.de, axboe@fb.com, kbusch@kernel.org Cc: "David S . Miller davem @ davemloft . net --cc=Jakub Kicinski" , aelior@marvell.com, mkalderon@marvell.com, okulkarni@marvell.com, pkushwaha@marvell.com, malin1024@gmail.com, Dean Balandin References: <20210429190926.5086-1-smalin@marvell.com> <20210429190926.5086-18-smalin@marvell.com> From: Hannes Reinecke Message-ID: <301d2567-2880-e8b2-7d68-0437d7c4f1bb@suse.de> Date: Sun, 2 May 2021 13:28:40 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: <20210429190926.5086-18-smalin@marvell.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210502_042842_988816_FAA8AD4D X-CRM114-Status: GOOD ( 34.35 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org T24gNC8yOS8yMSA5OjA5IFBNLCBTaGFpIE1hbGluIHdyb3RlOgo+IFRoaXMgcGF0Y2ggaW50cm9k dWNlcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBsb2FkaW5nIGFuZCB1bmxvYWRpbmcKPiBwaHlzaWNh bCBmdW5jdGlvbi4KPiBxZWRuX3Byb2JlKCkgbG9hZHMgdGhlIG9mZmxvYWQgZGV2aWNlIFBGKHBo eXNpY2FsIGZ1bmN0aW9uKSwgYW5kCj4gaW5pdGlhbGl6ZSB0aGUgSFcgYW5kIHRoZSBGVyB3aXRo IHRoZSBQRiBwYXJhbWV0ZXJzIHVzaW5nIHRoZQo+IEhXIG9wcy0+cWVkX252bWV0Y3Bfb3BzLCB3 aGljaCBhcmUgc2ltaWxhciB0byBvdGhlciAicWVkXypfb3BzIiB3aGljaAo+IGFyZSB1c2VkIGJ5 IHRoZSBxZWRlLCBxZWRyLCBxZWRmIGFuZCBxZWRpIGRldmljZSBkcml2ZXJzLgo+IHFlZG5fcmVt b3ZlKCkgdW5sb2FkcyB0aGUgb2ZmbG9hZCBkZXZpY2UgUEYsIHJlLWluaXRpYWxpemUgdGhlIEhX IGFuZAo+IHRoZSBGVyB3aXRoIHRoZSBQRiBwYXJhbWV0ZXJzLgo+IAo+IFRoZSBzdHJ1Y3QgcWVk bl9jdHggaXMgcGVyIFBGIGNvbnRhaW5lciBmb3IgUEYtc3BlY2lmaWMgYXR0cmlidXRlcyBhbmQK PiByZXNvdXJjZXMuCj4gCj4gQWNrZWQtYnk6IElnb3IgUnVzc2tpa2ggPGlydXNza2lraEBtYXJ2 ZWxsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBEZWFuIEJhbGFuZGluIDxkYmFsYW5kaW5AbWFydmVs bC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogUHJhYmhha2FyIEt1c2h3YWhhIDxwa3VzaHdhaGFAbWFy dmVsbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogT21rYXIgS3Vsa2FybmkgPG9rdWxrYXJuaUBtYXJ2 ZWxsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgS2FsZGVyb24gPG1rYWxkZXJvbkBtYXJ2 ZWxsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBcmllbCBFbGlvciA8YWVsaW9yQG1hcnZlbGwuY29t Pgo+IFNpZ25lZC1vZmYtYnk6IFNoYWkgTWFsaW4gPHNtYWxpbkBtYXJ2ZWxsLmNvbT4KPiAtLS0K PiAgIGRyaXZlcnMvbnZtZS9ody9LY29uZmlnICAgICAgICAgIHwgICAxICsKPiAgIGRyaXZlcnMv bnZtZS9ody9xZWRuL3FlZG4uaCAgICAgIHwgIDQ5ICsrKysrKysrCj4gICBkcml2ZXJzL252bWUv aHcvcWVkbi9xZWRuX21haW4uYyB8IDE5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst Cj4gICAzIGZpbGVzIGNoYW5nZWQsIDIzNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWUvaHcvS2NvbmZpZyBiL2RyaXZlcnMvbnZtZS9o dy9LY29uZmlnCj4gaW5kZXggMzc0ZjFmOWRiZDNkLi45MWIxYmQ2ZjA3ZDggMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9udm1lL2h3L0tjb25maWcKPiArKysgYi9kcml2ZXJzL252bWUvaHcvS2NvbmZp Zwo+IEBAIC0yLDYgKzIsNyBAQAo+ICAgY29uZmlnIE5WTUVfUUVETgo+ICAgCXRyaXN0YXRlICJN YXJ2ZWxsIE5WTSBFeHByZXNzIG92ZXIgRmFicmljcyBUQ1Agb2ZmbG9hZCIKPiAgIAlkZXBlbmRz IG9uIE5WTUVfVENQX09GRkxPQUQKPiArCXNlbGVjdCBRRURfTlZNRVRDUAo+ICAgCWhlbHAKPiAg IAkgIFRoaXMgZW5hYmxlcyB0aGUgTWFydmVsbCBOVk1lIFRDUCBvZmZsb2FkIHN1cHBvcnQgKHFl ZG4pLgo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ody9xZWRuL3FlZG4uaCBiL2Ry aXZlcnMvbnZtZS9ody9xZWRuL3FlZG4uaAo+IGluZGV4IGJjZDA3NDhhMTBmZC4uYzFhYzE3ZWFi Y2I3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZS9ody9xZWRuL3FlZG4uaAo+ICsrKyBiL2Ry aXZlcnMvbnZtZS9ody9xZWRuL3FlZG4uaAo+IEBAIC02LDE0ICs2LDYzIEBACj4gICAjaWZuZGVm IF9RRUROX0hfCj4gICAjZGVmaW5lIF9RRUROX0hfCj4gICAKPiArI2luY2x1ZGUgPGxpbnV4L3Fl ZC9xZWRfaWYuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3FlZC9xZWRfbnZtZXRjcF9pZi5oPgo+ICsK PiAgIC8qIERyaXZlciBpbmNsdWRlcyAqLwo+ICAgI2luY2x1ZGUgIi4uLy4uL2hvc3QvdGNwLW9m ZmxvYWQuaCIKPiAgIAo+ICsjZGVmaW5lIFFFRE5fTUFKT1JfVkVSU0lPTgkJOAo+ICsjZGVmaW5l IFFFRE5fTUlOT1JfVkVSU0lPTgkJNjIKPiArI2RlZmluZSBRRUROX1JFVklTSU9OX1ZFUlNJT04J CTEwCj4gKyNkZWZpbmUgUUVETl9FTkdJTkVFUklOR19WRVJTSU9OCTAKPiArI2RlZmluZSBEUlZf TU9EVUxFX1ZFUlNJT04gX19zdHJpbmdpZnkoUUVERV9NQUpPUl9WRVJTSU9OKSAiLiIJXAo+ICsJ CV9fc3RyaW5naWZ5KFFFREVfTUlOT1JfVkVSU0lPTikgIi4iCQlcCj4gKwkJX19zdHJpbmdpZnko UUVERV9SRVZJU0lPTl9WRVJTSU9OKSAiLiIJCVwKPiArCQlfX3N0cmluZ2lmeShRRURFX0VOR0lO RUVSSU5HX1ZFUlNJT04pCj4gKwo+ICAgI2RlZmluZSBRRUROX01PRFVMRV9OQU1FICJxZWRuIgo+ ICAgCj4gKyNkZWZpbmUgUUVETl9NQVhfVEFTS1NfUEVSX1BGICgxNiAqIDEwMjQpCj4gKyNkZWZp bmUgUUVETl9NQVhfQ09OTlNfUEVSX1BGICg0ICogMTAyNCkKPiArI2RlZmluZSBRRUROX0ZXX0NR X1NJWkUgKDQgKiAxMDI0KQo+ICsjZGVmaW5lIFFFRE5fUFJPVE9fQ1FfUFJPRF9JRFgJMAo+ICsj ZGVmaW5lIFFFRE5fTlZNRVRDUF9OVU1fRldfQ09OTl9RVUVVRV9QQUdFUyAyCj4gKwo+ICtlbnVt IHFlZG5fc3RhdGUgewo+ICsJUUVETl9TVEFURV9DT1JFX1BST0JFRCA9IDAsCj4gKwlRRUROX1NU QVRFX0NPUkVfT1BFTiwKPiArCVFFRE5fU1RBVEVfR0xfUEZfTElTVF9BRERFRCwKPiArCVFFRE5f U1RBVEVfTUZXX1NUQVRFLAo+ICsJUUVETl9TVEFURV9SRUdJU1RFUkVEX09GRkxPQURfREVWLAo+ ICsJUUVETl9TVEFURV9NT0RVTEVfUkVNT1ZFX09OR09JTkcsCj4gK307Cj4gKwo+ICAgc3RydWN0 IHFlZG5fY3R4IHsKPiAgIAlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKPiArCXN0cnVjdCBxZWRfZGV2 ICpjZGV2Owo+ICsJc3RydWN0IHFlZF9kZXZfbnZtZXRjcF9pbmZvIGRldl9pbmZvOwo+ICAgCXN0 cnVjdCBudm1lX3RjcF9vZmxkX2RldiBxZWRuX29mbGRfZGV2Owo+ICsJc3RydWN0IHFlZF9wZl9w YXJhbXMgcGZfcGFyYW1zOwo+ICsKPiArCS8qIEdsb2JhbCBQRiBsaXN0IGVudHJ5ICovCj4gKwlz dHJ1Y3QgbGlzdF9oZWFkIGdsX3BmX2VudHJ5Owo+ICsKPiArCS8qIEFjY2Vzc2VkIHdpdGggYXRv bWljIGJpdCBvcHMsIHVzZWQgd2l0aCBlbnVtIHFlZG5fc3RhdGUgKi8KPiArCXVuc2lnbmVkIGxv bmcgc3RhdGU7Cj4gKwo+ICsJLyogRmFzdCBwYXRoIHF1ZXVlcyAqLwo+ICsJdTggbnVtX2Z3X2Nx czsKPiArfTsKPiArCj4gK3N0cnVjdCBxZWRuX2dsb2JhbCB7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFk IHFlZG5fcGZfbGlzdDsKPiArCj4gKwkvKiBIb3N0IG1vZGUgKi8KPiArCXN0cnVjdCBsaXN0X2hl YWQgY3RybF9saXN0Owo+ICsKPiArCS8qIE11dGV4IGZvciBhY2Nlc3NpbmcgdGhlIGdsb2JhbCBz dHJ1Y3QgKi8KPiArCXN0cnVjdCBtdXRleCBnbGJfbXV0ZXg7Cj4gICB9Owo+ICAgCj4gICAjZW5k aWYgLyogX1FFRE5fSF8gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lL2h3L3FlZG4vcWVk bl9tYWluLmMgYi9kcml2ZXJzL252bWUvaHcvcWVkbi9xZWRuX21haW4uYwo+IGluZGV4IDMxZDZk ODZkNmViNy4uZTNlOGUzNjc2Yjc5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZtZS9ody9xZWRu L3FlZG5fbWFpbi5jCj4gKysrIGIvZHJpdmVycy9udm1lL2h3L3FlZG4vcWVkbl9tYWluLmMKPiBA QCAtMTQsNiArMTQsMTAgQEAKPiAgIAo+ICAgI2RlZmluZSBDSElQX05VTV9BSFBfTlZNRVRDUCAw eDgxOTQKPiAgIAo+ICtjb25zdCBzdHJ1Y3QgcWVkX252bWV0Y3Bfb3BzICpxZWRfb3BzOwo+ICsK PiArLyogR2xvYmFsIGNvbnRleHQgaW5zdGFuY2UgKi8KPiArc3RydWN0IHFlZG5fZ2xvYmFsIHFl ZG5fZ2xiOwo+ICAgc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIHFlZG5fcGNpX3RibFtdID0g ewo+ICAgCXsgUENJX1ZERVZJQ0UoUUxPR0lDLCBDSElQX05VTV9BSFBfTlZNRVRDUCksIDAgfSwK PiAgIAl7MCwgMH0sCj4gQEAgLTk5LDEyICsxMDMsMTMyIEBAIHN0YXRpYyBzdHJ1Y3QgbnZtZV90 Y3Bfb2ZsZF9vcHMgcWVkbl9vZmxkX29wcyA9IHsKPiAgIAkuY29tbWl0X3JxcyA9IHFlZG5fY29t bWl0X3JxcywKPiAgIH07Cj4gICAKPiArc3RhdGljIGlubGluZSB2b2lkIHFlZG5faW5pdF9wZl9z dHJ1Y3Qoc3RydWN0IHFlZG5fY3R4ICpxZWRuKQo+ICt7Cj4gKwkvKiBQbGFjZWhvbGRlciAtIElu aXRpYWxpemUgcWVkbiBmaWVsZHMgKi8KPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkCj4g K3FlZG5faW5pdF9jb3JlX3Byb2JlX3BhcmFtcyhzdHJ1Y3QgcWVkX3Byb2JlX3BhcmFtcyAqcHJv YmVfcGFyYW1zKQo+ICt7Cj4gKwltZW1zZXQocHJvYmVfcGFyYW1zLCAwLCBzaXplb2YoKnByb2Jl X3BhcmFtcykpOwo+ICsJcHJvYmVfcGFyYW1zLT5wcm90b2NvbCA9IFFFRF9QUk9UT0NPTF9OVk1F VENQOwo+ICsJcHJvYmVfcGFyYW1zLT5pc192ZiA9IGZhbHNlOwo+ICsJcHJvYmVfcGFyYW1zLT5y ZWNvdl9pbl9wcm9nID0gMDsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSBpbnQgcWVkbl9jb3Jl X3Byb2JlKHN0cnVjdCBxZWRuX2N0eCAqcWVkbikKPiArewo+ICsJc3RydWN0IHFlZF9wcm9iZV9w YXJhbXMgcHJvYmVfcGFyYW1zOwo+ICsJaW50IHJjID0gMDsKPiArCj4gKwlxZWRuX2luaXRfY29y ZV9wcm9iZV9wYXJhbXMoJnByb2JlX3BhcmFtcyk7Cj4gKwlwcl9pbmZvKCJTdGFydGluZyBRRUQg cHJvYmVcbiIpOwo+ICsJcWVkbi0+Y2RldiA9IHFlZF9vcHMtPmNvbW1vbi0+cHJvYmUocWVkbi0+ cGRldiwgJnByb2JlX3BhcmFtcyk7Cj4gKwlpZiAoIXFlZG4tPmNkZXYpIHsKPiArCQlyYyA9IC1F Tk9ERVY7Cj4gKwkJcHJfZXJyKCJRRUQgcHJvYmUgZmFpbGVkXG4iKTsKPiArCX0KPiArCj4gKwly ZXR1cm4gcmM7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHFlZG5fYWRkX3BmX3RvX2dsX2xpc3Qo c3RydWN0IHFlZG5fY3R4ICpxZWRuKQo+ICt7Cj4gKwltdXRleF9sb2NrKCZxZWRuX2dsYi5nbGJf bXV0ZXgpOwo+ICsJbGlzdF9hZGRfdGFpbCgmcWVkbi0+Z2xfcGZfZW50cnksICZxZWRuX2dsYi5x ZWRuX3BmX2xpc3QpOwo+ICsJbXV0ZXhfdW5sb2NrKCZxZWRuX2dsYi5nbGJfbXV0ZXgpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBxZWRuX3JlbW92ZV9wZl9mcm9tX2dsX2xpc3Qoc3RydWN0IHFl ZG5fY3R4ICpxZWRuKQo+ICt7Cj4gKwltdXRleF9sb2NrKCZxZWRuX2dsYi5nbGJfbXV0ZXgpOwo+ ICsJbGlzdF9kZWxfaW5pdCgmcWVkbi0+Z2xfcGZfZW50cnkpOwo+ICsJbXV0ZXhfdW5sb2NrKCZx ZWRuX2dsYi5nbGJfbXV0ZXgpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHFlZG5fc2V0X252bWV0 Y3BfcGZfcGFyYW0oc3RydWN0IHFlZG5fY3R4ICpxZWRuKQo+ICt7Cj4gKwl1MzIgZndfY29ubl9x dWV1ZV9wYWdlcyA9IFFFRE5fTlZNRVRDUF9OVU1fRldfQ09OTl9RVUVVRV9QQUdFUzsKPiArCXN0 cnVjdCBxZWRfbnZtZXRjcF9wZl9wYXJhbXMgKnBmX3BhcmFtczsKPiArCj4gKwlwZl9wYXJhbXMg PSAmcWVkbi0+cGZfcGFyYW1zLm52bWV0Y3BfcGZfcGFyYW1zOwo+ICsJbWVtc2V0KHBmX3BhcmFt cywgMCwgc2l6ZW9mKCpwZl9wYXJhbXMpKTsKPiArCXFlZG4tPm51bV9md19jcXMgPSBtaW5fdCh1 OCwgcWVkbi0+ZGV2X2luZm8ubnVtX2NxcywgbnVtX29ubGluZV9jcHVzKCkpOwo+ICsKPiArCXBm X3BhcmFtcy0+bnVtX2NvbnMgPSBRRUROX01BWF9DT05OU19QRVJfUEY7Cj4gKwlwZl9wYXJhbXMt Pm51bV90YXNrcyA9IFFFRE5fTUFYX1RBU0tTX1BFUl9QRjsKPiArCj4gKwkvKiBQbGFjZWhvbGRl ciAtIEluaXRpYWxpemUgZnVuY3Rpb24gbGV2ZWwgcXVldWVzICovCj4gKwo+ICsJLyogUGxhY2Vo b2xkZXIgLSBJbml0aWFsaXplIFRDUCBwYXJhbXMgKi8KPiArCj4gKwkvKiBRdWV1ZXMgKi8KPiAr CXBmX3BhcmFtcy0+bnVtX3NxX3BhZ2VzX2luX3JpbmcgPSBmd19jb25uX3F1ZXVlX3BhZ2VzOwo+ ICsJcGZfcGFyYW1zLT5udW1fcjJ0cV9wYWdlc19pbl9yaW5nID0gZndfY29ubl9xdWV1ZV9wYWdl czsKPiArCXBmX3BhcmFtcy0+bnVtX3VocV9wYWdlc19pbl9yaW5nID0gZndfY29ubl9xdWV1ZV9w YWdlczsKPiArCXBmX3BhcmFtcy0+bnVtX3F1ZXVlcyA9IHFlZG4tPm51bV9md19jcXM7Cj4gKwlw Zl9wYXJhbXMtPmNxX251bV9lbnRyaWVzID0gUUVETl9GV19DUV9TSVpFOwo+ICsKPiArCS8qIHRo ZSBDUSBTQiBwaSAqLwo+ICsJcGZfcGFyYW1zLT5nbF9ycV9waSA9IFFFRE5fUFJPVE9fQ1FfUFJP RF9JRFg7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgaW50IHFl ZG5fc2xvd3BhdGhfc3RhcnQoc3RydWN0IHFlZG5fY3R4ICpxZWRuKQo+ICt7Cj4gKwlzdHJ1Y3Qg cWVkX3Nsb3dwYXRoX3BhcmFtcyBzcF9wYXJhbXMgPSB7fTsKPiArCWludCByYyA9IDA7Cj4gKwo+ ICsJLyogU3RhcnQgdGhlIFNsb3dwYXRoLXByb2Nlc3MgKi8KPiArCXNwX3BhcmFtcy5pbnRfbW9k ZSA9IFFFRF9JTlRfTU9ERV9NU0lYOwo+ICsJc3BfcGFyYW1zLmRydl9tYWpvciA9IFFFRE5fTUFK T1JfVkVSU0lPTjsKPiArCXNwX3BhcmFtcy5kcnZfbWlub3IgPSBRRUROX01JTk9SX1ZFUlNJT047 Cj4gKwlzcF9wYXJhbXMuZHJ2X3JldiA9IFFFRE5fUkVWSVNJT05fVkVSU0lPTjsKPiArCXNwX3Bh cmFtcy5kcnZfZW5nID0gUUVETl9FTkdJTkVFUklOR19WRVJTSU9OOwo+ICsJc3Ryc2NweShzcF9w YXJhbXMubmFtZSwgInFlZG4gTlZNZVRDUCIsIFFFRF9EUlZfVkVSX1NUUl9TSVpFKTsKPiArCXJj ID0gcWVkX29wcy0+Y29tbW9uLT5zbG93cGF0aF9zdGFydChxZWRuLT5jZGV2LCAmc3BfcGFyYW1z KTsKPiArCWlmIChyYykKPiArCQlwcl9lcnIoIkNhbm5vdCBzdGFydCBzbG93cGF0aFxuIik7Cj4g Kwo+ICsJcmV0dXJuIHJjOwo+ICt9Cj4gKwo+ICAgc3RhdGljIHZvaWQgX19xZWRuX3JlbW92ZShz dHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgIHsKPiAgIAlzdHJ1Y3QgcWVkbl9jdHggKnFlZG4gPSBw Y2lfZ2V0X2RydmRhdGEocGRldik7Cj4gKwlpbnQgcmM7Cj4gKwo+ICsJcHJfbm90aWNlKCJxZWRu IHJlbW92ZSBzdGFydGVkOiBhYnMgUEYgaWQ9JXVcbiIsCj4gKwkJICBxZWRuLT5kZXZfaW5mby5j b21tb24uYWJzX3BmX2lkKTsKPiArCj4gKwlpZiAodGVzdF9hbmRfc2V0X2JpdChRRUROX1NUQVRF X01PRFVMRV9SRU1PVkVfT05HT0lORywgJnFlZG4tPnN0YXRlKSkgewo+ICsJCXByX2VycigiUmVt b3ZlIGFscmVhZHkgb25nb2luZ1xuIik7Cj4gKwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlp ZiAodGVzdF9hbmRfY2xlYXJfYml0KFFFRE5fU1RBVEVfUkVHSVNURVJFRF9PRkZMT0FEX0RFViwg JnFlZG4tPnN0YXRlKSkKPiArCQludm1lX3RjcF9vZmxkX3VucmVnaXN0ZXJfZGV2KCZxZWRuLT5x ZWRuX29mbGRfZGV2KTsKPiArCj4gKwlpZiAodGVzdF9hbmRfY2xlYXJfYml0KFFFRE5fU1RBVEVf R0xfUEZfTElTVF9BRERFRCwgJnFlZG4tPnN0YXRlKSkKPiArCQlxZWRuX3JlbW92ZV9wZl9mcm9t X2dsX2xpc3QocWVkbik7Cj4gKwllbHNlCj4gKwkJcHJfZXJyKCJGYWlsZWQgdG8gcmVtb3ZlIGZy b20gZ2xvYmFsIFBGIGxpc3RcbiIpOwo+ICsKPiArCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoUUVE Tl9TVEFURV9NRldfU1RBVEUsICZxZWRuLT5zdGF0ZSkpIHsKPiArCQlyYyA9IHFlZF9vcHMtPmNv bW1vbi0+dXBkYXRlX2Rydl9zdGF0ZShxZWRuLT5jZGV2LCBmYWxzZSk7Cj4gKwkJaWYgKHJjKQo+ ICsJCQlwcl9lcnIoIkZhaWxlZCB0byBzZW5kIGRydiBzdGF0ZSB0byBNRldcbiIpOwo+ICsJfQo+ ICsKPiArCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoUUVETl9TVEFURV9DT1JFX09QRU4sICZxZWRu LT5zdGF0ZSkpCj4gKwkJcWVkX29wcy0+Y29tbW9uLT5zbG93cGF0aF9zdG9wKHFlZG4tPmNkZXYp Owo+ICsKPiArCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoUUVETl9TVEFURV9DT1JFX1BST0JFRCwg JnFlZG4tPnN0YXRlKSkKPiArCQlxZWRfb3BzLT5jb21tb24tPnJlbW92ZShxZWRuLT5jZGV2KTsK PiAgIAo+IC0JcHJfbm90aWNlKCJTdGFydGluZyBxZWRuX3JlbW92ZVxuIik7Cj4gLQludm1lX3Rj cF9vZmxkX3VucmVnaXN0ZXJfZGV2KCZxZWRuLT5xZWRuX29mbGRfZGV2KTsKPiAgIAlrZnJlZShx ZWRuKTsKPiAgIAlwcl9ub3RpY2UoIkVuZGluZyBxZWRuX3JlbW92ZSBzdWNjZXNzZnVsbHlcbiIp Owo+ICAgfQo+IEBAIC0xNDQsMTUgKzI2OCw1NSBAQCBzdGF0aWMgaW50IF9fcWVkbl9wcm9iZShz dHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgIAlpZiAoIXFlZG4pCj4gICAJCXJldHVybiAtRU5PREVW Owo+ICAgCj4gKwlxZWRuX2luaXRfcGZfc3RydWN0KHFlZG4pOwo+ICsKPiArCS8qIFFFRCBwcm9i ZSAqLwo+ICsJcmMgPSBxZWRuX2NvcmVfcHJvYmUocWVkbik7Cj4gKwlpZiAocmMpCj4gKwkJZ290 byBleGl0X3Byb2JlX2FuZF9yZWxlYXNlX21lbTsKPiArCj4gKwlzZXRfYml0KFFFRE5fU1RBVEVf Q09SRV9QUk9CRUQsICZxZWRuLT5zdGF0ZSk7Cj4gKwo+ICsJcmMgPSBxZWRfb3BzLT5maWxsX2Rl dl9pbmZvKHFlZG4tPmNkZXYsICZxZWRuLT5kZXZfaW5mbyk7Cj4gKwlpZiAocmMpIHsKPiArCQlw cl9lcnIoImZpbGxfZGV2X2luZm8gZmFpbGVkXG4iKTsKPiArCQlnb3RvIGV4aXRfcHJvYmVfYW5k X3JlbGVhc2VfbWVtOwo+ICsJfQo+ICsKPiArCXFlZG5fYWRkX3BmX3RvX2dsX2xpc3QocWVkbik7 Cj4gKwlzZXRfYml0KFFFRE5fU1RBVEVfR0xfUEZfTElTVF9BRERFRCwgJnFlZG4tPnN0YXRlKTsK PiArCj4gKwlyYyA9IHFlZG5fc2V0X252bWV0Y3BfcGZfcGFyYW0ocWVkbik7Cj4gKwlpZiAocmMp Cj4gKwkJZ290byBleGl0X3Byb2JlX2FuZF9yZWxlYXNlX21lbTsKPiArCj4gKwlxZWRfb3BzLT5j b21tb24tPnVwZGF0ZV9wZl9wYXJhbXMocWVkbi0+Y2RldiwgJnFlZG4tPnBmX3BhcmFtcyk7Cj4g KwlyYyA9IHFlZG5fc2xvd3BhdGhfc3RhcnQocWVkbik7Cj4gKwlpZiAocmMpCj4gKwkJZ290byBl eGl0X3Byb2JlX2FuZF9yZWxlYXNlX21lbTsKPiArCj4gKwlzZXRfYml0KFFFRE5fU1RBVEVfQ09S RV9PUEVOLCAmcWVkbi0+c3RhdGUpOwo+ICsKPiArCXJjID0gcWVkX29wcy0+Y29tbW9uLT51cGRh dGVfZHJ2X3N0YXRlKHFlZG4tPmNkZXYsIHRydWUpOwo+ICsJaWYgKHJjKSB7Cj4gKwkJcHJfZXJy KCJGYWlsZWQgdG8gc2VuZCBkcnYgc3RhdGUgdG8gTUZXXG4iKTsKPiArCQlnb3RvIGV4aXRfcHJv YmVfYW5kX3JlbGVhc2VfbWVtOwo+ICsJfQo+ICsKPiArCXNldF9iaXQoUUVETl9TVEFURV9NRldf U1RBVEUsICZxZWRuLT5zdGF0ZSk7Cj4gKwo+ICAgCXFlZG4tPnFlZG5fb2ZsZF9kZXYub3BzID0g JnFlZG5fb2ZsZF9vcHM7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJnFlZG4tPnFlZG5fb2ZsZF9kZXYu ZW50cnkpOwo+ICAgCXJjID0gbnZtZV90Y3Bfb2ZsZF9yZWdpc3Rlcl9kZXYoJnFlZG4tPnFlZG5f b2ZsZF9kZXYpOwo+ICAgCWlmIChyYykKPiAtCQlnb3RvIHJlbGVhc2VfcWVkbjsKPiArCQlnb3Rv IGV4aXRfcHJvYmVfYW5kX3JlbGVhc2VfbWVtOwo+ICsKPiArCXNldF9iaXQoUUVETl9TVEFURV9S RUdJU1RFUkVEX09GRkxPQURfREVWLCAmcWVkbi0+c3RhdGUpOwo+ICAgCj4gICAJcmV0dXJuIDA7 Cj4gLXJlbGVhc2VfcWVkbjoKPiAtCWtmcmVlKHFlZG4pOwo+ICtleGl0X3Byb2JlX2FuZF9yZWxl YXNlX21lbToKPiArCV9fcWVkbl9yZW1vdmUocGRldik7Cj4gKwlwcl9lcnIoInByb2JlIGVuZGVk IHdpdGggZXJyb3JcbiIpOwo+ICAgCj4gICAJcmV0dXJuIHJjOwo+ICAgfQo+IEBAIC0xNzAsMTAg KzMzNCwyNiBAQCBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgcWVkbl9wY2lfZHJpdmVyID0gewo+ ICAgCS5zaHV0ZG93biA9IHFlZG5fc2h1dGRvd24sCj4gICB9Owo+ICAgCj4gK3N0YXRpYyBpbmxp bmUgdm9pZCBxZWRuX2luaXRfZ2xvYmFsX2NvbnR4dCh2b2lkKQo+ICt7Cj4gKwlJTklUX0xJU1Rf SEVBRCgmcWVkbl9nbGIucWVkbl9wZl9saXN0KTsKPiArCUlOSVRfTElTVF9IRUFEKCZxZWRuX2ds Yi5jdHJsX2xpc3QpOwo+ICsJbXV0ZXhfaW5pdCgmcWVkbl9nbGIuZ2xiX211dGV4KTsKPiArfQo+ ICsKPiAgIHN0YXRpYyBpbnQgX19pbml0IHFlZG5faW5pdCh2b2lkKQo+ICAgewo+ICAgCWludCBy YzsKPiAgIAo+ICsJcWVkbl9pbml0X2dsb2JhbF9jb250eHQoKTsKPiArCj4gKwlxZWRfb3BzID0g cWVkX2dldF9udm1ldGNwX29wcygpOwo+ICsJaWYgKCFxZWRfb3BzKSB7Cj4gKwkJcHJfZXJyKCJG YWlsZWQgdG8gZ2V0IFFFRCBOVk1lVENQIG9wc1xuIik7Cj4gKwo+ICsJCXJldHVybiAtRUlOVkFM Owo+ICsJfQo+ICsKPiAgIAlyYyA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoJnFlZG5fcGNpX2RyaXZl cik7Cj4gICAJaWYgKHJjKSB7Cj4gICAJCXByX2VycigiRmFpbGVkIHRvIHJlZ2lzdGVyIHBjaSBk cml2ZXJcbiIpOwo+IEBAIC0xODksNiArMzY5LDcgQEAgc3RhdGljIGludCBfX2luaXQgcWVkbl9p bml0KHZvaWQpCj4gICBzdGF0aWMgdm9pZCBfX2V4aXQgcWVkbl9jbGVhbnVwKHZvaWQpCj4gICB7 Cj4gICAJcGNpX3VucmVnaXN0ZXJfZHJpdmVyKCZxZWRuX3BjaV9kcml2ZXIpOwo+ICsJcWVkX3B1 dF9udm1ldGNwX29wcygpOwo+ICAgCXByX25vdGljZSgiVW5sb2FkaW5nIHFlZG4gZW5kZWRcbiIp Owo+ICAgfQo+ICAgCj4gCkkgZG8gd29uZGVyIHdoYXQgeW91IG5lZWQgdGhlIGdsb2JhbCBsaXN0 IG9mIGRldmljZXMgZm9yLCBidXQgbGV0J3Mgc2VlLgoKUmV2aWV3ZWQtYnk6IEhhbm5lcyBSZWlu ZWNrZSA8aGFyZUBzdXNlLmRlPgoKQ2hlZXJzLAoKSGFubmVzCi0tIApEci4gSGFubmVzIFJlaW5l Y2tlICAgICAgICAgICAgICAgIEtlcm5lbCBTdG9yYWdlIEFyY2hpdGVjdApoYXJlQHN1c2UuZGUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArNDkgOTExIDc0MDUzIDY4OApTVVNFIFNvZnR3 YXJlIFNvbHV0aW9ucyBHbWJILCBNYXhmZWxkc3RyLiA1LCA5MDQwOSBOw7xybmJlcmcKSFJCIDM2 ODA5IChBRyBOw7xybmJlcmcpLCBHZXNjaMOkZnRzZsO8aHJlcjogRmVsaXggSW1lbmTDtnJmZmVy CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1u dm1lIG1haWxpbmcgbGlzdApMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg==