Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp165183pxu; Wed, 2 Dec 2020 18:26:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJxJjmle9ccw3IuupR2j5wXPjLWwXluM9XzrOWNn6PxbDzSDNHh+E4GV2iWvUt1EEpqrMMbf X-Received: by 2002:aa7:da01:: with SMTP id r1mr913891eds.45.1606962368128; Wed, 02 Dec 2020 18:26:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606962368; cv=none; d=google.com; s=arc-20160816; b=QjroOBbplwJiuir0Z68hYEHTO1f3cTWy4nz+5GW2s2eTMQIwA/Bu/psjME60DcZE33 YzAKM58cljllzQA0zF3iQ539h4Bp2R7hRARC27tF4521Dj6HhLEI4l4Yl9AqmDdG0l29 s4KdlBbUIboZB1JxxEx+sJYLDaWBueK1NmVPIWDk6ME49UZP12s8jcUyQB/VZS+Xdu0R hPNv94NL5rD7sqOEZ+pzBR0PgwBeX3AFcAVjfH2REcnv4u3tmkRhIKD9EVWlOi2zvOKF tLvpzQP+qYbIVwbB5t26Fj86jGuCl1zUev9Lr7rrvxGUEtx2ni8etVTDxTUupDet5G4Y 877g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=gWQrBvrnpZN5/Z8xwZVIRIS4VR49FSXz8YL5vxwG6P0=; b=LIt5JDZtEyYdeB/rnlFWbYUEIU8Nk4feR+u46JARAWUd6Cjgs1OGJhdKRglDkr2J4e siaIl2XmcAieTD0myqQZXrnIWPXy96jgZ++IetGx0UUWfNU6h6tzIxbrZDWQ0qEkn6JP FLgAvuec7yWXr92QmQue9QZrj46qB/5Tg71phZL9Z+SBh6j06CfYye62n75pdeiU8YTw YdGBTHigvc21t0hVKmy3c6dXzSZhzLAgUvdZbZZ9w3ETmwyqo/XWkfIvqzcHx48+vyET 56kTXZPIVz299HTjyKpAbz1lvCHNTt/2ppgtB46n7ByVL+plBT3S4r0EY1T76irVhyXi dz3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b="C2/iY6ad"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g25si118889edr.220.2020.12.02.18.25.45; Wed, 02 Dec 2020 18:26:08 -0800 (PST) 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=@mediatek.com header.s=dk header.b="C2/iY6ad"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727681AbgLCCWH (ORCPT + 99 others); Wed, 2 Dec 2020 21:22:07 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:48511 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725859AbgLCCWH (ORCPT ); Wed, 2 Dec 2020 21:22:07 -0500 X-UUID: d22a39fee01f47fdb85bb66e2d4bd510-20201203 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=gWQrBvrnpZN5/Z8xwZVIRIS4VR49FSXz8YL5vxwG6P0=; b=C2/iY6adqA9ye1R3oWKyLTbNrvWuWNYfrSQj/n60QEPawQNhqcjViiVCmxAEgRJhEfv4v7zQev36qZ+dqsX8i8BjsOURk0tolLwf8918iqxE9UekL5PU6OWy0rLPLxqMzzt9C3pSr+rGVigeGmIJ+izm/wxLE13nTCU5jymJxsU=; X-UUID: d22a39fee01f47fdb85bb66e2d4bd510-20201203 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1537084343; Thu, 03 Dec 2020 10:21:21 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 3 Dec 2020 10:21:19 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkcas07.mediatek.inc (172.21.101.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 3 Dec 2020 10:21:18 +0800 Received: from [172.21.77.33] (172.21.77.33) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 3 Dec 2020 10:21:15 +0800 Message-ID: <1606962078.23925.47.camel@mtkswgap22> Subject: Re: [PATCH V7 2/3] scsi: ufs: Fix a race condition between ufshcd_abort and eh_work From: Stanley Chu To: Can Guo CC: , , , , , , , , Alim Akhtar , Avri Altman , "James E.J. Bottomley" , "Martin K. Petersen" , Bean Huo , "Bart Van Assche" , Satya Tangirala , open list Date: Thu, 3 Dec 2020 10:21:18 +0800 In-Reply-To: <1606910644-21185-3-git-send-email-cang@codeaurora.org> References: <1606910644-21185-1-git-send-email-cang@codeaurora.org> <1606910644-21185-3-git-send-email-cang@codeaurora.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-MTK: N X-TM-SNTS-SMTP: 5421E61ACC3AD7A327D9D3A8F5A8D4AA37C57336AFA2F0AAB880B1CF853F862D2000:8 Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gV2VkLCAyMDIwLTEyLTAyIGF0IDA0OjA0IC0wODAwLCBDYW4gR3VvIHdyb3RlOg0KPiBJbiBj dXJyZW50IHRhc2sgYWJvcnQgcm91dGluZSwgaWYgdGFzayBhYm9ydCBoYXBwZW5zIHRvIHRoZSBk ZXZpY2UgVy1MVSwNCj4gdGhlIGNvZGUgZGlyZWN0bHkganVtcHMgdG8gdWZzaGNkX2VoX2hvc3Rf cmVzZXRfaGFuZGxlcigpIHRvIHBlcmZvcm0gYQ0KPiBmdWxsIHJlc2V0IGFuZCByZXN0b3JlIHRo ZW4gcmV0dXJucyBGQUlMIG9yIFNVQ0NFU1MuIENvbW1hbmRzIHNlbnQgdG8gdGhlDQo+IGRldmlj ZSBXLUxVIGFyZSBtb3N0IGxpa2VseSB0aGUgU1NVIGNtZHMgc2VudCBkdXJpbmcgVUZTIFBNIG9w ZXJhdGlvbnMuIElmDQo+IHN1Y2ggU1NVIGNtZCBlbnRlcnMgdGFzayBhYm9ydCByb3V0aW5lLCB3 aGVuIHVmc2hjZF9laF9ob3N0X3Jlc2V0X2hhbmRsZXIoKQ0KPiBmbHVzaGVzIGVoX3dvcmssIGl0 IHdpbGwgZ2V0IHN0dWNrIHRoZXJlIHNpbmNlIGVycl9oYW5kbGVyIGlzIHNlcmlhbGl6ZWQNCj4g d2l0aCBQTSBvcGVyYXRpb25zLg0KPiANCj4gSW4gb3JkZXIgdG8gdW5ibG9jayBhYm92ZSBjYWxs IHBhdGgsIHdlIG1lcmVseSBjbGVhbiB1cCB0aGUgbHJiIHRha2VuIGJ5DQo+IHRoaXMgY21kLCBx dWV1ZSB0aGUgZWhfd29yayBhbmQgcmV0dXJuIFNVQ0NFU1MuIE9uY2UgdGhlIGNtZCBpcyBhYm9y dGVkLA0KPiB0aGUgUE0gb3BlcmF0aW9uIHdoaWNoIHNlbmRzIG91dCB0aGUgY21kIGp1c3QgZXJy b3JzIG91dCwgdGhlbiBlcnJfaGFuZGxlcg0KPiBzaGFsbCBiZSBhYmxlIHRvIHByb2NlZWQgd2l0 aCB0aGUgZnVsbCByZXNldCBhbmQgcmVzdG9yZS4NCj4gDQo+IEluIHRoaXMgc2NlbmFyaW8sIHRo ZSBjbWQgaXMgYWJvcnRlZCBldmVuIGJlZm9yZSBpdCBpcyBhY3R1YWxseSBjbGVhcmVkIGJ5DQo+ IEhXLCBzZXQgdGhlIGxyYi0+aW5fdXNlIGZsYWcgdG8gcHJldmVudCBzdWJzZXF1ZW50IGNtZHMs IGluY2x1ZGluZyBTQ1NJDQo+IGNtZHMgYW5kIGRldiBjbWRzLCBmcm9tIHRha2luZyB0aGUgbHJi IHJlbGVhc2VkIGZyb20gYWJvcnQuIFRoZSBmbGFnIHNoYWxsDQo+IGV2ZXR1YWxseSBiZSBjbGVh cmVkIGluIF9fdWZzaGNkX3RyYW5zZmVyX3JlcV9jb21wbCgpIGludm9rZWQgYnkgdGhlIGZ1bGwN Cj4gcmVzZXQgYW5kIHJlc3RvcmUgZnJvbSBlcnJfaGFuZGxlci4NCj4gDQo+IFJldmlld2VkLWJ5 OiBBc3V0b3NoIERhcyA8YXN1dG9zaGRAY29kZWF1cm9yYS5vcmc+DQo+IFNpZ25lZC1vZmYtYnk6 IENhbiBHdW8gPGNhbmdAY29kZWF1cm9yYS5vcmc+DQo+IC0tLQ0KPiAgZHJpdmVycy9zY3NpL3Vm cy91ZnNoY2QuYyB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tDQo+ICBkcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC5oIHwgIDIgKysNCj4gIDIgZmlsZXMg Y2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9zY3NpL3Vmcy91ZnNoY2QuYyBiL2RyaXZlcnMvc2NzaS91ZnMvdWZzaGNk LmMNCj4gaW5kZXggZjBiYjNmYy4uMjZjMWZhMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9zY3Np L3Vmcy91ZnNoY2QuYw0KPiArKysgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC5jDQo+IEBAIC0y NTM5LDYgKzI1MzksMTQgQEAgc3RhdGljIGludCB1ZnNoY2RfcXVldWVjb21tYW5kKHN0cnVjdCBT Y3NpX0hvc3QgKmhvc3QsIHN0cnVjdCBzY3NpX2NtbmQgKmNtZCkNCj4gIAkJKGhiYS0+Y2xrX2dh dGluZy5zdGF0ZSAhPSBDTEtTX09OKSk7DQo+ICANCj4gIAlscmJwID0gJmhiYS0+bHJiW3RhZ107 DQo+ICsJaWYgKHVubGlrZWx5KGxyYnAtPmluX3VzZSkpIHsNCj4gKwkJaWYgKGhiYS0+cG1fb3Bf aW5fcHJvZ3Jlc3MpDQo+ICsJCQlzZXRfaG9zdF9ieXRlKGNtZCwgRElEX0JBRF9UQVJHRVQpOw0K PiArCQllbHNlDQo+ICsJCQllcnIgPSBTQ1NJX01MUVVFVUVfSE9TVF9CVVNZOw0KPiArCQl1ZnNo Y2RfcmVsZWFzZShoYmEpOw0KPiArCQlnb3RvIG91dDsNCj4gKwl9DQo+ICANCj4gIAlXQVJOX09O KGxyYnAtPmNtZCk7DQo+ICAJbHJicC0+Y21kID0gY21kOw0KPiBAQCAtMjc4MSw2ICsyNzg5LDEx IEBAIHN0YXRpYyBpbnQgdWZzaGNkX2V4ZWNfZGV2X2NtZChzdHJ1Y3QgdWZzX2hiYSAqaGJhLA0K PiAgDQo+ICAJaW5pdF9jb21wbGV0aW9uKCZ3YWl0KTsNCj4gIAlscmJwID0gJmhiYS0+bHJiW3Rh Z107DQo+ICsJaWYgKHVubGlrZWx5KGxyYnAtPmluX3VzZSkpIHsNCj4gKwkJZXJyID0gLUVCVVNZ Ow0KPiArCQlnb3RvIG91dDsNCj4gKwl9DQo+ICsNCj4gIAlXQVJOX09OKGxyYnAtPmNtZCk7DQo+ ICAJZXJyID0gdWZzaGNkX2NvbXBvc2VfZGV2X2NtZChoYmEsIGxyYnAsIGNtZF90eXBlLCB0YWcp Ow0KPiAgCWlmICh1bmxpa2VseShlcnIpKQ0KPiBAQCAtMjc5Nyw2ICsyODEwLDcgQEAgc3RhdGlj IGludCB1ZnNoY2RfZXhlY19kZXZfY21kKHN0cnVjdCB1ZnNfaGJhICpoYmEsDQo+ICANCj4gIAll cnIgPSB1ZnNoY2Rfd2FpdF9mb3JfZGV2X2NtZChoYmEsIGxyYnAsIHRpbWVvdXQpOw0KPiAgDQo+ ICtvdXQ6DQo+ICAJdWZzaGNkX2FkZF9xdWVyeV91cGl1X3RyYWNlKGhiYSwgdGFnLA0KPiAgCQkJ ZXJyID8gInF1ZXJ5X2NvbXBsZXRlX2VyciIgOiAicXVlcnlfY29tcGxldGUiKTsNCj4gIA0KPiBA QCAtNDkyOSw5ICs0OTQzLDExIEBAIHN0YXRpYyB2b2lkIF9fdWZzaGNkX3RyYW5zZmVyX3JlcV9j b21wbChzdHJ1Y3QgdWZzX2hiYSAqaGJhLA0KPiAgCXN0cnVjdCBzY3NpX2NtbmQgKmNtZDsNCj4g IAlpbnQgcmVzdWx0Ow0KPiAgCWludCBpbmRleDsNCj4gKwlib29sIHVwZGF0ZV9zY2FsaW5nID0g ZmFsc2U7DQo+ICANCj4gIAlmb3JfZWFjaF9zZXRfYml0KGluZGV4LCAmY29tcGxldGVkX3JlcXMs IGhiYS0+bnV0cnMpIHsNCj4gIAkJbHJicCA9ICZoYmEtPmxyYltpbmRleF07DQo+ICsJCWxyYnAt PmluX3VzZSA9IGZhbHNlOw0KPiAgCQlscmJwLT5jb21wbF90aW1lX3N0YW1wID0ga3RpbWVfZ2V0 KCk7DQo+ICAJCWNtZCA9IGxyYnAtPmNtZDsNCj4gIAkJaWYgKGNtZCkgew0KPiBAQCAtNDk0NCwx NSArNDk2MCwxNyBAQCBzdGF0aWMgdm9pZCBfX3Vmc2hjZF90cmFuc2Zlcl9yZXFfY29tcGwoc3Ry dWN0IHVmc19oYmEgKmhiYSwNCj4gIAkJCS8qIERvIG5vdCB0b3VjaCBscmJwIGFmdGVyIHNjc2kg ZG9uZSAqLw0KPiAgCQkJY21kLT5zY3NpX2RvbmUoY21kKTsNCj4gIAkJCV9fdWZzaGNkX3JlbGVh c2UoaGJhKTsNCj4gKwkJCXVwZGF0ZV9zY2FsaW5nID0gdHJ1ZTsNCj4gIAkJfSBlbHNlIGlmIChs cmJwLT5jb21tYW5kX3R5cGUgPT0gVVRQX0NNRF9UWVBFX0RFVl9NQU5BR0UgfHwNCj4gIAkJCWxy YnAtPmNvbW1hbmRfdHlwZSA9PSBVVFBfQ01EX1RZUEVfVUZTX1NUT1JBR0UpIHsNCj4gIAkJCWlm IChoYmEtPmRldl9jbWQuY29tcGxldGUpIHsNCj4gIAkJCQl1ZnNoY2RfYWRkX2NvbW1hbmRfdHJh Y2UoaGJhLCBpbmRleCwNCj4gIAkJCQkJCSJkZXZfY29tcGxldGUiKTsNCj4gIAkJCQljb21wbGV0 ZShoYmEtPmRldl9jbWQuY29tcGxldGUpOw0KPiArCQkJCXVwZGF0ZV9zY2FsaW5nID0gdHJ1ZTsN Cj4gIAkJCX0NCj4gIAkJfQ0KPiAtCQlpZiAodWZzaGNkX2lzX2Nsa3NjYWxpbmdfc3VwcG9ydGVk KGhiYSkpDQo+ICsJCWlmICh1ZnNoY2RfaXNfY2xrc2NhbGluZ19zdXBwb3J0ZWQoaGJhKSAmJiB1 cGRhdGVfc2NhbGluZykNCj4gIAkJCWhiYS0+Y2xrX3NjYWxpbmcuYWN0aXZlX3JlcXMtLTsNCj4g IAl9DQo+ICANCj4gQEAgLTYzNzQsOCArNjM5MiwxMiBAQCBzdGF0aWMgaW50IHVmc2hjZF9pc3N1 ZV9kZXZtYW5fdXBpdV9jbWQoc3RydWN0IHVmc19oYmEgKmhiYSwNCj4gIA0KPiAgCWluaXRfY29t cGxldGlvbigmd2FpdCk7DQo+ICAJbHJicCA9ICZoYmEtPmxyYlt0YWddOw0KPiAtCVdBUk5fT04o bHJicC0+Y21kKTsNCj4gKwlpZiAodW5saWtlbHkobHJicC0+aW5fdXNlKSkgew0KPiArCQllcnIg PSAtRUJVU1k7DQo+ICsJCWdvdG8gb3V0Ow0KPiArCX0NCj4gIA0KPiArCVdBUk5fT04obHJicC0+ Y21kKTsNCj4gIAlscmJwLT5jbWQgPSBOVUxMOw0KPiAgCWxyYnAtPnNlbnNlX2J1ZmZsZW4gPSAw Ow0KPiAgCWxyYnAtPnNlbnNlX2J1ZmZlciA9IE5VTEw7DQo+IEBAIC02NDQ3LDYgKzY0NjksNyBA QCBzdGF0aWMgaW50IHVmc2hjZF9pc3N1ZV9kZXZtYW5fdXBpdV9jbWQoc3RydWN0IHVmc19oYmEg KmhiYSwNCj4gIAkJfQ0KPiAgCX0NCj4gIA0KPiArb3V0Og0KPiAgCWJsa19wdXRfcmVxdWVzdChy ZXEpOw0KPiAgb3V0X3VubG9jazoNCj4gIAl1cF9yZWFkKCZoYmEtPmNsa19zY2FsaW5nX2xvY2sp Ow0KPiBAQCAtNjY5NiwxNiArNjcxOSw2IEBAIHN0YXRpYyBpbnQgdWZzaGNkX2Fib3J0KHN0cnVj dCBzY3NpX2NtbmQgKmNtZCkNCj4gIAkJQlVHKCk7DQo+ICAJfQ0KPiAgDQo+IC0JLyoNCj4gLQkg KiBUYXNrIGFib3J0IHRvIHRoZSBkZXZpY2UgVy1MVU4gaXMgaWxsZWdhbC4gV2hlbiB0aGlzIGNv bW1hbmQNCj4gLQkgKiB3aWxsIGZhaWwsIGR1ZSB0byBzcGVjIHZpb2xhdGlvbiwgc2NzaSBlcnIg aGFuZGxpbmcgbmV4dCBzdGVwDQo+IC0JICogd2lsbCBiZSB0byBzZW5kIExVIHJlc2V0IHdoaWNo LCBhZ2FpbiwgaXMgYSBzcGVjIHZpb2xhdGlvbi4NCj4gLQkgKiBUbyBhdm9pZCB0aGVzZSB1bm5l Y2Vzc2FyeS9pbGxlZ2FsIHN0ZXAgd2Ugc2tpcCB0byB0aGUgbGFzdCBlcnJvcg0KPiAtCSAqIGhh bmRsaW5nIHN0YWdlOiByZXNldCBhbmQgcmVzdG9yZS4NCj4gLQkgKi8NCj4gLQlpZiAobHJicC0+ bHVuID09IFVGU19VUElVX1VGU19ERVZJQ0VfV0xVTikNCj4gLQkJcmV0dXJuIHVmc2hjZF9laF9o b3N0X3Jlc2V0X2hhbmRsZXIoY21kKTsNCj4gLQ0KPiAgCXVmc2hjZF9ob2xkKGhiYSwgZmFsc2Up Ow0KPiAgCXJlZyA9IHVmc2hjZF9yZWFkbChoYmEsIFJFR19VVFBfVFJBTlNGRVJfUkVRX0RPT1Jf QkVMTCk7DQo+ICAJLyogSWYgY29tbWFuZCBpcyBhbHJlYWR5IGFib3J0ZWQvY29tcGxldGVkLCBy ZXR1cm4gU1VDQ0VTUyAqLw0KPiBAQCAtNjcyNiw3ICs2NzM5LDcgQEAgc3RhdGljIGludCB1ZnNo Y2RfYWJvcnQoc3RydWN0IHNjc2lfY21uZCAqY21kKQ0KPiAgCSAqIHRvIHJlZHVjZSByZXBlYXRl ZCBwcmludG91dHMuIEZvciBvdGhlciBhYm9ydGVkIHJlcXVlc3RzIG9ubHkgcHJpbnQNCj4gIAkg KiBiYXNpYyBkZXRhaWxzLg0KPiAgCSAqLw0KPiAtCXNjc2lfcHJpbnRfY29tbWFuZChoYmEtPmxy Ylt0YWddLmNtZCk7DQo+ICsJc2NzaV9wcmludF9jb21tYW5kKGNtZCk7DQo+ICAJaWYgKCFoYmEt PnJlcV9hYm9ydF9jb3VudCkgew0KPiAgCQl1ZnNoY2RfdXBkYXRlX3JlZ19oaXN0KCZoYmEtPnVm c19zdGF0cy50YXNrX2Fib3J0LCAwKTsNCj4gIAkJdWZzaGNkX3ByaW50X2hvc3RfcmVncyhoYmEp Ow0KPiBAQCAtNjc0NSw2ICs2NzU4LDI3IEBAIHN0YXRpYyBpbnQgdWZzaGNkX2Fib3J0KHN0cnVj dCBzY3NpX2NtbmQgKmNtZCkNCj4gIAkJZ290byBjbGVhbnVwOw0KPiAgCX0NCj4gIA0KPiArCS8q DQo+ICsJICogVGFzayBhYm9ydCB0byB0aGUgZGV2aWNlIFctTFVOIGlzIGlsbGVnYWwuIFdoZW4g dGhpcyBjb21tYW5kDQo+ICsJICogd2lsbCBmYWlsLCBkdWUgdG8gc3BlYyB2aW9sYXRpb24sIHNj c2kgZXJyIGhhbmRsaW5nIG5leHQgc3RlcA0KPiArCSAqIHdpbGwgYmUgdG8gc2VuZCBMVSByZXNl dCB3aGljaCwgYWdhaW4sIGlzIGEgc3BlYyB2aW9sYXRpb24uDQo+ICsJICogVG8gYXZvaWQgdGhl c2UgdW5uZWNlc3NhcnkvaWxsZWdhbCBzdGVwcywgZmlyc3Qgd2UgY2xlYW4gdXANCj4gKwkgKiB0 aGUgbHJiIHRha2VuIGJ5IHRoaXMgY21kIGFuZCBtYXJrIHRoZSBscmIgYXMgaW5fdXNlLCB0aGVu DQo+ICsJICogcXVldWUgdGhlIGVoX3dvcmsgYW5kIGJhaWwuDQo+ICsJICovDQo+ICsJaWYgKGxy YnAtPmx1biA9PSBVRlNfVVBJVV9VRlNfREVWSUNFX1dMVU4pIHsNCj4gKwkJc3Bpbl9sb2NrX2ly cXNhdmUoaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7DQo+ICsJCWlmIChscmJwLT5jbWQpIHsNCj4g KwkJCV9fdWZzaGNkX3RyYW5zZmVyX3JlcV9jb21wbChoYmEsICgxVUwgPDwgdGFnKSk7DQo+ICsJ CQlfX3NldF9iaXQodGFnLCAmaGJhLT5vdXRzdGFuZGluZ19yZXFzKTsNCj4gKwkJCWxyYnAtPmlu X3VzZSA9IHRydWU7DQo+ICsJCQloYmEtPmZvcmNlX3Jlc2V0ID0gdHJ1ZTsNCj4gKwkJCXVmc2hj ZF9zY2hlZHVsZV9laF93b3JrKGhiYSk7DQoNCnVmc2hjZF9zY2hlZHVsZV9laF93b3JrKCkgd2ls bCBzZXQgaGJhLT51ZnNoY2Rfc3RhdGUgYXMNClVGU0hDRF9TVEFURV9FSF9TQ0hFRFVMRURfRkFU QUwuIFdoaWxlIGluIHRoaXMgc3RhdGUsDQp1ZnNoY2RfcXVldWVjb21tYW5kKCkgd2lsbCBzZXRf aG9zdF9ieXRlKERJRF9CQURfVEFSR0VUKSB3aGljaCBpcw0Kc2ltaWxhciBhcyB3aGF0IHlvdSB3 b3VsZCBsaWtlIHRvIGRvIGluIHRoaXMgcGF0Y2guDQoNCklzIHRoaXMgZW5vdWdoIGZvciBhdm9p ZGluZyByZXVzaW5nIHRhZyBpc3N1ZT8gSnVzdCB3b25kZXIgaWYNCmxycGItPmluX3VzZSBmbGFn IGlzIHJlYWxseSByZXF1aXJlZCB0byBiZSBhZGRlZC4NCg0KPiArCQl9DQo+ICsJCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7DQo+ICsJCWdvdG8gb3V0Ow0K PiArCX0NCj4gKw0KPiAgCS8qIFNraXAgdGFzayBhYm9ydCBpbiBjYXNlIHByZXZpb3VzIGFib3J0 cyBmYWlsZWQgYW5kIHJlcG9ydCBmYWlsdXJlICovDQo+ICAJaWYgKGxyYnAtPnJlcV9hYm9ydF9z a2lwKQ0KPiAgCQllcnIgPSAtRUlPOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Vmcy91 ZnNoY2QuaCBiL2RyaXZlcnMvc2NzaS91ZnMvdWZzaGNkLmgNCj4gaW5kZXggMWU2ODBiZi4uNjZl NTMzOCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9zY3NpL3Vmcy91ZnNoY2QuaA0KPiArKysgYi9k cml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC5oDQo+IEBAIC0xNjMsNiArMTYzLDcgQEAgc3RydWN0IHVm c19wbV9sdmxfc3RhdGVzIHsNCj4gICAqIEBjcnlwdG9fa2V5X3Nsb3Q6IHRoZSBrZXkgc2xvdCB0 byB1c2UgZm9yIGlubGluZSBjcnlwdG8gKC0xIGlmIG5vbmUpDQo+ICAgKiBAZGF0YV91bml0X251 bTogdGhlIGRhdGEgdW5pdCBudW1iZXIgZm9yIHRoZSBmaXJzdCBibG9jayBmb3IgaW5saW5lIGNy eXB0bw0KPiAgICogQHJlcV9hYm9ydF9za2lwOiBza2lwIHJlcXVlc3QgYWJvcnQgdGFzayBmbGFn DQo+ICsgKiBAaW5fdXNlOiBpbmRpY2F0ZXMgdGhhdCB0aGlzIGxyYiBpcyBzdGlsbCBpbiB1c2UN Cj4gICAqLw0KPiAgc3RydWN0IHVmc2hjZF9scmIgew0KPiAgCXN0cnVjdCB1dHBfdHJhbnNmZXJf cmVxX2Rlc2MgKnV0cl9kZXNjcmlwdG9yX3B0cjsNCj4gQEAgLTE5Miw2ICsxOTMsNyBAQCBzdHJ1 Y3QgdWZzaGNkX2xyYiB7DQo+ICAjZW5kaWYNCj4gIA0KPiAgCWJvb2wgcmVxX2Fib3J0X3NraXA7 DQo+ICsJYm9vbCBpbl91c2U7DQo+ICB9Ow0KPiAgDQo+ICAvKioNCg0K