Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2578198ybz; Sun, 26 Apr 2020 23:41:37 -0700 (PDT) X-Google-Smtp-Source: APiQypJuRrNngR03+iT2ulkh94fyw3QN669KWVPjVSPFclWzccdSLTJcZud243BSpfYHJ/fqYrh3 X-Received: by 2002:aa7:d2d0:: with SMTP id k16mr17848308edr.354.1587969696801; Sun, 26 Apr 2020 23:41:36 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1587969696; cv=pass; d=google.com; s=arc-20160816; b=Lhi/CjbsruxGLk76aRkMFLXQMJUMCIST+CrWHi8yk2BLGwZMllxbfjtUNf9U9o/14U A9hctWFeGCvrP/7oJQlN9N6O1c5lnKubz244PHg+QaRHKkWulR+9q2+lhQUpz9lV3N7n 4E92UFUyOHJtDZFIC1Kmrrx1D9oPCkNZF2R8AlhZjMgx3p0+Qf9w+5XBDyIq/mLg1LL4 fhxpKN572nbITzxolLToKe9mnAR/lOIkRuQEXGtgR6+phrBfRgt2q7Fk4Hh0WzDl9imp HG6DiZrjQyw2qExum90YNeJYUndC0ZCPakwH6vrFzEjfUBcRIyP+C6I2EaXLSSrIKimN d46Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=p1jpe+rKo6Cuqt7/WmpBzA6Mk/fl15dHeSi/NfHLhGI=; b=0ZNH01LoaXgrt5ZrXmwsBahu/LP/mF64sPbkmZau3eqXSYZwixgRcqIE9RoTsV78nl Cli1b+Ze4HTuVD8BkW+bR2fYgtWZ79dmhYQkxmD+sY8RcG7EhMU35Vdw1eeJBqORHMz5 NCJ0TWZVqFhEG4pPPA2CPSGQtX8sEOivZMtPKciS9/lJhpx2WAMejLuD6AJpKkLI/vWj N4iqmnGFE3ZbvH0KG9MYsCNeAEcTen17Bk9YhDZd5K5YQPokwFkjHYcsS+iyq9aGU/jn wmu9Jo5n3Lvbd+6tQarUjs3lIGIrVgAIlv9JdgWprZ9m1zJFjj/8dfngA4+XRm4Yyw3g 1UMg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=dhA46Dzz; arc=pass (i=1 spf=pass spfdomain=analog.com dkim=pass dkdomain=analog.com dmarc=pass fromdomain=analog.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id co4si7400281edb.83.2020.04.26.23.41.13; Sun, 26 Apr 2020 23:41:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=dhA46Dzz; arc=pass (i=1 spf=pass spfdomain=analog.com dkim=pass dkdomain=analog.com dmarc=pass fromdomain=analog.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726636AbgD0Gi3 (ORCPT + 99 others); Mon, 27 Apr 2020 02:38:29 -0400 Received: from mx0b-00128a01.pphosted.com ([148.163.139.77]:28396 "EHLO mx0b-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726246AbgD0Gi1 (ORCPT ); Mon, 27 Apr 2020 02:38:27 -0400 Received: from pps.filterd (m0167090.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 03R6aMMa025532; Mon, 27 Apr 2020 02:38:08 -0400 Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2177.outbound.protection.outlook.com [104.47.56.177]) by mx0b-00128a01.pphosted.com with ESMTP id 30mhu764wp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Apr 2020 02:38:07 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j3x1lnmNKIVHqDKwOBRukk58aSacJpFs299rNCmYHRCOdOLED7nZmOCUv0Y7K4Seomj4zlIt3ENPEwX+ioQNDM8yNZHSKQY598TqBa+1eNCwd7LLxGYr8VOLCrNl4HrBxGUzIc5quqIilvE5Wm82DdzfLdFsgDenCDOYBZrE04EY0loQ4AawRMRBikco11iS1dbG32XCGtIoTACbvmQcCBRNFgbNrCy01rMczvykTyBigcjFshsdxffp0E272F/JRArvtAH0XeKqDdvOHPtE7dkvFwGjf7+f/YA4CpadJc1lXF0lWMZIaGj6MLcRFIRUjpXYE3uMxAoGFG+HpuiDQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p1jpe+rKo6Cuqt7/WmpBzA6Mk/fl15dHeSi/NfHLhGI=; b=V1uWdS6SgK8mgj3S7Q7k9kE4h6kD/LPppuJlku0FExQHuMD2vy/UyopOqfENhi/ZKptrDyLsYvy6dsWB2tHpJFBMA/B5w6L069WeqKwStxUjv64wgbrgjbTe9yasMnm7aACoBMKIMlzv5UZe3V/3DZUUFeXR7iB+P4NoFuV1528JDz9VVQPJuxebSuh5HMicwLnTXycYvOco2NKptlPxImo6arN00gi/WoMJO4lonVmn9mCvY5g5FUQo8bBs/iRR3W47rS/wmSb2fLcTqLHszSsGl9p09KTXsQTp5wzsQQXJL1a+uwBeimFvqygR4Fy0chXGvBuBW/mt2xVcu8JeQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector2-analog-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p1jpe+rKo6Cuqt7/WmpBzA6Mk/fl15dHeSi/NfHLhGI=; b=dhA46DzzhmqM/d1qZMUijF76r54J5jDWgf9Fa9Ok0ZzWaE1vPqDCbttfKCfqVZrwJjSQTzN8+n8pIutQBJ5ju82s1flYgZLW7REfT4xOWj99pQ3ya+KfPt8K3ayeLY36nFHaVDAAFmDo9wcl7pfGTtW4CPfdgiQ+FQbwlKRk2MY= Received: from DM6PR03MB4411.namprd03.prod.outlook.com (2603:10b6:5:10f::14) by DM6PR03MB5307.namprd03.prod.outlook.com (2603:10b6:5:241::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.13; Mon, 27 Apr 2020 06:38:05 +0000 Received: from DM6PR03MB4411.namprd03.prod.outlook.com ([fe80::c47f:ceee:cfda:6a7f]) by DM6PR03MB4411.namprd03.prod.outlook.com ([fe80::c47f:ceee:cfda:6a7f%3]) with mapi id 15.20.2937.023; Mon, 27 Apr 2020 06:38:05 +0000 From: "Ardelean, Alexandru" To: "jic23@kernel.org" CC: "linux-kernel@vger.kernel.org" , "linux-iio@vger.kernel.org" , "pmeerw@pmeerw.net" , "lars@metafoo.de" Subject: Re: [PATCH v5 4/6] iio: buffer,event: duplicate chardev creation for buffers & events Thread-Topic: [PATCH v5 4/6] iio: buffer,event: duplicate chardev creation for buffers & events Thread-Index: AQHWG52e+QWf5XcIPEWDRoQx8itj3KiLK7gAgAFZ2wA= Date: Mon, 27 Apr 2020 06:38:05 +0000 Message-ID: <533e0aae99170307ba84fe18fb39861715888974.camel@analog.com> References: <20200426073817.33307-1-alexandru.ardelean@analog.com> <20200426073817.33307-5-alexandru.ardelean@analog.com> <20200426110012.668bdcfc@archlinux> In-Reply-To: <20200426110012.668bdcfc@archlinux> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [188.27.130.47] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 47e14761-5121-442d-74bb-08d7ea758a9f x-ms-traffictypediagnostic: DM6PR03MB5307: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4714; x-forefront-prvs: 0386B406AA x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB4411.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(366004)(376002)(346002)(396003)(39850400004)(136003)(36756003)(54906003)(81156014)(2616005)(8936002)(6512007)(8676002)(6486002)(6506007)(478600001)(66556008)(66946007)(2906002)(91956017)(76116006)(6916009)(316002)(66446008)(64756008)(71200400001)(66476007)(86362001)(30864003)(4326008)(26005)(5660300002)(186003)(142933001)(579004);DIR:OUT;SFP:1101; received-spf: None (protection.outlook.com: analog.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HcKAHZflZxByhU3OibcxI7nVy2xTXXQ4tUYy6wMbtgpeKMlWmlFYjF1O5WNGBda3IoSdscgZLO41XvW17Og5ChuzqHniQz8KdjtWMxJ7qiXKQ+NZaO8SZ50YCvxCEztlu0Nuwdssj0q52D8yLQWztnh90GsubT0U1slimiIW3CTWjcoLCnEouQ0juMakHLE/nbISP7BpMyrHnRkER739G1mOjGDvug7EkxnpiAmd9glcgYN/qS8HCoUsVH6o941wVYsH1RexWcdzSLH5f0CMDgYDwzp7+V9tKZS8Sr+FkSyjflf2g5WZLfsuggq9ZvOv/usgJO/stkadum2SNYbCPKVzfv41Ue0knau1l8ndj651CMLYQRb+Wn5Pc0Pzbhwa5b1zkSWZhGPGxr4m8A+qcMiXqG2ZXA56jdpG8mEHM7oc6hmKdSs8/L8SADN/nQ1AUfRRp1bcK5XCg4fydzo9rygkRYcQh4tZtXds43ocaL4ZuWdRrupbT0iBfa0gZk0T x-ms-exchange-antispam-messagedata: ZOkOy1a0FbqJOUWIaHL7A3/+l4/cHN8V3kZr5p+aAZWP8fPZLI4Aj7p4ML6FMQ4eS9N4RuNQC/Xbet9SKDdB1WPCrLJZGsFpsXH2mXpkJwtsC6WL1Ubzt9MYiDbS+jdNJ9QQemjpZjm0pmcADjaYQ58MTHepBS2qGcFtMTGLzdsQZA13jSQsmdBBpUkbwXIxWzpSt0dGXzwJFCcicUCZ/7AruD+ZQpoRxXDYpfYsTs+Z7X+1S022xKaAK+2zPg1tS98GYRj2gQuAybCIdvfsvo76AEgs8remC5mAotNUA2Uns1YGHMA1y5/cyUzcUUs9Z13bjq3jIUecNo01O+UssUZvBJg54W/ieZOV36aziSiSgjltU964Rd7FfwX/rfA54JprC6ArF7cd6U42SArPQj5DxCIsRa4zEgy5lbmKLLfgUm4IX5tiN/fGbIqaWQ9iBl9HkfUTpxGty+EBNl5IWIEb5WWE3ZotyXbZo5ybbUhmSfWL8zJ5V5qSIpwQgoM5Wm+CxJxkP7UTv9J5UyPhh0JR2045JCDZ+oWETfwKOa1ZaUkd0FA0+5UV6IFpGBzSsuA9GLDq6jGeEG8jWCHyBHay6BIVRLMUDNb5/0JiFO7mezW1adOE6GInwP0Cu6q7jOgLZt2yTHAB2RhLBJ1SwUt2FYwXXZFQoDlAQLjuoJ9DE5d9l0e1ECFpqkRsAY2UP555CiJdd4tXkZdiqZU4T4AVFd9eQAXlklwk71zWte3NdY0yRYBrJTSiaBu+XEeIcOexXXk5fZxtbr70twRBlymFSDatflrq6mxCUhiNxBo= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 47e14761-5121-442d-74bb-08d7ea758a9f X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2020 06:38:05.3114 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Pgh646l6sQZguGlAAnps6oNUaG7UB5Me2NZTHzMp7IYILxWBb7AASlFbuT8Bty57BAcizkjQAQTiBlofkztklHq38hurTxKge0TDKD7XiKg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5307 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.676 definitions=2020-04-27_02:2020-04-24,2020-04-27 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxscore=0 phishscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004270058 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gU3VuLCAyMDIwLTA0LTI2IGF0IDExOjAwICswMTAwLCBKb25hdGhhbiBDYW1lcm9uIHdyb3Rl Og0KPiBbRXh0ZXJuYWxdDQo+IA0KPiBPbiBTdW4sIDI2IEFwciAyMDIwIDEwOjM4OjE1ICswMzAw DQo+IEFsZXhhbmRydSBBcmRlbGVhbiA8YWxleGFuZHJ1LmFyZGVsZWFuQGFuYWxvZy5jb20+IHdy b3RlOg0KPiANCj4gPiBUaGlzIHBhdGNoIG1vdmVzIHRoZSBjaGFyZGV2IGNyZWF0aW9uIGludG8g aW5kdXN0cmlhbGlvLWJ1ZmZlci5jICYNCj4gPiBpbmR1c3RyaWFsaW8tZXZlbnQuYy4gVGhlIG1v dmUgaGFzIHRvIGJlIGluIGEgc2luZ2xlIHN0ZXAgKHdoaWNoIG1ha2VzIHRoZQ0KPiA+IHBhdGNo IGEgYml0IGJpZyksIGluIG9yZGVyIHRvIHBhc3MgdGhlIHJlZmVyZW5jZSBvZiB0aGUgY2hhcmRl diB0bw0KPiA+ICdpbmRpb19kZXYtPmNocmRldicuDQo+ID4gDQo+ID4gRm9yIHN0cnVjdHVyZSBw dXJwb3NlcywgaW5kdXN0cmlhbGlvLWNvcmUuYyBzaG91bGQgYmUgdGhlIHBsYWNlIHdoZXJlDQo+ ID4gY2Rldl9kZXZpY2VfYWRkKCkvZGV2aWNlX2FkZCgpIGdldHMgY2FsbGVkLCBhbmQgdGhlIGRl bGV0aW9uIGZ1bmN0aW9uIGFzDQo+ID4gd2VsbC4NCj4gPiANCj4gPiBXaGF0IGhhcHBlbnMgYWZ0 ZXIgdGhpcyBwYXRjaCBpczoNCj4gPiAtICdpbmRpb19kZXYtPmNocmRldicgaXMgY29udmVydGVk IHRvIGEgcG9pbnRlcg0KPiA+IC0gaWYgdGhlcmUgaXMgYW4gSUlPIGJ1ZmZlciwgaWlvX2Rldmlj ZV9idWZmZXJfYXR0YWNoX2NocmRldigpIHdpbGwgYXR0YWNoDQo+ID4gICBpdCdzIGNoYXJkZXYg dG8gJ2luZGlvX2NocmRldicNCj4gPiAtIGlmIGl0IGRvZXNuJ3QsIHRoZSBldmVudCBpbnRlcmZh Y2Ugd2lsbCBhdHRhY2ggYSByZWZlcmVuY2UgdG8gaXQncw0KPiA+ICAgY2hhcmRldiAoaWYgaXQg aXMgaW5zdGFudGlhdGVkKSB2aWEgaWlvX2RldmljZV9ldmVudF9hdHRhY2hfY2hyZGV2KCkNCj4g PiANCj4gPiBUaGF0IHdheSwgdGhlIGNvbnRyb2wgb2YgdGhlICdsZWdhY3knIGNoYXJkZXYgaXMg c3RpbGwgdmlzaWJsZSBpbg0KPiA+ICdpbmR1c3RyaWFsaW8tY29yZS5jJy4gU28sIGVhY2ggbG9n aWMgZmlsZSAoZm9yIGJ1ZmZlcnMgJiBldmVudHMpIHNob3VsZG4ndA0KPiA+IGhpZGUgdGhpbmdz IHRvbyBtdWNoIGF3YXkgZnJvbSB0aGUgY29yZSBmaWxlLg0KPiA+IA0KPiA+IFNpZ25lZC1vZmYt Ynk6IEFsZXhhbmRydSBBcmRlbGVhbiA8YWxleGFuZHJ1LmFyZGVsZWFuQGFuYWxvZy5jb20+DQo+ IA0KPiBBIGZldyByZWFsbHkgbWlub3Igc3VnZ2VzdGlvbnMgaW5saW5lLiBBdCBsZWFzdCBoYWxm IG9mIHRoZW0gYXJlIHRpZHlpbmcgdXANCj4gdGhpbmdzIHdoaWxzdCB3ZSBhcmUgaGVyZSB0aGF0 IHdlcmUgdWdseSBpbiB0aGUgY29kZSB3ZSBhcmUgZHVwbGljYXRpbmcuDQo+IA0KPiBMb29rcyBn b29kIHRvIG1lLiBIb3dldmVyLCBJJ2QgbGlrZSBtb3JlIGV5ZXMgb24gdGhpcyBzZXQgYmVmb3Jl IEkgYXBwbHkgaXQNCj4gc28gd2lsbCBnaXZlIGl0IGF0IGxlYXN0IGEgd2VlayBvciB0d28gb24g dGhlIGxpc3QhDQo+IA0KPiBKb25hdGhhbg0KPiANCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9paW8v aWlvX2NvcmUuaCAgICAgICAgICAgIHwgIDE2ICsrLS0tDQo+ID4gIGRyaXZlcnMvaWlvL2luZHVz dHJpYWxpby1idWZmZXIuYyB8ICA5MCArKysrKysrKysrKysrKysrKysrKysrKy0tDQo+ID4gIGRy aXZlcnMvaWlvL2luZHVzdHJpYWxpby1jb3JlLmMgICB8IDEwNSArKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gPiAgZHJpdmVycy9paW8vaW5kdXN0cmlhbGlvLWV2ZW50LmMgIHwgIDk4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0NCj4gPiAgaW5jbHVkZS9saW51eC9paW8vYnVm ZmVyX2ltcGwuaCAgIHwgICA3ICsrDQo+ID4gIGluY2x1ZGUvbGludXgvaWlvL2lpby5oICAgICAg ICAgICB8ICAgNiArLQ0KPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDIwOCBpbnNlcnRpb25zKCspLCAx MTQgZGVsZXRpb25zKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2lpb19j b3JlLmggYi9kcml2ZXJzL2lpby9paW9fY29yZS5oDQo+ID4gaW5kZXggMzllYzAzNDRmYjY4Li5h NTI3YTY2YmU5ZTUgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9paW8vaWlvX2NvcmUuaA0KPiA+ ICsrKyBiL2RyaXZlcnMvaWlvL2lpb19jb3JlLmgNCj4gPiBAQCAtNDAsMTcgKzQwLDE0IEBAIHNz aXplX3QgaWlvX2Zvcm1hdF92YWx1ZShjaGFyICpidWYsIHVuc2lnbmVkIGludCB0eXBlLA0KPiA+ IGludCBzaXplLCBpbnQgKnZhbHMpOw0KPiA+ICAjaWZkZWYgQ09ORklHX0lJT19CVUZGRVINCj4g PiAgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0Ow0KPiA+ICANCj4gPiAtX19wb2xsX3QgaWlvX2J1 ZmZlcl9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLA0KPiA+IC0JCQkgICAgIHN0cnVjdCBwb2xsX3Rh YmxlX3N0cnVjdCAqd2FpdCk7DQo+ID4gLXNzaXplX3QgaWlvX2J1ZmZlcl9yZWFkX291dGVyKHN0 cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLA0KPiA+IC0JCQkgICAgICBzaXplX3Qg biwgbG9mZl90ICpmX3BzKTsNCj4gPiArbG9uZyBpaW9fZGV2aWNlX2V2ZW50X2lvY3RsKHN0cnVj dCBpaW9fZGV2ICppbmRpb19kZXYsIHN0cnVjdCBmaWxlICpmaWxwLA0KPiA+ICsJCQkgICAgdW5z aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KPiA+ICsNCj4gPiArdm9pZCBpaW9f ZGV2aWNlX2J1ZmZlcl9hdHRhY2hfY2hyZGV2KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpOw0K PiA+ICANCj4gPiAgaW50IGlpb19idWZmZXJfYWxsb2Nfc3lzZnNfYW5kX21hc2soc3RydWN0IGlp b19kZXYgKmluZGlvX2Rldik7DQo+ID4gIHZvaWQgaWlvX2J1ZmZlcl9mcmVlX3N5c2ZzX2FuZF9t YXNrKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpOw0KPiA+ICANCj4gPiAtI2RlZmluZSBpaW9f YnVmZmVyX3BvbGxfYWRkciAoJmlpb19idWZmZXJfcG9sbCkNCj4gPiAtI2RlZmluZSBpaW9fYnVm ZmVyX3JlYWRfb3V0ZXJfYWRkciAoJmlpb19idWZmZXJfcmVhZF9vdXRlcikNCj4gPiAtDQo+ID4g IHZvaWQgaWlvX2RldmljZV9idWZmZXJzX3B1dChzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KTsN Cj4gPiAgDQo+ID4gIHZvaWQgaWlvX2Rpc2FibGVfYWxsX2J1ZmZlcnMoc3RydWN0IGlpb19kZXYg KmluZGlvX2Rldik7DQo+ID4gQEAgLTU4LDggKzU1LDcgQEAgdm9pZCBpaW9fYnVmZmVyX3dha2V1 cF9wb2xsKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpOw0KPiA+ICANCj4gPiAgI2Vsc2UNCj4g PiAgDQo+ID4gLSNkZWZpbmUgaWlvX2J1ZmZlcl9wb2xsX2FkZHIgTlVMTA0KPiA+IC0jZGVmaW5l IGlpb19idWZmZXJfcmVhZF9vdXRlcl9hZGRyIE5VTEwNCj4gPiArc3RhdGljIGlubGluZSB2b2lk IGlpb19kZXZpY2VfYnVmZmVyX2F0dGFjaF9jaHJkZXYoc3RydWN0IGlpb19kZXYNCj4gPiAqaW5k aW9fZGV2KSB7fQ0KPiA+ICANCj4gPiAgc3RhdGljIGlubGluZSBpbnQgaWlvX2J1ZmZlcl9hbGxv Y19zeXNmc19hbmRfbWFzayhzdHJ1Y3QgaWlvX2Rldg0KPiA+ICppbmRpb19kZXYpDQo+ID4gIHsN Cj4gPiBAQCAtNzcsOCArNzMsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaWlvX2J1ZmZlcl93YWtl dXBfcG9sbChzdHJ1Y3QgaWlvX2Rldg0KPiA+ICppbmRpb19kZXYpIHt9DQo+ID4gIA0KPiA+ICBp bnQgaWlvX2RldmljZV9yZWdpc3Rlcl9ldmVudHNldChzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2 KTsNCj4gPiAgdm9pZCBpaW9fZGV2aWNlX3VucmVnaXN0ZXJfZXZlbnRzZXQoc3RydWN0IGlpb19k ZXYgKmluZGlvX2Rldik7DQo+ID4gK3ZvaWQgaWlvX2RldmljZV9ldmVudF9hdHRhY2hfY2hyZGV2 KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpOw0KPiA+ICB2b2lkIGlpb19kZXZpY2Vfd2FrZXVw X2V2ZW50c2V0KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpOw0KPiA+IC1pbnQgaWlvX2V2ZW50 X2dldGZkKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpOw0KPiA+ICANCj4gPiAgc3RydWN0IGlp b19ldmVudF9pbnRlcmZhY2U7DQo+ID4gIGJvb2wgaWlvX2V2ZW50X2VuYWJsZWQoY29uc3Qgc3Ry dWN0IGlpb19ldmVudF9pbnRlcmZhY2UgKmV2X2ludCk7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvaWlvL2luZHVzdHJpYWxpby1idWZmZXIuYyBiL2RyaXZlcnMvaWlvL2luZHVzdHJpYWxpby0N Cj4gPiBidWZmZXIuYw0KPiA+IGluZGV4IGE2NmQzZmJjMjkwNS4uZjVhOTc1MDc5YmY0IDEwMDY0 NA0KPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2luZHVzdHJpYWxpby1idWZmZXIuYw0KPiA+ICsrKyBi L2RyaXZlcnMvaWlvL2luZHVzdHJpYWxpby1idWZmZXIuYw0KPiA+IEBAIC05OSwxMSArOTksMTEg QEAgc3RhdGljIGJvb2wgaWlvX2J1ZmZlcl9yZWFkeShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2 LA0KPiA+IHN0cnVjdCBpaW9fYnVmZmVyICpidWYsDQo+ID4gICAqIFJldHVybjogbmVnYXRpdmUg dmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gZXJyb3IgY29kZXMgb3IgcmV0ICE9IDANCj4gPiAgICoJ ICAgZm9yIGVuZGluZyB0aGUgcmVhZGluZyBhY3Rpdml0eQ0KPiA+ICAgKiovDQo+ID4gLXNzaXpl X3QgaWlvX2J1ZmZlcl9yZWFkX291dGVyKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAq YnVmLA0KPiA+IC0JCQkgICAgICBzaXplX3QgbiwgbG9mZl90ICpmX3BzKQ0KPiA+ICtzdGF0aWMg c3NpemVfdCBpaW9fYnVmZmVyX3JlYWRfb3V0ZXIoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191 c2VyICpidWYsDQo+ID4gKwkJCQkgICAgIHNpemVfdCBuLCBsb2ZmX3QgKmZfcHMpDQo+ID4gIHsN Cj4gPiAtCXN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7DQo+ ID4gLQlzdHJ1Y3QgaWlvX2J1ZmZlciAqcmIgPSBpbmRpb19kZXYtPmJ1ZmZlcjsNCj4gPiArCXN0 cnVjdCBpaW9fYnVmZmVyICpyYiA9IGZpbHAtPnByaXZhdGVfZGF0YTsNCj4gPiArCXN0cnVjdCBp aW9fZGV2ICppbmRpb19kZXYgPSByYi0+aW5kaW9fZGV2Ow0KPiA+ICAJREVGSU5FX1dBSVRfRlVO Qyh3YWl0LCB3b2tlbl93YWtlX2Z1bmN0aW9uKTsNCj4gPiAgCXNpemVfdCBkYXR1bV9zaXplOw0K PiA+ICAJc2l6ZV90IHRvX3dhaXQ7DQo+ID4gQEAgLTE2NSwxMSArMTY1LDExIEBAIHNzaXplX3Qg aWlvX2J1ZmZlcl9yZWFkX291dGVyKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyDQo+ID4gX191c2Vy ICpidWYsDQo+ID4gICAqIFJldHVybjogKEVQT0xMSU4gfCBFUE9MTFJETk9STSkgaWYgZGF0YSBp cyBhdmFpbGFibGUgZm9yIHJlYWRpbmcNCj4gPiAgICoJICAgb3IgMCBmb3Igb3RoZXIgY2FzZXMN Cj4gPiAgICovDQo+ID4gLV9fcG9sbF90IGlpb19idWZmZXJfcG9sbChzdHJ1Y3QgZmlsZSAqZmls cCwNCj4gPiArc3RhdGljIF9fcG9sbF90IGlpb19idWZmZXJfcG9sbChzdHJ1Y3QgZmlsZSAqZmls cCwNCj4gPiAgCQkJICAgICBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3QgKndhaXQpDQo+ID4gIHsN Cj4gPiAtCXN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7DQo+ ID4gLQlzdHJ1Y3QgaWlvX2J1ZmZlciAqcmIgPSBpbmRpb19kZXYtPmJ1ZmZlcjsNCj4gPiArCXN0 cnVjdCBpaW9fYnVmZmVyICpyYiA9IGZpbHAtPnByaXZhdGVfZGF0YTsNCj4gPiArCXN0cnVjdCBp aW9fZGV2ICppbmRpb19kZXYgPSByYi0+aW5kaW9fZGV2Ow0KPiA+ICANCj4gPiAgCWlmICghaW5k aW9fZGV2LT5pbmZvIHx8IHJiID09IE5VTEwpDQo+ID4gIAkJcmV0dXJuIDA7DQo+ID4gQEAgLTE4 MCw2ICsxODAsNDggQEAgX19wb2xsX3QgaWlvX2J1ZmZlcl9wb2xsKHN0cnVjdCBmaWxlICpmaWxw LA0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPiAgDQo+ID4gKy8qKg0KPiA+ICsgKiBpaW9f YnVmZmVyX2NocmRldl9vcGVuKCkgLSBjaHJkZXYgZmlsZSBvcGVuIGZvciBidWZmZXIgYWNjZXNz DQo+ID4gKyAqIEBpbm9kZToJSW5vZGUgc3RydWN0dXJlIGZvciBpZGVudGlmeWluZyB0aGUgZGV2 aWNlIGluIHRoZSBmaWxlIHN5c3RlbQ0KPiA+ICsgKiBAZmlscDoJRmlsZSBzdHJ1Y3R1cmUgZm9y IGlpbyBkZXZpY2UgdXNlZCB0byBrZWVwIGFuZCBsYXRlciBhY2Nlc3MNCj4gPiArICoJCXByaXZh dGUgZGF0YQ0KPiA+ICsgKg0KPiA+ICsgKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciAtRUJVU1kg aWYgdGhlIGRldmljZSBpcyBhbHJlYWR5IG9wZW5lZA0KPiA+ICsgKiovDQo+IA0KPiAqLw0KPiAN Cj4gPiArc3RhdGljIGludCBpaW9fYnVmZmVyX2NocmRldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmaWxwKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgaWlvX2J1ZmZlciAq YnVmZmVyID0gY29udGFpbmVyX29mKGlub2RlLT5pX2NkZXYsDQo+ID4gKwkJCQkJCSBzdHJ1Y3Qg aWlvX2J1ZmZlciwgY2hyZGV2KTsNCj4gPiArDQo+ID4gKwlpZiAodGVzdF9hbmRfc2V0X2JpdChJ SU9fQlVTWV9CSVRfUE9TLCAmYnVmZmVyLT5maWxlX29wc19mbGFncykpDQo+ID4gKwkJcmV0dXJu IC1FQlVTWTsNCj4gPiArDQo+ID4gKwlpaW9fYnVmZmVyX2dldChidWZmZXIpOw0KPiA+ICsNCj4g PiArCWZpbHAtPnByaXZhdGVfZGF0YSA9IGJ1ZmZlcjsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIGlpb19idWZmZXJfY2hyZGV2X3JlbGVh c2UoKSAtIGNocmRldiBmaWxlIGNsb3NlIGZvciBidWZmZXIgYWNjZXNzDQo+ID4gKyAqIEBpbm9k ZToJSW5vZGUgc3RydWN0dXJlIHBvaW50ZXIgZm9yIHRoZSBjaGFyIGRldmljZQ0KPiA+ICsgKiBA ZmlscDoJRmlsZSBzdHJ1Y3R1cmUgcG9pbnRlciBmb3IgdGhlIGNoYXIgZGV2aWNlDQo+ID4gKyAq DQo+ID4gKyAqIFJldHVybjogMCBmb3Igc3VjY2Vzc2Z1bCByZWxlYXNlDQo+ID4gKyAqLw0KPiA+ ICtzdGF0aWMgaW50IGlpb19idWZmZXJfY2hyZGV2X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9k ZSwgc3RydWN0IGZpbGUNCj4gPiAqZmlscCkNCj4gPiArew0KPiA+ICsJc3RydWN0IGlpb19idWZm ZXIgKmJ1ZmZlciA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LA0KPiA+ICsJCQkJCQkgc3Ry dWN0IGlpb19idWZmZXIsIGNocmRldik7DQo+ID4gKw0KPiA+ICsJY2xlYXJfYml0KElJT19CVVNZ X0JJVF9QT1MsICZidWZmZXItPmZpbGVfb3BzX2ZsYWdzKTsNCj4gPiArDQo+ID4gKwlpaW9fYnVm ZmVyX3B1dChidWZmZXIpOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICAvKioNCj4gPiAgICogaWlvX2J1ZmZlcl93YWtldXBfcG9sbCAtIFdha2VzIHVwIHRoZSBi dWZmZXIgd2FpdHF1ZXVlDQo+ID4gICAqIEBpbmRpb19kZXY6IFRoZSBJSU8gZGV2aWNlDQo+ID4g QEAgLTExMjksNiArMTE3MSwxNyBAQCB2b2lkIGlpb19kaXNhYmxlX2FsbF9idWZmZXJzKHN0cnVj dCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldikNCj4gPiAgCWlpb19idWZmZXJfZGVhY3RpdmF0ZV9h bGwoaW5kaW9fZGV2KTsNCj4gPiAgfQ0KPiA+ICANCj4gPiArc3RhdGljIGxvbmcgaWlvX2J1ZmZl cl9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZXAsIHVuc2lnbmVkIGludCBjbWQsDQo+ID4gKwkJCSAg ICAgdW5zaWduZWQgbG9uZyBhcmcpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBpaW9fYnVmZmVyICpi dWZmZXIgPSBmaWxlcC0+cHJpdmF0ZV9kYXRhOw0KPiA+ICsNCj4gPiArCWlmICghYnVmZmVyIHx8 ICFidWZmZXItPmFjY2VzcykNCj4gPiArCQlyZXR1cm4gLUVOT0RFVjsNCj4gPiArDQo+ID4gKwly ZXR1cm4gaWlvX2RldmljZV9ldmVudF9pb2N0bChidWZmZXItPmluZGlvX2RldiwgZmlsZXAsIGNt ZCwgYXJnKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RhdGljIHNzaXplX3QgaWlvX2J1ZmZlcl9z dG9yZV9lbmFibGUoc3RydWN0IGRldmljZSAqZGV2LA0KPiA+ICAJCQkJICAgICAgIHN0cnVjdCBk ZXZpY2VfYXR0cmlidXRlICphdHRyLA0KPiA+ICAJCQkJICAgICAgIGNvbnN0IGNoYXIgKmJ1ZiwN Cj4gPiBAQCAtMTM1NSw2ICsxNDA4LDI5IEBAIHZvaWQgaWlvX2J1ZmZlcl9mcmVlX3N5c2ZzX2Fu ZF9tYXNrKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldikNCj4gPiAgCWlpb19mcmVlX2No YW5fZGV2YXR0cl9saXN0KCZidWZmZXItPnNjYW5fZWxfZGV2X2F0dHJfbGlzdCk7DQo+ID4gIH0N Cj4gPiAgDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGlpb19idWZm ZXJfZmlsZW9wcyA9IHsNCj4gPiArCS5yZWFkID0gaWlvX2J1ZmZlcl9yZWFkX291dGVyLA0KPiA+ ICsJLnJlbGVhc2UgPSBpaW9fYnVmZmVyX2NocmRldl9yZWxlYXNlLA0KPiA+ICsJLm9wZW4gPSBp aW9fYnVmZmVyX2NocmRldl9vcGVuLA0KPiA+ICsJLnBvbGwgPSBpaW9fYnVmZmVyX3BvbGwsDQo+ ID4gKwkub3duZXIgPSBUSElTX01PRFVMRSwNCj4gPiArCS5sbHNlZWsgPSBub29wX2xsc2VlaywN Cj4gPiArCS51bmxvY2tlZF9pb2N0bCA9IGlpb19idWZmZXJfaW9jdGwsDQo+ID4gKwkuY29tcGF0 X2lvY3RsID0gY29tcGF0X3B0cl9pb2N0bCwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3ZvaWQgaWlv X2RldmljZV9idWZmZXJfYXR0YWNoX2NocmRldihzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0K PiA+ICt7DQo+ID4gKwlzdHJ1Y3QgaWlvX2J1ZmZlciAqYnVmZmVyID0gaW5kaW9fZGV2LT5idWZm ZXI7DQo+ID4gKw0KPiA+ICsJaWYgKCFidWZmZXIpDQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsNCj4g PiArCWNkZXZfaW5pdCgmYnVmZmVyLT5jaHJkZXYsICZpaW9fYnVmZmVyX2ZpbGVvcHMpOw0KPiA+ ICsNCj4gPiArCWluZGlvX2Rldi0+Y2hyZGV2ID0gJmJ1ZmZlci0+Y2hyZGV2Ow0KPiA+ICt9DQo+ ID4gKw0KPiA+ICB2b2lkIGlpb19kZXZpY2VfYnVmZmVyc19wdXQoc3RydWN0IGlpb19kZXYgKmlu ZGlvX2RldikNCj4gPiAgew0KPiA+ICAJc3RydWN0IGlpb19idWZmZXIgKmJ1ZmZlciA9IGluZGlv X2Rldi0+YnVmZmVyOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9pbmR1c3RyaWFsaW8t Y29yZS5jIGIvZHJpdmVycy9paW8vaW5kdXN0cmlhbGlvLQ0KPiA+IGNvcmUuYw0KPiA+IGluZGV4 IGE2NTAyMjM5NjMyOS4uYWVjNTg1Y2M4NDUzIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvaWlv L2luZHVzdHJpYWxpby1jb3JlLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9pbmR1c3RyaWFsaW8t Y29yZS5jDQo+ID4gQEAgLTE1ODQsNzkgKzE1ODQsNiBAQCBzdHJ1Y3QgaWlvX2RldiAqZGV2bV9p aW9fZGV2aWNlX2FsbG9jKHN0cnVjdCBkZXZpY2UNCj4gPiAqZGV2LCBpbnQgc2l6ZW9mX3ByaXYp DQo+ID4gIH0NCj4gPiAgRVhQT1JUX1NZTUJPTF9HUEwoZGV2bV9paW9fZGV2aWNlX2FsbG9jKTsN Cj4gPiAgDQo+ID4gLS8qKg0KPiA+IC0gKiBpaW9fY2hyZGV2X29wZW4oKSAtIGNocmRldiBmaWxl IG9wZW4gZm9yIGJ1ZmZlciBhY2Nlc3MgYW5kIGlvY3Rscw0KPiA+IC0gKiBAaW5vZGU6CUlub2Rl IHN0cnVjdHVyZSBmb3IgaWRlbnRpZnlpbmcgdGhlIGRldmljZSBpbiB0aGUgZmlsZSBzeXN0ZW0N Cj4gPiAtICogQGZpbHA6CUZpbGUgc3RydWN0dXJlIGZvciBpaW8gZGV2aWNlIHVzZWQgdG8ga2Vl cCBhbmQgbGF0ZXIgYWNjZXNzDQo+ID4gLSAqCQlwcml2YXRlIGRhdGENCj4gPiAtICoNCj4gPiAt ICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgLUVCVVNZIGlmIHRoZSBkZXZpY2UgaXMgYWxyZWFk eSBvcGVuZWQNCj4gPiAtICoqLw0KPiA+IC1zdGF0aWMgaW50IGlpb19jaHJkZXZfb3BlbihzdHJ1 Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkNCj4gPiAtew0KPiA+IC0Jc3RydWN0 IGlpb19kZXYgKmluZGlvX2RldiA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LA0KPiA+IC0J CQkJCQlzdHJ1Y3QgaWlvX2RldiwgY2hyZGV2KTsNCj4gPiAtDQo+ID4gLQlpZiAodGVzdF9hbmRf c2V0X2JpdChJSU9fQlVTWV9CSVRfUE9TLCAmaW5kaW9fZGV2LT5mbGFncykpDQo+ID4gLQkJcmV0 dXJuIC1FQlVTWTsNCj4gPiAtDQo+ID4gLQlpaW9fZGV2aWNlX2dldChpbmRpb19kZXYpOw0KPiA+ IC0NCj4gPiAtCWZpbHAtPnByaXZhdGVfZGF0YSA9IGluZGlvX2RldjsNCj4gPiAtDQo+ID4gLQly ZXR1cm4gMDsNCj4gPiAtfQ0KPiA+IC0NCj4gPiAtLyoqDQo+ID4gLSAqIGlpb19jaHJkZXZfcmVs ZWFzZSgpIC0gY2hyZGV2IGZpbGUgY2xvc2UgYnVmZmVyIGFjY2VzcyBhbmQgaW9jdGxzDQo+ID4g LSAqIEBpbm9kZToJSW5vZGUgc3RydWN0dXJlIHBvaW50ZXIgZm9yIHRoZSBjaGFyIGRldmljZQ0K PiA+IC0gKiBAZmlscDoJRmlsZSBzdHJ1Y3R1cmUgcG9pbnRlciBmb3IgdGhlIGNoYXIgZGV2aWNl DQo+ID4gLSAqDQo+ID4gLSAqIFJldHVybjogMCBmb3Igc3VjY2Vzc2Z1bCByZWxlYXNlDQo+ID4g LSAqLw0KPiA+IC1zdGF0aWMgaW50IGlpb19jaHJkZXZfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkNCj4gPiAtew0KPiA+IC0Jc3RydWN0IGlpb19kZXYgKmlu ZGlvX2RldiA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LA0KPiA+IC0JCQkJCQlzdHJ1Y3Qg aWlvX2RldiwgY2hyZGV2KTsNCj4gPiAtCWNsZWFyX2JpdChJSU9fQlVTWV9CSVRfUE9TLCAmaW5k aW9fZGV2LT5mbGFncyk7DQo+ID4gLQlpaW9fZGV2aWNlX3B1dChpbmRpb19kZXYpOw0KPiA+IC0N Cj4gPiAtCXJldHVybiAwOw0KPiA+IC19DQo+ID4gLQ0KPiA+IC0vKiBTb21ld2hhdCBvZiBhIGNy b3NzIGZpbGUgb3JnYW5pemF0aW9uIHZpb2xhdGlvbiAtIGlvY3RscyBoZXJlIGFyZQ0KPiA+IGFj dHVhbGx5DQo+ID4gLSAqIGV2ZW50IHJlbGF0ZWQgKi8NCj4gPiAtc3RhdGljIGxvbmcgaWlvX2lv Y3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nDQo+ ID4gYXJnKQ0KPiA+IC17DQo+ID4gLQlzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2ID0gZmlscC0+ cHJpdmF0ZV9kYXRhOw0KPiA+IC0JaW50IF9fdXNlciAqaXAgPSAoaW50IF9fdXNlciAqKWFyZzsN Cj4gPiAtCWludCBmZDsNCj4gPiAtDQo+ID4gLQlpZiAoIWluZGlvX2Rldi0+aW5mbykNCj4gPiAt CQlyZXR1cm4gLUVOT0RFVjsNCj4gPiAtDQo+ID4gLQlpZiAoY21kID09IElJT19HRVRfRVZFTlRf RkRfSU9DVEwpIHsNCj4gPiAtCQlmZCA9IGlpb19ldmVudF9nZXRmZChpbmRpb19kZXYpOw0KPiA+ IC0JCWlmIChmZCA8IDApDQo+ID4gLQkJCXJldHVybiBmZDsNCj4gPiAtCQlpZiAoY29weV90b191 c2VyKGlwLCAmZmQsIHNpemVvZihmZCkpKQ0KPiA+IC0JCQlyZXR1cm4gLUVGQVVMVDsNCj4gPiAt CQlyZXR1cm4gMDsNCj4gPiAtCX0NCj4gPiAtCXJldHVybiAtRUlOVkFMOw0KPiA+IC19DQo+ID4g LQ0KPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpaW9fYnVmZmVyX2Zp bGVvcHMgPSB7DQo+ID4gLQkucmVhZCA9IGlpb19idWZmZXJfcmVhZF9vdXRlcl9hZGRyLA0KPiA+ IC0JLnJlbGVhc2UgPSBpaW9fY2hyZGV2X3JlbGVhc2UsDQo+ID4gLQkub3BlbiA9IGlpb19jaHJk ZXZfb3BlbiwNCj4gPiAtCS5wb2xsID0gaWlvX2J1ZmZlcl9wb2xsX2FkZHIsDQo+ID4gLQkub3du ZXIgPSBUSElTX01PRFVMRSwNCj4gPiAtCS5sbHNlZWsgPSBub29wX2xsc2VlaywNCj4gPiAtCS51 bmxvY2tlZF9pb2N0bCA9IGlpb19pb2N0bCwNCj4gPiAtCS5jb21wYXRfaW9jdGwgPSBjb21wYXRf cHRyX2lvY3RsLA0KPiA+IC19Ow0KPiA+IC0NCj4gPiAgc3RhdGljIGludCBpaW9fY2hlY2tfdW5p cXVlX3NjYW5faW5kZXgoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikNCj4gPiAgew0KPiA+ICAJ aW50IGksIGo7DQo+ID4gQEAgLTE2ODIsMTUgKzE2MDksNiBAQCBzdGF0aWMgaW50IGlpb19jaGVj a191bmlxdWVfc2Nhbl9pbmRleChzdHJ1Y3QgaWlvX2Rldg0KPiA+ICppbmRpb19kZXYpDQo+ID4g IA0KPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGlpb19idWZmZXJfc2V0dXBfb3BzIG5vb3Bfcmlu Z19zZXR1cF9vcHM7DQo+ID4gIA0KPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0 aW9ucyBpaW9fZXZlbnRfZmlsZW9wcyA9IHsNCj4gPiAtCS5yZWxlYXNlID0gaWlvX2NocmRldl9y ZWxlYXNlLA0KPiA+IC0JLm9wZW4gPSBpaW9fY2hyZGV2X29wZW4sDQo+ID4gLQkub3duZXIgPSBU SElTX01PRFVMRSwNCj4gPiAtCS5sbHNlZWsgPSBub29wX2xsc2VlaywNCj4gPiAtCS51bmxvY2tl ZF9pb2N0bCA9IGlpb19pb2N0bCwNCj4gPiAtCS5jb21wYXRfaW9jdGwgPSBjb21wYXRfcHRyX2lv Y3RsLA0KPiA+IC19Ow0KPiA+IC0NCj4gPiAgaW50IF9faWlvX2RldmljZV9yZWdpc3RlcihzdHJ1 Y3QgaWlvX2RldiAqaW5kaW9fZGV2LCBzdHJ1Y3QgbW9kdWxlDQo+ID4gKnRoaXNfbW9kKQ0KPiA+ ICB7DQo+ID4gIAlpbnQgcmV0Ow0KPiA+IEBAIC0xNzQxLDE2ICsxNjU5LDE3IEBAIGludCBfX2lp b19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiwNCj4gPiBzdHJ1Y3Qg bW9kdWxlICp0aGlzX21vZCkNCj4gPiAgCQlpbmRpb19kZXYtPnNldHVwX29wcyA9PSBOVUxMKQ0K PiA+ICAJCWluZGlvX2Rldi0+c2V0dXBfb3BzID0gJm5vb3BfcmluZ19zZXR1cF9vcHM7DQo+ID4g IA0KPiA+IC0JaWYgKGluZGlvX2Rldi0+YnVmZmVyKQ0KPiA+IC0JCWNkZXZfaW5pdCgmaW5kaW9f ZGV2LT5jaHJkZXYsICZpaW9fYnVmZmVyX2ZpbGVvcHMpOw0KPiA+IC0JZWxzZSBpZiAoaW5kaW9f ZGV2LT5ldmVudF9pbnRlcmZhY2UpDQo+ID4gLQkJY2Rldl9pbml0KCZpbmRpb19kZXYtPmNocmRl diwgJmlpb19ldmVudF9maWxlb3BzKTsNCj4gPiArCWlpb19kZXZpY2VfYnVmZmVyX2F0dGFjaF9j aHJkZXYoaW5kaW9fZGV2KTsNCj4gPiAgDQo+ID4gLQlpbmRpb19kZXYtPmNocmRldi5vd25lciA9 IHRoaXNfbW9kOw0KPiA+ICsJLyogbm8gY2hyZGV2IGF0dGFjaGVkIGZyb20gYnVmZmVyLCB3ZSBn byB3aXRoIGV2ZW50LW9ubHkgY2hyZGV2ICovDQo+ID4gKwlpZiAoIWluZGlvX2Rldi0+Y2hyZGV2 KQ0KPiA+ICsJCWlpb19kZXZpY2VfZXZlbnRfYXR0YWNoX2NocmRldihpbmRpb19kZXYpOw0KPiA+ ICANCj4gPiAtCWlmIChpbmRpb19kZXYtPmJ1ZmZlciB8fCBpbmRpb19kZXYtPmV2ZW50X2ludGVy ZmFjZSkNCj4gPiAtCQlyZXQgPSBjZGV2X2RldmljZV9hZGQoJmluZGlvX2Rldi0+Y2hyZGV2LCAm aW5kaW9fZGV2LT5kZXYpOw0KPiA+IC0JZWxzZQ0KPiA+ICsJaWYgKGluZGlvX2Rldi0+Y2hyZGV2 KSB7DQo+ID4gKwkJaW5kaW9fZGV2LT5jaHJkZXYtPm93bmVyID0gdGhpc19tb2Q7DQo+ID4gKw0K PiA+ICsJCXJldCA9IGNkZXZfZGV2aWNlX2FkZChpbmRpb19kZXYtPmNocmRldiwgJmluZGlvX2Rl di0+ZGV2KTsNCj4gPiArCX0gZWxzZQ0KPiA+ICAJCXJldCA9IGRldmljZV9hZGQoJmluZGlvX2Rl di0+ZGV2KTsNCj4gPiAgDQo+ID4gIAlpZiAocmV0IDwgMCkNCj4gPiBAQCAtMTc3NiwxMyArMTY5 NSwxNSBAQCBFWFBPUlRfU1lNQk9MKF9faWlvX2RldmljZV9yZWdpc3Rlcik7DQo+ID4gICAqKi8N Cj4gPiAgdm9pZCBpaW9fZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IGlpb19kZXYgKmluZGlvX2Rl dikNCj4gPiAgew0KPiA+IC0JaWYgKGluZGlvX2Rldi0+YnVmZmVyIHx8IGluZGlvX2Rldi0+ZXZl bnRfaW50ZXJmYWNlKQ0KPiA+IC0JCWNkZXZfZGV2aWNlX2RlbCgmaW5kaW9fZGV2LT5jaHJkZXYs ICZpbmRpb19kZXYtPmRldik7DQo+ID4gKwlpZiAoaW5kaW9fZGV2LT5jaHJkZXYpDQo+ID4gKwkJ Y2Rldl9kZXZpY2VfZGVsKGluZGlvX2Rldi0+Y2hyZGV2LCAmaW5kaW9fZGV2LT5kZXYpOw0KPiA+ ICAJZWxzZQ0KPiA+ICAJCWRldmljZV9kZWwoJmluZGlvX2Rldi0+ZGV2KTsNCj4gPiAgDQo+ID4g IAltdXRleF9sb2NrKCZpbmRpb19kZXYtPmluZm9fZXhpc3RfbG9jayk7DQo+ID4gIA0KPiA+ICsJ aW5kaW9fZGV2LT5jaHJkZXYgPSBOVUxMOw0KPiA+ICsNCj4gDQo+IFdoeT8gSSBjYW4ndCBpbW1l ZGlhdGVseSBzZWUgdGhlIHJlYXNvbiBhbmQgSSdtIHRvbyBsYXp5IHRvIGZpZ3VyZSBpdCBvdXQN Cj4gb24gYSBTdW5kYXkgbW9ybmluZyA7KQ0KDQpQYXJhbm9pZCBjb2RlLg0KSW5pdGlhbGx5IEkg anVzdCB0aG91Z2h0IEknZCBhZGQgaXQgYXMgYSBzaW1pbGFyIG1lY2hhbmlzbSBmb3IgJ2luZGlv X2Rldi0+aW5mbycgDQpiZWluZyBtYWRlIE5VTEwgbGF0ZXIuDQpCdXQgSSBjYW4ndCB0aGluayBv ZiBhIGdvb2QgcmVhc29uLg0KSSBndWVzcyBJIGFkZGVkIGl0IGluIHRoZSBtaWRkbGUgb2YgY29k aW5nLCB3aXRob3V0IG11Y2ggdGhvdWdodC4NCkVzcGVjaWFsbHksIHNpbmNlIHRoZXJlIGlzbid0 IGFueSBjb2RlIHRvIGNoZWNrIHRoaXMgYmVpbmcgTlVMTCB0byBkbyBhbnl0aGluZy4NCg0KV2ls bCByZW1vdmUgaXQuDQonaW5kaW9fZGV2LT5pbmZvID0gTlVMTCcgc2hvdWxkIGJlIGVub3VnaC4N Cg0KDQo+IA0KPiA+ICAJaWlvX2RldmljZV91bnJlZ2lzdGVyX2RlYnVnZnMoaW5kaW9fZGV2KTsN Cj4gPiAgDQo+ID4gIAlpaW9fZGlzYWJsZV9hbGxfYnVmZmVycyhpbmRpb19kZXYpOw0KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2lpby9pbmR1c3RyaWFsaW8tZXZlbnQuYyBiL2RyaXZlcnMvaWlv L2luZHVzdHJpYWxpby0NCj4gPiBldmVudC5jDQo+ID4gaW5kZXggNWIxN2M5MmQzYjUwLi4wNjc0 YjIxMTdjOTggMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9paW8vaW5kdXN0cmlhbGlvLWV2ZW50 LmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9pbmR1c3RyaWFsaW8tZXZlbnQuYw0KPiA+IEBAIC0z MCw2ICszMCw4IEBADQo+ID4gICAqIEBmbGFnczoJCWZpbGUgb3BlcmF0aW9ucyByZWxhdGVkIGZs YWdzIGluY2x1ZGluZyBidXN5IGZsYWcuDQo+ID4gICAqIEBncm91cDoJCWV2ZW50IGludGVyZmFj ZSBzeXNmcyBhdHRyaWJ1dGUgZ3JvdXANCj4gPiAgICogQHJlYWRfbG9jazoJCWxvY2sgdG8gcHJv dGVjdCBrZmlmbyByZWFkIG9wZXJhdGlvbnMNCj4gPiArICogQGNocmRldjoJCWFzc29jaWF0ZWQg Y2hhcmRldiBmb3IgdGhpcyBldmVudA0KPiA+ICsgKiBAaW5kaW9fZGV2OgkJSUlPIGRldmljZSB0 byB3aGljaCB0aGlzIGV2ZW50IGludGVyZmFjZSBiZWxvbmdzDQo+ID4gdG8NCj4gPiAgICovDQo+ ID4gIHN0cnVjdCBpaW9fZXZlbnRfaW50ZXJmYWNlIHsNCj4gPiAgCXdhaXRfcXVldWVfaGVhZF90 CXdhaXQ7DQo+ID4gQEAgLTM5LDYgKzQxLDkgQEAgc3RydWN0IGlpb19ldmVudF9pbnRlcmZhY2Ug ew0KPiA+ICAJdW5zaWduZWQgbG9uZwkJZmxhZ3M7DQo+ID4gIAlzdHJ1Y3QgYXR0cmlidXRlX2dy b3VwCWdyb3VwOw0KPiA+ICAJc3RydWN0IG11dGV4CQlyZWFkX2xvY2s7DQo+ID4gKw0KPiA+ICsJ c3RydWN0IGNkZXYJCWNocmRldjsNCj4gPiArCXN0cnVjdCBpaW9fZGV2CQkqaW5kaW9fZGV2Ow0K PiA+ICB9Ow0KPiA+ICANCj4gPiAgYm9vbCBpaW9fZXZlbnRfZW5hYmxlZChjb25zdCBzdHJ1Y3Qg aWlvX2V2ZW50X2ludGVyZmFjZSAqZXZfaW50KQ0KPiA+IEBAIC0xODIsNyArMTg3LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMNCj4gPiBpaW9fZXZlbnRfY2hyZGV2X2Zp bGVvcHMgPSB7DQo+ID4gIAkubGxzZWVrID0gbm9vcF9sbHNlZWssDQo+ID4gIH07DQo+ID4gIA0K PiA+IC1pbnQgaWlvX2V2ZW50X2dldGZkKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpDQo+ID4g K3N0YXRpYyBpbnQgaWlvX2V2ZW50X2dldGZkKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpDQo+ ID4gIHsNCj4gPiAgCXN0cnVjdCBpaW9fZXZlbnRfaW50ZXJmYWNlICpldl9pbnQgPSBpbmRpb19k ZXYtPmV2ZW50X2ludGVyZmFjZTsNCj4gPiAgCWludCBmZDsNCj4gPiBAQCAtMjE1LDYgKzIyMCw5 NyBAQCBpbnQgaWlvX2V2ZW50X2dldGZkKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpDQo+ID4g IAlyZXR1cm4gZmQ7DQo+ID4gIH0NCj4gPiAgDQo+ID4gKy8qKg0KPiA+ICsgKiBpaW9fY2hyZGV2 X29wZW4oKSAtIGNocmRldiBmaWxlIG9wZW4gZm9yIGV2ZW50IGlvY3Rscw0KPiA+ICsgKiBAaW5v ZGU6CUlub2RlIHN0cnVjdHVyZSBmb3IgaWRlbnRpZnlpbmcgdGhlIGRldmljZSBpbiB0aGUgZmls ZSBzeXN0ZW0NCj4gPiArICogQGZpbHA6CUZpbGUgc3RydWN0dXJlIGZvciBpaW8gZGV2aWNlIHVz ZWQgdG8ga2VlcCBhbmQgbGF0ZXIgYWNjZXNzDQo+ID4gKyAqCQlwcml2YXRlIGRhdGENCj4gPiAr ICoNCj4gPiArICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgLUVCVVNZIGlmIHRoZSBkZXZpY2Ug aXMgYWxyZWFkeSBvcGVuZWQNCj4gPiArICoqLw0KPiANCj4gRG9uJ3Qgd2UgdXNlIHRoZSAqLyB0 ZXJtaW5hdGlvbiBvciBrZXJuZWwtZG9jIHRocm91Z2ggb3V0IElJTy4gTmljZSB0byBiZQ0KPiBj b25zaXN0ZW50LiAgQWguIEkgc2VlIHdlIGRvbid0LiAgVGlkeSB0aGF0IHVwIHdoaWxzdCB5b3Ug YXJlIGhlcmUgOikNCg0KYWNrDQoNCj4gDQo+IA0KPiA+ICtzdGF0aWMgaW50IGlpb19jaHJkZXZf b3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkNCj4gPiArew0KPiA+ ICsJc3RydWN0IGlpb19ldmVudF9pbnRlcmZhY2UgKmV2ID0NCj4gPiArCQljb250YWluZXJfb2Yo aW5vZGUtPmlfY2Rldiwgc3RydWN0IGlpb19ldmVudF9pbnRlcmZhY2UsIGNocmRldik7DQo+ID4g Kw0KPiA+ICsJaWYgKHRlc3RfYW5kX3NldF9iaXQoSUlPX0JVU1lfQklUX1BPUywgJmV2LT5mbGFn cykpDQo+ID4gKwkJcmV0dXJuIC1FQlVTWTsNCj4gPiArDQo+ID4gKwlpaW9fZGV2aWNlX2dldChl di0+aW5kaW9fZGV2KTsNCj4gPiArDQo+ID4gKwlmaWxwLT5wcml2YXRlX2RhdGEgPSBldjsNCj4g PiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIGlp b19jaHJkZXZfcmVsZWFzZSgpIC0gY2hyZGV2IGZpbGUgY2xvc2UgZm9yIGV2ZW50IGlvY3Rscw0K PiA+ICsgKiBAaW5vZGU6CUlub2RlIHN0cnVjdHVyZSBwb2ludGVyIGZvciB0aGUgY2hhciBkZXZp Y2UNCj4gPiArICogQGZpbHA6CUZpbGUgc3RydWN0dXJlIHBvaW50ZXIgZm9yIHRoZSBjaGFyIGRl dmljZQ0KPiA+ICsgKg0KPiA+ICsgKiBSZXR1cm46IDAgZm9yIHN1Y2Nlc3NmdWwgcmVsZWFzZQ0K PiA+ICsgKi8NCj4gPiArc3RhdGljIGludCBpaW9fY2hyZGV2X3JlbGVhc2Uoc3RydWN0IGlub2Rl ICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBpaW9fZXZl bnRfaW50ZXJmYWNlICpldiA9DQo+ID4gKwkJY29udGFpbmVyX29mKGlub2RlLT5pX2NkZXYsIHN0 cnVjdCBpaW9fZXZlbnRfaW50ZXJmYWNlLCBjaHJkZXYpOw0KPiA+ICsNCj4gPiArCWNsZWFyX2Jp dChJSU9fQlVTWV9CSVRfUE9TLCAmZXYtPmZsYWdzKTsNCj4gPiArCWlpb19kZXZpY2VfcHV0KGV2 LT5pbmRpb19kZXYpOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtsb25nIGlpb19kZXZpY2VfZXZlbnRfaW9jdGwoc3RydWN0IGlpb19kZXYgKmluZGlvX2Rldiwg c3RydWN0IGZpbGUgKmZpbHAsDQo+ID4gKwkJCSAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l ZCBsb25nIGFyZykNCj4gPiArew0KPiA+ICsJaW50IF9fdXNlciAqaXAgPSAoaW50IF9fdXNlciAq KWFyZzsNCj4gPiArCWludCBmZDsNCj4gPiArDQo+IA0KPiBHaXZlbiB3ZSd2ZSBoYXMgc29tZSBj b25mdXNpb24gb24gdGhpcyByZWNlbnRseSBwZXJoYXBzIGEgbm90ZSB0aGF0DQo+IHRoaXMgaXMg cHJvdGVjdGlvbiBvbiBkcml2ZXIgJ2dvaW5nIGF3YXknLiAgV2UgY291bGQgZXZlbg0KPiBhZGQg YSBsaXR0bGUgd3JhcHBlciBhcm91bmQgaXQgdG8gbWFrZSBpdCBleHBsaWNpdCBpbiB0aGUgY29k ZS4NCj4gV2hhdCBkbyB5b3UgdGhpbms/ICBNYXliZSBhIGNvbW1lbnQgaXMgZW5vdWdoLg0KDQpD b21tZW50IHNvdW5kcyBnb29kIGVub3VnaC4NClRoaXMgY29kZSBzaG91bGQgZ2V0IGNhbGxlZCB2 aWEgMiBwb3RlbnRpYWwgY29kZS1wYXRoczogMSB2aWEgZXZlbnRzIGNoYXJkZXYgJiAxDQp2aWEg YnVmZmVyIGNoYXJkZXYuDQoNCj4gDQo+ID4gKwlpZiAoIWluZGlvX2Rldi0+aW5mbykNCj4gPiAr CQlyZXR1cm4gLUVOT0RFVjsNCj4gPiArDQo+ID4gKwlpZiAoY21kID09IElJT19HRVRfRVZFTlRf RkRfSU9DVEwpIHsNCj4gPiArCQlmZCA9IGlpb19ldmVudF9nZXRmZChpbmRpb19kZXYpOw0KPiA+ ICsJCWlmIChmZCA8IDApDQo+ID4gKwkJCXJldHVybiBmZDsNCj4gPiArCQlpZiAoY29weV90b191 c2VyKGlwLCAmZmQsIHNpemVvZihmZCkpKQ0KPiA+ICsJCQlyZXR1cm4gLUVGQVVMVDsNCj4gPiAr CQlyZXR1cm4gMDsNCj4gPiArCX0NCj4gPiArCXJldHVybiAtRUlOVkFMOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICtzdGF0aWMgbG9uZyBpaW9fZXZlbnRfaW9jdGxfd3JhcHBlcihzdHJ1Y3QgZmlsZSAq ZmlscCwgdW5zaWduZWQgaW50IGNtZCwNCj4gPiArCQkJCSAgICB1bnNpZ25lZCBsb25nIGFyZykN Cj4gPiArew0KPiA+ICsJc3RydWN0IGlpb19ldmVudF9pbnRlcmZhY2UgKmV2ID0gZmlscC0+cHJp dmF0ZV9kYXRhOw0KPiA+ICsNCj4gPiArCXJldHVybiBpaW9fZGV2aWNlX2V2ZW50X2lvY3RsKGV2 LT5pbmRpb19kZXYsIGZpbHAsIGNtZCwgYXJnKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaWlvX2V2ZW50X2ZpbGVvcHMgPSB7DQo+ID4g KwkucmVsZWFzZSA9IGlpb19jaHJkZXZfcmVsZWFzZSwNCj4gPiArCS5vcGVuID0gaWlvX2NocmRl dl9vcGVuLA0KPiA+ICsJLm93bmVyID0gVEhJU19NT0RVTEUsDQo+IA0KPiBBcyB3ZSBhcmUgaGVy ZS4gTWlnaHQgYmUgbmljZSB0byBvcmRlciB0aGlzIHRvIG1hdGNoIHRoZSBmaWxlX29wZXJhdGlv bnMNCj4gc3RydWN0dXJlDQo+IG9yZGVyaW5nLiAgQ2VydGFpbmx5IHNlZW1zIG9kZCB0byBoYXZl IC5vd25lciBpbiB0aGUgbWlkZGxlLi4gDQo+IGxhbGFsYSBmb3Igd2hlcmUgeW91IG1pZ2h0IGhh dmUgY29waWVkIHRoaXMgZnJvbSA7KQ0KDQphY2sNCg0KPiANCj4gPiArCS5sbHNlZWsgPSBub29w X2xsc2VlaywNCj4gPiArCS51bmxvY2tlZF9pb2N0bCA9IGlpb19ldmVudF9pb2N0bF93cmFwcGVy LA0KPiA+ICsJLmNvbXBhdF9pb2N0bCA9IGNvbXBhdF9wdHJfaW9jdGwsDQo+ID4gK307DQo+ID4g Kw0KPiA+ICt2b2lkIGlpb19kZXZpY2VfZXZlbnRfYXR0YWNoX2NocmRldihzdHJ1Y3QgaWlvX2Rl diAqaW5kaW9fZGV2KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgaWlvX2V2ZW50X2ludGVyZmFjZSAq ZXYgPSBpbmRpb19kZXYtPmV2ZW50X2ludGVyZmFjZTsNCj4gPiArDQo+ID4gKwlpZiAoIWV2KQ0K PiA+ICsJCXJldHVybjsNCj4gPiArDQo+ID4gKwljZGV2X2luaXQoJmV2LT5jaHJkZXYsICZpaW9f ZXZlbnRfZmlsZW9wcyk7DQo+ID4gKw0KPiA+ICsJZXYtPmluZGlvX2RldiA9IGluZGlvX2RldjsN Cj4gPiArCWluZGlvX2Rldi0+Y2hyZGV2ID0gJmV2LT5jaHJkZXY7DQo+ID4gK30NCj4gPiArDQo+ ID4gIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaWlvX2V2X3R5cGVfdGV4dFtdID0gew0KPiA+ ICAJW0lJT19FVl9UWVBFX1RIUkVTSF0gPSAidGhyZXNoIiwNCj4gPiAgCVtJSU9fRVZfVFlQRV9N QUddID0gIm1hZyIsDQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaWlvL2J1ZmZlcl9p bXBsLmgNCj4gPiBiL2luY2x1ZGUvbGludXgvaWlvL2J1ZmZlcl9pbXBsLmgNCj4gPiBpbmRleCA2 N2Q3M2Q0NjVlMDIuLjQ2ZmM5NzdkZWFlMyAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4 L2lpby9idWZmZXJfaW1wbC5oDQo+ID4gKysrIGIvaW5jbHVkZS9saW51eC9paW8vYnVmZmVyX2lt cGwuaA0KPiA+IEBAIC0xLDYgKzEsNyBAQA0KPiA+ICAvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMCAqLw0KPiA+ICAjaWZuZGVmIF9JSU9fQlVGRkVSX0dFTkVSSUNfSU1QTF9IXw0K PiA+ICAjZGVmaW5lIF9JSU9fQlVGRkVSX0dFTkVSSUNfSU1QTF9IXw0KPiA+ICsjaW5jbHVkZSA8 bGludXgvY2Rldi5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4NCj4gPiAgI2luY2x1 ZGUgPGxpbnV4L2tyZWYuaD4NCj4gPiAgDQo+ID4gQEAgLTcyLDYgKzczLDEyIEBAIHN0cnVjdCBp aW9fYnVmZmVyIHsNCj4gPiAgCS8qKiBAaW5kaW9fZGV2OiBJSU8gZGV2aWNlIHRvIHdoaWNoIHRo aXMgYnVmZmVyIGJlbG9uZ3MgdG8uICovDQo+ID4gIAlzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2 Ow0KPiA+ICANCj4gPiArCS8qKiBAY2hyZGV2OiBhc3NvY2lhdGVkIGNoYXJhY3RlciBkZXZpY2Uu ICovDQo+ID4gKwlzdHJ1Y3QgY2RldiBjaHJkZXY7DQo+ID4gKw0KPiA+ICsJLyoqIEBmaWxlX29w c19mbGFnczogZmlsZSBvcHMgcmVsYXRlZCBmbGFncyBpbmNsdWRpbmcgYnVzeSBmbGFnLiAqLw0K PiA+ICsJdW5zaWduZWQgbG9uZyBmaWxlX29wc19mbGFnczsNCj4gPiArDQo+ID4gIAkvKiogQGxl bmd0aDogTnVtYmVyIG9mIGRhdHVtcyBpbiBidWZmZXIuICovDQo+ID4gIAl1bnNpZ25lZCBpbnQg bGVuZ3RoOw0KPiA+ICANCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9paW8vaWlvLmgg Yi9pbmNsdWRlL2xpbnV4L2lpby9paW8uaA0KPiA+IGluZGV4IDVmOWY0MzlhNGYwMS4uNTI5OTJi ZTQ0ZTllIDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvbGludXgvaWlvL2lpby5oDQo+ID4gKysr IGIvaW5jbHVkZS9saW51eC9paW8vaWlvLmgNCj4gPiBAQCAtNTE2LDEwICs1MTYsOSBAQCBzdHJ1 Y3QgaWlvX2J1ZmZlcl9zZXR1cF9vcHMgew0KPiA+ICAgKiBAaW5mb19leGlzdF9sb2NrOglbSU5U RVJOXSBsb2NrIHRvIHByZXZlbnQgdXNlIGR1cmluZyByZW1vdmFsDQo+ID4gICAqIEBzZXR1cF9v cHM6CQlbRFJJVkVSXSBjYWxsYmFja3MgdG8gY2FsbCBiZWZvcmUgYW5kIGFmdGVyDQo+ID4gYnVm ZmVyDQo+ID4gICAqCQkJZW5hYmxlL2Rpc2FibGUNCj4gPiAtICogQGNocmRldjoJCVtJTlRFUk5d IGFzc29jaWF0ZWQgY2hhcmFjdGVyIGRldmljZQ0KPiA+ICsgKiBAY2hyZGV2OgkJW0lOVEVSTl0g cmVmZXJlbmNlIHRvIGFzc29jaWF0ZWQgY2hhcmFjdGVyDQo+ID4gZGV2aWNlDQo+ID4gICAqIEBn cm91cHM6CQlbSU5URVJOXSBhdHRyaWJ1dGUgZ3JvdXBzDQo+ID4gICAqIEBncm91cGNvdW50ZXI6 CVtJTlRFUk5dIGluZGV4IG9mIG5leHQgYXR0cmlidXRlIGdyb3VwDQo+ID4gLSAqIEBmbGFnczoJ CVtJTlRFUk5dIGZpbGUgb3BzIHJlbGF0ZWQgZmxhZ3MgaW5jbHVkaW5nIGJ1c3kgZmxhZy4NCj4g PiAgICogQGRlYnVnZnNfZGVudHJ5OglbSU5URVJOXSBkZXZpY2Ugc3BlY2lmaWMgZGVidWdmcyBk ZW50cnkuDQo+ID4gICAqIEBjYWNoZWRfcmVnX2FkZHI6CVtJTlRFUk5dIGNhY2hlZCByZWdpc3Rl ciBhZGRyZXNzIGZvciBkZWJ1Z2ZzDQo+ID4gcmVhZHMuDQo+ID4gICAqLw0KPiA+IEBAIC01NTks MTIgKzU1OCwxMSBAQCBzdHJ1Y3QgaWlvX2RldiB7DQo+ID4gIAljbG9ja2lkX3QJCQljbG9ja19p ZDsNCj4gPiAgCXN0cnVjdCBtdXRleAkJCWluZm9fZXhpc3RfbG9jazsNCj4gPiAgCWNvbnN0IHN0 cnVjdCBpaW9fYnVmZmVyX3NldHVwX29wcwkqc2V0dXBfb3BzOw0KPiA+IC0Jc3RydWN0IGNkZXYJ CQljaHJkZXY7DQo+ID4gKwlzdHJ1Y3QgY2RldgkJCSpjaHJkZXY7DQo+ID4gICNkZWZpbmUgSUlP X01BWF9HUk9VUFMgNg0KPiA+ICAJY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cAkqZ3JvdXBz W0lJT19NQVhfR1JPVVBTICsgMV07DQo+ID4gIAlpbnQJCQkJZ3JvdXBjb3VudGVyOw0KPiA+ICAN Cj4gPiAtCXVuc2lnbmVkIGxvbmcJCQlmbGFnczsNCj4gPiAgI2lmIGRlZmluZWQoQ09ORklHX0RF QlVHX0ZTKQ0KPiA+ICAJc3RydWN0IGRlbnRyeQkJCSpkZWJ1Z2ZzX2RlbnRyeTsNCj4gPiAgCXVu c2lnbmVkCQkJY2FjaGVkX3JlZ19hZGRyOw0K