Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp3723500pxb; Tue, 19 Apr 2022 08:36:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwE2Lyz+tNuWY6NExEgGH4eLc04ZjvP+ZRYKold5J1eZprUdAT9vDVxVHJN2akY49T17MGY X-Received: by 2002:a17:906:58d1:b0:6ef:c915:bb54 with SMTP id e17-20020a17090658d100b006efc915bb54mr6770659ejs.253.1650382579690; Tue, 19 Apr 2022 08:36:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650382579; cv=none; d=google.com; s=arc-20160816; b=eZrTUF9a/rEHT8WzmDwr1vLsejQZhsM7kmmM3u+GcbPP2GzUgKBKSIQSVlbGaK75Vh i20q3BRNq9qLiluA4PRwQ+K9vYQQZBDPcXb8Jui/NOkRqioIlU+IRGgpQxjBEDVdLokO scBj3k1c6K4JuJqygqK/ostUli2WND/YPX6yvP88yEiTbdQG8uJViacHmA6F8vR3uU71 hoM9KmARSJ0v9ArliLLbfE1oGY4Fh0ePRME9pIW5aLEYF8B/oW/77Fmaj5lAxlTIyJpD J0LSrd2F9KVNqqnD08AxSzgrspOHY6Ly1vTUe/MLcEtatWe1Mv+wdGcwqf3mtFy1sTSC 7reQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :dkim-signature:dkim-signature; bh=I3R5Ezhakg45enfTRC/KJNq3t4sjY7FYkeXgrT6CfiE=; b=yi8ivw0MhxSEN49WBXcTPYbK38G157JBv/D019gekmQefaJWjIBoUGVSVRa8a1BR8T 4T++zVfLa98rJdthXcPd5VeCP7yUcgnjbc8RDuJ85QwCWrshvBDgiCDXjzYHRhiDKQLk j4gHYJilUGwvTidI5TWL8o/NKe+KxZIZuosHuw38tya5CNmiGlwV+o3Modx+aRE4a5fN Q3rUyXHCuwGlC8jbu1ltgDFe6R9xTfzGI6cArScVj64i2Re11mcy8L9L/KeNzDg/UrV3 iWuY77mbsSfCGX5Q4yztGdhrKNPMQRCaKo4QIr/A2w18JJIMV1WtIx9NOR84ai2ypW6y dnvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=JHRK4txy; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m14-20020aa7c2ce000000b0041d7123418esi8321748edp.536.2022.04.19.08.35.53; Tue, 19 Apr 2022 08:36:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=JHRK4txy; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347402AbiDRSlg (ORCPT + 99 others); Mon, 18 Apr 2022 14:41:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229523AbiDRSlb (ORCPT ); Mon, 18 Apr 2022 14:41:31 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E1D6911A2C for ; Mon, 18 Apr 2022 11:38:49 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 5DA16210EB; Mon, 18 Apr 2022 18:38:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1650307128; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=I3R5Ezhakg45enfTRC/KJNq3t4sjY7FYkeXgrT6CfiE=; b=JHRK4txyTah77By3n0r80K2Phqix1P6GKBYnXkRgQjOSxwA8Ond0lVvMpr9tlR0R6Foha7 qvnOuyz948j9zfs/zF7hYzJQkADS5BsyouSiU1K0JUUiqJdyDQxcuZPN+YWi2z5BI0MEP4 ckGvRVAoFJSdiBXHl2WHzp8zcNSj4mM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1650307128; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=I3R5Ezhakg45enfTRC/KJNq3t4sjY7FYkeXgrT6CfiE=; b=oSEFLEjF52CDmVYS4AP8I7ssFW8xkUgMRz72SrkL3iROfqKonunJpqOhf/xSTUATyt6C3R xJ29AG/cFIeESQCg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id AD83913A9B; Mon, 18 Apr 2022 18:38:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id Vw8NKDewXWKMBAAAMHmgww (envelope-from ); Mon, 18 Apr 2022 18:38:47 +0000 Message-ID: <248083d2-b8f2-a4d7-099d-70a7e7859c11@suse.de> Date: Mon, 18 Apr 2022 20:38:45 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH v4 10/15] drm/shmem-helper: Take reservation lock instead of drm_gem_shmem locks Content-Language: en-US To: Dmitry Osipenko , David Airlie , Gerd Hoffmann , Gurchetan Singh , Chia-I Wu , Daniel Vetter , Daniel Almeida , Gert Wollny , Gustavo Padovan , Daniel Stone , Tomeu Vizoso , Maarten Lankhorst , Maxime Ripard , Rob Herring , Steven Price , Alyssa Rosenzweig , Rob Clark , Emil Velikov , Robin Murphy Cc: Dmitry Osipenko , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org References: <20220417223707.157113-1-dmitry.osipenko@collabora.com> <20220417223707.157113-11-dmitry.osipenko@collabora.com> From: Thomas Zimmermann In-Reply-To: <20220417223707.157113-11-dmitry.osipenko@collabora.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------SFr0JUSpCaasp7Qaen3L0XxY" X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------SFr0JUSpCaasp7Qaen3L0XxY Content-Type: multipart/mixed; boundary="------------Y5Isinji0tKl5yh1zd0gUdfS"; protected-headers="v1" From: Thomas Zimmermann To: Dmitry Osipenko , David Airlie , Gerd Hoffmann , Gurchetan Singh , Chia-I Wu , Daniel Vetter , Daniel Almeida , Gert Wollny , Gustavo Padovan , Daniel Stone , Tomeu Vizoso , Maarten Lankhorst , Maxime Ripard , Rob Herring , Steven Price , Alyssa Rosenzweig , Rob Clark , Emil Velikov , Robin Murphy Cc: Dmitry Osipenko , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org Message-ID: <248083d2-b8f2-a4d7-099d-70a7e7859c11@suse.de> Subject: Re: [PATCH v4 10/15] drm/shmem-helper: Take reservation lock instead of drm_gem_shmem locks References: <20220417223707.157113-1-dmitry.osipenko@collabora.com> <20220417223707.157113-11-dmitry.osipenko@collabora.com> In-Reply-To: <20220417223707.157113-11-dmitry.osipenko@collabora.com> --------------Y5Isinji0tKl5yh1zd0gUdfS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGkNCg0KQW0gMTguMDQuMjIgdW0gMDA6Mzcgc2NocmllYiBEbWl0cnkgT3NpcGVua286DQo+ IFJlcGxhY2UgZHJtX2dlbV9zaG1lbSBsb2NrcyB3aXRoIHRoZSByZXNlcnZhdGlvbiBsb2Nr IHRvIG1ha2UgR0VNDQo+IGxvY2tpbmdzIG1vcmUgY29uc2lzdGVudC4NCj4gDQo+IFByZXZp b3VzbHkgZHJtX2dlbV9zaG1lbV92bWFwKCkgYW5kIGRybV9nZW1fc2htZW1fZ2V0X3BhZ2Vz KCkgd2VyZQ0KPiBwcm90ZWN0ZWQgYnkgc2VwYXJhdGUgbG9ja3MsIG5vdyBpdCdzIHRoZSBz YW1lIGxvY2ssIGJ1dCBpdCBkb2Vzbid0DQo+IG1ha2UgYW55IGRpZmZlcmVuY2UgZm9yIHRo ZSBjdXJyZW50IEdFTSBTSE1FTSB1c2Vycy4gT25seSBQYW5mcm9zdA0KPiBhbmQgTGltYSBk cml2ZXJzIHVzZSB2bWFwKCkgYW5kIHRoZXkgZG8gaXQgaW4gdGhlIHNsb3cgY29kZSBwYXRo cywNCj4gaGVuY2UgdGhlcmUgd2FzIG5vIHByYWN0aWNhbCBqdXN0aWZpY2F0aW9uIGZvciB0 aGUgdXNhZ2Ugb2Ygc2VwYXJhdGUNCj4gbG9jayBpbiB0aGUgdm1hcCgpLg0KPiANCj4gU3Vn Z2VzdGVkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+DQo+IFNpZ25lZC1v ZmYtYnk6IERtaXRyeSBPc2lwZW5rbyA8ZG1pdHJ5Lm9zaXBlbmtvQGNvbGxhYm9yYS5jb20+ DQo+IC0tLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3NobWVtX2hlbHBlci5jICB8 IDM4ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vbGlt YS9saW1hX2dlbS5jICAgICAgICAgfCAgOCArKystLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0v cGFuZnJvc3QvcGFuZnJvc3RfbW11LmMgfCAxNSArKysrKystLS0tDQo+ICAgaW5jbHVkZS9k cm0vZHJtX2dlbV9zaG1lbV9oZWxwZXIuaCAgICAgIHwgMTAgLS0tLS0tLQ0KPiAgIDQgZmls ZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pDQo+IA0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9zaG1lbV9oZWxwZXIuYw0KPiBpbmRleCAzMGVlNDYz NDhhOTkuLjNlY2VmNTcxZWZmMyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW1fc2htZW1faGVscGVyLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1f c2htZW1faGVscGVyLmMNCj4gQEAgLTg2LDggKzg2LDYgQEAgX19kcm1fZ2VtX3NobWVtX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgYm9vbCBwcml2YXRl KQ0KPiAgIAlpZiAocmV0KQ0KPiAgIAkJZ290byBlcnJfcmVsZWFzZTsNCj4gICANCj4gLQlt dXRleF9pbml0KCZzaG1lbS0+cGFnZXNfbG9jayk7DQo+IC0JbXV0ZXhfaW5pdCgmc2htZW0t PnZtYXBfbG9jayk7DQo+ICAgCUlOSVRfTElTVF9IRUFEKCZzaG1lbS0+bWFkdl9saXN0KTsN Cj4gICANCj4gICAJaWYgKCFwcml2YXRlKSB7DQo+IEBAIC0xNTcsOCArMTU1LDYgQEAgdm9p ZCBkcm1fZ2VtX3NobWVtX2ZyZWUoc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0ICpzaG1l bSkNCj4gICAJV0FSTl9PTihzaG1lbS0+cGFnZXNfdXNlX2NvdW50KTsNCj4gICANCj4gICAJ ZHJtX2dlbV9vYmplY3RfcmVsZWFzZShvYmopOw0KPiAtCW11dGV4X2Rlc3Ryb3koJnNobWVt LT5wYWdlc19sb2NrKTsNCj4gLQltdXRleF9kZXN0cm95KCZzaG1lbS0+dm1hcF9sb2NrKTsN Cj4gICAJa2ZyZWUoc2htZW0pOw0KPiAgIH0NCj4gICBFWFBPUlRfU1lNQk9MX0dQTChkcm1f Z2VtX3NobWVtX2ZyZWUpOw0KPiBAQCAtMjA5LDExICsyMDUsMTEgQEAgaW50IGRybV9nZW1f c2htZW1fZ2V0X3BhZ2VzKHN0cnVjdCBkcm1fZ2VtX3NobWVtX29iamVjdCAqc2htZW0pDQo+ ICAgDQo+ICAgCVdBUk5fT04oc2htZW0tPmJhc2UuaW1wb3J0X2F0dGFjaCk7DQo+ICAgDQo+ IC0JcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZzaG1lbS0+cGFnZXNfbG9jayk7 DQo+ICsJcmV0ID0gZG1hX3Jlc3ZfbG9ja19pbnRlcnJ1cHRpYmxlKHNobWVtLT5iYXNlLnJl c3YsIE5VTEwpOw0KPiAgIAlpZiAocmV0KQ0KPiAgIAkJcmV0dXJuIHJldDsNCj4gICAJcmV0 ID0gZHJtX2dlbV9zaG1lbV9nZXRfcGFnZXNfbG9ja2VkKHNobWVtKTsNCj4gLQltdXRleF91 bmxvY2soJnNobWVtLT5wYWdlc19sb2NrKTsNCj4gKwlkbWFfcmVzdl91bmxvY2soc2htZW0t PmJhc2UucmVzdik7DQo+ICAgDQo+ICAgCXJldHVybiByZXQ7DQo+ICAgfQ0KPiBAQCAtMjQ4 LDkgKzI0NCw5IEBAIHN0YXRpYyB2b2lkIGRybV9nZW1fc2htZW1fcHV0X3BhZ2VzX2xvY2tl ZChzdHJ1Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3QgKnNobWVtKQ0KPiAgICAqLw0KPiAgIHZv aWQgZHJtX2dlbV9zaG1lbV9wdXRfcGFnZXMoc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0 ICpzaG1lbSkNCj4gICB7DQo+IC0JbXV0ZXhfbG9jaygmc2htZW0tPnBhZ2VzX2xvY2spOw0K PiArCWRtYV9yZXN2X2xvY2soc2htZW0tPmJhc2UucmVzdiwgTlVMTCk7DQo+ICAgCWRybV9n ZW1fc2htZW1fcHV0X3BhZ2VzX2xvY2tlZChzaG1lbSk7DQo+IC0JbXV0ZXhfdW5sb2NrKCZz aG1lbS0+cGFnZXNfbG9jayk7DQo+ICsJZG1hX3Jlc3ZfdW5sb2NrKHNobWVtLT5iYXNlLnJl c3YpOw0KPiAgIH0NCj4gICBFWFBPUlRfU1lNQk9MKGRybV9nZW1fc2htZW1fcHV0X3BhZ2Vz KTsNCj4gICANCj4gQEAgLTMxMCw3ICszMDYsNyBAQCBzdGF0aWMgaW50IGRybV9nZW1fc2ht ZW1fdm1hcF9sb2NrZWQoc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0ICpzaG1lbSwNCj4g ICAJfSBlbHNlIHsNCj4gICAJCXBncHJvdF90IHByb3QgPSBQQUdFX0tFUk5FTDsNCj4gICAN Cj4gLQkJcmV0ID0gZHJtX2dlbV9zaG1lbV9nZXRfcGFnZXMoc2htZW0pOw0KPiArCQlyZXQg PSBkcm1fZ2VtX3NobWVtX2dldF9wYWdlc19sb2NrZWQoc2htZW0pOw0KPiAgIAkJaWYgKHJl dCkNCj4gICAJCQlnb3RvIGVycl96ZXJvX3VzZTsNCj4gICANCj4gQEAgLTM2MCwxMSArMzU2 LDExIEBAIGludCBkcm1fZ2VtX3NobWVtX3ZtYXAoc3RydWN0IGRybV9nZW1fc2htZW1fb2Jq ZWN0ICpzaG1lbSwNCj4gICB7DQo+ICAgCWludCByZXQ7DQo+ICAgDQo+IC0JcmV0ID0gbXV0 ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZzaG1lbS0+dm1hcF9sb2NrKTsNCj4gKwlyZXQgPSBk bWFfcmVzdl9sb2NrX2ludGVycnVwdGlibGUoc2htZW0tPmJhc2UucmVzdiwgTlVMTCk7DQo+ ICAgCWlmIChyZXQpDQo+ICAgCQlyZXR1cm4gcmV0Ow0KPiAgIAlyZXQgPSBkcm1fZ2VtX3No bWVtX3ZtYXBfbG9ja2VkKHNobWVtLCBtYXApOw0KDQpXaXRoaW4gZHJtX2dlbV9zaG1lbV92 bWFwX2xvY2tlZCgpLCB0aGVyZSdzIGEgY2FsbCB0byBkbWFfYnVmX3ZtYXAoKSBmb3IgDQpp bXBvcnRlZCBwYWdlcy4gSWYgdGhlIGV4cG9ydGVyIHNpZGUgYWxzbyBob2xkcy9hY3F1aXJl cyB0aGUgc2FtZSANCnJlc2VydmF0aW9uIGxvY2sgYXMgb3VyIG9iamVjdCwgdGhlIHdob2xl IHRoaW5nIGNhbiBkZWFkbG9jay4gV2UgY2Fubm90IA0KbW92ZSBkbWFfYnVmX3ZtYXAoKSBv dXQgb2YgdGhlIENTLCBiZWNhdXNlIHdlIHN0aWxsIG5lZWQgdG8gaW5jcmVtZW50IA0KdGhl IHJlZmVyZW5jZSBjb3VudGVyLiBJIGhvbmVzdGx5IGRvbid0IGtub3cgaG93IHRvIGVhc2ls eSBmaXggdGhpcyANCnByb2JsZW0uIFRoZXJlJ3MgYSBUT0RPIGl0ZW0gYWJvdXQgcmVwbGFj aW5nIHRoZXNlIGxvY2tzIGF0IFsxXS4gQXMgDQpEYW5pZWwgc3VnZ2VzdGVkIHRoaXMgcGF0 Y2gsIHdlIHNob3VsZCB0YWxrIHRvIGhpbSBhYm91dCB0aGUgaXNzdWUuDQoNCkJlc3QgcmVn YXJkcw0KVGhvbWFzDQoNClsxXSANCmh0dHBzOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwv bGF0ZXN0L2dwdS90b2RvLmh0bWwjbW92ZS1idWZmZXItb2JqZWN0LWxvY2tpbmctdG8tZG1h LXJlc3YtbG9jaw0KDQoNCg0KPiAtCW11dGV4X3VubG9jaygmc2htZW0tPnZtYXBfbG9jayk7 DQo+ICsJZG1hX3Jlc3ZfdW5sb2NrKHNobWVtLT5iYXNlLnJlc3YpOw0KPiAgIA0KPiAgIAly ZXR1cm4gcmV0Ow0KPiAgIH0NCj4gQEAgLTM4NSw3ICszODEsNyBAQCBzdGF0aWMgdm9pZCBk cm1fZ2VtX3NobWVtX3Z1bm1hcF9sb2NrZWQoc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0 ICpzaG1lbSwNCj4gICAJCWRtYV9idWZfdnVubWFwKG9iai0+aW1wb3J0X2F0dGFjaC0+ZG1h YnVmLCBtYXApOw0KPiAgIAl9IGVsc2Ugew0KPiAgIAkJdnVubWFwKHNobWVtLT52YWRkcik7 DQo+IC0JCWRybV9nZW1fc2htZW1fcHV0X3BhZ2VzKHNobWVtKTsNCj4gKwkJZHJtX2dlbV9z aG1lbV9wdXRfcGFnZXNfbG9ja2VkKHNobWVtKTsNCj4gICAJfQ0KPiAgIA0KPiAgIAlzaG1l bS0+dmFkZHIgPSBOVUxMOw0KPiBAQCAtNDA2LDkgKzQwMiwxMSBAQCBzdGF0aWMgdm9pZCBk cm1fZ2VtX3NobWVtX3Z1bm1hcF9sb2NrZWQoc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0 ICpzaG1lbSwNCj4gICB2b2lkIGRybV9nZW1fc2htZW1fdnVubWFwKHN0cnVjdCBkcm1fZ2Vt X3NobWVtX29iamVjdCAqc2htZW0sDQo+ICAgCQkJICBzdHJ1Y3QgaW9zeXNfbWFwICptYXAp DQo+ICAgew0KPiAtCW11dGV4X2xvY2soJnNobWVtLT52bWFwX2xvY2spOw0KPiArCWRtYV9y ZXN2X2xvY2soc2htZW0tPmJhc2UucmVzdiwgTlVMTCk7DQo+ICAgCWRybV9nZW1fc2htZW1f dnVubWFwX2xvY2tlZChzaG1lbSwgbWFwKTsNCj4gLQltdXRleF91bmxvY2soJnNobWVtLT52 bWFwX2xvY2spOw0KPiArCWRtYV9yZXN2X3VubG9jayhzaG1lbS0+YmFzZS5yZXN2KTsNCj4g Kw0KPiArCWRybV9nZW1fc2htZW1fdXBkYXRlX3B1cmdlYWJsZV9zdGF0dXMoc2htZW0pOw0K PiAgIH0NCj4gICBFWFBPUlRfU1lNQk9MKGRybV9nZW1fc2htZW1fdnVubWFwKTsNCj4gICAN Cj4gQEAgLTQ0MiwxNCArNDQwLDE0IEBAIGRybV9nZW1fc2htZW1fY3JlYXRlX3dpdGhfaGFu ZGxlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LA0KPiAgICAqLw0KPiAgIGludCBkcm1f Z2VtX3NobWVtX21hZHZpc2Uoc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0ICpzaG1lbSwg aW50IG1hZHYpDQo+ICAgew0KPiAtCW11dGV4X2xvY2soJnNobWVtLT5wYWdlc19sb2NrKTsN Cj4gKwlkbWFfcmVzdl9sb2NrKHNobWVtLT5iYXNlLnJlc3YsIE5VTEwpOw0KPiAgIA0KPiAg IAlpZiAoc2htZW0tPm1hZHYgPj0gMCkNCj4gICAJCXNobWVtLT5tYWR2ID0gbWFkdjsNCj4g ICANCj4gICAJbWFkdiA9IHNobWVtLT5tYWR2Ow0KPiAgIA0KPiAtCW11dGV4X3VubG9jaygm c2htZW0tPnBhZ2VzX2xvY2spOw0KPiArCWRtYV9yZXN2X3VubG9jayhzaG1lbS0+YmFzZS5y ZXN2KTsNCj4gICANCj4gICAJcmV0dXJuIChtYWR2ID49IDApOw0KPiAgIH0NCj4gQEAgLTQ4 NywxMCArNDg1LDEwIEBAIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9zaG1lbV9wdXJnZV9sb2Nr ZWQpOw0KPiAgIA0KPiAgIGJvb2wgZHJtX2dlbV9zaG1lbV9wdXJnZShzdHJ1Y3QgZHJtX2dl bV9zaG1lbV9vYmplY3QgKnNobWVtKQ0KPiAgIHsNCj4gLQlpZiAoIW11dGV4X3RyeWxvY2so JnNobWVtLT5wYWdlc19sb2NrKSkNCj4gKwlpZiAoIWRtYV9yZXN2X3RyeWxvY2soc2htZW0t PmJhc2UucmVzdikpDQo+ICAgCQlyZXR1cm4gZmFsc2U7DQo+ICAgCWRybV9nZW1fc2htZW1f cHVyZ2VfbG9ja2VkKHNobWVtKTsNCj4gLQltdXRleF91bmxvY2soJnNobWVtLT5wYWdlc19s b2NrKTsNCj4gKwlkbWFfcmVzdl91bmxvY2soc2htZW0tPmJhc2UucmVzdik7DQo+ICAgDQo+ ICAgCXJldHVybiB0cnVlOw0KPiAgIH0NCj4gQEAgLTU0OSw3ICs1NDcsNyBAQCBzdGF0aWMg dm1fZmF1bHRfdCBkcm1fZ2VtX3NobWVtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQ0K PiAgIAkvKiBXZSBkb24ndCB1c2Ugdm1mLT5wZ29mZiBzaW5jZSB0aGF0IGhhcyB0aGUgZmFr ZSBvZmZzZXQgKi8NCj4gICAJcGFnZV9vZmZzZXQgPSAodm1mLT5hZGRyZXNzIC0gdm1hLT52 bV9zdGFydCkgPj4gUEFHRV9TSElGVDsNCj4gICANCj4gLQltdXRleF9sb2NrKCZzaG1lbS0+ cGFnZXNfbG9jayk7DQo+ICsJZG1hX3Jlc3ZfbG9jayhzaG1lbS0+YmFzZS5yZXN2LCBOVUxM KTsNCj4gICANCj4gICAJaWYgKHBhZ2Vfb2Zmc2V0ID49IG51bV9wYWdlcyB8fA0KPiAgIAkg ICAgV0FSTl9PTl9PTkNFKCFzaG1lbS0+cGFnZXMpIHx8DQo+IEBAIC01NjEsNyArNTU5LDcg QEAgc3RhdGljIHZtX2ZhdWx0X3QgZHJtX2dlbV9zaG1lbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1 bHQgKnZtZikNCj4gICAJCXJldCA9IHZtZl9pbnNlcnRfcGZuKHZtYSwgdm1mLT5hZGRyZXNz LCBwYWdlX3RvX3BmbihwYWdlKSk7DQo+ICAgCX0NCj4gICANCj4gLQltdXRleF91bmxvY2so JnNobWVtLT5wYWdlc19sb2NrKTsNCj4gKwlkbWFfcmVzdl91bmxvY2soc2htZW0tPmJhc2Uu cmVzdik7DQo+ICAgDQo+ICAgCXJldHVybiByZXQ7DQo+ICAgfQ0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9saW1h L2xpbWFfZ2VtLmMNCj4gaW5kZXggMGYxY2EwYjBkYjQ5Li41MDA4ZjBjMjQyOGYgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfZ2VtLmMNCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2xpbWEvbGltYV9nZW0uYw0KPiBAQCAtMzQsNyArMzQsNyBAQCBpbnQg bGltYV9oZWFwX2FsbG9jKHN0cnVjdCBsaW1hX2JvICpibywgc3RydWN0IGxpbWFfdm0gKnZt KQ0KPiAgIA0KPiAgIAluZXdfc2l6ZSA9IG1pbihuZXdfc2l6ZSwgYm8tPmJhc2UuYmFzZS5z aXplKTsNCj4gICANCj4gLQltdXRleF9sb2NrKCZiby0+YmFzZS5wYWdlc19sb2NrKTsNCj4g KwlkbWFfcmVzdl9sb2NrKGJvLT5iYXNlLmJhc2UucmVzdiwgTlVMTCk7DQo+ICAgDQo+ICAg CWlmIChiby0+YmFzZS5wYWdlcykgew0KPiAgIAkJcGFnZXMgPSBiby0+YmFzZS5wYWdlczsN Cj4gQEAgLTQyLDcgKzQyLDcgQEAgaW50IGxpbWFfaGVhcF9hbGxvYyhzdHJ1Y3QgbGltYV9i byAqYm8sIHN0cnVjdCBsaW1hX3ZtICp2bSkNCj4gICAJCXBhZ2VzID0ga3ZtYWxsb2NfYXJy YXkoYm8tPmJhc2UuYmFzZS5zaXplID4+IFBBR0VfU0hJRlQsDQo+ICAgCQkJCSAgICAgICBz aXplb2YoKnBhZ2VzKSwgR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOw0KPiAgIAkJaWYgKCFw YWdlcykgew0KPiAtCQkJbXV0ZXhfdW5sb2NrKCZiby0+YmFzZS5wYWdlc19sb2NrKTsNCj4g KwkJCWRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5iYXNlLnJlc3YpOw0KPiAgIAkJCXJldHVy biAtRU5PTUVNOw0KPiAgIAkJfQ0KPiAgIA0KPiBAQCAtNTYsMTMgKzU2LDEzIEBAIGludCBs aW1hX2hlYXBfYWxsb2Moc3RydWN0IGxpbWFfYm8gKmJvLCBzdHJ1Y3QgbGltYV92bSAqdm0p DQo+ICAgCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHNobWVtX3JlYWRfbWFwcGluZ19wYWdlKG1h cHBpbmcsIGkpOw0KPiAgIA0KPiAgIAkJaWYgKElTX0VSUihwYWdlKSkgew0KPiAtCQkJbXV0 ZXhfdW5sb2NrKCZiby0+YmFzZS5wYWdlc19sb2NrKTsNCj4gKwkJCWRtYV9yZXN2X3VubG9j ayhiby0+YmFzZS5iYXNlLnJlc3YpOw0KPiAgIAkJCXJldHVybiBQVFJfRVJSKHBhZ2UpOw0K PiAgIAkJfQ0KPiAgIAkJcGFnZXNbaV0gPSBwYWdlOw0KPiAgIAl9DQo+ICAgDQo+IC0JbXV0 ZXhfdW5sb2NrKCZiby0+YmFzZS5wYWdlc19sb2NrKTsNCj4gKwlkbWFfcmVzdl91bmxvY2so Ym8tPmJhc2UuYmFzZS5yZXN2KTsNCj4gICANCj4gICAJcmV0ID0gc2dfYWxsb2NfdGFibGVf ZnJvbV9wYWdlcygmc2d0LCBwYWdlcywgaSwgMCwNCj4gICAJCQkJCW5ld19zaXplLCBHRlBf S0VSTkVMKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5m cm9zdF9tbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9tbXUuYw0K PiBpbmRleCBkM2Y4MmIyNmE2MzEuLjQwNGI4ZjY3ZTJkZiAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X21tdS5jDQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9tbXUuYw0KPiBAQCAtNDI0LDYgKzQyNCw3IEBA IHN0YXRpYyBpbnQgcGFuZnJvc3RfbW11X21hcF9mYXVsdF9hZGRyKHN0cnVjdCBwYW5mcm9z dF9kZXZpY2UgKnBmZGV2LCBpbnQgYXMsDQo+ICAgCXN0cnVjdCBwYW5mcm9zdF9nZW1fbWFw cGluZyAqYm9tYXBwaW5nOw0KPiAgIAlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm87 DQo+ICAgCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOw0KPiArCXN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqOw0KPiAgIAlwZ29mZl90IHBhZ2Vfb2Zmc2V0Ow0KPiAgIAlzdHJ1 Y3Qgc2dfdGFibGUgKnNndDsNCj4gICAJc3RydWN0IHBhZ2UgKipwYWdlczsNCj4gQEAgLTQ0 NiwxMyArNDQ3LDE1IEBAIHN0YXRpYyBpbnQgcGFuZnJvc3RfbW11X21hcF9mYXVsdF9hZGRy KHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LCBpbnQgYXMsDQo+ICAgCXBhZ2Vfb2Zm c2V0ID0gYWRkciA+PiBQQUdFX1NISUZUOw0KPiAgIAlwYWdlX29mZnNldCAtPSBib21hcHBp bmctPm1tbm9kZS5zdGFydDsNCj4gICANCj4gLQltdXRleF9sb2NrKCZiby0+YmFzZS5wYWdl c19sb2NrKTsNCj4gKwlvYmogPSAmYm8tPmJhc2UuYmFzZTsNCj4gKw0KPiArCWRtYV9yZXN2 X2xvY2sob2JqLT5yZXN2LCBOVUxMKTsNCj4gICANCj4gICAJaWYgKCFiby0+YmFzZS5wYWdl cykgew0KPiAgIAkJYm8tPnNndHMgPSBrdm1hbGxvY19hcnJheShiby0+YmFzZS5iYXNlLnNp emUgLyBTWl8yTSwNCj4gICAJCQkJICAgICBzaXplb2Yoc3RydWN0IHNnX3RhYmxlKSwgR0ZQ X0tFUk5FTCB8IF9fR0ZQX1pFUk8pOw0KPiAgIAkJaWYgKCFiby0+c2d0cykgew0KPiAtCQkJ bXV0ZXhfdW5sb2NrKCZiby0+YmFzZS5wYWdlc19sb2NrKTsNCj4gKwkJCWRtYV9yZXN2X3Vu bG9jayhvYmotPnJlc3YpOw0KPiAgIAkJCXJldCA9IC1FTk9NRU07DQo+ICAgCQkJZ290byBl cnJfYm87DQo+ICAgCQl9DQo+IEBAIC00NjIsNyArNDY1LDcgQEAgc3RhdGljIGludCBwYW5m cm9zdF9tbXVfbWFwX2ZhdWx0X2FkZHIoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYs IGludCBhcywNCj4gICAJCWlmICghcGFnZXMpIHsNCj4gICAJCQlrdmZyZWUoYm8tPnNndHMp Ow0KPiAgIAkJCWJvLT5zZ3RzID0gTlVMTDsNCj4gLQkJCW11dGV4X3VubG9jaygmYm8tPmJh c2UucGFnZXNfbG9jayk7DQo+ICsJCQlkbWFfcmVzdl91bmxvY2sob2JqLT5yZXN2KTsNCj4g ICAJCQlyZXQgPSAtRU5PTUVNOw0KPiAgIAkJCWdvdG8gZXJyX2JvOw0KPiAgIAkJfQ0KPiBA QCAtNDcyLDcgKzQ3NSw3IEBAIHN0YXRpYyBpbnQgcGFuZnJvc3RfbW11X21hcF9mYXVsdF9h ZGRyKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LCBpbnQgYXMsDQo+ICAgCQlwYWdl cyA9IGJvLT5iYXNlLnBhZ2VzOw0KPiAgIAkJaWYgKHBhZ2VzW3BhZ2Vfb2Zmc2V0XSkgew0K PiAgIAkJCS8qIFBhZ2VzIGFyZSBhbHJlYWR5IG1hcHBlZCwgYmFpbCBvdXQuICovDQo+IC0J CQltdXRleF91bmxvY2soJmJvLT5iYXNlLnBhZ2VzX2xvY2spOw0KPiArCQkJZG1hX3Jlc3Zf dW5sb2NrKG9iai0+cmVzdik7DQo+ICAgCQkJZ290byBvdXQ7DQo+ICAgCQl9DQo+ICAgCX0N Cj4gQEAgLTQ4MywxMyArNDg2LDEzIEBAIHN0YXRpYyBpbnQgcGFuZnJvc3RfbW11X21hcF9m YXVsdF9hZGRyKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2LCBpbnQgYXMsDQo+ICAg CWZvciAoaSA9IHBhZ2Vfb2Zmc2V0OyBpIDwgcGFnZV9vZmZzZXQgKyBOVU1fRkFVTFRfUEFH RVM7IGkrKykgew0KPiAgIAkJcGFnZXNbaV0gPSBzaG1lbV9yZWFkX21hcHBpbmdfcGFnZSht YXBwaW5nLCBpKTsNCj4gICAJCWlmIChJU19FUlIocGFnZXNbaV0pKSB7DQo+IC0JCQltdXRl eF91bmxvY2soJmJvLT5iYXNlLnBhZ2VzX2xvY2spOw0KPiArCQkJZG1hX3Jlc3ZfdW5sb2Nr KG9iai0+cmVzdik7DQo+ICAgCQkJcmV0ID0gUFRSX0VSUihwYWdlc1tpXSk7DQo+ICAgCQkJ Z290byBlcnJfcGFnZXM7DQo+ICAgCQl9DQo+ICAgCX0NCj4gICANCj4gLQltdXRleF91bmxv Y2soJmJvLT5iYXNlLnBhZ2VzX2xvY2spOw0KPiArCWRtYV9yZXN2X3VubG9jayhvYmotPnJl c3YpOw0KPiAgIA0KPiAgIAlzZ3QgPSAmYm8tPnNndHNbcGFnZV9vZmZzZXQgLyAoU1pfMk0g LyBQQUdFX1NJWkUpXTsNCj4gICAJcmV0ID0gc2dfYWxsb2NfdGFibGVfZnJvbV9wYWdlcyhz Z3QsIHBhZ2VzICsgcGFnZV9vZmZzZXQsDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fZ2VtX3NobWVtX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2dlbV9zaG1lbV9oZWxw ZXIuaA0KPiBpbmRleCBkMGE1Nzg1M2MxODguLjcwODg5NTMzOTYyYSAxMDA2NDQNCj4gLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2dlbV9zaG1lbV9oZWxwZXIuaA0KPiArKysgYi9pbmNsdWRl L2RybS9kcm1fZ2VtX3NobWVtX2hlbHBlci5oDQo+IEBAIC0yNiwxMSArMjYsNiBAQCBzdHJ1 Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3Qgew0KPiAgIAkgKi8NCj4gICAJc3RydWN0IGRybV9n ZW1fb2JqZWN0IGJhc2U7DQo+ICAgDQo+IC0JLyoqDQo+IC0JICogQHBhZ2VzX2xvY2s6IFBy b3RlY3RzIHRoZSBwYWdlIHRhYmxlIGFuZCB1c2UgY291bnQNCj4gLQkgKi8NCj4gLQlzdHJ1 Y3QgbXV0ZXggcGFnZXNfbG9jazsNCj4gLQ0KPiAgIAkvKioNCj4gICAJICogQHBhZ2VzOiBQ YWdlIHRhYmxlDQo+ICAgCSAqLw0KPiBAQCAtNzksMTEgKzc0LDYgQEAgc3RydWN0IGRybV9n ZW1fc2htZW1fb2JqZWN0IHsNCj4gICAJICovDQo+ICAgCXN0cnVjdCBzZ190YWJsZSAqc2d0 Ow0KPiAgIA0KPiAtCS8qKg0KPiAtCSAqIEB2bWFwX2xvY2s6IFByb3RlY3RzIHRoZSB2bWFw IGFkZHJlc3MgYW5kIHVzZSBjb3VudA0KPiAtCSAqLw0KPiAtCXN0cnVjdCBtdXRleCB2bWFw X2xvY2s7DQo+IC0NCj4gICAJLyoqDQo+ICAgCSAqIEB2YWRkcjogS2VybmVsIHZpcnR1YWwg YWRkcmVzcyBvZiB0aGUgYmFja2luZyBtZW1vcnkNCj4gICAJICovDQoNCi0tIA0KVGhvbWFz IFppbW1lcm1hbm4NCkdyYXBoaWNzIERyaXZlciBEZXZlbG9wZXINClNVU0UgU29mdHdhcmUg U29sdXRpb25zIEdlcm1hbnkgR21iSA0KTWF4ZmVsZHN0ci4gNSwgOTA0MDkgTsO8cm5iZXJn LCBHZXJtYW55DQooSFJCIDM2ODA5LCBBRyBOw7xybmJlcmcpDQpHZXNjaMOkZnRzZsO8aHJl cjogSXZvIFRvdGV2DQo= --------------Y5Isinji0tKl5yh1zd0gUdfS-- --------------SFr0JUSpCaasp7Qaen3L0XxY Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmJdsDYFAwAAAAAACgkQlh/E3EQov+BK ChAAxBByRMiLTo45aQNJGKEo+EOAqh5vmsK2CgVE5naGJKHK2GnWFtZraG1cr32mH5nbSZwna3V5 SfTQnm1wPnFIX0F2zdJ/VPs2kxibzhOOskfRNJ1oCHwou/rgu3SZsnbL0OlQMMtG0j63W+uUrowo i7umodnImoMFRplQZBrJCcqXZ+/X8Wd4y1G69T9P1zba5xJEHgEwweTHcZp/X7yCYDFSrEB5uXnU rWBlVEdu3inVldisqJudZqNUAz1qhdr7CbvegMmYxwL3y1IexoUQzDY2fItkYxnfOKVTBslqFZE9 yueFRwTFjll/Tx85OL35attgyw2laLUpGtPv1SfwRI1jjmJb3yccGHEbqZkxxj6VtcwhS2gIQ6vr jsTVnBqTZCYeCoB6yWwYDU9lZ+v+CH82+5Ec5JKrXwKmuoErMO1s07NiIWKAYAxv9BhHT1X4FGUK 7ILBg6Bp7GRTnk1psXeSIpHGe8j85gGuzI1BrGr3Xy5ZsEkRden7X9+vg9tkPbUtxB5mJ3YPBH+p c0cDrRkSv3mYtwxOlGexgRPwR8NoTy+N6kzu532r1MzcWYUSg3b5gM+ssGzSg7oZQB1Z4O/yIr83 6GQh/f91I3ZSYhF+3XlqFsPokvO+pIndLnzLuS1Tw4HNNVVaY6vUXsVcWHthPcfASiIXsJohstoA hYw= =j7WU -----END PGP SIGNATURE----- --------------SFr0JUSpCaasp7Qaen3L0XxY--