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 4ACC6C54E65 for ; Wed, 21 May 2025 08:03:36 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=WWl5Lj+58lLUMlYoDNCPt9fRSwl5kp2p4a/IOc9uxrE=; b=EU4IRKeU2280G7 +1z3c+cM6yLHXvOgXHCqGYR/AxTmaRkZDSbMYW6opEFijviFUz4MTSW/Os5+wcdlO9CQMMlay012U x8GbpuwaGcGrp3ogZBAOrwAtSDe8Wy076r+/nHuks1ha2xJpH5QmX9dPEj3jGh7Xab+QQLOaMmsbo hZlu8tVNu9JYWgfybsubHo0mGZ6i2oPEAjbQ8cZib2gHoQCvQIqaHVUKIznpKhGr+QFB7uGK3XItA YLhCIJUai029XFderoxV48wZIv7icLOT2HBq7mNvdDlRILzCHacNtjrW24SKx1tN2nhba+CNpS/eK pLXbCwZPmgD2re/ubDww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uHeQI-0000000F7ZM-0Ybx; Wed, 21 May 2025 08:03:34 +0000 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uHeQF-0000000F7YT-2Fkr for linux-mtd@lists.infradead.org; Wed, 21 May 2025 08:03:32 +0000 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-440685d6afcso68222385e9.0 for ; Wed, 21 May 2025 01:03:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747814609; x=1748419409; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=LXdhI4enL6RgPh49SFt0lBUsUq+0PP6NMTxjTX4na4s=; b=MXpcL29HVeH2aadv4+0RXSBkVS+SCe34D/QG4mp0u/x6PLaUKOmwGlMSBYjCX39uVQ 3enuJkH3PkbisNv5vkLbmK9F18d9s0Knra0fBYIlP2cqfsBai+BN5lBbhmLzVzgNYO8B ABF0hj7lMoFzUnyS3F835dD9rRB3Yj4KLs5x+AROyYkAk3f417zV6Gxx0Q6x2yqIeo6y ODcjG473UxGO4JlV6YqtrX5948+vsbjbZiV9ur/DPY5XfhL5qFomSY0c8mJQs3krkmzg SvNcCA5tR7Q0DG78xHUfxEPrbCp0chqJpl+zZdyyoxiXW6ndE9r42JnQuKIJ5nahHs0n 0OAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747814609; x=1748419409; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LXdhI4enL6RgPh49SFt0lBUsUq+0PP6NMTxjTX4na4s=; b=ndSH+vU08vSfW540HCjc4fsGaS3JQyxUWkkf92fnqceeqNEVTYgJtsIoNo7kH42sdM 8CzBLuTO56UCt/hVzcNAVAs1Vv2M7FGGuxnUp1b6eWc1pyls3AGynBwAJw+RDDdrslx3 10TnggP7Ib3SgzgZNRAaMZRjXpqHqjmw+P6L6Vkh2G5LLHrDW7GRSAKo2kWZ3mB5ajOX vEGCWOSr3FfuzM5zr63+1C+6YJmNSI9kbsqKEXP7HWkxtfCYRujTzQb9N0DGgJHnCA54 c+136GXgMKQL/PjRQHhlgeMQZcBdXFFSOBjL9DsriMTtCSbB2hqkuaTWWlcHxhvJ377w hCJQ== X-Gm-Message-State: AOJu0YziAdsve0zEmPTEb21uKZQHng1p/AhPgQM+IiKvpFnrTW5pYDUk RPBTIevFZA+CBohqYuq/bohypGSLp85YMyvaCIhJS8Pl0a6/bNcpTRTcciCxJw== X-Gm-Gg: ASbGncvyfU8tV74b//N7bz+G0YWKFLViuQux3oO/r+Jz1qHjyhQocIiZVT9tg3Uzaoo Z+pQ0MaEsZqpgJYq+RxB235Ramsbd+RxnWvBp/QT9szkfnQ6x6fgGL+6ugk60zPp6ewXFiWefeY RQrBdO1bbIYY6rSTxZk77xm8phHtHMGLZpiOgUWou2ChtJcbeLwKe8SymKP3DDJTlZkd5vcAzx1 r0B9sMJcWtX8lou4oquu6Bayo27M7Pd11KfsIwVzl43Y0JomsxzuU9uIwDMt5dekUOwvdrKH2YS sImUkKDvYHfaakGGPN8kSVFtTNeYzpc7VoQjFrlryJzC8OhTx5PPI2fYNV652Y6YXQIOE4GTNJw tkumywpvjkvUdZ5zW238kBJazLII402jm6IoJqooOXcjx9a48/Ik= X-Google-Smtp-Source: AGHT+IEPmlreYh3GmmXQiEYLUqD+Vf7gKdHz1+EGw8jOEmRxFzRv8oqhqeh2UtwJsYvkJlrGt7mJTg== X-Received: by 2002:a05:600c:1d82:b0:43c:f969:13c0 with SMTP id 5b1f17b1804b1-442ff03bd03mr172537625e9.29.1747814608500; Wed, 21 May 2025 01:03:28 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-0800-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:800::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-447f1825441sm62172895e9.8.2025.05.21.01.03.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 01:03:27 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: linux-mtd@lists.infradead.org, dregan@broadcom.com, miquel.raynal@bootlin.com, bcm-kernel-feedback-list@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, computersforpeace@gmail.com, kamal.dasu@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, frieder.schrempf@kontron.de, linux-kernel@vger.kernel.org, vigneshr@ti.com, richard@nod.at, bbrezillon@kernel.org, kdasu.kdev@gmail.com, jaimeliao.tw@gmail.com, kilobyte@angband.pl, jonas.gorski@gmail.com, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH v5] mtd: rawnand: brcmnand: legacy exec_op implementation Date: Wed, 21 May 2025 10:03:25 +0200 Message-Id: <20250521080325.581366-1-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250521_010331_580136_910CD13C X-CRM114-Status: GOOD ( 24.11 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org Q29tbWl0IDNjODI2MGNlNzY2MyAoIm10ZDogcmF3bmFuZDogYnJjbW5hbmQ6IGV4ZWNfb3AgaW1w bGVtZW50YXRpb24iKQpyZW1vdmVkIGxlZ2FjeSBpbnRlcmZhY2UgZnVuY3Rpb25zLCBicmVha2lu ZyA8IHY1LjAgY29udHJvbGxlcnMgc3VwcG9ydC4KSW4gb3JkZXIgdG8gZml4IG9sZGVyIGNvbnRy b2xsZXJzIHdlIG5lZWQgdG8gYWRkIGFuIGFsdGVybmF0aXZlIGV4ZWNfb3AKaW1wbGVtZW50YXRp b24gd2hpY2ggZG9lc24ndCByZWx5IG9uIGxvdyBsZXZlbCByZWdpc3RlcnMuCgpGaXhlczogM2M4 MjYwY2U3NjYzICgibXRkOiByYXduYW5kOiBicmNtbmFuZDogZXhlY19vcCBpbXBsZW1lbnRhdGlv biIpClNpZ25lZC1vZmYtYnk6IMOBbHZhcm8gRmVybsOhbmRleiBSb2phcyA8bm9sdGFyaUBnbWFp bC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBSZWdhbiA8ZHJlZ2FuQGJyb2FkY29tLmNvbT4KLS0t CiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9icmNtbmFuZC5jIHwgMjIyICsrKysrKysr KysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMjE1IGluc2VydGlvbnMoKyksIDcgZGVs ZXRpb25zKC0pCgogdjU6IGFkZCBjaGFuZ2VzIHJlcXVlc3RlZCBieSBNaXF1w6hsIFJheW5hbDoK ICAtIE1lbnRpb24gYW5kIGV4cGxhaW4gbGVnYWN5IGluIG5hdGl2ZV9jbWRfY29udi4KICAtIEVP UE5PVFNVUFAgaW5zdGVhZCBvZiBFSU5WQUwgZm9yIGluc3RyLT50eXBlIGVsc2UuCiAgLSBJbXBs ZW1lbnQgbWlzc2luZyBjaGVja19vbmx5IGZ1bmN0aW9uYWxpdHkuCgogdjQ6IGFkZCBjaGFuZ2Vz IHJlcXVlc3RlZCBieSBKb25hcyBHb3Jza2k6CiAgLSBBZGQgbWlzc2luZyBicmVha3MgaW4gYnJj bW5hbmRfZXhlY19pbnN0cnVjdGlvbnNfbGVnYWN5LgogIC0gUmVzdG9yZSBtaXNzaW5nIHJldCBh c3NpZ25tZW50IGluIGJyY21uYW5kX2V4ZWNfb3AuCgogdjM6IGFkZCBjaGFuZ2VzIHJlcXVlc3Rl ZCBieSBGbG9yaWFuIGFuZCBvdGhlciBpbXByb3ZlbWVudHM6CiAgLSBBZGQgYXNzb2NpYXRpdmUg YXJyYXkgZm9yIG5hdGl2ZSBjb21tYW5kIGNvbnZlcnNpb24uCiAgLSBBZGQgZnVuY3Rpb24gcG9p bnRlciB0byBicmNtbmFuZF9jb250cm9sbGVyIGZvciBleGVjX2luc3RyCiAgICBmdW5jdGlvbmFs aXR5LgogIC0gRml4IENNRF9CTE9DS19FUkFTRSBhZGRyZXNzLgogIC0gRHJvcCBOQU5EX0NNRF9S RUFET09CIHN1cHBvcnQuCgogdjI6IG11bHRpcGxlIGltcHJvdmVtZW50czoKICAtIFVzZSBwcm9w ZXIgbmF0aXZlIGNvbW1hbmRzIGZvciBjaGVja3MuCiAgLSBGaXggTkFORF9DTURfUEFSQU0vTkFO RF9DTURfUk5ET1VUIGFkZHIgY2FsY3VsYXRpb24uCiAgLSBSZW1vdmUgaG9zdC0+bGFzdF9hZGRy IHVzYWdlLgogIC0gUmVtb3ZlIHNlY3Rvcl9zaXplXzFrIHNpbmNlIGl0IG9ubHkgYXBwbGllcyB0 byB2NS4wKyBjb250cm9sbGVycy4KICAtIFJlbW92ZSBicmNtbmFuZF93cCBzaW5jZSBpdCBkb2Vz bid0IGV4aXN0IGZvciA8IHY1LjAgY29udHJvbGxlcnMuCiAgLSBVc2UgaiBpbnN0ZWFkIG9mIGkg Zm9yIGZsYXNoX2NhY2hlIGxvb3AuCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcv YnJjbW5hbmQvYnJjbW5hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21u YW5kLmMKaW5kZXggMjk5ZGQyYmNhNWI0Li41ZWQ3OWZmYTI3MWMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMKKysrIGIvZHJpdmVycy9tdGQvbmFu ZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYwpAQCAtNjUsNiArNjUsNyBAQCBtb2R1bGVfcGFyYW0o d3Bfb24sIGludCwgMDQ0NCk7CiAjZGVmaW5lIENNRF9QQVJBTUVURVJfUkVBRAkJMHgwZQogI2Rl ZmluZSBDTURfUEFSQU1FVEVSX0NIQU5HRV9DT0wJMHgwZgogI2RlZmluZSBDTURfTE9XX0xFVkVM X09QCQkweDEwCisjZGVmaW5lIENNRF9OT1RfU1VQUE9SVEVECQkweGZmCiAKIHN0cnVjdCBicmNt X25hbmRfZG1hX2Rlc2MgewogCXUzMiBuZXh0X2Rlc2M7CkBAIC0xOTksNiArMjAwLDMwIEBAIHN0 YXRpYyBjb25zdCB1MTYgZmxhc2hfZG1hX3JlZ3NfdjRbXSA9IHsKIAlbRkxBU0hfRE1BX0NVUlJF TlRfREVTQ19FWFRdCT0gMHgzNCwKIH07CiAKKy8qIE5hdGl2ZSBjb21tYW5kIGNvbnZlcnNpb24g Zm9yIGxlZ2FjeSBjb250cm9sbGVycyAoPCB2NS4wKSAqLworc3RhdGljIGNvbnN0IHU4IG5hdGl2 ZV9jbWRfY29udltdID0geworCVtOQU5EX0NNRF9SRUFEMF0JPSBDTURfTk9UX1NVUFBPUlRFRCwK KwlbTkFORF9DTURfUkVBRDFdCT0gQ01EX05PVF9TVVBQT1JURUQsCisJW05BTkRfQ01EX1JORE9V VF0JPSBDTURfUEFSQU1FVEVSX0NIQU5HRV9DT0wsCisJW05BTkRfQ01EX1BBR0VQUk9HXQk9IENN RF9OT1RfU1VQUE9SVEVELAorCVtOQU5EX0NNRF9SRUFET09CXQk9IENNRF9OT1RfU1VQUE9SVEVE LAorCVtOQU5EX0NNRF9FUkFTRTFdCT0gQ01EX0JMT0NLX0VSQVNFLAorCVtOQU5EX0NNRF9TVEFU VVNdCT0gQ01EX05PVF9TVVBQT1JURUQsCisJW05BTkRfQ01EX1NFUUlOXQk9IENNRF9OT1RfU1VQ UE9SVEVELAorCVtOQU5EX0NNRF9STkRJTl0JPSBDTURfTk9UX1NVUFBPUlRFRCwKKwlbTkFORF9D TURfUkVBRElEXQk9IENNRF9ERVZJQ0VfSURfUkVBRCwKKwlbTkFORF9DTURfRVJBU0UyXQk9IENN RF9OVUxMLAorCVtOQU5EX0NNRF9QQVJBTV0JPSBDTURfUEFSQU1FVEVSX1JFQUQsCisJW05BTkRf Q01EX0dFVF9GRUFUVVJFU10JPSBDTURfTk9UX1NVUFBPUlRFRCwKKwlbTkFORF9DTURfU0VUX0ZF QVRVUkVTXQk9IENNRF9OT1RfU1VQUE9SVEVELAorCVtOQU5EX0NNRF9SRVNFVF0JPSBDTURfTk9U X1NVUFBPUlRFRCwKKwlbTkFORF9DTURfUkVBRFNUQVJUXQk9IENNRF9OT1RfU1VQUE9SVEVELAor CVtOQU5EX0NNRF9SRUFEQ0FDSEVTRVFdCT0gQ01EX05PVF9TVVBQT1JURUQsCisJW05BTkRfQ01E X1JFQURDQUNIRUVORF0JPSBDTURfTk9UX1NVUFBPUlRFRCwKKwlbTkFORF9DTURfUk5ET1VUU1RB UlRdCT0gQ01EX05VTEwsCisJW05BTkRfQ01EX0NBQ0hFRFBST0ddCT0gQ01EX05PVF9TVVBQT1JU RUQsCit9OworCiAvKiBDb250cm9sbGVyIGZlYXR1cmUgZmxhZ3MgKi8KIGVudW0gewogCUJSQ01O QU5EX0hBU18xS19TRUNUT1JTCQkJPSBCSVQoMCksCkBAIC0yMzcsNiArMjYyLDEyIEBAIHN0cnVj dCBicmNtbmFuZF9jb250cm9sbGVyIHsKIAkvKiBMaXN0IG9mIE5BTkQgaG9zdHMgKG9uZSBmb3Ig ZWFjaCBjaGlwLXNlbGVjdCkgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGhvc3RfbGlzdDsKIAorCS8q IEZ1bmN0aW9ucyB0byBiZSBjYWxsZWQgZnJvbSBleGVjX29wICovCisJaW50ICgqY2hlY2tfaW5z dHIpKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCisJCQkgICBjb25zdCBzdHJ1Y3QgbmFuZF9vcGVy YXRpb24gKm9wKTsKKwlpbnQgKCpleGVjX2luc3RyKShzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLAor CQkJICBjb25zdCBzdHJ1Y3QgbmFuZF9vcGVyYXRpb24gKm9wKTsKKwogCS8qIEVEVSBpbmZvLCBw ZXItdHJhbnNhY3Rpb24gKi8KIAljb25zdCB1MTYgICAgICAgICAgICAgICAqZWR1X29mZnNldHM7 CiAJdm9pZCBfX2lvbWVtICAgICAgICAgICAgKmVkdV9iYXNlOwpAQCAtMjQ3OCwxOCArMjUwOSwx OTAgQEAgc3RhdGljIGludCBicmNtbmFuZF9vcF9pc19yZXNldChjb25zdCBzdHJ1Y3QgbmFuZF9v cGVyYXRpb24gKm9wKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGJyY21uYW5kX2NoZWNr X2luc3RydWN0aW9ucyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLAorCQkJCSAgICAgICBjb25zdCBz dHJ1Y3QgbmFuZF9vcGVyYXRpb24gKm9wKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 IGJyY21uYW5kX2V4ZWNfaW5zdHJ1Y3Rpb25zKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCisJCQkJ ICAgICAgY29uc3Qgc3RydWN0IG5hbmRfb3BlcmF0aW9uICpvcCkKK3sKKwlzdHJ1Y3QgYnJjbW5h bmRfaG9zdCAqaG9zdCA9IG5hbmRfZ2V0X2NvbnRyb2xsZXJfZGF0YShjaGlwKTsKKwl1bnNpZ25l ZCBpbnQgaTsKKwlpbnQgcmV0ID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCBvcC0+bmluc3Ryczsg aSsrKSB7CisJCXJldCA9IGJyY21uYW5kX2V4ZWNfaW5zdHIoaG9zdCwgaSwgb3ApOworCQlpZiAo cmV0KQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBicmNt bmFuZF9jaGVja19pbnN0cnVjdGlvbnNfbGVnYWN5KHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCisJ CQkJCSAgICAgIGNvbnN0IHN0cnVjdCBuYW5kX29wZXJhdGlvbiAqb3ApCit7CisJY29uc3Qgc3Ry dWN0IG5hbmRfb3BfaW5zdHIgKmluc3RyOworCXVuc2lnbmVkIGludCBpOworCXU4IGNtZDsKKwor CWZvciAoaSA9IDA7IGkgPCBvcC0+bmluc3RyczsgaSsrKSB7CisJCWluc3RyID0gJm9wLT5pbnN0 cnNbaV07CisKKwkJc3dpdGNoIChpbnN0ci0+dHlwZSkgeworCQljYXNlIE5BTkRfT1BfQ01EX0lO U1RSOgorCQkJY21kID0gbmF0aXZlX2NtZF9jb252W2luc3RyLT5jdHguY21kLm9wY29kZV07CisJ CQlpZiAoY21kID09IENNRF9OT1RfU1VQUE9SVEVEKQorCQkJCXJldHVybiAtRU9QTk9UU1VQUDsK KwkJCWJyZWFrOworCQljYXNlIE5BTkRfT1BfQUREUl9JTlNUUjoKKwkJY2FzZSBOQU5EX09QX0RB VEFfSU5fSU5TVFI6CisJCWNhc2UgTkFORF9PUF9XQUlUUkRZX0lOU1RSOgorCQkJYnJlYWs7CisJ CWRlZmF1bHQ6CisJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIGludCBicmNtbmFuZF9leGVjX2luc3RydWN0aW9uc19sZWdhY3koc3RydWN0 IG5hbmRfY2hpcCAqY2hpcCwKKwkJCQkJICAgICBjb25zdCBzdHJ1Y3QgbmFuZF9vcGVyYXRpb24g Km9wKQoreworCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQoY2hpcCk7CisJc3Ry dWN0IGJyY21uYW5kX2hvc3QgKmhvc3QgPSBuYW5kX2dldF9jb250cm9sbGVyX2RhdGEoY2hpcCk7 CisJc3RydWN0IGJyY21uYW5kX2NvbnRyb2xsZXIgKmN0cmwgPSBob3N0LT5jdHJsOworCWNvbnN0 IHN0cnVjdCBuYW5kX29wX2luc3RyICppbnN0cjsKKwl1bnNpZ25lZCBpbnQgaSwgajsKKwl1OCBj bWQgPSBDTURfTlVMTCwgbGFzdF9jbWQgPSBDTURfTlVMTDsKKwlpbnQgcmV0ID0gMDsKKwl1NjQg bGFzdF9hZGRyOworCisJZm9yIChpID0gMDsgaSA8IG9wLT5uaW5zdHJzOyBpKyspIHsKKwkJaW5z dHIgPSAmb3AtPmluc3Ryc1tpXTsKKworCQlpZiAoaW5zdHItPnR5cGUgPT0gTkFORF9PUF9DTURf SU5TVFIpIHsKKwkJCWNtZCA9IG5hdGl2ZV9jbWRfY29udltpbnN0ci0+Y3R4LmNtZC5vcGNvZGVd OworCQkJaWYgKGNtZCA9PSBDTURfTk9UX1NVUFBPUlRFRCkgeworCQkJCWRldl9lcnIoY3RybC0+ ZGV2LCAidW5zdXBwb3J0ZWQgY21kPSVkXG4iLAorCQkJCQlpbnN0ci0+Y3R4LmNtZC5vcGNvZGUp OworCQkJCXJldCA9IC1FT1BOT1RTVVBQOworCQkJCWJyZWFrOworCQkJfQorCQl9IGVsc2UgaWYg KGluc3RyLT50eXBlID09IE5BTkRfT1BfQUREUl9JTlNUUikgeworCQkJdTY0IGFkZHIgPSAwOwor CisJCQlpZiAoY21kID09IENNRF9OVUxMKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoaW5zdHIt PmN0eC5hZGRyLm5hZGRycyA+IDgpIHsKKwkJCQlkZXZfZXJyKGN0cmwtPmRldiwgInVuc3VwcG9y dGVkIG5hZGRycz0ldVxuIiwKKwkJCQkJaW5zdHItPmN0eC5hZGRyLm5hZGRycyk7CisJCQkJcmV0 ID0gLUVPUE5PVFNVUFA7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJCWZvciAoaiA9IDA7IGogPCBp bnN0ci0+Y3R4LmFkZHIubmFkZHJzOyBqKyspCisJCQkJYWRkciB8PSAoaW5zdHItPmN0eC5hZGRy LmFkZHJzW2pdKSA8PCAoaiA8PCAzKTsKKworCQkJaWYgKGNtZCA9PSBDTURfQkxPQ0tfRVJBU0Up CisJCQkJYWRkciA8PD0gY2hpcC0+cGFnZV9zaGlmdDsKKwkJCWVsc2UgaWYgKGNtZCA9PSBDTURf UEFSQU1FVEVSX0NIQU5HRV9DT0wpCisJCQkJYWRkciAmPSB+KCh1NjQpKEZDX0JZVEVTIC0gMSkp OworCisJCQlicmNtbmFuZF9zZXRfY21kX2FkZHIobXRkLCBhZGRyKTsKKwkJCWJyY21uYW5kX3Nl bmRfY21kKGhvc3QsIGNtZCk7CisJCQlsYXN0X2FkZHIgPSBhZGRyOworCQkJbGFzdF9jbWQgPSBj bWQ7CisJCQljbWQgPSBDTURfTlVMTDsKKwkJCWJyY21uYW5kX3dhaXRmdW5jKGNoaXApOworCisJ CQlpZiAobGFzdF9jbWQgPT0gQ01EX1BBUkFNRVRFUl9SRUFEIHx8CisJCQkgICAgbGFzdF9jbWQg PT0gQ01EX1BBUkFNRVRFUl9DSEFOR0VfQ09MKSB7CisJCQkJLyogQ29weSBmbGFzaCBjYWNoZSB3 b3JkLXdpc2UgKi8KKwkJCQl1MzIgKmZsYXNoX2NhY2hlID0gKHUzMiAqKWN0cmwtPmZsYXNoX2Nh Y2hlOworCisJCQkJYnJjbW5hbmRfc29jX2RhdGFfYnVzX3ByZXBhcmUoY3RybC0+c29jLCB0cnVl KTsKKworCQkJCS8qCisJCQkJICogTXVzdCBjYWNoZSB0aGUgRkxBU0hfQ0FDSEUgbm93LCBzaW5j ZSBjaGFuZ2VzIGluCisJCQkJICogU0VDVE9SX1NJWkVfMUsgbWF5IGludmFsaWRhdGUgaXQKKwkJ CQkgKi8KKwkJCQlmb3IgKGogPSAwOyBqIDwgRkNfV09SRFM7IGorKykKKwkJCQkJLyoKKwkJCQkJ ICogRmxhc2ggY2FjaGUgaXMgYmlnIGVuZGlhbiBmb3IgcGFyYW1ldGVyIHBhZ2VzLCBhdAorCQkJ CQkgKiBsZWFzdCBvbiBTVEIgU29DcworCQkJCQkgKi8KKwkJCQkJZmxhc2hfY2FjaGVbal0gPSBi ZTMyX3RvX2NwdShicmNtbmFuZF9yZWFkX2ZjKGN0cmwsIGopKTsKKworCQkJCWJyY21uYW5kX3Nv Y19kYXRhX2J1c191bnByZXBhcmUoY3RybC0+c29jLCB0cnVlKTsKKwkJCX0KKwkJfSBlbHNlIGlm IChpbnN0ci0+dHlwZSA9PSBOQU5EX09QX0RBVEFfSU5fSU5TVFIpIHsKKwkJCXU4ICppbiA9IGlu c3RyLT5jdHguZGF0YS5idWYuaW47CisKKwkJCWlmIChsYXN0X2NtZCA9PSBDTURfREVWSUNFX0lE X1JFQUQpIHsKKwkJCQl1MzIgdmFsOworCisJCQkJaWYgKGluc3RyLT5jdHguZGF0YS5sZW4gPiA4 KSB7CisJCQkJCWRldl9lcnIoY3RybC0+ZGV2LCAidW5zdXBwb3J0ZWQgbGVuPSV1XG4iLAorCQkJ CQkJaW5zdHItPmN0eC5kYXRhLmxlbik7CisJCQkJCXJldCA9IC1FT1BOT1RTVVBQOworCQkJCQli cmVhazsKKwkJCQl9CisKKwkJCQlmb3IgKGogPSAwOyBqIDwgaW5zdHItPmN0eC5kYXRhLmxlbjsg aisrKSB7CisJCQkJCWlmIChqID09IDApCisJCQkJCQl2YWwgPSBicmNtbmFuZF9yZWFkX3JlZyhj dHJsLCBCUkNNTkFORF9JRCk7CisJCQkJCWVsc2UgaWYgKGogPT0gNCkKKwkJCQkJCXZhbCA9IGJy Y21uYW5kX3JlYWRfcmVnKGN0cmwsIEJSQ01OQU5EX0lEX0VYVCk7CisKKwkJCQkJaW5bal0gPSAo dmFsID4+ICgyNCAtICgoaiAlIDQpIDw8IDMpKSkgJiAweGZmOworCQkJCX0KKwkJCX0gZWxzZSBp ZiAobGFzdF9jbWQgPT0gQ01EX1BBUkFNRVRFUl9SRUFEIHx8CisJCQkJICAgbGFzdF9jbWQgPT0g Q01EX1BBUkFNRVRFUl9DSEFOR0VfQ09MKSB7CisJCQkJdTY0IGFkZHI7CisJCQkJdTMyIG9mZnM7 CisKKwkJCQlmb3IgKGogPSAwOyBqIDwgaW5zdHItPmN0eC5kYXRhLmxlbjsgaisrKSB7CisJCQkJ CWFkZHIgPSBsYXN0X2FkZHIgKyBqOworCQkJCQlvZmZzID0gYWRkciAmIChGQ19CWVRFUyAtIDEp OworCisJCQkJCWlmIChqID4gMCAmJiBvZmZzID09IDApCisJCQkJCQluYW5kX2NoYW5nZV9yZWFk X2NvbHVtbl9vcChjaGlwLCBhZGRyLCBOVUxMLCAwLAorCQkJCQkJCQkJICAgZmFsc2UpOworCisJ CQkJCWluW2pdID0gY3RybC0+Zmxhc2hfY2FjaGVbb2Zmc107CisJCQkJfQorCQkJfQorCQl9IGVs c2UgaWYgKGluc3RyLT50eXBlID09IE5BTkRfT1BfV0FJVFJEWV9JTlNUUikgeworCQkJcmV0ID0g YmNtbmFuZF9jdHJsX3BvbGxfc3RhdHVzKGhvc3QsIE5BTkRfQ1RSTF9SRFksIE5BTkRfQ1RSTF9S RFksIDApOworCQkJaWYgKHJldCkKKwkJCQlicmVhazsKKwkJfSBlbHNlIHsKKwkJCWRldl9lcnIo Y3RybC0+ZGV2LCAidW5zdXBwb3J0ZWQgaW5zdHJ1Y3Rpb24gdHlwZTogJWRcbiIsIGluc3RyLT50 eXBlKTsKKwkJCXJldCA9IC1FT1BOT1RTVVBQOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlyZXR1 cm4gcmV0OworfQorCiBzdGF0aWMgaW50IGJyY21uYW5kX2V4ZWNfb3Aoc3RydWN0IG5hbmRfY2hp cCAqY2hpcCwKIAkJCSAgICBjb25zdCBzdHJ1Y3QgbmFuZF9vcGVyYXRpb24gKm9wLAogCQkJICAg IGJvb2wgY2hlY2tfb25seSkKIHsKIAlzdHJ1Y3QgYnJjbW5hbmRfaG9zdCAqaG9zdCA9IG5hbmRf Z2V0X2NvbnRyb2xsZXJfZGF0YShjaGlwKTsKKwlzdHJ1Y3QgYnJjbW5hbmRfY29udHJvbGxlciAq Y3RybCA9IGhvc3QtPmN0cmw7CiAJc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5kX3RvX210ZChj aGlwKTsKIAl1OCAqc3RhdHVzOwotCXVuc2lnbmVkIGludCBpOwogCWludCByZXQgPSAwOwogCiAJ aWYgKGNoZWNrX29ubHkpCi0JCXJldHVybiAwOworCQlyZXR1cm4gY3RybC0+Y2hlY2tfaW5zdHIo Y2hpcCwgb3ApOwogCiAJaWYgKGJyY21uYW5kX29wX2lzX3N0YXR1cyhvcCkpIHsKIAkJc3RhdHVz ID0gb3AtPmluc3Ryc1sxXS5jdHguZGF0YS5idWYuaW47CkBAIC0yNTEzLDExICsyNzE2LDcgQEAg c3RhdGljIGludCBicmNtbmFuZF9leGVjX29wKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCiAJaWYg KG9wLT5kZWFzc2VydF93cCkKIAkJYnJjbW5hbmRfd3AobXRkLCAwKTsKIAotCWZvciAoaSA9IDA7 IGkgPCBvcC0+bmluc3RyczsgaSsrKSB7Ci0JCXJldCA9IGJyY21uYW5kX2V4ZWNfaW5zdHIoaG9z dCwgaSwgb3ApOwotCQlpZiAocmV0KQotCQkJYnJlYWs7Ci0JfQorCXJldCA9IGN0cmwtPmV4ZWNf aW5zdHIoY2hpcCwgb3ApOwogCiAJaWYgKG9wLT5kZWFzc2VydF93cCkKIAkJYnJjbW5hbmRfd3Ao bXRkLCAxKTsKQEAgLTMxMzAsNiArMzMyOSwxNSBAQCBpbnQgYnJjbW5hbmRfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldiwgc3RydWN0IGJyY21uYW5kX3NvYyAqc29jKQogCWlmIChy ZXQpCiAJCWdvdG8gZXJyOwogCisJLyogT25seSB2NS4wKyBjb250cm9sbGVycyBoYXZlIGxvdyBs ZXZlbCBvcHMgc3VwcG9ydCAqLworCWlmIChjdHJsLT5uYW5kX3ZlcnNpb24gPj0gMHgwNTAwKSB7 CisJCWN0cmwtPmNoZWNrX2luc3RyID0gYnJjbW5hbmRfY2hlY2tfaW5zdHJ1Y3Rpb25zOworCQlj dHJsLT5leGVjX2luc3RyID0gYnJjbW5hbmRfZXhlY19pbnN0cnVjdGlvbnM7CisJfSBlbHNlIHsK KwkJY3RybC0+Y2hlY2tfaW5zdHIgPSBicmNtbmFuZF9jaGVja19pbnN0cnVjdGlvbnNfbGVnYWN5 OworCQljdHJsLT5leGVjX2luc3RyID0gYnJjbW5hbmRfZXhlY19pbnN0cnVjdGlvbnNfbGVnYWN5 OworCX0KKwogCS8qCiAJICogTW9zdCBjaGlwcyBoYXZlIHRoaXMgY2FjaGUgYXQgYSBmaXhlZCBv ZmZzZXQgd2l0aGluICduYW5kJyBibG9jay4KIAkgKiBTb21lIG11c3Qgc3BlY2lmeSB0aGlzIHJl Z2lvbiBzZXBhcmF0ZWx5LgotLSAKMi4zOS41CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcg bGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10 ZC8K