From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 586D0C3601E for ; Thu, 10 Apr 2025 14:37:54 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1u2t1t-0005uM-DA; Thu, 10 Apr 2025 10:37:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u2t17-0005jm-3o for qemu-devel@nongnu.org; Thu, 10 Apr 2025 10:36:37 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u2t14-0007zt-U9 for qemu-devel@nongnu.org; Thu, 10 Apr 2025 10:36:32 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2295d78b433so9511935ad.2 for ; Thu, 10 Apr 2025 07:36:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744295788; x=1744900588; darn=nongnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=obTXf1ifjZnAGKm7hSiYe652dEIXwoV5ttCEThK3YgQ=; b=lpGs2dUIa6QOpx/nnPt/OokCDum0xMmEXiql1srgxS5MvSR+2L7ItaG08LvRd7L/nK NuaIvbdxQ03AzJH0fx/bhWvJbFzegx4CIoOPrCuQI/qDd7MIIK9DL5NjNXp4zWZvwXpV NEM4WKxdnrnCSBtbv8A6S0gLBfIfzEg2uzAgjKOq0e/ARHmFy2U9P1vv9QPGBDZ6Huat A7f6IUxlsXpJ4K8NWdqbC+RmQi0bUIlSwMWrVCr2nICJGB6+2YapWiedsDMSb9L5yNqy U7dLPLJe+glSjfoDiCD6Y6LLpTTXE2xnmA/prpbbfO3ysu691xfVGY3VkZNI6e5y2XdS dIgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744295788; x=1744900588; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=obTXf1ifjZnAGKm7hSiYe652dEIXwoV5ttCEThK3YgQ=; b=GSJF9+ePmDjajXzPT8UV3HwkC40fA+bRnmpDiKA7CFsV3Fskl8LGbR8aU1AXTlNqIm GBLb1Dx3+we0QqEowiAyn/6TINA+zDKvemYMYj/3qFuBXJDaXa4sGPEtnmXuoKbGlq+z EPLlElWDJn1AAlpLAOv7jLElPl5i/Mx+5cFGFk0+y+lciJXW1cBwJp4TzycnYJqfF09m sgT8rHrr20POIDJzySP7Y1YiOElpHDuxSWUsNS6ECHSV6ZGtt/gmrGFHrrMe2/c+TsqZ MYJ7AUUpFENkAVwkzO2fyX9J2roM3A4Kzo1WKH5NIxbbrdI6jXqCuFeg+HFDq6dJxIVp M7RA== X-Forwarded-Encrypted: i=1; AJvYcCVbrkzBu2KiUEUdEDoriKZ568CbBVRLHuFf4Qvdppm4VeiUzpkA5h6FqvZQ7qu+YltSnxDgJ9hcIhX5@nongnu.org X-Gm-Message-State: AOJu0Yz4IhLJ+Hc9gQE/UpIfBshuDJpn82e+i8VoRJb7gpLoQy4Te7lr Au1GNzHLkWBQgxPieH3sV3IiHDz0qL/opmiQuPpfWLbtufYRyQHtQV1FH8i007U= X-Gm-Gg: ASbGncsyTM/rFHET3ByyuhtP14h7SWmre0rui5y+10HmfQfyeW/mdyflaKl1ISV+MGK tmHC1g3tHXFv2h4l75ojuo9ufTcA3cWAfjRX4Fj8DeGtGyjOqgKA17z7Pfe0Ze7JUmyCtkF3gig zUQVKTV9P2+ZEf9SEb/ICsC20VSbH0R/wAexe3YHuVnG2iOGWjrVnomTCZRaLem7mR8h93Ug/He ILzhR8AZv/Guy2qRreekjpCOBm7f278FPSVvVwR58ek4fwETUWFesG7TMzK8DvmZ/B16abj1fZ7 SktZCN73LFhzuTzJXUksPqwRNzJw4pPWqJoFSWV1Zt8fM7XPHkazuA== X-Google-Smtp-Source: AGHT+IFD9nk5tcVAo6Ia68CJDofX+HqIgBnyMRomBFtYJxmEXzgTtYTyCNEfQt7YoXTmGwVSeMPsuQ== X-Received: by 2002:a17:903:1252:b0:225:ac99:ae08 with SMTP id d9443c01a7336-22b2edace5amr51428155ad.5.1744295787518; Thu, 10 Apr 2025 07:36:27 -0700 (PDT) Received: from [192.168.1.87] ([38.39.164.180]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22ac7b8af14sm31093465ad.76.2025.04.10.07.36.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 10 Apr 2025 07:36:27 -0700 (PDT) Message-ID: Date: Thu, 10 Apr 2025 07:36:25 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH-for-8.0 09/10] hw/virtio: Extract vhost_user_ram_slots_max() to vhost-user-target.c To: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Thomas Huth Cc: Greg Kurz , Stefan Hajnoczi , Kevin Wolf , qemu-block@nongnu.org, Paolo Bonzini , "Michael S. Tsirkin" , =?UTF-8?Q?Alex_Benn=C3=A9e?= , Jason Wang , =?UTF-8?Q?Marc-Andr=C3=A9_Lureau?= , Christian Schoenebeck , Hanna Reitz References: <20221212230517.28872-1-philmd@linaro.org> <20221212230517.28872-10-philmd@linaro.org> <84b2bcf7-9df7-43e2-83d8-cae9d34ca541@linaro.org> Content-Language: en-US From: Pierrick Bouvier In-Reply-To: <84b2bcf7-9df7-43e2-83d8-cae9d34ca541@linaro.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pl1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org T24gNC8xMC8yNSAwNToxNCwgUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kgd3JvdGU6DQo+IEhp IFBpZXJyaWNrLA0KPiANCj4gT24gMTMvMTIvMjIgMDA6MDUsIFBoaWxpcHBlIE1hdGhpZXUt RGF1ZMOpIHdyb3RlOg0KPj4gVGhlIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiBWSE9TVF9VU0VS X01BWF9SQU1fU0xPVFMgaXMNCj4+IHRhcmdldCBzcGVjaWZpYy4gQnkgY29udmVydGluZyB0 aGlzIGRlZmluaXRpb24gdG8gYSBydW50aW1lDQo+PiB2aG9zdF91c2VyX3JhbV9zbG90c19t YXgoKSBoZWxwZXIgZGVjbGFyZWQgaW4gYSB0YXJnZXQNCj4+IHNwZWNpZmljIHVuaXQsIHdl IGNhbiBoYXZlIHRoZSByZXN0IG9mIHZob3N0LXVzZXIuYyB0YXJnZXQNCj4+IGluZGVwZW5k ZW50Lg0KPj4NCj4+IFRvIGF2b2lkIHZhcmlhYmxlIGxlbmd0aCBhcnJheSBvciB1c2luZyB0 aGUgaGVhcCB0byBzdG9yZQ0KPj4gYXJyYXlzIG9mIHZob3N0X3VzZXJfcmFtX3Nsb3RzX21h eCgpIGVsZW1lbnRzLCB3ZSBzaW1wbHkNCj4+IGRlY2xhcmUgYW4gYXJyYXkgb2YgdGhlIGJp Z2dlc3QgVkhPU1RfVVNFUl9NQVhfUkFNX1NMT1RTLA0KPj4gYW5kIGVhY2ggdGFyZ2V0IHVz ZXMgdXAgdG8gdmhvc3RfdXNlcl9yYW1fc2xvdHNfbWF4KCkNCj4+IGVsZW1lbnRzIG9mIGl0 LiBFbnN1cmUgYXJyYXlzIGFyZSBiaWcgZW5vdWdoIGJ5IGFkZGluZyBhbg0KPj4gYXNzZXJ0 aW9uIGluIHZob3N0X3VzZXJfaW5pdCgpLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IFBoaWxp cHBlIE1hdGhpZXUtRGF1ZMOpIDxwaGlsbWRAbGluYXJvLm9yZz4NCj4+IC0tLQ0KPj4gUkZD OiBTaG91bGQgSSBhZGQgVkhPU1RfVVNFUl9NQVhfUkFNX1NMT1RTIHRvIHZob3N0LXVzZXIu aA0KPj4gICAgICAgIG9yIGNyZWF0ZSBhbiBpbnRlcm5hbCBoZWFkZXIgZm9yIGl0Pw0KPj4g LS0tDQo+PiAgICBody92aXJ0aW8vbWVzb24uYnVpbGQgICAgICAgICAgfCAgMSArDQo+PiAg ICBody92aXJ0aW8vdmhvc3QtdXNlci10YXJnZXQuYyAgfCAyOSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPj4gICAgaHcvdmlydGlvL3Zob3N0LXVzZXIuYyAgICAgICAgIHwg MjYgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+ICAgIGluY2x1ZGUvaHcvdmlydGlv L3Zob3N0LXVzZXIuaCB8ICA3ICsrKysrKysNCj4+ICAgIDQgZmlsZXMgY2hhbmdlZCwgNDIg aW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pDQo+PiAgICBjcmVhdGUgbW9kZSAxMDA2 NDQgaHcvdmlydGlvL3Zob3N0LXVzZXItdGFyZ2V0LmMNCj4+DQo+PiBkaWZmIC0tZ2l0IGEv aHcvdmlydGlvL21lc29uLmJ1aWxkIGIvaHcvdmlydGlvL21lc29uLmJ1aWxkDQo+PiBpbmRl eCBlYjdlZThlYTkyLi5iZjdlMzVmYThhIDEwMDY0NA0KPj4gLS0tIGEvaHcvdmlydGlvL21l c29uLmJ1aWxkDQo+PiArKysgYi9ody92aXJ0aW8vbWVzb24uYnVpbGQNCj4+IEBAIC0xMSw2 ICsxMSw3IEBAIGlmIGhhdmVfdmhvc3QNCj4+ICAgICAgc3BlY2lmaWNfdmlydGlvX3NzLmFk ZChmaWxlcygndmhvc3QuYycsICd2aG9zdC1iYWNrZW5kLmMnLCAndmhvc3QtaW92YS10cmVl LmMnKSkNCj4+ICAgICAgaWYgaGF2ZV92aG9zdF91c2VyDQo+PiAgICAgICAgc3BlY2lmaWNf dmlydGlvX3NzLmFkZChmaWxlcygndmhvc3QtdXNlci5jJykpDQo+PiArICAgIHNwZWNpZmlj X3ZpcnRpb19zcy5hZGQoZmlsZXMoJ3Zob3N0LXVzZXItdGFyZ2V0LmMnKSkNCj4+ICAgICAg ZW5kaWYNCj4+ICAgICAgaWYgaGF2ZV92aG9zdF92ZHBhDQo+PiAgICAgICAgc3BlY2lmaWNf dmlydGlvX3NzLmFkZChmaWxlcygndmhvc3QtdmRwYS5jJywgJ3Zob3N0LXNoYWRvdy12aXJ0 cXVldWUuYycpKQ0KPj4gZGlmZiAtLWdpdCBhL2h3L3ZpcnRpby92aG9zdC11c2VyLXRhcmdl dC5jIGIvaHcvdmlydGlvL3Zob3N0LXVzZXItdGFyZ2V0LmMNCj4+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwLi42YTBkMGY1M2QwDQo+PiAtLS0gL2Rldi9u dWxsDQo+PiArKysgYi9ody92aXJ0aW8vdmhvc3QtdXNlci10YXJnZXQuYw0KPj4gQEAgLTAs MCArMSwyOSBAQA0KPj4gKy8qDQo+PiArICogdmhvc3QtdXNlciB0YXJnZXQtc3BlY2lmaWMg aGVscGVycw0KPj4gKyAqDQo+PiArICogQ29weXJpZ2h0IChjKSAyMDEzIFZpcnR1YWwgT3Bl biBTeXN0ZW1zIFNhcmwuDQo+PiArICoNCj4+ICsgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMC1vci1sYXRlcg0KPj4gKyAqLw0KPj4gKw0KPj4gKyNpbmNsdWRlICJxZW11 L29zZGVwLmgiDQo+PiArI2luY2x1ZGUgImh3L3ZpcnRpby92aG9zdC11c2VyLmgiDQo+PiAr DQo+PiArI2lmIGRlZmluZWQoVEFSR0VUX1g4NikgfHwgZGVmaW5lZChUQVJHRVRfWDg2XzY0 KSB8fCBcDQo+PiArICAgIGRlZmluZWQoVEFSR0VUX0FSTSkgfHwgZGVmaW5lZChUQVJHRVRf QVJNXzY0KQ0KPj4gKyNpbmNsdWRlICJody9hY3BpL2FjcGkuaCINCj4+ICsjZWxpZiBkZWZp bmVkKFRBUkdFVF9QUEMpIHx8IGRlZmluZWQoVEFSR0VUX1BQQzY0KQ0KPj4gKyNpbmNsdWRl ICJody9wcGMvc3BhcHIuaCINCj4+ICsjZW5kaWYNCj4+ICsNCj4+ICt1bnNpZ25lZCBpbnQg dmhvc3RfdXNlcl9yYW1fc2xvdHNfbWF4KHZvaWQpDQo+PiArew0KPj4gKyNpZiBkZWZpbmVk KFRBUkdFVF9YODYpIHx8IGRlZmluZWQoVEFSR0VUX1g4Nl82NCkgfHwgXA0KPj4gKyAgICBk ZWZpbmVkKFRBUkdFVF9BUk0pIHx8IGRlZmluZWQoVEFSR0VUX0FSTV82NCkNCj4+ICsgICAg cmV0dXJuIEFDUElfTUFYX1JBTV9TTE9UUzsNCj4+ICsjZWxpZiBkZWZpbmVkKFRBUkdFVF9Q UEMpIHx8IGRlZmluZWQoVEFSR0VUX1BQQzY0KQ0KPj4gKyAgICByZXR1cm4gU1BBUFJfTUFY X1JBTV9TTE9UUzsNCj4+ICsjZWxzZQ0KPj4gKyAgICByZXR1cm4gNTEyOw0KPiANCj4gU2hv dWxkIHZob3N0X3VzZXJfcmFtX3Nsb3RzX21heCBiZSBhbm90aGVyIFRhcmdldEluZm8gZmll bGQ/DQo+IA0KDQpJIGRvbid0IHRoaW5rIHNvLCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gdHJh bnNmb3JtIHRoZSBleGlzdGluZyBmdW5jdGlvbiANCmluIHNvbWV0aGluZyBsaWtlOg0KDQpz d2l0Y2ggKHRhcmdldF9jdXJyZW50KCkpIHsNCmNhc2UgVEFSR0VUX1g4NjoNCmNhc2UgVEFS R0VUX0FSTToNCmNhc2UgVEFSR0VUX1g4Nl82NDoNCmNhc2UgVEFSR0VUX0FSTV82NDoNCgly ZXR1cm4gQUNQSV9NQVhfUkFNX1NMT1RTOw0KY2FzZSBUQVJHRVQgUFBDOg0KY2FzZSBUQVJH RVQgUFBDNjQ6DQoJcmV0dXJuIFNQQVBSX01BWF9SQU1fU0xPVFM7DQpkZWZhdWx0Og0KCXJl dHVybiA1MTI7DQp9DQoNCldlIHNob3VsZCBub3QgYWRkIGFueXRoaW5nIHBvc3NpYmxlIHRv IFRhcmdldEluZm8sIGp1c3QgZm9yIHRoZSBzYWtlIG9mIA0KaXQuIEVzcGVjaWFsbHkgYmVj b21lcyBpdCdzIGhhcmQgdG8gZm9sbG93IHZhbHVlcyBzZXQgcGVyIGFyY2hpdGVjdHVyZS4N CkluIGEgY2FzZSBsaWtlIHRoaXMsIGEgc3dpdGNoIGlzIG11Y2ggbW9yZSByZWFkYWJsZSBh bmQgbG9jYXRlZCBpbiBvbmUgDQpwbGFjZS4gV2l0aCBhIGdlbmVyYXRlZCBqdW1wIHRhYmxl LCBpdCdzIHF1aXRlIGVmZmljaWVudCBhbHNvLg0KDQpJbiBteSBvcGluaW9uLCBpdCdzIGFu b3RoZXIgcHJvb2Ygd2UgbmVlZCB0byBoYXZlIFRBUkdFVF9YLCBhbmQgDQp0YXJnZXRfWCgp IGF2YWlsYWJsZSBhdCBydW50aW1lLg0KDQo+PiArI2VuZGlmDQo+PiArfQ0KPj4gZGlmZiAt LWdpdCBhL2h3L3ZpcnRpby92aG9zdC11c2VyLmMgYi9ody92aXJ0aW8vdmhvc3QtdXNlci5j DQo+PiBpbmRleCA4ZjYzNTg0NGFmLi4yMWZjMTc2NzI1IDEwMDY0NA0KPj4gLS0tIGEvaHcv dmlydGlvL3Zob3N0LXVzZXIuYw0KPj4gKysrIGIvaHcvdmlydGlvL3Zob3N0LXVzZXIuYw0K Pj4gQEAgLTQxLDI0ICs0MSw3IEBADQo+PiAgICAjZGVmaW5lIFZIT1NUX01FTU9SWV9CQVNF TElORV9OUkVHSU9OUyAgICA4DQo+PiAgICAjZGVmaW5lIFZIT1NUX1VTRVJfRl9QUk9UT0NP TF9GRUFUVVJFUyAzMA0KPj4gICAgI2RlZmluZSBWSE9TVF9VU0VSX1NMQVZFX01BWF9GRFMg ICAgIDgNCj4+IC0NCj4+IC0vKg0KPj4gLSAqIFNldCBtYXhpbXVtIG51bWJlciBvZiBSQU0g c2xvdHMgc3VwcG9ydGVkIHRvDQo+PiAtICogdGhlIG1heGltdW0gbnVtYmVyIHN1cHBvcnRl ZCBieSB0aGUgdGFyZ2V0DQo+PiAtICogaGFyZHdhcmUgcGxhZm9ybS4NCj4+IC0gKi8NCj4+ IC0jaWYgZGVmaW5lZChUQVJHRVRfWDg2KSB8fCBkZWZpbmVkKFRBUkdFVF9YODZfNjQpIHx8 IFwNCj4+IC0gICAgZGVmaW5lZChUQVJHRVRfQVJNKSB8fCBkZWZpbmVkKFRBUkdFVF9BUk1f NjQpDQo+PiAtI2luY2x1ZGUgImh3L2FjcGkvYWNwaS5oIg0KPj4gLSNkZWZpbmUgVkhPU1Rf VVNFUl9NQVhfUkFNX1NMT1RTIEFDUElfTUFYX1JBTV9TTE9UUw0KPj4gLQ0KPj4gLSNlbGlm IGRlZmluZWQoVEFSR0VUX1BQQykgfHwgZGVmaW5lZChUQVJHRVRfUFBDNjQpDQo+PiAtI2lu Y2x1ZGUgImh3L3BwYy9zcGFwci5oIg0KPj4gLSNkZWZpbmUgVkhPU1RfVVNFUl9NQVhfUkFN X1NMT1RTIFNQQVBSX01BWF9SQU1fU0xPVFMNCj4+IC0NCj4+IC0jZWxzZQ0KPj4gICAgI2Rl ZmluZSBWSE9TVF9VU0VSX01BWF9SQU1fU0xPVFMgNTEyDQo+PiAtI2VuZGlmDQo+PiAgICAN Cj4+ICAgIC8qDQo+PiAgICAgKiBNYXhpbXVtIHNpemUgb2YgdmlydGlvIGRldmljZSBjb25m aWcgc3BhY2UNCj4+IEBAIC05MzUsNyArOTE4LDcgQEAgc3RhdGljIGludCB2aG9zdF91c2Vy X2FkZF9yZW1vdmVfcmVnaW9ucyhzdHJ1Y3Qgdmhvc3RfZGV2ICpkZXYsDQo+PiAgICANCj4+ ICAgICAgICBpZiAodHJhY2tfcmFtYmxvY2tzKSB7DQo+PiAgICAgICAgICAgIG1lbWNweSh1 LT5wb3N0Y29weV9jbGllbnRfYmFzZXMsIHNoYWRvd19wY2IsDQo+PiAtICAgICAgICAgICAg ICAgc2l6ZW9mKHVpbnQ2NF90KSAqIFZIT1NUX1VTRVJfTUFYX1JBTV9TTE9UUyk7DQo+PiAr ICAgICAgICAgICAgICAgc2l6ZW9mKHVpbnQ2NF90KSAqIHZob3N0X3VzZXJfcmFtX3Nsb3Rz X21heCgpKTsNCj4+ICAgICAgICAgICAgLyoNCj4+ICAgICAgICAgICAgICogTm93IHdlJ3Zl IHJlZ2lzdGVyZWQgdGhpcyB3aXRoIHRoZSBwb3N0Y29weSBjb2RlLCB3ZSBhY2sgdG8gdGhl DQo+PiAgICAgICAgICAgICAqIGNsaWVudCwgYmVjYXVzZSBub3cgd2UncmUgaW4gdGhlIHBv c2l0aW9uIHRvIGJlIGFibGUgdG8gZGVhbCB3aXRoDQo+PiBAQCAtOTU2LDcgKzkzOSw3IEBA IHN0YXRpYyBpbnQgdmhvc3RfdXNlcl9hZGRfcmVtb3ZlX3JlZ2lvbnMoc3RydWN0IHZob3N0 X2RldiAqZGV2LA0KPj4gICAgZXJyOg0KPj4gICAgICAgIGlmICh0cmFja19yYW1ibG9ja3Mp IHsNCj4+ICAgICAgICAgICAgbWVtY3B5KHUtPnBvc3Rjb3B5X2NsaWVudF9iYXNlcywgc2hh ZG93X3BjYiwNCj4+IC0gICAgICAgICAgICAgICBzaXplb2YodWludDY0X3QpICogVkhPU1Rf VVNFUl9NQVhfUkFNX1NMT1RTKTsNCj4+ICsgICAgICAgICAgICAgICBzaXplb2YodWludDY0 X3QpICogdmhvc3RfdXNlcl9yYW1fc2xvdHNfbWF4KCkpOw0KPj4gICAgICAgIH0NCj4+ICAg IA0KPj4gICAgICAgIHJldHVybiByZXQ7DQo+PiBAQCAtMTAzMCw3ICsxMDEzLDcgQEAgc3Rh dGljIGludCB2aG9zdF91c2VyX3NldF9tZW1fdGFibGVfcG9zdGNvcHkoc3RydWN0IHZob3N0 X2RldiAqZGV2LA0KPj4gICAgICAgICAgICB9DQo+PiAgICANCj4+ICAgICAgICAgICAgbWVt c2V0KHUtPnBvc3Rjb3B5X2NsaWVudF9iYXNlcywgMCwNCj4+IC0gICAgICAgICAgICAgICBz aXplb2YodWludDY0X3QpICogVkhPU1RfVVNFUl9NQVhfUkFNX1NMT1RTKTsNCj4+ICsgICAg ICAgICAgICAgICBzaXplb2YodWludDY0X3QpICogdmhvc3RfdXNlcl9yYW1fc2xvdHNfbWF4 KCkpOw0KPj4gICAgDQo+PiAgICAgICAgICAgIC8qDQo+PiAgICAgICAgICAgICAqIFRoZXkn cmUgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHJlZ2lvbnMgdGhhdCB3ZXJlIHNlbnQNCj4+ IEBAIC0yMTY5LDcgKzIxNTIsNyBAQCBzdGF0aWMgaW50IHZob3N0X3VzZXJfYmFja2VuZF9p bml0KHN0cnVjdCB2aG9zdF9kZXYgKmRldiwgdm9pZCAqb3BhcXVlLA0KPj4gICAgICAgICAg ICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gICAgICAgICAgICAgICAgfQ0KPj4gICAg DQo+PiAtICAgICAgICAgICAgdS0+dXNlci0+bWVtb3J5X3Nsb3RzID0gTUlOKHJhbV9zbG90 cywgVkhPU1RfVVNFUl9NQVhfUkFNX1NMT1RTKTsNCj4+ICsgICAgICAgICAgICB1LT51c2Vy LT5tZW1vcnlfc2xvdHMgPSBNSU4ocmFtX3Nsb3RzLCB2aG9zdF91c2VyX3JhbV9zbG90c19t YXgoKSk7DQo+PiAgICAgICAgICAgIH0NCj4+ICAgICAgICB9DQo+PiAgICANCj4+IEBAIC0y NjQ5LDYgKzI2MzIsNyBAQCBzdGF0aWMgdm9pZCB2aG9zdF91c2VyX3N0YXRlX2Rlc3Ryb3ko Z3BvaW50ZXIgZGF0YSkNCj4+ICAgIA0KPj4gICAgYm9vbCB2aG9zdF91c2VyX2luaXQoVmhv c3RVc2VyU3RhdGUgKnVzZXIsIENoYXJCYWNrZW5kICpjaHIsIEVycm9yICoqZXJycCkNCj4+ ICAgIHsNCj4+ICsgICAgYXNzZXJ0KHZob3N0X3VzZXJfcmFtX3Nsb3RzX21heCgpIDw9IFZI T1NUX1VTRVJfTUFYX1JBTV9TTE9UUyk7DQo+PiAgICAgICAgaWYgKHVzZXItPmNocikgew0K Pj4gICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJDYW5ub3QgaW5pdGlhbGl6ZSB2aG9z dC11c2VyIHN0YXRlIik7DQo+PiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4+IGRpZmYg LS1naXQgYS9pbmNsdWRlL2h3L3ZpcnRpby92aG9zdC11c2VyLmggYi9pbmNsdWRlL2h3L3Zp cnRpby92aG9zdC11c2VyLmgNCj4+IGluZGV4IDE5MTIxNmE3NGYuLmUxMzU4NGFkZTggMTAw NjQ0DQo+PiAtLS0gYS9pbmNsdWRlL2h3L3ZpcnRpby92aG9zdC11c2VyLmgNCj4+ICsrKyBi L2luY2x1ZGUvaHcvdmlydGlvL3Zob3N0LXVzZXIuaA0KPj4gQEAgLTg2LDQgKzg2LDExIEBA IHZvaWQgdmhvc3RfdXNlcl9hc3luY19jbG9zZShEZXZpY2VTdGF0ZSAqZCwNCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyQmFja2VuZCAqY2hhcmRldiwgc3RydWN0 IHZob3N0X2RldiAqdmhvc3QsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dnVfYXN5bmNfY2xvc2VfZm4gY2IpOw0KPj4gICAgDQo+PiArLyoqDQo+PiArICogdmhvc3Rf dXNlcl9yYW1fc2xvdHNfbWF4KCkNCj4+ICsgKg0KPj4gKyAqIFJldHVybjogbWF4aW11bSBu dW1iZXIgb2YgUkFNIHNsb3RzIHN1cHBvcnRlZCBieSB0aGUgdGFyZ2V0IGhhcmR3YXJlIHBs YWZvcm0uDQo+PiArICovDQo+PiArdW5zaWduZWQgaW50IHZob3N0X3VzZXJfcmFtX3Nsb3Rz X21heCh2b2lkKTsNCj4+ICsNCj4+ICAgICNlbmRpZg0KPiANCg0K