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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 5A2EAC48BF6 for ; Mon, 4 Mar 2024 04:49:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=bhPfrUCDh8LuW1z6obUfgCCcY0upj5Nkgw1963ISu7c=; b=QuuRvCNY0ZzCVK Dn3cmidFIsIusvK66lhVthvQOzTYE6IJembcbLGtl49927aMevxb0l/GJiP91TFAJ4zsr+Z3SyTYn 0Pjfi54tNjrCDyKzIAPTd9bCBkl+tyBpJBApvJAtmWJZz5uJa9DKkzA+4saYNb7SDiBqqTWUeLOrO F4Hs21c7+pAWPlEdTbvI9yrQjS3svzAo/nwIyuV6d06l5EcWSdrSnr2Qkh2OH7ziMKA37QVBRNGh9 mB8yCMhqGD9EUxM/dHr9fkHus2sBSX+2ck1VdQVwo3E/hizYhQRWMHtWd6JVoY7gsfOzQmR5aastc R7o3p6lbcirruUPc2vng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rh0Ge-00000007cJH-0xcx; Mon, 04 Mar 2024 04:49:36 +0000 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rh0GZ-00000007cHn-0q2V for kexec@lists.infradead.org; Mon, 04 Mar 2024 04:49:32 +0000 Received: from pps.filterd (m0353722.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 4244HlU7022304; Mon, 4 Mar 2024 04:48:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=szwc1vwIGJwZDKf4O43yMb3nf6qDE5KtpRWDfln2Nuc=; b=gon1JerSxOn0P1kJo5fFLz7YmslMHsMhWm/G31+uX40WcNTtp3iJnsS79Y8r78Ov09Z3 UNMU/um24YyEyKm4mVjPnGzGw9F7pHMBEznKl+3HL+BdzToAXNV2YsEqtZIBni7cHnWR z3wcTEA1y6c8urEQD0rxJgQBJ4iwgw5JSBcaH0aQayrepGF2u8FiF/b7j92uvS3fju1z F4pWaJ6aYG/m2RygWxjZI9Vg1iDo4GUZJLcw4EyPaev/fUNJ3u36LnKpXQwCFAQKbmjk 2G89ioPpgyTbPT5ID0jFMFCWI4WxAIjw4Mgs1nhdatP3qzCMm4TFUu6rUB451hxhVv0x 3A== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3wn751rh7e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Mar 2024 04:48:53 +0000 Received: from m0353722.ppops.net (m0353722.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 4244QR0H008350; Mon, 4 Mar 2024 04:48:52 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3wn751rh77-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Mar 2024 04:48:52 +0000 Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 4242qo2p025399; Mon, 4 Mar 2024 04:48:51 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3wmety6hpq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Mar 2024 04:48:51 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 4244kIj644106220 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 Mar 2024 04:46:20 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E559220040; Mon, 4 Mar 2024 04:46:17 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 521E320043; Mon, 4 Mar 2024 04:46:09 +0000 (GMT) Received: from [9.43.79.108] (unknown [9.43.79.108]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 Mar 2024 04:46:08 +0000 (GMT) Message-ID: <4b7b1fc3-de44-4d27-94be-18b8f5818cc8@linux.ibm.com> Date: Mon, 4 Mar 2024 10:16:07 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v17 2/6] crash: add a new kexec flag for hotplug support Content-Language: en-US To: Hari Bathini , linuxppc-dev@ozlabs.org Cc: David Hildenbrand , Dave Hansen , Mimi Zohar , Eric DeVolder , Boris Ostrovsky , Valentin Schneider , Baoquan He , x86@kernel.org, "Aneesh Kumar K . V" , Laurent Dufour , Dave Young , Vivek Goyal , Naveen N Rao , Borislav Petkov , Thomas Gleixner , Oscar Salvador , Greg Kroah-Hartman , kexec@lists.infradead.org, Mahesh Salgaonkar , Akhil Raj , Andrew Morton References: <6a4c377c-990b-4a09-8974-01855e75dd6b@linux.ibm.com> From: Sourabh Jain In-Reply-To: <6a4c377c-990b-4a09-8974-01855e75dd6b@linux.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: ph5Ke829CKQZLF7VHlUaZYAGoZAj70nF X-Proofpoint-GUID: K-ma4lNTKKnFF8T_NOJG62fP7Qui_nv9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-04_02,2024-03-01_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 adultscore=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 impostorscore=0 mlxscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2403040033 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240303_204931_381782_E29EA36E X-CRM114-Status: GOOD ( 38.21 ) X-BeenThere: kexec@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org SGVsbG8gSGFyaSwKCk9uIDAyLzAzLzI0IDE4OjQ3LCBIYXJpIEJhdGhpbmkgd3JvdGU6Cj4KPgo+ IE9uIDI2LzAyLzI0IDI6MTEgcG0sIFNvdXJhYmggSmFpbiB3cm90ZToKPj4gQ29tbWl0IGE3MmJi ZWM3MGRhMiAoImNyYXNoOiBob3RwbHVnIHN1cHBvcnQgZm9yIGtleGVjX2xvYWQoKSIpCj4+IGlu dHJvZHVjZWQgYSBuZXcga2V4ZWMgZmxhZywgYEtFWEVDX1VQREFURV9FTEZDT1JFSERSYC4gS2V4 ZWMgdG9vbCB1c2VzCj4+IHRoaXMgZmxhZyB0byBpbmRpY2F0ZSB0byB0aGUga2VybmVsIHRoYXQg aXQgaXMgc2FmZSB0byBtb2RpZnkgdGhlCj4+IGVsZmNvcmVoZHIgb2YgdGhlIGtkdW1wIGltYWdl IGxvYWRlZCB1c2luZyB0aGUga2V4ZWNfbG9hZCBzeXN0ZW0gY2FsbC4KPj4KPj4gSG93ZXZlciwg aXQgaXMgcG9zc2libGUgdGhhdCBhcmNoaXRlY3R1cmVzIG1heSBuZWVkIHRvIHVwZGF0ZSBrZXhl Ywo+PiBzZWdtZW50cyBvdGhlciB0aGVuIGVsZmNvcmVoZHIuIEZvciBleGFtcGxlLCBGRFQgKEZs YXR0ZW4gRGV2aWNlIFRyZWUpCj4+IG9uIFBvd2VyUEMuIEludHJvZHVjaW5nIGEgbmV3IGtleGVj IGZsYWcgZm9yIGV2ZXJ5IG5ldyBrZXhlYyBzZWdtZW50Cj4+IG1heSBub3QgYmUgYSBnb29kIHNv bHV0aW9uLiBIZW5jZSwgYSBnZW5lcmljIGtleGVjIGZsYWcgYml0LAo+PiBgS0VYRUNfQ1JBU0hf SE9UUExVR19TVVBQT1JUYCwgaXMgaW50cm9kdWNlZCB0byBzaGFyZSB0aGUgQ1BVL01lbW9yeQo+ PiBob3RwbHVnIHN1cHBvcnQgaW50ZW50IGJldHdlZW4gdGhlIGtleGVjIHRvb2wgYW5kIHRoZSBr ZXJuZWwgZm9yIHRoZQo+PiBrZXhlY19sb2FkIHN5c3RlbSBjYWxsLgo+Pgo+PiBOb3csIGlmIHRo ZSBrZXhlYyB0b29sIHNlbmRzIEtFWEVDX0NSQVNIX0hPVFBMVUdfU1VQUE9SVCBrZXhlYyBmbGFn IHRvCj4+IHRoZSBrZXJuZWwsIGl0IGluZGljYXRlcyB0byB0aGUga2VybmVsIHRoYXQgYWxsIHRo ZSByZXF1aXJlZCBrZXhlYwo+PiBzZWdtZW50IGlzIHNraXBwZWQgZnJvbSBTSEEgY2FsY3VsYXRp b24gYW5kIGl0IGlzIHNhZmUgdG8gdXBkYXRlIGtkdW1wCj4+IGltYWdlIGxvYWRlZCB1c2luZyB0 aGUga2V4ZWNfbG9hZCBzeXNjYWxsLgo+Pgo+PiBXaGlsZSBsb2FkaW5nIHRoZSBrZHVtcCBpbWFn ZSB1c2luZyB0aGUga2V4ZWNfbG9hZCBzeXNjYWxsLCB0aGUKPj4gQHVwZGF0ZV9lbGZjb3JlaGRy IG1lbWJlciBvZiBzdHJ1Y3Qga2ltYWdlIGlzIHNldCBpZiB0aGUga2V4ZWMgdG9vbAo+PiBzZW5k cyB0aGUgS0VYRUNfVVBEQVRFX0VMRkNPUkVIRFIga2V4ZWMgZmxhZy4gVGhpcyBtZW1iZXIgaXMg bGF0ZXIgdXNlZAo+PiB0byBkZXRlcm1pbmUgd2hldGhlciBpdCBpcyBzYWZlIHRvIHVwZGF0ZSBl bGZjb3JlaGRyIG9uIGhvdHBsdWcgZXZlbnRzLgo+PiBIb3dldmVyLCB3aXRoIHRoZSBpbnRyb2R1 Y3Rpb24gb2YgdGhlIEtFWEVDX0NSQVNIX0hPVFBMVUdfU1VQUE9SVCBrZXhlYwo+PiBmbGFnLCB0 aGUga2V4ZWMgdG9vbCBjb3VsZCBtYXJrIGFsbCB0aGUgcmVxdWlyZWQga2V4ZWMgc2VnbWVudHMg b24gYW4KPj4gYXJjaGl0ZWN0dXJlIGFzIHNhZmUgdG8gdXBkYXRlLiBTbyByZW5hbWUgdGhlIEB1 cGRhdGVfZWxmY29yZWhkciB0bwo+PiBAaG90cGx1Z19zdXBwb3J0LiBJZiBAaG90cGx1Z19zdXBw b3J0IGlzIHNldCwgdGhlIGtlcm5lbCBjYW4gc2FmZWx5Cj4+IHVwZGF0ZSBhbGwgdGhlIHJlcXVp cmVkIGtleGVjIHNlZ21lbnRzIG9mIHRoZSBrZHVtcCBpbWFnZSBkdXJpbmcKPj4gQ1BVL01lbW9y eSBob3RwbHVnIGV2ZW50cy4KPj4KPj4gSW50cm9kdWNlIGFuIGFyY2hpdGVjdHVyZS1zcGVjaWZp YyBmdW5jdGlvbiB0byBwcm9jZXNzIGtleGVjIGZsYWdzIGZvcgo+PiBkZXRlcm1pbmluZyBob3Rw bHVnIHN1cHBvcnQuIFNldCB0aGUgQGhvdHBsdWdfc3VwcG9ydCBtZW1iZXIgb2Ygc3RydWN0Cj4+ IGtpbWFnZSBmb3IgYm90aCBrZXhlY19sb2FkIGFuZCBrZXhlY19maWxlX2xvYWQgc3lzdGVtIGNh bGxzLiBUaGlzCj4+IHNpbXBsaWZpZXMga2VybmVsIGNoZWNrcyB0byBpZGVudGlmeSBob3RwbHVn IHN1cHBvcnQgZm9yIHRoZSBjdXJyZW50bHkKPj4gbG9hZGVkIGtkdW1wIGltYWdlIGJ5IGp1c3Qg ZXhhbWluaW5nIHRoZSB2YWx1ZSBvZiBAaG90cGx1Z19zdXBwb3J0Lgo+Pgo+Cj4gQ291cGxlIG9m IG1pbm9yIG5pdHMuIFNlZSBjb21tZW50cyBiZWxvdy4KPiBPdGhlcndpc2UsIGxvb2tzIGdvb2Qg dG8gbWUuCj4KPiBBY2tlZC1ieTogSGFyaSBCYXRoaW5pIDxoYmF0aGluaUBsaW51eC5pYm0uY29t PgoKVGhhbmsgeW91IQoKPgo+PiBTaWduZWQtb2ZmLWJ5OiBTb3VyYWJoIEphaW4gPHNvdXJhYmhq YWluQGxpbnV4LmlibS5jb20+Cj4+IENjOiBBa2hpbCBSYWogPGxmMzIuZGV2QGdtYWlsLmNvbT4K Pj4gQ2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+Cj4+IENjOiBB bmVlc2ggS3VtYXIgSy5WIDxhbmVlc2gua3VtYXJAa2VybmVsLm9yZz4KPj4gQ2M6IEJhb3F1YW4g SGUgPGJoZUByZWRoYXQuY29tPgo+PiBDYzogQm9yaXNsYXYgUGV0a292IChBTUQpIDxicEBhbGll bjguZGU+Cj4+IENjOiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29t Pgo+PiBDYzogQ2hyaXN0b3BoZSBMZXJveSA8Y2hyaXN0b3BoZS5sZXJveUBjc2dyb3VwLmV1Pgo+ PiBDYzogRGF2ZSBIYW5zZW4gPGRhdmUuaGFuc2VuQGxpbnV4LmludGVsLmNvbT4KPj4gQ2M6IERh dmUgWW91bmcgPGR5b3VuZ0ByZWRoYXQuY29tPgo+PiBDYzogRGF2aWQgSGlsZGVuYnJhbmQgPGRh dmlkQHJlZGhhdC5jb20+Cj4+IENjOiBFcmljIERlVm9sZGVyIDxlcmljLmRldm9sZGVyQG9yYWNs ZS5jb20+Cj4+IENjOiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24u b3JnPgo+PiBDYzogSGFyaSBCYXRoaW5pIDxoYmF0aGluaUBsaW51eC5pYm0uY29tPgo+PiBDYzog TGF1cmVudCBEdWZvdXIgPGxhdXJlbnQuZHVmb3VyQGZyLmlibS5jb20+Cj4+IENjOiBNYWhlc2gg U2FsZ2FvbmthciA8bWFoZXNoQGxpbnV4LmlibS5jb20+Cj4+IENjOiBNaWNoYWVsIEVsbGVybWFu IDxtcGVAZWxsZXJtYW4uaWQuYXU+Cj4+IENjOiBNaW1pIFpvaGFyIDx6b2hhckBsaW51eC5pYm0u Y29tPgo+PiBDYzogTmF2ZWVuIE4gUmFvIDxuYXZlZW5Aa2VybmVsLm9yZz4KPj4gQ2M6IE9zY2Fy IFNhbHZhZG9yIDxvc2FsdmFkb3JAc3VzZS5kZT4KPj4gQ2M6IFRob21hcyBHbGVpeG5lciA8dGds eEBsaW51dHJvbml4LmRlPgo+PiBDYzogVmFsZW50aW4gU2NobmVpZGVyIDx2c2NobmVpZEByZWRo YXQuY29tPgo+PiBDYzogVml2ZWsgR295YWwgPHZnb3lhbEByZWRoYXQuY29tPgo+PiBDYzoga2V4 ZWNAbGlzdHMuaW5mcmFkZWFkLm9yZwo+PiBDYzogeDg2QGtlcm5lbC5vcmcKPj4gLS0tCj4+IMKg IGFyY2gveDg2L2luY2x1ZGUvYXNtL2tleGVjLmggfCAxMSArKy0tLS0tLS0tLQo+PiDCoCBhcmNo L3g4Ni9rZXJuZWwvY3Jhc2guY8KgwqDCoMKgwqAgfCAyOCArKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tCj4+IMKgIGRyaXZlcnMvYmFzZS9jcHUuY8KgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAy ICstCj4+IMKgIGRyaXZlcnMvYmFzZS9tZW1vcnkuY8KgwqDCoMKgwqDCoMKgIHzCoCAyICstCj4+ IMKgIGluY2x1ZGUvbGludXgvY3Jhc2hfY29yZS5owqDCoCB8IDEzICsrKysrKy0tLS0tLS0KPj4g wqAgaW5jbHVkZS9saW51eC9rZXhlYy5owqDCoMKgwqDCoMKgwqAgfCAxMSArKysrKysrLS0tLQo+ PiDCoCBpbmNsdWRlL3VhcGkvbGludXgva2V4ZWMuaMKgwqAgfMKgIDEgKwo+PiDCoCBrZXJuZWwv Y3Jhc2hfY29yZS5jwqDCoMKgwqDCoMKgwqDCoMKgIHwgMTEgKysrKy0tLS0tLS0KPj4gwqAga2Vy bmVsL2tleGVjLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0ICsrLS0KPj4gwqAg a2VybmVsL2tleGVjX2ZpbGUuY8KgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNSArKysrKwo+PiDCoCAx MCBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKPj4KPj4g ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2tleGVjLmggYi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9rZXhlYy5oCj4+IGluZGV4IGNiMTMyMGViYmMyMy4uYWU1NDgyYTJmMGNhIDEwMDY0 NAo+PiAtLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rZXhlYy5oCj4+ICsrKyBiL2FyY2gveDg2 L2luY2x1ZGUvYXNtL2tleGVjLmgKPj4gQEAgLTIxMCwxNSArMjEwLDggQEAgZXh0ZXJuIHZvaWQg a2R1bXBfbm1pX3Nob290ZG93bl9jcHVzKHZvaWQpOwo+PiDCoCB2b2lkIGFyY2hfY3Jhc2hfaGFu ZGxlX2hvdHBsdWdfZXZlbnQoc3RydWN0IGtpbWFnZSAqaW1hZ2UsIHZvaWQgKmFyZyk7Cj4+IMKg ICNkZWZpbmUgYXJjaF9jcmFzaF9oYW5kbGVfaG90cGx1Z19ldmVudCAKPj4gYXJjaF9jcmFzaF9o YW5kbGVfaG90cGx1Z19ldmVudAo+PiDCoCAtI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQo+PiAt aW50IGFyY2hfY3Jhc2hfaG90cGx1Z19jcHVfc3VwcG9ydCh2b2lkKTsKPj4gLSNkZWZpbmUgY3Jh c2hfaG90cGx1Z19jcHVfc3VwcG9ydCBhcmNoX2NyYXNoX2hvdHBsdWdfY3B1X3N1cHBvcnQKPj4g LSNlbmRpZgo+PiAtCj4+IC0jaWZkZWYgQ09ORklHX01FTU9SWV9IT1RQTFVHCj4+IC1pbnQgYXJj aF9jcmFzaF9ob3RwbHVnX21lbW9yeV9zdXBwb3J0KHZvaWQpOwo+PiAtI2RlZmluZSBjcmFzaF9o b3RwbHVnX21lbW9yeV9zdXBwb3J0IGFyY2hfY3Jhc2hfaG90cGx1Z19tZW1vcnlfc3VwcG9ydAo+ PiAtI2VuZGlmCj4+ICtpbnQgYXJjaF9jcmFzaF9ob3RwbHVnX3N1cHBvcnQoc3RydWN0IGtpbWFn ZSAqaW1hZ2UsIHVuc2lnbmVkIGxvbmcgCj4+IGtleGVjX2ZsYWdzKTsKPj4gKyNkZWZpbmUgYXJj aF9jcmFzaF9ob3RwbHVnX3N1cHBvcnQgYXJjaF9jcmFzaF9ob3RwbHVnX3N1cHBvcnQKPj4gwqAg wqAgdW5zaWduZWQgaW50IGFyY2hfY3Jhc2hfZ2V0X2VsZmNvcmVoZHJfc2l6ZSh2b2lkKTsKPj4g wqAgI2RlZmluZSBjcmFzaF9nZXRfZWxmY29yZWhkcl9zaXplIGFyY2hfY3Jhc2hfZ2V0X2VsZmNv cmVoZHJfc2l6ZQo+PiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NyYXNoLmMgYi9hcmNo L3g4Ni9rZXJuZWwvY3Jhc2guYwo+PiBpbmRleCAyYTY4MmZlODYzNTIuLmYwNjUwMTQ0NWNkOSAx MDA2NDQKPj4gLS0tIGEvYXJjaC94ODYva2VybmVsL2NyYXNoLmMKPj4gKysrIGIvYXJjaC94ODYv a2VybmVsL2NyYXNoLmMKPj4gQEAgLTQwMiwyMCArNDAyLDI2IEBAIGludCBjcmFzaF9sb2FkX3Nl Z21lbnRzKHN0cnVjdCBraW1hZ2UgKmltYWdlKQo+PiDCoCAjdW5kZWYgcHJfZm10Cj4+IMKgICNk ZWZpbmUgcHJfZm10KGZtdCkgImNyYXNoIGhwOiAiIGZtdAo+Pgo+Cj4KPj4gLS8qIFRoZXNlIGZ1 bmN0aW9ucyBwcm92aWRlIHRoZSB2YWx1ZSBmb3IgdGhlIHN5c2ZzIGNyYXNoX2hvdHBsdWcgCj4+ IG5vZGVzICovCj4+IC0jaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCj4+IC1pbnQgYXJjaF9jcmFz aF9ob3RwbHVnX2NwdV9zdXBwb3J0KHZvaWQpCj4+ICtpbnQgYXJjaF9jcmFzaF9ob3RwbHVnX3N1 cHBvcnQoc3RydWN0IGtpbWFnZSAqaW1hZ2UsIHVuc2lnbmVkIGxvbmcgCj4+IGtleGVjX2ZsYWdz KQo+PiDCoCB7Cj4+IC3CoMKgwqAgcmV0dXJuIGNyYXNoX2NoZWNrX3VwZGF0ZV9lbGZjb3JlaGRy KCk7Cj4+IC19Cj4+IC0jZW5kaWYKPj4gwqAgLSNpZmRlZiBDT05GSUdfTUVNT1JZX0hPVFBMVUcK Pj4gLWludCBhcmNoX2NyYXNoX2hvdHBsdWdfbWVtb3J5X3N1cHBvcnQodm9pZCkKPj4gLXsKPj4g LcKgwqDCoCByZXR1cm4gY3Jhc2hfY2hlY2tfdXBkYXRlX2VsZmNvcmVoZHIoKTsKPj4gLX0KPj4g KyNpZmRlZiBDT05GSUdfS0VYRUNfRklMRQo+PiArwqDCoMKgIGlmIChpbWFnZS0+ZmlsZV9tb2Rl KQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDE7Cj4+IMKgICNlbmRpZgo+PiArwqDCoMKgIC8q Cj4+ICvCoMKgwqDCoCAqIEluaXRpYWxseSwgY3Jhc2ggaG90cGx1ZyBzdXBwb3J0IGZvciBrZXhl Y19sb2FkIHdhcyBhZGRlZAo+PiArwqDCoMKgwqAgKiB3aXRoIHRoZSBLRVhFQ19VUERBVEVfRUxG Q09SRUhEUiBmbGFnLiBMYXRlciwgdGhpcwo+PiArwqDCoMKgwqAgKiBmdW5jdGlvbmFsaXR5IHdh cyBleHBhbmRlZCB0byBhY2NvbW1vZGF0ZSBtdWx0aXBsZSBrZXhlYwo+PiArwqDCoMKgwqAgKiBz ZWdtZW50IHVwZGF0ZXMsIGxlYWRpbmcgdG8gdGhlIGludHJvZHVjdGlvbiBvZiB0aGUKPj4gK8Kg wqDCoMKgICogS0VYRUNfQ1JBU0hfSE9UUExVR19TVVBQT1JUIGtleGVjIGZsYWcgYml0LiBDb25z ZXF1ZW50bHksCj4+ICvCoMKgwqDCoCAqIHdoZW4gdGhlIGtleGVjIHRvb2wgc2VuZHMgZWl0aGVy IG9mIHRoZXNlIGZsYWdzLCBpdCBpbmRpY2F0ZXMKPj4gK8KgwqDCoMKgICogdGhhdCB0aGUgcmVx dWlyZWQga2V4ZWMgc2VnbWVudCAoZWxmY29yZWhkcikgaXMgZXhjbHVkZWQgZnJvbQo+PiArwqDC oMKgwqAgKiB0aGUgU0hBIGNhbGN1bGF0aW9uLgo+PiArwqDCoMKgwqAgKi8KPj4gK8KgwqDCoCBy ZXR1cm4gKGtleGVjX2ZsYWdzICYgS0VYRUNfVVBEQVRFX0VMRkNPUkVIRFIgfHwKPj4gK8KgwqDC oMKgwqDCoMKgIGtleGVjX2ZsYWdzICYgS0VYRUNfQ1JBU0hfSE9UUExVR19TVVBQT1JUKTsKPj4g K30KPgo+IEludHJvZHVjdGlvbiBvZiB0aGUgZmxhZyBLRVhFQ19DUkFTSF9IT1RQTFVHX1NVUFBP UlQgd2FycmFudGVkIGEgYml0Cj4gb2YgY2xlYW51cCBpbiB4ODYgY29kZS4gSSB0aGluayB0aGUg Y2hhbmdlbG9nIHNob3VsZCBjYWxsIHRoYXQgb3V0IHRvby4KClN1cmUgSSB3aWxsIGluY2x1ZGUg aXQgaW4gdjE4LgoKCj4KPj4gwqAgwqAgdW5zaWduZWQgaW50IGFyY2hfY3Jhc2hfZ2V0X2VsZmNv cmVoZHJfc2l6ZSh2b2lkKQo+PiDCoCB7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvY3B1 LmMgYi9kcml2ZXJzL2Jhc2UvY3B1LmMKPj4gaW5kZXggNWFlMTQ5NmNjYzA2Li5hMjM0ODliOGM4 ZjAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvYmFzZS9jcHUuYwo+PiArKysgYi9kcml2ZXJzL2Jh c2UvY3B1LmMKPj4gQEAgLTMwNiw3ICszMDYsNyBAQCBzdGF0aWMgc3NpemVfdCBjcmFzaF9ob3Rw bHVnX3Nob3coc3RydWN0IGRldmljZSAKPj4gKmRldiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNoYXIgKmJ1ZikK Pj4gwqAgewo+PiAtwqDCoMKgIHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgIiVkXG4iLCBjcmFzaF9o b3RwbHVnX2NwdV9zdXBwb3J0KCkpOwo+PiArwqDCoMKgIHJldHVybiBzeXNmc19lbWl0KGJ1Ziwg IiVkXG4iLCBjcmFzaF9jaGVja19ob3RwbHVnX3N1cHBvcnQoKSk7Cj4+IMKgIH0KPj4gwqAgc3Rh dGljIERFVklDRV9BVFRSX0FETUlOX1JPKGNyYXNoX2hvdHBsdWcpOwo+PiDCoCAjZW5kaWYKPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9tZW1vcnkuYyBiL2RyaXZlcnMvYmFzZS9tZW1vcnku Ywo+PiBpbmRleCBjMDQzNmY0NmNmYjcuLjY3ODU4ZWViOTJlZCAxMDA2NDQKPj4gLS0tIGEvZHJp dmVycy9iYXNlL21lbW9yeS5jCj4+ICsrKyBiL2RyaXZlcnMvYmFzZS9tZW1vcnkuYwo+PiBAQCAt NTM1LDcgKzUzNSw3IEBAIHN0YXRpYyBERVZJQ0VfQVRUUl9SVyhhdXRvX29ubGluZV9ibG9ja3Mp Owo+PiDCoCBzdGF0aWMgc3NpemVfdCBjcmFzaF9ob3RwbHVnX3Nob3coc3RydWN0IGRldmljZSAq ZGV2LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKPj4gwqAgewo+PiAtwqDC oMKgIHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgIiVkXG4iLCBjcmFzaF9ob3RwbHVnX21lbW9yeV9z dXBwb3J0KCkpOwo+PiArwqDCoMKgIHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgIiVkXG4iLCBjcmFz aF9jaGVja19ob3RwbHVnX3N1cHBvcnQoKSk7Cj4+IMKgIH0KPj4gwqAgc3RhdGljIERFVklDRV9B VFRSX1JPKGNyYXNoX2hvdHBsdWcpOwo+PiDCoCAjZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvY3Jhc2hfY29yZS5oIGIvaW5jbHVkZS9saW51eC9jcmFzaF9jb3JlLmgKPj4gaW5k ZXggNjQ3ZTkyOGVmZWU4Li40NDMwNTMzNjMxNGUgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvbGlu dXgvY3Jhc2hfY29yZS5oCj4+ICsrKyBiL2luY2x1ZGUvbGludXgvY3Jhc2hfY29yZS5oCj4+IEBA IC00MCwxNCArNDAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIAo+PiBhcmNoX2tleGVjX3VucHJv dGVjdF9jcmFzaGtyZXModm9pZCkgeyB9Cj4+IMKgIHN0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX2Ny YXNoX2hhbmRsZV9ob3RwbHVnX2V2ZW50KHN0cnVjdCBraW1hZ2UgCj4+ICppbWFnZSwgdm9pZCAq YXJnKSB7IH0KPj4gwqAgI2VuZGlmCj4+IMKgIC1pbnQgY3Jhc2hfY2hlY2tfdXBkYXRlX2VsZmNv cmVoZHIodm9pZCk7Cj4+ICtpbnQgY3Jhc2hfY2hlY2tfaG90cGx1Z19zdXBwb3J0KHZvaWQpOwo+ PiDCoCAtI2lmbmRlZiBjcmFzaF9ob3RwbHVnX2NwdV9zdXBwb3J0Cj4+IC1zdGF0aWMgaW5saW5l IGludCBjcmFzaF9ob3RwbHVnX2NwdV9zdXBwb3J0KHZvaWQpIHsgcmV0dXJuIDA7IH0KPj4gLSNl bmRpZgo+PiAtCj4+IC0jaWZuZGVmIGNyYXNoX2hvdHBsdWdfbWVtb3J5X3N1cHBvcnQKPj4gLXN0 YXRpYyBpbmxpbmUgaW50IGNyYXNoX2hvdHBsdWdfbWVtb3J5X3N1cHBvcnQodm9pZCkgeyByZXR1 cm4gMDsgfQo+PiArI2lmbmRlZiBhcmNoX2NyYXNoX2hvdHBsdWdfc3VwcG9ydAo+PiArc3RhdGlj IGlubGluZSBpbnQgYXJjaF9jcmFzaF9ob3RwbHVnX3N1cHBvcnQoc3RydWN0IGtpbWFnZSAqaW1h Z2UsIAo+PiB1bnNpZ25lZCBsb25nIGtleGVjX2ZsYWdzKQo+PiArewo+PiArwqDCoMKgIHJldHVy biAwOwo+PiArfQo+PiDCoCAjZW5kaWYKPj4gwqAgwqAgI2lmbmRlZiBjcmFzaF9nZXRfZWxmY29y ZWhkcl9zaXplCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2tleGVjLmggYi9pbmNsdWRl L2xpbnV4L2tleGVjLmgKPj4gaW5kZXggMDYwODM1YmI4MmQ1Li41YjkzYTU3Njc0MTMgMTAwNjQ0 Cj4+IC0tLSBhL2luY2x1ZGUvbGludXgva2V4ZWMuaAo+PiArKysgYi9pbmNsdWRlL2xpbnV4L2tl eGVjLmgKPj4gQEAgLTMxOSw4ICszMTksMTAgQEAgc3RydWN0IGtpbWFnZSB7Cj4+IMKgwqDCoMKg wqAgLyogSWYgc2V0LCB3ZSBhcmUgdXNpbmcgZmlsZSBtb2RlIGtleGVjIHN5c2NhbGwgKi8KPj4g wqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgZmlsZV9tb2RlOjE7Cj4+IMKgICNpZmRlZiBDT05GSUdf Q1JBU0hfSE9UUExVRwo+PiAtwqDCoMKgIC8qIElmIHNldCwgYWxsb3cgY2hhbmdlcyB0byBlbGZj b3JlaGRyIG9mIGtleGVjX2xvYWQnZCBpbWFnZSAqLwo+PiAtwqDCoMKgIHVuc2lnbmVkIGludCB1 cGRhdGVfZWxmY29yZWhkcjoxOwo+PiArwqDCoMKgIC8qIElmIHNldCwgaXQgaXMgc2FmZSB0byB1 cGRhdGUga2V4ZWMgc2VnbWVudHMgdGhhdCBhcmUKPj4gK8KgwqDCoMKgICogZXhjbHVkZWQgZnJv bSBTSEEgY2FsY3VsYXRpb24uCj4+ICvCoMKgwqDCoCAqLwo+PiArwqDCoMKgIHVuc2lnbmVkIGlu dCBob3RwbHVnX3N1cHBvcnQ6MTsKPj4gwqAgI2VuZGlmCj4+IMKgIMKgICNpZmRlZiBBUkNIX0hB U19LSU1BR0VfQVJDSAo+PiBAQCAtMzkxLDkgKzM5MywxMCBAQCBib29sIGtleGVjX2xvYWRfcGVy bWl0dGVkKGludCBrZXhlY19pbWFnZV90eXBlKTsKPj4gwqAgwqAgLyogTGlzdCBvZiBkZWZpbmVk L2xlZ2FsIGtleGVjIGZsYWdzICovCj4+IMKgICNpZm5kZWYgQ09ORklHX0tFWEVDX0pVTVAKPj4g LSNkZWZpbmUgS0VYRUNfRkxBR1PCoMKgwqAgKEtFWEVDX09OX0NSQVNIIHwgS0VYRUNfVVBEQVRF X0VMRkNPUkVIRFIpCj4+ICsjZGVmaW5lIEtFWEVDX0ZMQUdTwqDCoMKgIChLRVhFQ19PTl9DUkFT SCB8IEtFWEVDX1VQREFURV9FTEZDT1JFSERSIHwgCj4+IEtFWEVDX0NSQVNIX0hPVFBMVUdfU1VQ UE9SVCkKPj4gwqAgI2Vsc2UKPj4gLSNkZWZpbmUgS0VYRUNfRkxBR1PCoMKgwqAgKEtFWEVDX09O X0NSQVNIIHwgS0VYRUNfUFJFU0VSVkVfQ09OVEVYVCB8IAo+PiBLRVhFQ19VUERBVEVfRUxGQ09S RUhEUikKPj4gKyNkZWZpbmUgS0VYRUNfRkxBR1PCoMKgwqAgKEtFWEVDX09OX0NSQVNIIHwgS0VY RUNfUFJFU0VSVkVfQ09OVEVYVCB8IAo+PiBLRVhFQ19VUERBVEVfRUxGQ09SRUhEUiB8IFwKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgS0VYRUNfQ1JBU0hfSE9UUExVR19TVVBQT1JUKQo+PiDC oCAjZW5kaWYKPj4gwqAgwqAgLyogTGlzdCBvZiBkZWZpbmVkL2xlZ2FsIGtleGVjIGZpbGUgZmxh Z3MgKi8KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rZXhlYy5oIGIvaW5jbHVk ZS91YXBpL2xpbnV4L2tleGVjLmgKPj4gaW5kZXggYzE3YmIwOTZlYTY4Li41YWUxNzQxZWE4ZWEg MTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rZXhlYy5oCj4+ICsrKyBiL2luY2x1 ZGUvdWFwaS9saW51eC9rZXhlYy5oCj4+IEBAIC0xMyw2ICsxMyw3IEBACj4+IMKgICNkZWZpbmUg S0VYRUNfT05fQ1JBU0jCoMKgwqDCoMKgwqDCoCAweDAwMDAwMDAxCj4+IMKgICNkZWZpbmUgS0VY RUNfUFJFU0VSVkVfQ09OVEVYVMKgwqDCoCAweDAwMDAwMDAyCj4+IMKgICNkZWZpbmUgS0VYRUNf VVBEQVRFX0VMRkNPUkVIRFLCoMKgwqAgMHgwMDAwMDAwNAo+PiArI2RlZmluZSBLRVhFQ19DUkFT SF9IT1RQTFVHX1NVUFBPUlQgMHgwMDAwMDAwOAo+PiDCoCAjZGVmaW5lIEtFWEVDX0FSQ0hfTUFT S8KgwqDCoMKgwqDCoMKgIDB4ZmZmZjAwMDAKPj4gwqAgwqAgLyoKPj4gZGlmZiAtLWdpdCBhL2tl cm5lbC9jcmFzaF9jb3JlLmMgYi9rZXJuZWwvY3Jhc2hfY29yZS5jCj4+IGluZGV4IDcwZmE4MTEx YTlkNi4uNjMwYzRmZDdlYTM5IDEwMDY0NAo+PiAtLS0gYS9rZXJuZWwvY3Jhc2hfY29yZS5jCj4+ ICsrKyBiL2tlcm5lbC9jcmFzaF9jb3JlLmMKPj4gQEAgLTQ5Niw3ICs0OTYsNyBAQCBzdGF0aWMg REVGSU5FX01VVEVYKF9fY3Jhc2hfaG90cGx1Z19sb2NrKTsKPj4gwqDCoCAqIEl0IHJlZmxlY3Rz IHRoZSBrZXJuZWwncyBhYmlsaXR5L3Blcm1pc3Npb24gdG8gdXBkYXRlIHRoZSBjcmFzaAo+PiDC oMKgICogZWxmY29yZWhkciBkaXJlY3RseS4KPgo+IEFsc28sIHRoaXMgY29tbWVudCBuZWVkcyB1 cGRhdGUgYXMgcG9pbnRlZCBvdXQgYnkgQmFvcXVhbiBhbHJlYWR5LgoKWWVzIEkgd2lsbCB1cGRh dGUgaXQuCgpUaGFua3MsClNvdXJhYmgKCgo+PiDCoMKgICovCj4+IC1pbnQgY3Jhc2hfY2hlY2tf dXBkYXRlX2VsZmNvcmVoZHIodm9pZCkKPj4gK2ludCBjcmFzaF9jaGVja19ob3RwbHVnX3N1cHBv cnQodm9pZCkKPj4gwqAgewo+PiDCoMKgwqDCoMKgIGludCByYyA9IDA7Cj4+IMKgIEBAIC01MDgs MTAgKzUwOCw3IEBAIGludCBjcmFzaF9jaGVja191cGRhdGVfZWxmY29yZWhkcih2b2lkKQo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+IMKgwqDCoMKgwqAgfQo+PiDCoMKgwqDCoMKg IGlmIChrZXhlY19jcmFzaF9pbWFnZSkgewo+PiAtwqDCoMKgwqDCoMKgwqAgaWYgKGtleGVjX2Ny YXNoX2ltYWdlLT5maWxlX21vZGUpCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJjID0gMTsK Pj4gLcKgwqDCoMKgwqDCoMKgIGVsc2UKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmMgPSBr ZXhlY19jcmFzaF9pbWFnZS0+dXBkYXRlX2VsZmNvcmVoZHI7Cj4+ICvCoMKgwqDCoMKgwqDCoCBy YyA9IGtleGVjX2NyYXNoX2ltYWdlLT5ob3RwbHVnX3N1cHBvcnQ7Cj4+IMKgwqDCoMKgwqAgfQo+ PiDCoMKgwqDCoMKgIC8qIFJlbGVhc2UgbG9jayBub3cgdGhhdCB1cGRhdGUgY29tcGxldGUgKi8K Pj4gwqDCoMKgwqDCoCBrZXhlY191bmxvY2soKTsKPj4gQEAgLTU1Miw4ICs1NDksOCBAQCBzdGF0 aWMgdm9pZCBjcmFzaF9oYW5kbGVfaG90cGx1Z19ldmVudCh1bnNpZ25lZCAKPj4gaW50IGhwX2Fj dGlvbiwgdW5zaWduZWQgaW50IGNwdSwKPj4gwqAgwqDCoMKgwqDCoCBpbWFnZSA9IGtleGVjX2Ny YXNoX2ltYWdlOwo+PiDCoCAtwqDCoMKgIC8qIENoZWNrIHRoYXQgdXBkYXRpbmcgZWxmY29yZWhk ciBpcyBwZXJtaXR0ZWQgKi8KPj4gLcKgwqDCoCBpZiAoIShpbWFnZS0+ZmlsZV9tb2RlIHx8IGlt YWdlLT51cGRhdGVfZWxmY29yZWhkcikpCj4+ICvCoMKgwqAgLyogQ2hlY2sgdGhhdCBrZXhlYyBz ZWdtZW50cyB1cGRhdGUgaXMgcGVybWl0dGVkICovCj4+ICvCoMKgwqAgaWYgKCFpbWFnZS0+aG90 cGx1Z19zdXBwb3J0KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBvdXQ7Cj4+IMKgIMKgwqDC oMKgwqAgaWYgKGhwX2FjdGlvbiA9PSBLRVhFQ19DUkFTSF9IUF9BRERfQ1BVIHx8Cj4+IGRpZmYg LS1naXQgYS9rZXJuZWwva2V4ZWMuYyBiL2tlcm5lbC9rZXhlYy5jCj4+IGluZGV4IGJhYjU0MmZj MTQ2My4uYTZiM2Y5NmJiNTBjIDEwMDY0NAo+PiAtLS0gYS9rZXJuZWwva2V4ZWMuYwo+PiArKysg Yi9rZXJuZWwva2V4ZWMuYwo+PiBAQCAtMTM1LDggKzEzNSw4IEBAIHN0YXRpYyBpbnQgZG9fa2V4 ZWNfbG9hZCh1bnNpZ25lZCBsb25nIGVudHJ5LCAKPj4gdW5zaWduZWQgbG9uZyBucl9zZWdtZW50 cywKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGltYWdlLT5wcmVzZXJ2ZV9jb250ZXh0ID0gMTsKPj4g wqAgwqAgI2lmZGVmIENPTkZJR19DUkFTSF9IT1RQTFVHCj4+IC3CoMKgwqAgaWYgKGZsYWdzICYg S0VYRUNfVVBEQVRFX0VMRkNPUkVIRFIpCj4+IC3CoMKgwqDCoMKgwqDCoCBpbWFnZS0+dXBkYXRl X2VsZmNvcmVoZHIgPSAxOwo+PiArwqDCoMKgIGlmICgoZmxhZ3MgJiBLRVhFQ19PTl9DUkFTSCkg JiYgCj4+IGFyY2hfY3Jhc2hfaG90cGx1Z19zdXBwb3J0KGltYWdlLCBmbGFncykpCj4+ICvCoMKg wqDCoMKgwqDCoCBpbWFnZS0+aG90cGx1Z19zdXBwb3J0ID0gMTsKPj4gwqAgI2VuZGlmCj4+IMKg IMKgwqDCoMKgwqAgcmV0ID0gbWFjaGluZV9rZXhlY19wcmVwYXJlKGltYWdlKTsKPj4gZGlmZiAt LWdpdCBhL2tlcm5lbC9rZXhlY19maWxlLmMgYi9rZXJuZWwva2V4ZWNfZmlsZS5jCj4+IGluZGV4 IDJkMWRiMDVmYmYwNC4uM2Q2NDI5MGQyNGM5IDEwMDY0NAo+PiAtLS0gYS9rZXJuZWwva2V4ZWNf ZmlsZS5jCj4+ICsrKyBiL2tlcm5lbC9rZXhlY19maWxlLmMKPj4gQEAgLTM3Niw2ICszNzYsMTEg QEAgU1lTQ0FMTF9ERUZJTkU1KGtleGVjX2ZpbGVfbG9hZCwgaW50LCBrZXJuZWxfZmQsIAo+PiBp bnQsIGluaXRyZF9mZCwKPj4gwqDCoMKgwqDCoCBpZiAocmV0KQo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgZ290byBvdXQ7Cj4+IMKgICsjaWZkZWYgQ09ORklHX0NSQVNIX0hPVFBMVUcKPj4gK8KgwqDC oCBpZiAoKGZsYWdzICYgS0VYRUNfRklMRV9PTl9DUkFTSCkgJiYgCj4+IGFyY2hfY3Jhc2hfaG90 cGx1Z19zdXBwb3J0KGltYWdlLCBmbGFncykpCj4+ICvCoMKgwqDCoMKgwqDCoCBpbWFnZS0+aG90 cGx1Z19zdXBwb3J0ID0gMTsKPj4gKyNlbmRpZgo+PiArCj4+IMKgwqDCoMKgwqAgcmV0ID0gbWFj aGluZV9rZXhlY19wcmVwYXJlKGltYWdlKTsKPj4gwqDCoMKgwqDCoCBpZiAocmV0KQo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgZ290byBvdXQ7CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18Ka2V4ZWMgbWFpbGluZyBsaXN0CmtleGVjQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXhlYwo= 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.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (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 CAF9FC54E49 for ; Mon, 4 Mar 2024 04:50:25 +0000 (UTC) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=gon1JerS; dkim-atps=neutral Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4Tp5q42Vvlz3d28 for ; Mon, 4 Mar 2024 15:50:24 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=gon1JerS; dkim-atps=neutral Received: from gandalf.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Tp5pC6M6Rz2xPc for ; Mon, 4 Mar 2024 15:49:39 +1100 (AEDT) Received: from gandalf.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4Tp5pB3Rbjz4wxX for ; Mon, 4 Mar 2024 15:49:38 +1100 (AEDT) Received: by gandalf.ozlabs.org (Postfix) id 4Tp5pB3NXHz4wyg; Mon, 4 Mar 2024 15:49:38 +1100 (AEDT) Authentication-Results: gandalf.ozlabs.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: gandalf.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=gon1JerS; dkim-atps=neutral Authentication-Results: gandalf.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=linux.ibm.com (client-ip=148.163.158.5; helo=mx0b-001b2d01.pphosted.com; envelope-from=sourabhjain@linux.ibm.com; receiver=ozlabs.org) Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gandalf.ozlabs.org (Postfix) with ESMTPS id 4Tp5pB047bz4wxX for ; Mon, 4 Mar 2024 15:49:37 +1100 (AEDT) Received: from pps.filterd (m0353722.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 4244HlU7022304; Mon, 4 Mar 2024 04:48:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=szwc1vwIGJwZDKf4O43yMb3nf6qDE5KtpRWDfln2Nuc=; b=gon1JerSxOn0P1kJo5fFLz7YmslMHsMhWm/G31+uX40WcNTtp3iJnsS79Y8r78Ov09Z3 UNMU/um24YyEyKm4mVjPnGzGw9F7pHMBEznKl+3HL+BdzToAXNV2YsEqtZIBni7cHnWR z3wcTEA1y6c8urEQD0rxJgQBJ4iwgw5JSBcaH0aQayrepGF2u8FiF/b7j92uvS3fju1z F4pWaJ6aYG/m2RygWxjZI9Vg1iDo4GUZJLcw4EyPaev/fUNJ3u36LnKpXQwCFAQKbmjk 2G89ioPpgyTbPT5ID0jFMFCWI4WxAIjw4Mgs1nhdatP3qzCMm4TFUu6rUB451hxhVv0x 3A== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3wn751rh7e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Mar 2024 04:48:53 +0000 Received: from m0353722.ppops.net (m0353722.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 4244QR0H008350; Mon, 4 Mar 2024 04:48:52 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3wn751rh77-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Mar 2024 04:48:52 +0000 Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 4242qo2p025399; Mon, 4 Mar 2024 04:48:51 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3wmety6hpq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 04 Mar 2024 04:48:51 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 4244kIj644106220 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 4 Mar 2024 04:46:20 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E559220040; Mon, 4 Mar 2024 04:46:17 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 521E320043; Mon, 4 Mar 2024 04:46:09 +0000 (GMT) Received: from [9.43.79.108] (unknown [9.43.79.108]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 4 Mar 2024 04:46:08 +0000 (GMT) Message-ID: <4b7b1fc3-de44-4d27-94be-18b8f5818cc8@linux.ibm.com> Date: Mon, 4 Mar 2024 10:16:07 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v17 2/6] crash: add a new kexec flag for hotplug support Content-Language: en-US To: Hari Bathini , linuxppc-dev@ozlabs.org References: <6a4c377c-990b-4a09-8974-01855e75dd6b@linux.ibm.com> From: Sourabh Jain In-Reply-To: <6a4c377c-990b-4a09-8974-01855e75dd6b@linux.ibm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: ph5Ke829CKQZLF7VHlUaZYAGoZAj70nF X-Proofpoint-GUID: K-ma4lNTKKnFF8T_NOJG62fP7Qui_nv9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-04_02,2024-03-01_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 adultscore=0 phishscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 impostorscore=0 mlxscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2403040033 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Valentin Schneider , x86@kernel.org, Andrew Morton , Baoquan He , David Hildenbrand , Greg Kroah-Hartman , Dave Hansen , kexec@lists.infradead.org, Naveen N Rao , Mimi Zohar , Mahesh Salgaonkar , "Aneesh Kumar K . V" , Laurent Dufour , Borislav Petkov , Akhil Raj , Boris Ostrovsky , Eric DeVolder , Dave Young , Thomas Gleixner , Vivek Goyal , Oscar Salvador Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" Hello Hari, On 02/03/24 18:47, Hari Bathini wrote: > > > On 26/02/24 2:11 pm, Sourabh Jain wrote: >> Commit a72bbec70da2 ("crash: hotplug support for kexec_load()") >> introduced a new kexec flag, `KEXEC_UPDATE_ELFCOREHDR`. Kexec tool uses >> this flag to indicate to the kernel that it is safe to modify the >> elfcorehdr of the kdump image loaded using the kexec_load system call. >> >> However, it is possible that architectures may need to update kexec >> segments other then elfcorehdr. For example, FDT (Flatten Device Tree) >> on PowerPC. Introducing a new kexec flag for every new kexec segment >> may not be a good solution. Hence, a generic kexec flag bit, >> `KEXEC_CRASH_HOTPLUG_SUPPORT`, is introduced to share the CPU/Memory >> hotplug support intent between the kexec tool and the kernel for the >> kexec_load system call. >> >> Now, if the kexec tool sends KEXEC_CRASH_HOTPLUG_SUPPORT kexec flag to >> the kernel, it indicates to the kernel that all the required kexec >> segment is skipped from SHA calculation and it is safe to update kdump >> image loaded using the kexec_load syscall. >> >> While loading the kdump image using the kexec_load syscall, the >> @update_elfcorehdr member of struct kimage is set if the kexec tool >> sends the KEXEC_UPDATE_ELFCOREHDR kexec flag. This member is later used >> to determine whether it is safe to update elfcorehdr on hotplug events. >> However, with the introduction of the KEXEC_CRASH_HOTPLUG_SUPPORT kexec >> flag, the kexec tool could mark all the required kexec segments on an >> architecture as safe to update. So rename the @update_elfcorehdr to >> @hotplug_support. If @hotplug_support is set, the kernel can safely >> update all the required kexec segments of the kdump image during >> CPU/Memory hotplug events. >> >> Introduce an architecture-specific function to process kexec flags for >> determining hotplug support. Set the @hotplug_support member of struct >> kimage for both kexec_load and kexec_file_load system calls. This >> simplifies kernel checks to identify hotplug support for the currently >> loaded kdump image by just examining the value of @hotplug_support. >> > > Couple of minor nits. See comments below. > Otherwise, looks good to me. > > Acked-by: Hari Bathini Thank you! > >> Signed-off-by: Sourabh Jain >> Cc: Akhil Raj >> Cc: Andrew Morton >> Cc: Aneesh Kumar K.V >> Cc: Baoquan He >> Cc: Borislav Petkov (AMD) >> Cc: Boris Ostrovsky >> Cc: Christophe Leroy >> Cc: Dave Hansen >> Cc: Dave Young >> Cc: David Hildenbrand >> Cc: Eric DeVolder >> Cc: Greg Kroah-Hartman >> Cc: Hari Bathini >> Cc: Laurent Dufour >> Cc: Mahesh Salgaonkar >> Cc: Michael Ellerman >> Cc: Mimi Zohar >> Cc: Naveen N Rao >> Cc: Oscar Salvador >> Cc: Thomas Gleixner >> Cc: Valentin Schneider >> Cc: Vivek Goyal >> Cc: kexec@lists.infradead.org >> Cc: x86@kernel.org >> --- >>   arch/x86/include/asm/kexec.h | 11 ++--------- >>   arch/x86/kernel/crash.c      | 28 +++++++++++++++++----------- >>   drivers/base/cpu.c           |  2 +- >>   drivers/base/memory.c        |  2 +- >>   include/linux/crash_core.h   | 13 ++++++------- >>   include/linux/kexec.h        | 11 +++++++---- >>   include/uapi/linux/kexec.h   |  1 + >>   kernel/crash_core.c          | 11 ++++------- >>   kernel/kexec.c               |  4 ++-- >>   kernel/kexec_file.c          |  5 +++++ >>   10 files changed, 46 insertions(+), 42 deletions(-) >> >> diff --git a/arch/x86/include/asm/kexec.h b/arch/x86/include/asm/kexec.h >> index cb1320ebbc23..ae5482a2f0ca 100644 >> --- a/arch/x86/include/asm/kexec.h >> +++ b/arch/x86/include/asm/kexec.h >> @@ -210,15 +210,8 @@ extern void kdump_nmi_shootdown_cpus(void); >>   void arch_crash_handle_hotplug_event(struct kimage *image, void *arg); >>   #define arch_crash_handle_hotplug_event >> arch_crash_handle_hotplug_event >>   -#ifdef CONFIG_HOTPLUG_CPU >> -int arch_crash_hotplug_cpu_support(void); >> -#define crash_hotplug_cpu_support arch_crash_hotplug_cpu_support >> -#endif >> - >> -#ifdef CONFIG_MEMORY_HOTPLUG >> -int arch_crash_hotplug_memory_support(void); >> -#define crash_hotplug_memory_support arch_crash_hotplug_memory_support >> -#endif >> +int arch_crash_hotplug_support(struct kimage *image, unsigned long >> kexec_flags); >> +#define arch_crash_hotplug_support arch_crash_hotplug_support >>     unsigned int arch_crash_get_elfcorehdr_size(void); >>   #define crash_get_elfcorehdr_size arch_crash_get_elfcorehdr_size >> diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c >> index 2a682fe86352..f06501445cd9 100644 >> --- a/arch/x86/kernel/crash.c >> +++ b/arch/x86/kernel/crash.c >> @@ -402,20 +402,26 @@ int crash_load_segments(struct kimage *image) >>   #undef pr_fmt >>   #define pr_fmt(fmt) "crash hp: " fmt >> > > >> -/* These functions provide the value for the sysfs crash_hotplug >> nodes */ >> -#ifdef CONFIG_HOTPLUG_CPU >> -int arch_crash_hotplug_cpu_support(void) >> +int arch_crash_hotplug_support(struct kimage *image, unsigned long >> kexec_flags) >>   { >> -    return crash_check_update_elfcorehdr(); >> -} >> -#endif >>   -#ifdef CONFIG_MEMORY_HOTPLUG >> -int arch_crash_hotplug_memory_support(void) >> -{ >> -    return crash_check_update_elfcorehdr(); >> -} >> +#ifdef CONFIG_KEXEC_FILE >> +    if (image->file_mode) >> +        return 1; >>   #endif >> +    /* >> +     * Initially, crash hotplug support for kexec_load was added >> +     * with the KEXEC_UPDATE_ELFCOREHDR flag. Later, this >> +     * functionality was expanded to accommodate multiple kexec >> +     * segment updates, leading to the introduction of the >> +     * KEXEC_CRASH_HOTPLUG_SUPPORT kexec flag bit. Consequently, >> +     * when the kexec tool sends either of these flags, it indicates >> +     * that the required kexec segment (elfcorehdr) is excluded from >> +     * the SHA calculation. >> +     */ >> +    return (kexec_flags & KEXEC_UPDATE_ELFCOREHDR || >> +        kexec_flags & KEXEC_CRASH_HOTPLUG_SUPPORT); >> +} > > Introduction of the flag KEXEC_CRASH_HOTPLUG_SUPPORT warranted a bit > of cleanup in x86 code. I think the changelog should call that out too. Sure I will include it in v18. > >>     unsigned int arch_crash_get_elfcorehdr_size(void) >>   { >> diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c >> index 5ae1496ccc06..a23489b8c8f0 100644 >> --- a/drivers/base/cpu.c >> +++ b/drivers/base/cpu.c >> @@ -306,7 +306,7 @@ static ssize_t crash_hotplug_show(struct device >> *dev, >>                        struct device_attribute *attr, >>                        char *buf) >>   { >> -    return sysfs_emit(buf, "%d\n", crash_hotplug_cpu_support()); >> +    return sysfs_emit(buf, "%d\n", crash_check_hotplug_support()); >>   } >>   static DEVICE_ATTR_ADMIN_RO(crash_hotplug); >>   #endif >> diff --git a/drivers/base/memory.c b/drivers/base/memory.c >> index c0436f46cfb7..67858eeb92ed 100644 >> --- a/drivers/base/memory.c >> +++ b/drivers/base/memory.c >> @@ -535,7 +535,7 @@ static DEVICE_ATTR_RW(auto_online_blocks); >>   static ssize_t crash_hotplug_show(struct device *dev, >>                          struct device_attribute *attr, char *buf) >>   { >> -    return sysfs_emit(buf, "%d\n", crash_hotplug_memory_support()); >> +    return sysfs_emit(buf, "%d\n", crash_check_hotplug_support()); >>   } >>   static DEVICE_ATTR_RO(crash_hotplug); >>   #endif >> diff --git a/include/linux/crash_core.h b/include/linux/crash_core.h >> index 647e928efee8..44305336314e 100644 >> --- a/include/linux/crash_core.h >> +++ b/include/linux/crash_core.h >> @@ -40,14 +40,13 @@ static inline void >> arch_kexec_unprotect_crashkres(void) { } >>   static inline void arch_crash_handle_hotplug_event(struct kimage >> *image, void *arg) { } >>   #endif >>   -int crash_check_update_elfcorehdr(void); >> +int crash_check_hotplug_support(void); >>   -#ifndef crash_hotplug_cpu_support >> -static inline int crash_hotplug_cpu_support(void) { return 0; } >> -#endif >> - >> -#ifndef crash_hotplug_memory_support >> -static inline int crash_hotplug_memory_support(void) { return 0; } >> +#ifndef arch_crash_hotplug_support >> +static inline int arch_crash_hotplug_support(struct kimage *image, >> unsigned long kexec_flags) >> +{ >> +    return 0; >> +} >>   #endif >>     #ifndef crash_get_elfcorehdr_size >> diff --git a/include/linux/kexec.h b/include/linux/kexec.h >> index 060835bb82d5..5b93a5767413 100644 >> --- a/include/linux/kexec.h >> +++ b/include/linux/kexec.h >> @@ -319,8 +319,10 @@ struct kimage { >>       /* If set, we are using file mode kexec syscall */ >>       unsigned int file_mode:1; >>   #ifdef CONFIG_CRASH_HOTPLUG >> -    /* If set, allow changes to elfcorehdr of kexec_load'd image */ >> -    unsigned int update_elfcorehdr:1; >> +    /* If set, it is safe to update kexec segments that are >> +     * excluded from SHA calculation. >> +     */ >> +    unsigned int hotplug_support:1; >>   #endif >>     #ifdef ARCH_HAS_KIMAGE_ARCH >> @@ -391,9 +393,10 @@ bool kexec_load_permitted(int kexec_image_type); >>     /* List of defined/legal kexec flags */ >>   #ifndef CONFIG_KEXEC_JUMP >> -#define KEXEC_FLAGS    (KEXEC_ON_CRASH | KEXEC_UPDATE_ELFCOREHDR) >> +#define KEXEC_FLAGS    (KEXEC_ON_CRASH | KEXEC_UPDATE_ELFCOREHDR | >> KEXEC_CRASH_HOTPLUG_SUPPORT) >>   #else >> -#define KEXEC_FLAGS    (KEXEC_ON_CRASH | KEXEC_PRESERVE_CONTEXT | >> KEXEC_UPDATE_ELFCOREHDR) >> +#define KEXEC_FLAGS    (KEXEC_ON_CRASH | KEXEC_PRESERVE_CONTEXT | >> KEXEC_UPDATE_ELFCOREHDR | \ >> +            KEXEC_CRASH_HOTPLUG_SUPPORT) >>   #endif >>     /* List of defined/legal kexec file flags */ >> diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h >> index c17bb096ea68..5ae1741ea8ea 100644 >> --- a/include/uapi/linux/kexec.h >> +++ b/include/uapi/linux/kexec.h >> @@ -13,6 +13,7 @@ >>   #define KEXEC_ON_CRASH        0x00000001 >>   #define KEXEC_PRESERVE_CONTEXT    0x00000002 >>   #define KEXEC_UPDATE_ELFCOREHDR    0x00000004 >> +#define KEXEC_CRASH_HOTPLUG_SUPPORT 0x00000008 >>   #define KEXEC_ARCH_MASK        0xffff0000 >>     /* >> diff --git a/kernel/crash_core.c b/kernel/crash_core.c >> index 70fa8111a9d6..630c4fd7ea39 100644 >> --- a/kernel/crash_core.c >> +++ b/kernel/crash_core.c >> @@ -496,7 +496,7 @@ static DEFINE_MUTEX(__crash_hotplug_lock); >>    * It reflects the kernel's ability/permission to update the crash >>    * elfcorehdr directly. > > Also, this comment needs update as pointed out by Baoquan already. Yes I will update it. Thanks, Sourabh >>    */ >> -int crash_check_update_elfcorehdr(void) >> +int crash_check_hotplug_support(void) >>   { >>       int rc = 0; >>   @@ -508,10 +508,7 @@ int crash_check_update_elfcorehdr(void) >>           return 0; >>       } >>       if (kexec_crash_image) { >> -        if (kexec_crash_image->file_mode) >> -            rc = 1; >> -        else >> -            rc = kexec_crash_image->update_elfcorehdr; >> +        rc = kexec_crash_image->hotplug_support; >>       } >>       /* Release lock now that update complete */ >>       kexec_unlock(); >> @@ -552,8 +549,8 @@ static void crash_handle_hotplug_event(unsigned >> int hp_action, unsigned int cpu, >>         image = kexec_crash_image; >>   -    /* Check that updating elfcorehdr is permitted */ >> -    if (!(image->file_mode || image->update_elfcorehdr)) >> +    /* Check that kexec segments update is permitted */ >> +    if (!image->hotplug_support) >>           goto out; >>         if (hp_action == KEXEC_CRASH_HP_ADD_CPU || >> diff --git a/kernel/kexec.c b/kernel/kexec.c >> index bab542fc1463..a6b3f96bb50c 100644 >> --- a/kernel/kexec.c >> +++ b/kernel/kexec.c >> @@ -135,8 +135,8 @@ static int do_kexec_load(unsigned long entry, >> unsigned long nr_segments, >>           image->preserve_context = 1; >>     #ifdef CONFIG_CRASH_HOTPLUG >> -    if (flags & KEXEC_UPDATE_ELFCOREHDR) >> -        image->update_elfcorehdr = 1; >> +    if ((flags & KEXEC_ON_CRASH) && >> arch_crash_hotplug_support(image, flags)) >> +        image->hotplug_support = 1; >>   #endif >>         ret = machine_kexec_prepare(image); >> diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c >> index 2d1db05fbf04..3d64290d24c9 100644 >> --- a/kernel/kexec_file.c >> +++ b/kernel/kexec_file.c >> @@ -376,6 +376,11 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, >> int, initrd_fd, >>       if (ret) >>           goto out; >>   +#ifdef CONFIG_CRASH_HOTPLUG >> +    if ((flags & KEXEC_FILE_ON_CRASH) && >> arch_crash_hotplug_support(image, flags)) >> +        image->hotplug_support = 1; >> +#endif >> + >>       ret = machine_kexec_prepare(image); >>       if (ret) >>           goto out;