This message generated a parse failure. Raw output follows here. Please use 'back' to navigate. From devnull@lkml.org Thu Jun 13 19:05:23 2024 >From mailfetcher Wed Dec 14 06:43:40 2016 Envelope-to: lkml@grols.ch Delivery-date: Wed, 14 Dec 2016 06:43:39 +0100 Received: from srv.grols.ch [5.172.41.101] by 7a0960bb2a7f with IMAP (fetchmail-6.3.26) for (single-drop); Wed, 14 Dec 2016 06:43:40 +0100 (CET) Received: from vger.kernel.org ([209.132.180.67]) by home.grols.ch with esmtp (Exim 4.87) (envelope-from ) id 1cH2Lq-0008Ma-1T for lkml@grols.ch; Wed, 14 Dec 2016 06:43:39 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751001AbcLNFn3 (ORCPT ); Wed, 14 Dec 2016 00:43:29 -0500 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:52911 "EHLO out1-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750957AbcLNFn2 (ORCPT ); Wed, 14 Dec Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id D208B207CE; Wed, 14 Dec 2016 00:43:26 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Wed, 14 Dec 2016 00:43:26 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=aj.id.au; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=H6YOsCHKSmAmy+uNRDIGSCndVKY=; b=fkp4 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=smtpout; bh=H6YOsCHKSmAmy+ uN X-ME-Sender: X-Sasl-enc: TF6/EpjfhaHrO+YLu+l02FFh1QoiynbKnI2owMIuMPfr 1481694205 Received: from [172.16.172.59] (ppp203-122-213-247.static.internode.on.net [203.122.213.247]) by mail.messagingengine.com (Postfix) with ESMTPA id 5BD037E8C1; Wed, 14 Dec 2016 00:43:19 -0500 (EST) Message-Id: <1481694189.3112.54.camel@aj.id.au> Subject: Re: [PATCH] ipmi: bt-bmc: Use a regmap for register access From: Andrew Jeffery To: Joel Stanley Cc: Corey Minyard , =?ISO-8859-1?Q?C=E9dric?= Le Goater , openipmi-developer@lists.sourceforge.net, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Date: Wed, 14 Dec 2016 16:13:09 +1030 In-Reply-To: References: <20161206025715.2002-1-andrew@aj.id.au> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-Q+PMsiVFYQS+Ur2C95cz" X-Mailer: Evolution 3.22.1-0ubuntu2 Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-Id: X-Mailing-List: linux-kernel@vger.kernel.org Received-SPF: none client-ip=209.132.180.67; envelope-from=linux-kernel-owner@vger.kernel.org; helo=vger.kernel.org X-Spam-Score: 5.4 X-Spam-Score-Bar: +++++ X-Spam-Action: greylist X-Spam-Report: Action: greylist Symbol: DMARC_NA(0.00) Symbol: R_SPF_NA(0.00) Symbol: FORGED_SENDER(0.30) Symbol: PRECEDENCE_BULK(0.00) Symbol: MIME_GOOD(-0.20) Symbol: FORGED_RECIPIENTS(2.00) Symbol: BAYES_SPAM(3.52) Symbol: R_DKIM_ALLOW(-0.20) Message-ID: 1481694189. --=-Q+PMsiVFYQS+Ur2C95cz Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gV2VkLCAyMDE2LTEyLTE0IGF0IDExOjU5ICsxMDMwLCBKb2VsIFN0YW5sZXkgd3JvdGU6Cj4g PiBPbiBUdWUsIERlYyA2LCAyMDE2IGF0IDE6MjcgUE0sIEFuZHJldyBKZWZmZXJ5IDxhbmRyZXdA YWouaWQuYXU+IHdyb3RlOgo+ID4gVGhlIHJlZ2lzdGVycyBmb3IgdGhlIGJ0LWJtYyBkZXZpY2Ug bGl2ZSB1bmRlciB0aGUgQXNwZWVkIExQQwo+ID4gY29udHJvbGxlci4gRGV2aWNldHJlZSBiaW5k aW5ncyBoYXZlIHJlY2VudGx5IGJlZW4gaW50cm9kdWNlZCBmb3IgdGhlCj4gPiBMUEMgY29udHJv bGxlciB3aGVyZSB0aGUgImhvc3QiIHBvcnRpb24gb2YgdGhlIExQQyByZWdpc3RlciBzcGFjZSBp cwo+ID4gZGVzY3JpYmVkIGFzIGEgc3lzY29uIGRldmljZS4gRnV0dXJlIGRldmljZXRyZWVzIGRl c2NyaWJpbmcgdGhlIGJ0LWJtYwo+ID4gZGV2aWNlIHNob3VsZCBuZXN0IGl0cyBub2RlIHVuZGVy IHRoZSBhcHByb3ByaWF0ZSAic2ltcGxlLW1mZCIsICJzeXNjb24iCj4gPiBjb21wYXRpYmxlIG5v ZGUuCj4gPiAKPiA+IFRoaXMgY2hhbmdlIGFsbG93cyB0aGUgYnQtYm1jIGRyaXZlciB0byBmdW5j dGlvbiB3aXRoIGJvdGggc3lzY29uIGFuZAo+ID4gbm9uLXN5c2Nvbi0gYmFzZWQgZGV2aWNldHJl ZSBkZXNjcmlwdGlvbnMgYnkgYWx3YXlzIHVzaW5nIGEgcmVnbWFwIGZvcgo+ID4gcmVnaXN0ZXIg YWNjZXNzLCBlaXRoZXIgcmV0cmlldmVkIGZyb20gdGhlIHBhcmVudCBzeXNjb24gZGV2aWNlIG9y Cj4gPiBpbnN0YW50aWF0ZWQgaWYgbm9uZSBleGlzdHMuCj4gPiAKPiA+IFRoZSBwYXRjaCBoYXMg YmVlbiB0ZXN0ZWQgb24gYW4gT3BlblBPV0VSIFBhbG1ldHRvIG1hY2hpbmUsIHN1Y2Nlc3NmdWxs eQo+ID4gYm9vdGluZywgcmVib290aW5nIGFuZCBwb3dlcmluZyBkb3duIHRoZSBob3N0Lgo+ID4g Cj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogQW5kcmV3IEplZmZlcnkgPGFuZHJld0Bhai5pZC5hdT4K PiA+IC0tLQo+ID4gwqBkcml2ZXJzL2NoYXIvaXBtaS9LY29uZmlnwqDCoHzCoMKgMSArCj4gPiDC oGRyaXZlcnMvY2hhci9pcG1pL2J0LWJtYy5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLQo+ID4gwqAyIGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlv bnMoKyksIDIxIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFy L2lwbWkvS2NvbmZpZyBiL2RyaXZlcnMvY2hhci9pcG1pL0tjb25maWcKPiA+IGluZGV4IDdmODE2 NjU1Y2JiZi4uYjVkNDhkOWFmMTI0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9jaGFyL2lwbWkv S2NvbmZpZwo+ID4gKysrIGIvZHJpdmVycy9jaGFyL2lwbWkvS2NvbmZpZwo+ID4gQEAgLTc5LDYg Kzc5LDcgQEAgZW5kaWYgIyBJUE1JX0hBTkRMRVIKPiA+IAo+ID4gwqBjb25maWcgQVNQRUVEX0JU X0lQTUlfQk1DCj4gPiDCoMKgwqDCoMKgwqDCoMKgZGVwZW5kcyBvbiBBUkNIX0FTUEVFRAo+IAo+ IElmIHlvdSBkbyBhIHYyIG9mIHRoaXMgc2VyaWVzIGl0IHdvdWxkIGJlIGdyZWF0IHRvIGFkZCB8 fCBDT01QSUxFX1RFU1QgaGVyZS4KPiAKPiA+ICvCoMKgwqDCoMKgwqDCoMKgZGVwZW5kcyBvbiBS RUdNQVAgJiYgUkVHTUFQX01NSU8gJiYgTUZEX1NZU0NPTgo+ID4gwqDCoMKgwqDCoMKgwqDCoHRy aXN0YXRlICJCVCBJUE1JIGJtYyBkcml2ZXIiCj4gPiDCoMKgwqDCoMKgwqDCoMKgaGVscAo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqBQcm92aWRlcyBhIGRyaXZlciBmb3IgdGhlIEJUIChCbG9jayBU cmFuc2ZlcikgSVBNSSBpbnRlcmZhY2UKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBt aS9idC1ibWMuYyBiL2RyaXZlcnMvY2hhci9pcG1pL2J0LWJtYy5jCj4gPiBpbmRleCBmYzllODg5 MWVhZTMuLmNhMWUyMGY2YzZjNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvY2hhci9pcG1pL2J0 LWJtYy5jCj4gPiArKysgYi9kcml2ZXJzL2NoYXIvaXBtaS9idC1ibWMuYwo+ID4gQEAgLTEyLDEw ICsxMiwxMyBAQAo+ID4gwqAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KPiA+IMKgI2luY2x1ZGUg PGxpbnV4L2ludGVycnVwdC5oPgo+ID4gwqAjaW5jbHVkZSA8bGludXgvaW8uaD4KPiA+ICsjaW5j bHVkZSA8bGludXgvbWZkL3N5c2Nvbi5oPgo+ID4gwqAjaW5jbHVkZSA8bGludXgvbWlzY2Rldmlj ZS5oPgo+ID4gwqAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4 L29mLmg+Cj4gPiDCoCNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiA+IMKgI2lu Y2x1ZGUgPGxpbnV4L3BvbGwuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+Cj4gPiDC oCNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgo+ID4gwqAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4K PiA+IAo+ID4gQEAgLTYwLDcgKzYzLDggQEAKPiA+IMKgc3RydWN0IGJ0X2JtYyB7Cj4gPiDCoMKg wqDCoMKgwqDCoMKgc3RydWN0IGRldmljZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXY7Cj4gPiDC oMKgwqDCoMKgwqDCoMKgc3RydWN0IG1pc2NkZXZpY2XCoMKgwqDCoMKgwqDCoG1pc2NkZXY7Cj4g PiAtwqDCoMKgwqDCoMKgwqB2b2lkIF9faW9tZW3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqYmFz ZTsKPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCByZWdtYXDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Km1hcDsKPiA+ICvCoMKgwqDCoMKgwqDCoGludMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoG9mZnNldDsKPiA+IMKgwqDCoMKgwqDCoMKgwqBpbnTCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpcnE7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgd2Fp dF9xdWV1ZV9oZWFkX3TCoMKgwqDCoMKgwqDCoHF1ZXVlOwo+ID4gwqDCoMKgwqDCoMKgwqDCoHN0 cnVjdCB0aW1lcl9saXN0wqDCoMKgwqDCoMKgwqBwb2xsX3RpbWVyOwo+ID4gQEAgLTY5LDE0ICs3 MywzMSBAQCBzdHJ1Y3QgYnRfYm1jIHsKPiA+IAo+ID4gwqBzdGF0aWMgYXRvbWljX3Qgb3Blbl9j b3VudCA9IEFUT01JQ19JTklUKDApOwo+ID4gCj4gPiArc3RhdGljIHN0cnVjdCByZWdtYXBfY29u ZmlnIGJ0X3JlZ21hcF9jZmcgPSB7Cj4gCj4gY29uc3Q/CgpHb29kIHBvaW50LiBJcyBpdCB3b3J0 aCBhIHYyPwoKPiAKPiA+ICvCoMKgwqDCoMKgwqDCoC5yZWdfYml0cyA9IDMyLAo+ID4gK8KgwqDC oMKgwqDCoMKgLnZhbF9iaXRzID0gMzIsCj4gPiArwqDCoMKgwqDCoMKgwqAucmVnX3N0cmlkZSA9 IDQsCj4gPiArfTsKPiA+ICsKPiA+IMKgc3RhdGljIHU4IGJ0X2luYihzdHJ1Y3QgYnRfYm1jICpi dF9ibWMsIGludCByZWcpCj4gPiDCoHsKPiA+IC3CoMKgwqDCoMKgwqDCoHJldHVybiBpb3JlYWQ4 KGJ0X2JtYy0+YmFzZSArIHJlZyk7Cj4gPiArwqDCoMKgwqDCoMKgwqB1aW50MzJfdCB2YWwgPSAw Owo+ID4gK8KgwqDCoMKgwqDCoMKgaW50IHJjOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgcmMg PSByZWdtYXBfcmVhZChidF9ibWMtPm1hcCwgYnRfYm1jLT5vZmZzZXQgKyByZWcsICZ2YWwpOwo+ ID4gK8KgwqDCoMKgwqDCoMKgV0FSTihyYyAhPSAwLCAiJXM6JWQ6IHJlZ21hcF9yZWFkKCkgZmFp bGVkOiAlZFxuIiwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgX19GSUxFX18sIF9fTElORV9fLCByYyk7Cj4gCj4gVW5kZXIgd2hhdCBjaXJjdW1zdGFu Y2VzIGRvIHdlIGV4cGVjdCB0aGUgcmVhZCB0byBmYWlsPwoKQnkgdGhlIHJlZ21hcF9yZWFkKCkg aW1wbGVtZW50YXRpb24gZm9yIE1NSU8gaXQgc2hvdWxkIG5ldmVyIGZhaWwuIElmCml0IGRvZXMs IHRoZW4gd2Ugc2hvdWxkIHRlbGwgc29tZW9uZSBhYm91dCBpdC4KCj4gCj4gVGhpcyBpc24ndCBt dWNoIGNsZWFuZXIsIGJ1dCBJIHByZWZlciBpdCBzbGlnaHRseToKPiAKPiByYyA9IHJlZ21hcF9y ZWFkKGJ0X2JtYy0+bWFwLCBidF9ibWMtPm9mZnNldCArIHJlZywgJnZhbCk7Cj4gaWYgKHJjKSB7 Cj4gwqDCoMKgZGV2X3dhcm4oYnRfYm1jLT5kZXYsICJyZWFkIGZhaWxlZCAlZFxuIiwgcmMpOwo+ IMKgwqDCoHJldHVybiByYzsKPiB9Cj4gCj4gcmV0dXJuIHZhbDsKCmJ0X2luYigpIGN1cnJlbnRs eSByZXR1cm5zIGEgdTggdHlwZSwgYW5kIGFzIHN1Y2ggbm8gY2FsbGVyIHBlcmZvcm1zCmVycm9y IGNoZWNraW5nLiBXaGlsZSB5b3VyIHN1Z2dlc3Rpb24gbWlnaHQgc2VlbSBzbGlnaHRseSBwcmVm ZXJhYmxlLAppdCBmZWVscyBsaWtlbHkgInNsaWdodGx5IHByZWZlcmFibGUiIG1pZ2h0IGZhaWwg dG8gdGFrZSBpbnRvIGFjY291bnQKdGhlIGNhc2NhZGluZyBlZmZlY3Qgb2YgY2hhbmdpbmcgdGhl IHJldHVybiB0eXBlIGFuZCB0ZXN0aW5nIGZvciBlcnJvcnMKYXQgZWFjaCBvZiB0aGUgKHRyYW5z aXRpdmUpIGNhbGwtc2l0ZXMuCgpJIHRoaW5rIHRoZSBhZGRpdGlvbmFsIGNvZGUgcmVxdWlyZWQg bWFrZXMgeW91ciBzdWdnZXN0aW9uIGxlc3MKYXR0cmFjdGl2ZSBnaXZlbiB0aGF0IHRoZSBjYWxs IHNob3VsZCBuZXZlciBmYWlsLgoKSWYgeW91IGRlY2lkZSB5b3UgZmVlbCBzdHJvbmdseSBhYm91 dCBpdCBJIGNhbiBtYWtlIHRoZSBjaGFuZ2UuCgo+IAo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKg cmV0dXJuIHJjID09IDAgPyAodTgpIHZhbCA6IDA7Cj4gPiDCoH0KPiA+IAo+ID4gwqBzdGF0aWMg dm9pZCBidF9vdXRiKHN0cnVjdCBidF9ibWMgKmJ0X2JtYywgdTggZGF0YSwgaW50IHJlZykKPiA+ IMKgewo+ID4gLcKgwqDCoMKgwqDCoMKgaW93cml0ZTgoZGF0YSwgYnRfYm1jLT5iYXNlICsgcmVn KTsKPiA+ICvCoMKgwqDCoMKgwqDCoGludCByYzsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoHJj ID0gcmVnbWFwX3dyaXRlKGJ0X2JtYy0+bWFwLCBidF9ibWMtPm9mZnNldCArIHJlZywgZGF0YSk7 Cj4gPiArwqDCoMKgwqDCoMKgwqBXQVJOKHJjICE9IDAsICIlczolZDogcmVnbWFwX3dyaXRlKCkg ZmFpbGVkOiAlZFxuIiwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgX19GSUxFX18sIF9fTElORV9fLCByYyk7Cj4gPiDCoH0KPiA+IAo+ID4gwqBzdGF0 aWMgdm9pZCBjbHJfcmRfcHRyKHN0cnVjdCBidF9ibWMgKmJ0X2JtYykKPiA+IEBAIC0zNjcsMTQg KzM4OCwxOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYnRfYm1jX2lycShpbnQgaXJxLCB2b2lkICph cmcpCj4gPiDCoHsKPiA+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgYnRfYm1jICpidF9ibWMgPSBh cmc7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgdTMyIHJlZzsKPiA+ICvCoMKgwqDCoMKgwqDCoGludCBy YzsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoHJjID0gcmVnbWFwX3JlYWQoYnRfYm1jLT5tYXAs IGJ0X2JtYy0+b2Zmc2V0ICsgQlRfQ1IyLCAmcmVnKTsKPiA+ICvCoMKgwqDCoMKgwqDCoGlmIChy YykKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gSVJRX05PTkU7Cj4g PiAKPiA+IC3CoMKgwqDCoMKgwqDCoHJlZyA9IGlvcmVhZDMyKGJ0X2JtYy0+YmFzZSArIEJUX0NS Mik7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgcmVnICY9IEJUX0NSMl9JUlFfSDJCIHwgQlRfQ1IyX0lS UV9IQlVTWTsKPiA+IMKgwqDCoMKgwqDCoMKgwqBpZiAoIXJlZykKPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIElSUV9OT05FOwo+ID4gCj4gPiDCoMKgwqDCoMKgwqDC oMKgLyogYWNrIHBlbmRpbmcgSVJRcyAqLwo+ID4gLcKgwqDCoMKgwqDCoMKgaW93cml0ZTMyKHJl ZywgYnRfYm1jLT5iYXNlICsgQlRfQ1IyKTsKPiA+ICvCoMKgwqDCoMKgwqDCoHJlZ21hcF93cml0 ZShidF9ibWMtPm1hcCwgYnRfYm1jLT5vZmZzZXQgKyBCVF9DUjIsIHJlZyk7Cj4gPiAKPiA+IMKg wqDCoMKgwqDCoMKgwqB3YWtlX3VwKCZidF9ibWMtPnF1ZXVlKTsKPiA+IMKgwqDCoMKgwqDCoMKg wqByZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gPiBAQCAtMzg0LDcgKzQwOSw2IEBAIHN0YXRpYyBpbnQg YnRfYm1jX2NvbmZpZ19pcnEoc3RydWN0IGJ0X2JtYyAqYnRfYm1jLAo+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiDCoHsKPiA+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZGV2 aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ID4gLcKgwqDCoMKgwqDCoMKgdTMyIHJlZzsKPiA+IMKg wqDCoMKgwqDCoMKgwqBpbnQgcmM7Cj4gPiAKPiA+IMKgwqDCoMKgwqDCoMKgwqBidF9ibWMtPmly cSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Cj4gPiBAQCAtNDA1LDE4ICs0MjksMTcgQEAg c3RhdGljIGludCBidF9ibWNfY29uZmlnX2lycShzdHJ1Y3QgYnRfYm1jICpidF9ibWMsCj4gPiDC oMKgwqDCoMKgwqDCoMKgwqAqIHdpbGwgYmUgY2xlYXJlZCAoYWxvbmcgd2l0aCBCMkgpIHdoZW4g d2UgY2FuIHdyaXRlIHRoZSBuZXh0Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqAqIG1lc3NhZ2UgdG8g dGhlIEJUIGJ1ZmZlcgo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgKi8KPiA+IC3CoMKgwqDCoMKgwqDC oHJlZyA9IGlvcmVhZDMyKGJ0X2JtYy0+YmFzZSArIEJUX0NSMSk7Cj4gPiAtwqDCoMKgwqDCoMKg wqByZWcgfD0gQlRfQ1IxX0lSUV9IMkIgfCBCVF9DUjFfSVJRX0hCVVNZOwo+ID4gLcKgwqDCoMKg wqDCoMKgaW93cml0ZTMyKHJlZywgYnRfYm1jLT5iYXNlICsgQlRfQ1IxKTsKPiA+ICvCoMKgwqDC oMKgwqDCoHJjID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGJ0X2JtYy0+bWFwLCBidF9ibWMtPm9mZnNl dCArIEJUX0NSMSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoChCVF9DUjFfSVJRX0gyQiB8IEJUX0NSMV9JUlFfSEJVU1kp LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgKEJUX0NSMV9JUlFfSDJCIHwgQlRfQ1IxX0lSUV9IQlVTWSkpOwo+IAo+IFlv dSBjb3VsZCBkcm9wIHRoZSAoICkgYXJvdW5kIHRoZSBmbGFncyBpZiB5b3Ugd2FudC4KCkkgdGhp bmsgSSB3cm90ZSBpdCB0aGlzIHdheSB3aGVuIEkgd2FzIHRveWluZyB3aXRoIGRpZmZlcmVudCBs aW5lLQp3cmFwcywgYnV0IHJlZ2FyZGxlc3MgSSB0aGluayB0aGV5IGFyZSBhIG5pY2UgdmlzdWFs IHF1ZXVlLgoKQW5kcmV3Cgo+IAo+ID4gCj4gPiAtwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsKPiA+ ICvCoMKgwqDCoMKgwqDCoHJldHVybiByYzsKPiA+IMKgfQo+ID4gCj4gPiDCoHN0YXRpYyBpbnQg YnRfYm1jX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiDCoHsKPiA+IMKg wqDCoMKgwqDCoMKgwqBzdHJ1Y3QgYnRfYm1jICpidF9ibWM7Cj4gPiDCoMKgwqDCoMKgwqDCoMKg c3RydWN0IGRldmljZSAqZGV2Owo+ID4gLcKgwqDCoMKgwqDCoMKgc3RydWN0IHJlc291cmNlICpy ZXM7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgaW50IHJjOwo+ID4gCj4gPiDCoMKgwqDCoMKgwqDCoMKg aWYgKCFwZGV2IHx8ICFwZGV2LT5kZXYub2Zfbm9kZSkKPiA+IEBAIC00MzEsMTAgKzQ1NCwyNyBA QCBzdGF0aWMgaW50IGJ0X2JtY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ID4gCj4gPiDCoMKgwqDCoMKgwqDCoMKgZGV2X3NldF9kcnZkYXRhKCZwZGV2LT5kZXYsIGJ0X2Jt Yyk7Cj4gPiAKPiA+IC3CoMKgwqDCoMKgwqDCoHJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShw ZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7Cj4gPiAtwqDCoMKgwqDCoMKgwqBidF9ibWMtPmJhc2Ug PSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKPiA+IC3CoMKgwqDCoMKg wqDCoGlmIChJU19FUlIoYnRfYm1jLT5iYXNlKSkKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXR1cm4gUFRSX0VSUihidF9ibWMtPmJhc2UpOwo+ID4gK8KgwqDCoMKgwqDCoMKg YnRfYm1jLT5tYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAocGRldi0+ZGV2LnBhcmVudC0+b2Zf bm9kZSk7Cj4gPiArwqDCoMKgwqDCoMKgwqBpZiAoSVNfRVJSKGJ0X2JtYy0+bWFwKSkgewo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCByZXNvdXJjZSAqcmVzOwo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHZvaWQgX19pb21lbSAqYmFzZTsKPiA+ICsK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgKiBBc3N1bWUgaXQncyBub3QgdGhlIE1GRC1iYXNlZCBkZXZpY2V0 cmVlIGRlc2NyaXB0aW9uLCBpbgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg KiB3aGljaCBjYXNlIGdlbmVyYXRlIGEgcmVnbWFwIG91cnNlbHZlcwo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgKi8KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqByZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJhc2UgPSBkZXZtX2lvcmVtYXBfcmVz b3VyY2UoJnBkZXYtPmRldiwgcmVzKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBpZiAoSVNfRVJSKGJhc2UpKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqByZXR1cm4gUFRSX0VSUihiYXNlKTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBidF9ibWMtPm1hcCA9IGRldm1fcmVnbWFwX2luaXRfbW1pbyhk ZXYsIGJhc2UsICZidF9yZWdtYXBfY2ZnKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBidF9ibWMtPm9mZnNldCA9IDA7Cj4gPiArwqDCoMKgwqDCoMKgwqB9IGVsc2Ugewo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJjID0gb2ZfcHJvcGVydHlfcmVhZF91MzIo ZGV2LT5vZl9ub2RlLCAicmVnIiwgJmJ0X2JtYy0+b2Zmc2V0KTsKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZiAocmMpCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiByYzsKPiA+ICvCoMKgwqDCoMKgwqDCoH0KPiA+IAo+ ID4gwqDCoMKgwqDCoMKgwqDCoG11dGV4X2luaXQoJmJ0X2JtYy0+bXV0ZXgpOwo+ID4gwqDCoMKg wqDCoMKgwqDCoGluaXRfd2FpdHF1ZXVlX2hlYWQoJmJ0X2JtYy0+cXVldWUpOwo+ID4gQEAgLTQ2 MSwxMiArNTAxLDEyIEBAIHN0YXRpYyBpbnQgYnRfYm1jX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFkZF90aW1l cigmYnRfYm1jLT5wb2xsX3RpbWVyKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gPiAKPiA+IC3C oMKgwqDCoMKgwqDCoGlvd3JpdGUzMigoQlRfSU9fQkFTRSA8PCBCVF9DUjBfSU9fQkFTRSkgfAo+ ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoQlRfSVJRIDw8IEJUX0NSMF9J UlEpIHwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgQlRfQ1IwX0VOX0NM Ul9TTFZfUkRQIHwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgQlRfQ1Iw X0VOX0NMUl9TTFZfV1JQIHwKPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg QlRfQ1IwX0VOQUJMRV9JQlQsCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGJ0X2JtYy0+YmFzZSArIEJUX0NSMCk7Cj4gPiArwqDCoMKgwqDCoMKgwqByZWdtYXBfd3JpdGUo YnRfYm1jLT5tYXAsIGJ0X2JtYy0+b2Zmc2V0ICsgQlRfQ1IwLAo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoQlRfSU9fQkFTRSA8PCBCVF9DUjBfSU9fQkFTRSkg fAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoQlRfSVJRIDw8 IEJUX0NSMF9JUlEpIHwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgQlRfQ1IwX0VOX0NMUl9TTFZfUkRQIHwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgQlRfQ1IwX0VOX0NMUl9TTFZfV1JQIHwKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgQlRfQ1IwX0VOQUJMRV9JQlQpOwo+ID4gCj4gPiDC oMKgwqDCoMKgwqDCoMKgY2xyX2JfYnVzeShidF9ibWMpOwo+ID4gCj4gPiAtLQo+ID4gMi45LjMK PiA+IG== --=-Q+PMsiVFYQS+Ur2C95cz Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIcBAABCgAGBQJYUNvtAAoJEJ0dnzgO5LT57nQP/11TribVvPHRt6KAskSfrSn6 WeJFqMHBjPEUPaqOU7j0SvhWp6kNPNw9elASvGiV6gt77usIh5rDrhTx4VxwtY0R 0z3BIieGMqDw/uhw3UjPbxHc+X5VdfKMtECLnoduc63NB63NC2YRNUVVUAGXD2B+ c1pSGvn0uV9ni4hXN9XkfHk0RpOtaJ5FafsHHkQZm59e27bDBBm5Nx/Zd6sEI+pR bkUtw+zb0f4dl8H1gCsRwgUwMbpoVW5UH7ptW/D8FWrDKy3jE9p+gI85utWeFIwh XyjxsgxF89WRMkeMbE9uE1zcur9qtvORWGLKlQZhmAF1HDhjwWDc/bcWeeES4aKO azYVM+2+8/5r7syw1KyRhFVbGmzhXDJtavigMx5rv/8Lpbq7kyFSOQ49jmIucHSa KWO+9ADGs2SRl/0BvINupILIj51FuRku41sSC4WMNSgJHJuaAyXKB99ZycR5PvY8 pIOHjnwjAI77xwaEGGuCS9OOZZw0a50IfEu4iPpEdyw+l20FsSpEdr2LE4ajjayr BPJCWlX5q+5haRRt3f/5P62BBSsr3pCF6f4FgbV96bWKBOEz0UcnaLsoT+3otlvs 1ehDSJDRjWoilW5dwpLuHT9htAdPYcxKJ+0Ma7mbP8cZfbszpKyYgGm3xBGMIajR KuTyQaGpnEUKrnSc80kC =nRlX -----END PGP SIGNATURE----- --=-Q+PMsiVFYQS+Ur2C95cz--