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 167FBCA0FE1 for ; Fri, 30 Aug 2024 11:43:30 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sk02G-0000fm-R4; Fri, 30 Aug 2024 07:43:24 -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 1sk02F-0000dq-5q for grub-devel@gnu.org; Fri, 30 Aug 2024 07:43:23 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sk02C-0001Lh-Rp for grub-devel@gnu.org; Fri, 30 Aug 2024 07:43:22 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 47U73Bun003338; Fri, 30 Aug 2024 11:43:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=pp1; bh=D0XVT7paJ1vF3 LYAaI48iRcToKAgHKhJBuiT91uonkM=; b=JiMDvE4f+lrQ1dVjMzWj5v5kN+/u+ PzN8ubRXf3y6MpEcZNRq7DG70dTU86v8j/8Kyq5GX2RNsPz/I5iTBaEyPK9xQ3I8 wMI2iIxkAgG1txME5gWpjUqFDsdifTp/GJ9FUwlMz2gUQG+H2JCVy4RoPt7Tpdsz Rztw2zILutOQsx97Fy0kQ/rxioTNpzxZhcb6VQsdYpWyobEvOfK68Wr4wh4pBNoN XOiaIBwGW6RoP3yYHTkK4R3/lnVeeG+9tSAQO6ZUI6Rg5cM/Ya+dcwegaS9dKAcf rDX85KxzII7nUvzgqLBQKxa/6k9wVFfAvCZKNPPHmpLt1dsJ/O/UAHz6Q== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 419q8qerf6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 30 Aug 2024 11:43:19 +0000 (GMT) Received: from m0353725.ppops.net (m0353725.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 47UBhJrI011300; Fri, 30 Aug 2024 11:43:19 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 419q8qerf3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 30 Aug 2024 11:43:19 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 47U9FdB5008203; Fri, 30 Aug 2024 11:43:18 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 417v2n37ug-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 30 Aug 2024 11:43:18 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 47UBh9Pe48955890 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Aug 2024 11:43:09 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B578220043; Fri, 30 Aug 2024 11:43:09 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EF2F020040; Fri, 30 Aug 2024 11:43:07 +0000 (GMT) Received: from localhost.localdomain (unknown [9.43.112.141]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Fri, 30 Aug 2024 11:43:07 +0000 (GMT) From: Avnish Chouhan To: grub-devel@gnu.org Cc: daniel.kiper@oracle.com, brking@linux.ibm.com, meghanaprakash@in.ibm.com, mchang@suse.com, phcoder@gmail.com, Avnish Chouhan , Diego Domingos Subject: [PATCH v4 5/5] ieee1275: ofpath enable NVMeoF logical device translate Date: Fri, 30 Aug 2024 17:11:04 +0530 Message-ID: <20240830114104.32234-6-avnish@linux.ibm.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240830114104.32234-1-avnish@linux.ibm.com> References: <20240830114104.32234-1-avnish@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: Xi23G2ZJhCWAp4vSpHQqEp9mOFlqERKb X-Proofpoint-ORIG-GUID: cBGme5f3I-gYpPNn8vs50zwxiGn6eyJc X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-08-30_06,2024-08-30_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 lowpriorityscore=0 impostorscore=0 suspectscore=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 phishscore=0 mlxlogscore=714 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2407110000 definitions=main-2408300087 Received-SPF: pass client-ip=148.163.158.5; envelope-from=avnish@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org VGhpcyBwYXRjaCBhZGRzIGNvZGUgdG8gZW5hYmxlIHRoZSB0cmFuc2xhdGlvbiBvZiBsb2dpY2Fs IGRldmljZXMgdG8gdGhlIG9mIE5WTWVvRkMgcGF0aHMuCgpTaWduZWQtb2ZmLWJ5OiBEaWVnbyBE b21pbmdvcyA8ZGllZ29kb0Bici5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBBdm5pc2ggQ2hvdWhh biA8YXZuaXNoQGxpbnV4LmlibS5jb20+Ci0tLQogZ3J1Yi1jb3JlL29zZGVwL2xpbnV4L29mcGF0 aC5jIHwgMzcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0KIGluY2x1ZGUvZ3J1Yi91dGlsL29mcGF0aC5oICAgICB8IDI4ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzkwIGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL29zZGVwL2xpbnV4L29mcGF0aC5j IGIvZ3J1Yi1jb3JlL29zZGVwL2xpbnV4L29mcGF0aC5jCmluZGV4IDBmNWQ1NGUuLmYwZTdkY2Mg MTAwNjQ0Ci0tLSBhL2dydWItY29yZS9vc2RlcC9saW51eC9vZnBhdGguYworKysgYi9ncnViLWNv cmUvb3NkZXAvbGludXgvb2ZwYXRoLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxmY250 bC5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxk aXJlbnQuaD4KIAogI2lmZGVmIF9fc3BhcmNfXwogdHlwZWRlZiBlbnVtCkBAIC0xMzYsNyArMTM3 LDcgQEAgdHJpbV9uZXdsaW5lIChjaGFyICpwYXRoKQogICAgICplbmQtLSA9ICdcMCc7CiB9CiAK LSNkZWZpbmUgTUFYX0RJU0tfQ0FUICAgIDY0CisjZGVmaW5lIE1BWF9ESVNLX0NBVCAgICA1MTIK IAogc3RhdGljIGNoYXIgKgogZmluZF9vYnBwYXRoIChjb25zdCBjaGFyICpzeXNmc19wYXRoX29y aWcpCkBAIC0zMTIsNiArMzEzLDkxIEBAIGdldF9iYXNlbmFtZShjaGFyICpwKQogICByZXR1cm4g cmV0OwogfQogCitpbnQKK2FkZF9maWxlbmFtZV90b19waWxlIChjaGFyICpmaWxlbmFtZSwgc3Ry dWN0IG9mcGF0aF9maWxlc19saXN0X3Jvb3QqIHJvb3QpCit7CisgIHN0cnVjdCBvZnBhdGhfZmls ZXNfbGlzdF9ub2RlKiBmaWxlOworCisgIGZpbGUgPSBtYWxsb2MgKHNpemVvZiAoc3RydWN0IG9m cGF0aF9maWxlc19saXN0X25vZGUpKTsKKyAgaWYgKCFmaWxlKQorICAgIHJldHVybiAtMTsKKwor ICBmaWxlLT5maWxlbmFtZSA9IG1hbGxvYyAoc2l6ZW9mIChjaGFyKSAqIDEwMjQpOworICBpZiAo IWZpbGUtPmZpbGVuYW1lKQorICAgIHsKKyAgICAgIGZyZWUgKGZpbGUpOworICAgICAgcmV0dXJu IC0xOworICAgIH0KKworICBncnViX3N0cmNweSAoZmlsZS0+ZmlsZW5hbWUsIGZpbGVuYW1lKTsK KyAgaWYgKHJvb3QtPmZpcnN0ID09IE5VTEwpCisgICAgeworICAgICAgcm9vdC0+aXRlbXMgPSAx OworICAgICAgcm9vdC0+Zmlyc3QgPSBmaWxlOworICAgICAgZmlsZS0+bmV4dCA9IE5VTEw7Cisg ICAgfQorICBlbHNlCisgICAgeworICAgICAgcm9vdC0+aXRlbXMrKzsKKyAgICAgIGZpbGUtPm5l eHQgPSByb290LT5maXJzdDsKKyAgICAgIHJvb3QtPmZpcnN0ID0gZmlsZTsKKyAgICB9CisKKyAg cmV0dXJuIDA7Cit9CisKK3ZvaWQKK2ZpbmRfZmlsZSAoY2hhciogZmlsZW5hbWUsIGNoYXIqIGRp cmVjdG9yeSwgc3RydWN0IG9mcGF0aF9maWxlc19saXN0X3Jvb3QqIHJvb3QsIGludCBtYXhfZGVw dGgsIGludCBkZXB0aCkKK3sKKyAgc3RydWN0IGRpcmVudCAqZXA7CisgIHN0cnVjdCBzdGF0IHN0 YXRidWY7CisgIERJUiAqZHA7CisgIGludCByZXRfdmFsPTA7CisgIGNoYXIqIGZ1bGxfcGF0aDsK KworICBpZiAoZGVwdGggPiBtYXhfZGVwdGgpCisgICAgeworICAgICAgcmV0dXJuOworICAgIH0K KworICBpZiAoKGRwID0gb3BlbmRpciAoZGlyZWN0b3J5KSkgPT0gTlVMTCkKKyAgICB7CisgICAg ICByZXR1cm47CisgICAgfQorCisgIGZ1bGxfcGF0aCA9IG1hbGxvYyAoMTAyNCAqIHNpemVvZiAo Y2hhcikpOworICBpZiAoIWZ1bGxfcGF0aCkKKyAgICByZXR1cm47CisKKyAgd2hpbGUgKChlcCA9 IHJlYWRkaXIoZHApKSAhPSBOVUxMKQorICAgIHsKKyAgICAgIHNucHJpbnRmIChmdWxsX3BhdGgs IDEwMjQsICIlcy8lcyIsIGRpcmVjdG9yeSwgZXAtPmRfbmFtZSk7CisgICAgICBsc3RhdCAoZnVs bF9wYXRoLCAmc3RhdGJ1Zik7CisKKyAgICAgIGlmIChTX0lTTE5LIChzdGF0YnVmLnN0X21vZGUp KQorICAgICAgICB7CisgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgaWYg KCFzdHJjbXAgKGVwLT5kX25hbWUsICIuIikgfHwgIXN0cmNtcChlcC0+ZF9uYW1lLCAiLi4iKSkK KyAgICAgICAgeworICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgIGlmICgh c3RyY21wIChlcC0+ZF9uYW1lLCBmaWxlbmFtZSkpCisgICAgICAgIHsKKyAgICAgICAgICByZXRf dmFsID0gYWRkX2ZpbGVuYW1lX3RvX3BpbGUgKGZ1bGxfcGF0aCwgcm9vdCk7CisgICAgICAgICAg aWYgKHJldF92YWwgPT0gLTEpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisg ICAgICBmaW5kX2ZpbGUgKGZpbGVuYW1lLCBmdWxsX3BhdGgsIHJvb3QsIG1heF9kZXB0aCwgZGVw dGgrMSk7CisgICAgfQorCisgIGZyZWUgKGZ1bGxfcGF0aCk7CisgIGNsb3NlZGlyIChkcCk7Cit9 CisKIHN0YXRpYyBjaGFyICoKIG9mX3BhdGhfb2ZfdmRpc2soY29uc3QgY2hhciAqc3lzX2Rldm5h bWUgX19hdHRyaWJ1dGVfXygodW51c2VkKSksCiAJCSBjb25zdCBjaGFyICpkZXZpY2UsCkBAIC0z ODIsNyArNDY4LDIwMCBAQCBvZl9mY19wb3J0X25hbWUgKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0 IGNoYXIgKnN1YnBhdGgsIGNoYXIgKnBvcnRfbmFtZSkKICAgZnJlZSAoYmFzZXBhdGgpOwogfQog Ci0jaWZkZWYgX19zcGFyY19fCit2b2lkCitmcmVlX29mcGF0aF9maWxlc19saXN0IChzdHJ1Y3Qg b2ZwYXRoX2ZpbGVzX2xpc3Rfcm9vdCogcm9vdCkKK3sKKyAgc3RydWN0IG9mcGF0aF9maWxlc19s aXN0X25vZGUqIG5vZGUgPSByb290LT5maXJzdDsKKyAgc3RydWN0IG9mcGF0aF9maWxlc19saXN0 X25vZGUqIG5leHQ7CisKKyAgd2hpbGUgKG5vZGUhPU5VTEwpCisgICAgeworICAgICAgbmV4dCA9 IG5vZGUtPm5leHQ7CisgICAgICBmcmVlIChub2RlLT5maWxlbmFtZSk7CisgICAgICBmcmVlIChu b2RlKTsKKyAgICAgIG5vZGUgPSBuZXh0OworICAgIH0KKworICBmcmVlIChyb290KTsKKyAgcmV0 dXJuOworfQorCitjaGFyKgorb2ZfZmluZF9mY19ob3N0IChjaGFyKiBob3N0X3d3cG4pCit7Cisg IEZJTEUqIGZwOworICBjaGFyICpidWY7CisgIGNoYXIgKnJldF92YWw7CisgIGNoYXIgcG9ydG5h bWVfZmlsZW5hbWVbc2l6ZW9mICgicG9ydF9uYW1lIildID0gInBvcnRfbmFtZSI7CisgIGNoYXIg ZGV2aWNlc19wYXRoW3NpemVvZiAoIi9zeXMvZGV2aWNlcyIpXSA9ICIvc3lzL2RldmljZXMiOwor ICBzdHJ1Y3Qgb2ZwYXRoX2ZpbGVzX2xpc3Rfcm9vdCogcG9ydG5hbWVzX2ZpbGVfbGlzdDsKKyAg c3RydWN0IG9mcGF0aF9maWxlc19saXN0X25vZGUqIG5vZGU7CisKKyAgcmV0X3ZhbCA9IG1hbGxv YyAoc2l6ZW9mIChjaGFyKSAqIDEwMjQpOworICBpZiAoIXJldF92YWwpCisgICAgcmV0dXJuIE5V TEw7CisKKyAgcG9ydG5hbWVzX2ZpbGVfbGlzdCA9IG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3Qgb2Zw YXRoX2ZpbGVzX2xpc3Rfcm9vdCkpOworICBpZiAoIXBvcnRuYW1lc19maWxlX2xpc3QpCisgICAg eworICAgICAgZnJlZSAocmV0X3ZhbCk7CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAg cG9ydG5hbWVzX2ZpbGVfbGlzdC0+aXRlbXMgPSAwOworICBwb3J0bmFtZXNfZmlsZV9saXN0LT5m aXJzdCA9IE5VTEw7CisgIGZpbmRfZmlsZSAocG9ydG5hbWVfZmlsZW5hbWUsIGRldmljZXNfcGF0 aCwgcG9ydG5hbWVzX2ZpbGVfbGlzdCwgMTAsIDApOworICBub2RlID0gcG9ydG5hbWVzX2ZpbGVf bGlzdC0+Zmlyc3Q7CisKKyAgd2hpbGUgKG5vZGUgIT0gTlVMTCkKKyAgICB7CisgICAgICBmcCA9 IGZvcGVuKG5vZGUtPmZpbGVuYW1lLCAiciIpOworICAgICAgYnVmID0gbWFsbG9jIChzaXplb2Yg KGNoYXIpICogNTEyKTsKKyAgICAgIGlmICghYnVmKQorICAgICAgICBicmVhazsKKworICAgICAg ZnNjYW5mIChmcCwgIiVzIiwgYnVmKTsKKyAgICAgIGZjbG9zZSAoZnApOworCisgICAgICBpZiAo KHN0cmNtcCAoYnVmLCBob3N0X3d3cG4pID09IDApICYmIGdydWJfc3Ryc3RyIChub2RlLT5maWxl bmFtZSwgImZjX2hvc3QiKSkKKyAgICAgICAgeworICAgICAgICAgIGZyZWUgKGJ1Zik7CisgICAg ICAgICAgZ3J1Yl9zdHJjcHkgKHJldF92YWwsIG5vZGUtPmZpbGVuYW1lKTsKKyAgICAgICAgICBm cmVlX29mcGF0aF9maWxlc19saXN0IChwb3J0bmFtZXNfZmlsZV9saXN0KTsKKyAgICAgICAgICBy ZXR1cm4gcmV0X3ZhbDsKKyAgICAgICAgfQorCisgICAgICBub2RlID0gbm9kZS0+bmV4dDsKKyAg ICAgIGZyZWUgKGJ1Zik7CisgICAgfQorICBmcmVlX29mcGF0aF9maWxlc19saXN0IChwb3J0bmFt ZXNfZmlsZV9saXN0KTsKKyAgZnJlZSAocmV0X3ZhbCk7CisgIHJldHVybiBOVUxMOworfQorCitp bnQKK29mX3BhdGhfZ2V0X252bWVvZl9hZGFwdGVyX2luZm8gKGNoYXIqIHN5c2ZzX3BhdGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgb2ZwYXRoX252bWVvZl9pbmZv KiBudm1lb2ZfaW5mbykKK3sKKyAgRklMRSAqZnA7CisgIGNoYXIgKmJ1ZiwgKmJ1ZjIsICpidWYz OworCisgIG52bWVvZl9pbmZvLT5ob3N0X3d3cG4gPSBtYWxsb2MgKHNpemVvZiAoY2hhcikgKiAy NTYpOworICBudm1lb2ZfaW5mby0+dGFyZ2V0X3d3cG4gPSBtYWxsb2MgKHNpemVvZiAoY2hhcikg KiAyNTYpOworICBudm1lb2ZfaW5mby0+bnFuID0gbWFsbG9jIChzaXplb2YgKGNoYXIpICogMjU2 KTsKKworICBpZiAobnZtZW9mX2luZm8tPmhvc3Rfd3dwbiA9PSBOVUxMIHx8IG52bWVvZl9pbmZv LT50YXJnZXRfd3dwbiA9PSBOVUxMIHx8IG52bWVvZl9pbmZvLT5ucW4gPT0gTlVMTCkKKyAgICB7 CisgICAgICBmcmVlIChudm1lb2ZfaW5mby0+aG9zdF93d3BuKTsKKyAgICAgIGZyZWUgKG52bWVv Zl9pbmZvLT50YXJnZXRfd3dwbik7CisgICAgICBmcmVlIChudm1lb2ZfaW5mby0+bnFuKTsKKyAg ICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgYnVmID0gbWFsbG9jIChzaXplb2YgKGNoYXIpICog NTEyKTsKKyAgaWYgKCFidWYpCisgICAgeworICAgICAgZnJlZSAobnZtZW9mX2luZm8tPmhvc3Rf d3dwbik7CisgICAgICBmcmVlIChudm1lb2ZfaW5mby0+dGFyZ2V0X3d3cG4pOworICAgICAgZnJl ZSAobnZtZW9mX2luZm8tPm5xbik7CisgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgIHNucHJp bnRmIChidWYsIDUxMiwgIiVzL3N1YnN5c25xbiIsIHN5c2ZzX3BhdGgpOworICBmcCA9IGZvcGVu IChidWYsICJyIik7CisgIGZzY2FuZiAoZnAsICIlcyIsIG52bWVvZl9pbmZvLT5ucW4pOworICBm Y2xvc2UgKGZwKTsKKworICBzbnByaW50ZiAoYnVmLCA1MTIsICIlcy9jbnRsaWQiLCBzeXNmc19w YXRoKTsKKyAgZnAgPSBmb3BlbiAoYnVmLCAiciIpOworICBmc2NhbmYgKGZwLCAiJXUiLCAmKG52 bWVvZl9pbmZvLT5jbnRsaWQpKTsKKyAgZmNsb3NlIChmcCk7CisKKyAgc25wcmludGYgKGJ1Ziwg NTEyLCAiJXMvYWRkcmVzcyIsIHN5c2ZzX3BhdGgpOworICBmcCA9IGZvcGVuIChidWYsICJyIik7 CisgIGJ1ZjIgPSBtYWxsb2MgKHNpemVvZiAoY2hhcikgKiA1MTIpOworCisgIGlmICghYnVmMikK KyAgICB7CisgICAgICBmcmVlIChudm1lb2ZfaW5mby0+aG9zdF93d3BuKTsKKyAgICAgIGZyZWUg KG52bWVvZl9pbmZvLT50YXJnZXRfd3dwbik7CisgICAgICBmcmVlIChudm1lb2ZfaW5mby0+bnFu KTsKKyAgICAgIGZyZWUgKGJ1Zik7CisgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgIGZzY2Fu ZiAoZnAsICIlcyIsIGJ1ZjIpOworICBmY2xvc2UgKGZwKTsKKworICBidWYzID0gc3RycmNociAo YnVmMiwgJy0nKSArIDE7CisgIGdydWJfbWVtY3B5IChudm1lb2ZfaW5mby0+aG9zdF93d3BuLCBi dWYzLCAyNTYpOworICBidWYzPXN0cmNociAoYnVmMiwgJy0nKSArIDE7CisgIGJ1ZjM9c3RyY2hy IChidWYzLCAnLScpICsgMTsKKyAgYnVmMz1zdHJjaHIgKGJ1ZjMsICd4JykgKyAxOworICBncnVi X21lbWNweSAobnZtZW9mX2luZm8tPnRhcmdldF93d3BuLCBidWYzLCAyNTYpOworICBidWYzID0g c3RyY2hyIChudm1lb2ZfaW5mby0+dGFyZ2V0X3d3cG4sICcsJyk7CisgICpidWYzID0gJ1wwJzsK KyAgZnJlZSAoYnVmKTsKKyAgZnJlZSAoYnVmMik7CisgIHJldHVybiAwOworfQorCisjZGVmaW5l IE1BWF9OVk1FX05TSURfRElHSVRTIDYKKworc3RhdGljIGNoYXIgKgorb2ZfcGF0aF9nZXRfbnZt ZV9jb250cm9sbGVyX25hbWVfbm9kZSAoY29uc3QgY2hhciogZGV2bmFtZSkKK3sKKyAgY2hhciAq Y29udHJvbGxlcl9ub2RlLCAqZW5kOworCisgIGNvbnRyb2xsZXJfbm9kZSA9IHN0cmR1cCAoZGV2 bmFtZSk7CisgIGVuZCA9IGdydWJfc3RyY2hyIChjb250cm9sbGVyX25vZGUgKyAxLCAnbicpOwor ICBpZiAoZW5kICE9IE5VTEwpCisgICAgeworICAgICAgKmVuZCA9ICdcMCc7CisgICAgfQorCisg IHJldHVybiBjb250cm9sbGVyX25vZGU7Cit9CisKK3Vuc2lnbmVkIGludAorb2ZfcGF0aF9nZXRf bnZtZV9uc2lkIChjb25zdCBjaGFyKiBkZXZuYW1lKQoreworICB1bnNpZ25lZCBpbnQgbnNpZDsK KyAgY2hhciAqc3lzZnNfcGF0aCwgKmJ1ZjsKKyAgRklMRSAqZnA7CisKKyAgYnVmID0gbWFsbG9j IChzaXplb2YoY2hhcikgKiA1MTIpOworICBpZiAoIWJ1ZikKKyAgICByZXR1cm4gMDsKKworICBz eXNmc19wYXRoID0gYmxvY2tfZGV2aWNlX2dldF9zeXNmc19wYXRoX2FuZF9saW5rIChkZXZuYW1l KTsKKyAgc25wcmludGYgKGJ1ZiwgNTEyLCAiJXMvJXMvbnNpZCIsIHN5c2ZzX3BhdGgsIGRldm5h bWUpOworICBmcCA9IGZvcGVuKGJ1ZiwgInIiKTsKKyAgZnNjYW5mIChmcCwgIiV1IiwgJihuc2lk KSk7CisgIGZjbG9zZSAoZnApOworCisgIGZyZWUgKHN5c2ZzX3BhdGgpOworICBmcmVlIChidWYp OworICByZXR1cm4gbnNpZDsKK30KKworc3RhdGljIGNoYXIgKgorbnZtZV9nZXRfc3lzcGF0aCAo Y29uc3QgY2hhciAqbnZtZWRldikKK3sKKyAgY2hhciAqc3lzZnNfcGF0aCwgKmNvbnRyb2xsZXJf bm9kZTsKKworICBzeXNmc19wYXRoID0gYmxvY2tfZGV2aWNlX2dldF9zeXNmc19wYXRoX2FuZF9s aW5rIChudm1lZGV2KTsKKyAgaWYgKHN0cnN0ciAoc3lzZnNfcGF0aCwgIm52bWUtc3Vic3lzdGVt IikpCisgICAgeworICAgICAgY29udHJvbGxlcl9ub2RlID0gb2ZfcGF0aF9nZXRfbnZtZV9jb250 cm9sbGVyX25hbWVfbm9kZSAobnZtZWRldik7CisgICAgICBzdHJjYXQgKHN5c2ZzX3BhdGgsICIv Iik7CisgICAgICBzdHJjYXQgKHN5c2ZzX3BhdGgsIGNvbnRyb2xsZXJfbm9kZSk7CisgICAgICBz eXNmc19wYXRoID0geHJlYWxwYXRoIChzeXNmc19wYXRoKTsKKyAgICB9CisKKyAgcmV0dXJuIHN5 c2ZzX3BhdGg7Cit9CisKIHN0YXRpYyBjaGFyICoKIG9mX3BhdGhfb2ZfbnZtZShjb25zdCBjaGFy ICpzeXNfZGV2bmFtZSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwKIAkgICAgICAgIGNvbnN0IGNo YXIgKmRldmljZSwKQEAgLTM5MSw2ICs2NzAsOCBAQCBvZl9wYXRoX29mX252bWUoY29uc3QgY2hh ciAqc3lzX2Rldm5hbWUgX19hdHRyaWJ1dGVfXygodW51c2VkKSksCiB7CiAgIGNoYXIgKnN5c2Zz X3BhdGgsICpvZl9wYXRoLCBkaXNrW01BWF9ESVNLX0NBVF07CiAgIGNvbnN0IGNoYXIgKmRpZ2l0 X3N0cmluZywgKnBhcnRfZW5kOworICBpbnQgY2hhcnNfd3JpdHRlbiwgcmV0X3ZhbDsKKyAgc3Ry dWN0IG9mcGF0aF9udm1lb2ZfaW5mbyogbnZtZW9mX2luZm87CiAKICAgZGlnaXRfc3RyaW5nID0g dHJhaWxpbmdfZGlnaXRzIChkZXZpY2UpOwogICBwYXJ0X2VuZCA9IGRldmljZW5vZGUgKyBzdHJs ZW4gKGRldmljZW5vZGUpIC0gMTsKQEAgLTQxMCwxNSArNjkxLDkwIEBAIG9mX3BhdGhfb2ZfbnZt ZShjb25zdCBjaGFyICpzeXNfZGV2bmFtZSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwKICAgICAg IC8qIFJlbW92ZSB0aGUgcC4gKi8KICAgICAgICplbmQgPSAnXDAnOwogICAgICAgc3NjYW5mIChk aWdpdF9zdHJpbmcsICIlZCIsICZwYXJ0KTsKLSAgICAgIHNucHJpbnRmIChkaXNrLCBzaXplb2Yg KGRpc2spLCAiL2Rpc2tAMTolYyIsICdhJyArIChwYXJ0IC0gMSkpOwotICAgICAgc3lzZnNfcGF0 aCA9IGJsb2NrX2RldmljZV9nZXRfc3lzZnNfcGF0aF9hbmRfbGluayAobnZtZWRldik7CisgICAg ICBzeXNmc19wYXRoID0gbnZtZV9nZXRfc3lzcGF0aCAobnZtZWRldik7CisKKyAgICAgIC8qIElm IGlzIGEgTlZNZW9GICovCisgICAgICBpZiAoc3Ryc3RyIChzeXNmc19wYXRoLCAibnZtZS1mYWJy aWNzIikpCisgICAgICAgIHsKKyAgICAgICAgICBudm1lb2ZfaW5mbyA9IG1hbGxvYyAoc2l6ZW9m IChzdHJ1Y3Qgb2ZwYXRoX252bWVvZl9pbmZvKSk7CisgICAgICAgICAgaWYgKCFudm1lb2ZfaW5m bykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgZnJlZSAobnZtZWRldik7CisgICAgICAg ICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorCisgICAgICAgICAgcmV0X3ZhbCA9 IG9mX3BhdGhfZ2V0X252bWVvZl9hZGFwdGVyX2luZm8gKHN5c2ZzX3BhdGgsIG52bWVvZl9pbmZv KTsKKyAgICAgICAgICBpZiAocmV0X3ZhbCA9PSAtMSkKKyAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgZnJlZSAobnZtZWRldik7CisgICAgICAgICAgICAgIGZyZWUgKG52bWVvZl9pbmZvKTsK KyAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICBz eXNmc19wYXRoID0gb2ZfZmluZF9mY19ob3N0IChudm1lb2ZfaW5mby0+aG9zdF93d3BuKTsKKyAg ICAgICAgICBpZiAoIXN5c2ZzX3BhdGgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGZy ZWUgKG52bWVkZXYpOworICAgICAgICAgICAgICBmcmVlIChudm1lb2ZfaW5mbyk7CisgICAgICAg ICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorCisgICAgICAgICAgY2hhcnNfd3Jp dHRlbiA9IHNucHJpbnRmIChkaXNrLHNpemVvZihkaXNrKSwgIi9udm1lLW9mL2NvbnRyb2xsZXJA JXMsJXg6bnFuPSVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG52bWVv Zl9pbmZvLT50YXJnZXRfd3dwbiwweGZmZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBudm1lb2ZfaW5mby0+bnFuKTsKKyAgICAgICAgICB1bnNpZ25lZCBpbnQgbnNpZCA9 IG9mX3BhdGhfZ2V0X252bWVfbnNpZCAobnZtZWRldik7CisgICAgICAgICAgaWYgKG5zaWQpCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgIHNucHJpbnRmIChkaXNrK2NoYXJzX3dyaXR0ZW4s IHNpemVvZigiL25hbWVzcGFjZUAiKSArIE1BWF9OVk1FX05TSURfRElHSVRTLAorICAgICAgICAg ICAgICAgICAgICAgICAgIi9uYW1lc3BhY2VAJXg6JWQiLCBuc2lkLCBwYXJ0KTsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICBmcmVlIChudm1lb2ZfaW5mbyk7CisgICAgICAgIH0KKyAgICAgIGVs c2UKKyAgICAgICAgeworICAgICAgICAgIHNucHJpbnRmIChkaXNrLCBzaXplb2YgKGRpc2spLCAi L2Rpc2tAMTolYyIsICdhJyArIChwYXJ0IC0gMSkpOworICAgICAgICB9CiAgICAgICBmcmVlIChu dm1lZGV2KTsKICAgICB9CiAgIGVsc2UKICAgICB7CiAgICAgICAvKiBXZSBkbyBub3QgaGF2ZSB0 aGUgcGFyaXRpb24uICovCi0gICAgICBzbnByaW50ZiAoZGlzaywgc2l6ZW9mIChkaXNrKSwgIi9k aXNrQDEiKTsKLSAgICAgIHN5c2ZzX3BhdGggPSBibG9ja19kZXZpY2VfZ2V0X3N5c2ZzX3BhdGhf YW5kX2xpbmsgKGRldmljZSk7CisgICAgICBzeXNmc19wYXRoID0gbnZtZV9nZXRfc3lzcGF0aCAo ZGV2aWNlKTsKKyAgICAgIGlmIChzdHJzdHIgKHN5c2ZzX3BhdGgsICJudm1lLWZhYnJpY3MiKSkK KyAgICAgICAgeworICAgICAgICAgIG52bWVvZl9pbmZvID0gbWFsbG9jIChzaXplb2YgKHN0cnVj dCBvZnBhdGhfbnZtZW9mX2luZm8pKTsKKyAgICAgICAgICBpZiAoIW52bWVvZl9pbmZvKQorICAg ICAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAgICAgICByZXRfdmFsID0gb2ZfcGF0aF9nZXRf bnZtZW9mX2FkYXB0ZXJfaW5mbyAoc3lzZnNfcGF0aCwgbnZtZW9mX2luZm8pOworICAgICAgICAg IGlmIChyZXRfdmFsID09IC0xKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBmcmVlIChu dm1lb2ZfaW5mbyk7CisgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQor CisgICAgICAgICAgc3lzZnNfcGF0aCA9IG9mX2ZpbmRfZmNfaG9zdCAobnZtZW9mX2luZm8tPmhv c3Rfd3dwbik7CisgICAgICAgICAgaWYgKCFzeXNmc19wYXRoKQorICAgICAgICAgICAgeworICAg ICAgICAgICAgICBmcmVlIChudm1lb2ZfaW5mbyk7CisgICAgICAgICAgICAgIHJldHVybiBOVUxM OworICAgICAgICAgICAgfQorCisgICAgICAgICAgY2hhcnNfd3JpdHRlbiA9IHNucHJpbnRmIChk aXNrLHNpemVvZihkaXNrKSwgIi9udm1lLW9mL2NvbnRyb2xsZXJAJXMsJXg6bnFuPSVzIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG52bWVvZl9pbmZvLT50YXJnZXRfd3dw biwgMHhmZmZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnZtZW9mX2lu Zm8tPm5xbik7CisgICAgICAgICAgdW5zaWduZWQgaW50IG5zaWQgPSBvZl9wYXRoX2dldF9udm1l X25zaWQgKGRldmljZSk7CisgICAgICAgICAgaWYgKG5zaWQpCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgIHNucHJpbnRmIChkaXNrK2NoYXJzX3dyaXR0ZW4sc2l6ZW9mKCIvbmFtZXNwYWNl QCIpICsgc2l6ZW9mKGNoYXIpICogTUFYX05WTUVfTlNJRF9ESUdJVFMsCisgICAgICAgICAgICAg ICAgICAgICAgICAiL25hbWVzcGFjZUAleCIsIG5zaWQpOworICAgICAgICAgICAgfQorICAgICAg ICAgIGZyZWUgKG52bWVvZl9pbmZvKTsKKyAgICAgICAgfQorICAgICAgZWxzZQorICAgICAgICB7 CisgICAgICAgICAgc25wcmludGYgKGRpc2ssIHNpemVvZiAoZGlzayksICIvZGlza0AxIik7Cisg ICAgICAgIH0KICAgICB9CiAKICAgb2ZfcGF0aCA9IGZpbmRfb2JwcGF0aCAoc3lzZnNfcGF0aCk7 CkBAIC00MjksNyArNzg1LDYgQEAgb2ZfcGF0aF9vZl9udm1lKGNvbnN0IGNoYXIgKnN5c19kZXZu YW1lIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLAogICBmcmVlIChzeXNmc19wYXRoKTsKICAgcmV0 dXJuIG9mX3BhdGg7CiB9Ci0jZW5kaWYKIAogc3RhdGljIGludAogdmVuZG9yX2lzX0FUQShjb25z dCBjaGFyICpwYXRoKQpAQCAtNzc5LDExICsxMTM0LDkgQEAgZ3J1Yl91dGlsX2Rldm5hbWVfdG9f b2ZwYXRoIChjb25zdCBjaGFyICpzeXNfZGV2bmFtZSkKICAgICAvKiBBbGwgdGhlIG1vZGVscyBJ J3ZlIHNlZW4gaGF2ZSBhIGRldmFsaWFzICJmbG9wcHkiLgogICAgICAgIE5ldyBtb2RlbHMgaGF2 ZSBubyBmbG9wcHkgYXQgYWxsLiAqLwogICAgIG9mcGF0aCA9IHhzdHJkdXAgKCJmbG9wcHkiKTsK LSNpZmRlZiBfX3NwYXJjX18KICAgZWxzZSBpZiAoZGV2aWNlWzBdID09ICduJyAmJiBkZXZpY2Vb MV0gPT0gJ3YnICYmIGRldmljZVsyXSA9PSAnbScKICAgICAgICAgICAgJiYgZGV2aWNlWzNdID09 ICdlJykKICAgICBvZnBhdGggPSBvZl9wYXRoX29mX252bWUgKG5hbWVfYnVmLCBkZXZpY2UsIGRl dm5vZGUsIGRldmljZW5vZGUpOwotI2VuZGlmCiAgIGVsc2UKICAgICB7CiAgICAgICBncnViX3V0 aWxfd2FybiAoXygidW5rbm93biBkZXZpY2UgdHlwZSAlcyIpLCBkZXZpY2UpOwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9ncnViL3V0aWwvb2ZwYXRoLmggYi9pbmNsdWRlL2dydWIvdXRpbC9vZnBhdGgu aAppbmRleCBiNDNjNTIzLi44NTE3MmJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvdXRpbC9v ZnBhdGguaAorKysgYi9pbmNsdWRlL2dydWIvdXRpbC9vZnBhdGguaApAQCAtMyw0ICszLDMyIEBA CiAKIGNoYXIgKmdydWJfdXRpbF9kZXZuYW1lX3RvX29mcGF0aCAoY29uc3QgY2hhciAqZGV2bmFt ZSk7CiAKK3N0cnVjdCBvZnBhdGhfZmlsZXNfbGlzdF9ub2RlCit7CisgIGNoYXIqIGZpbGVuYW1l OworICBzdHJ1Y3Qgb2ZwYXRoX2ZpbGVzX2xpc3Rfbm9kZSogbmV4dDsKK307CisKK3N0cnVjdCBv ZnBhdGhfZmlsZXNfbGlzdF9yb290Cit7CisgIGludCBpdGVtczsKKyAgc3RydWN0IG9mcGF0aF9m aWxlc19saXN0X25vZGUqIGZpcnN0OworfTsKKworc3RydWN0IG9mcGF0aF9udm1lb2ZfaW5mbwor eworICBjaGFyKiBob3N0X3d3cG47CisgIGNoYXIqIHRhcmdldF93d3BuOworICBjaGFyKiBucW47 CisgIGludCBjbnRsaWQ7CisgIGludCBuc2lkOworfTsKKworaW50IG9mX3BhdGhfZ2V0X252bWVv Zl9hZGFwdGVyX2luZm8gKGNoYXIqIHN5c2ZzX3BhdGgsIHN0cnVjdCBvZnBhdGhfbnZtZW9mX2lu Zm8qIG52bWVvZl9pbmZvKTsKK3Vuc2lnbmVkIGludCBvZl9wYXRoX2dldF9udm1lX25zaWQgKGNv bnN0IGNoYXIqIGRldm5hbWUpOworaW50IGFkZF9maWxlbmFtZV90b19waWxlIChjaGFyICpmaWxl bmFtZSwgc3RydWN0IG9mcGF0aF9maWxlc19saXN0X3Jvb3QqIHJvb3QpOwordm9pZCBmaW5kX2Zp bGUgKGNoYXIqIGZpbGVuYW1lLCBjaGFyKiBkaXJlY3RvcnksIHN0cnVjdCBvZnBhdGhfZmlsZXNf bGlzdF9yb290KiByb290LCBpbnQgbWF4X2RlcHRoLCBpbnQgZGVwdGgpOworY2hhciogb2ZfZmlu ZF9mY19ob3N0IChjaGFyKiBob3N0X3d3cG4pOwordm9pZCBmcmVlX29mcGF0aF9maWxlc19saXN0 IChzdHJ1Y3Qgb2ZwYXRoX2ZpbGVzX2xpc3Rfcm9vdCogcm9vdCk7CisKICNlbmRpZiAvKiAhIEdS VUJfT0ZQQVRIX01BQ0hJTkVfVVRJTF9IRUFERVIgKi8KLS0gCjIuMzEuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxp c3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2dydWItZGV2ZWwK