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 5277FC433EF for ; Tue, 28 Jun 2022 06:46:46 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uNqm1jsIENaoGpJwfEMDB+TCo7ua/hHqjlNi40m5BkQ=; b=CA59pa7TzW7e+6 o28Lw10uITdLObh5rtSEMqkWw0sXyGuUaIafntNPIR23fy3ZsW7YAZMAkYzWxPt0xW5aiiPI4Jv0o PdTT3Maaefd89XsBLP7qLpD5b3/TurT5rrlfMkVzGiUvc+OdzaaDj8qNIZi4BqDDWz8w7ZUDfzKxi fq5AgUTacUY6sYxQ4M98/+qyz25WksdPeCjJUEf9Vd5s0pBZW6ezgkDeOYycyv4saaIGYle1sfTtT I2brEPekFnp5YAPRvYqWHhY8eZ23eu/2jkHjjDH6ExtANQ9uZxIxJrS2Uqb3Ag7/RiASg3+2nzXiY 0L35Nf8Jfby8gy2JFejw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o64zd-004npf-OX; Tue, 28 Jun 2022 06:46:37 +0000 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o64zU-004nkY-6g for linux-amlogic@lists.infradead.org; Tue, 28 Jun 2022 06:46:36 +0000 Received: by mail-pl1-x62a.google.com with SMTP id jh14so10235129plb.1 for ; Mon, 27 Jun 2022 23:46:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=LRpQs5cOMs5HSj75+8AfUEiKj/osl4OH7vuLs6bfaeI=; b=QXCgEkzKLYlhx5RPQua2KlpaHX0weUucwmk60QBJk5xYxOo5U3IL0UfsbdSBtIVgrX M+B87DZUlnDzP7itXzadMjzNhPSj7ShTp9cpSHagReLhwgvRWYPEUSGG7rb5SMfNU9bf r2XPwTxeN2MrmxL6Y5c/12I7JPJdiscgMb9tF/xiHm8ycAWQ+sfV6aezt9YsTlz5IPUr M16XMZuY2Kr5ZcEqceGmBou7jDwu9kZIASw0EYs6B/Hypn0gyIZV8/66Swe7+VVaS0J3 KmD4W4O+7fehlot+mtDhvynVMD7PE6PDvxlWmpD6eieXBwwnwcVA1qaKPL1dKI+wdb4K 9svw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=LRpQs5cOMs5HSj75+8AfUEiKj/osl4OH7vuLs6bfaeI=; b=TycqWxcTh48+VH0jX2MmB1+IHD0eS4eTB78zmD6uRLZRtKm82gu1CAhgo3ObVnKP6T 3Tt2yg7MqpRi9enm/ZYAfIYyBhAChux8cCA1cdODIbjYUvNBICcw9/RPpdYJChu7DhqG 3h/z5A7E7xFZ4J9RmdiI+y6WO9XPGroeDj845W+ULaGZztwfnVxYn359sO51PXgouHdG lQYE9lbh56Xhdwy8BjcZkhqNgDHmD8Jl+pnKz4y0G4UZdcHWwcoGHTxE2PeqCly+ivHf 6J4bn5Ot/EtABEwdECicOkemgPZwIH2AfgSW6+x5nynVpQ3qttFSx7rV/8XlpLQnV7CE T9VQ== X-Gm-Message-State: AJIora92vuWF72+ooZBuC4GDufa2I5xAjMYEK5tIRMGRPq5YC1Dkgq4O fw9TfF/2DY93EWoUAeIH3Vc/ X-Google-Smtp-Source: AGRyM1syVH0OxjF/in3+ZNlpAgeJ4nGCK8UGH4OVrIlm0mTYOfjKN4IudwILz0eDdehI8KY5xROk4g== X-Received: by 2002:a17:902:e850:b0:16a:209a:971a with SMTP id t16-20020a170902e85000b0016a209a971amr3469189plg.163.1656398783887; Mon, 27 Jun 2022 23:46:23 -0700 (PDT) Received: from thinkpad ([27.111.75.159]) by smtp.gmail.com with ESMTPSA id jd12-20020a170903260c00b0016a15842cf5sm8380980plb.121.2022.06.27.23.46.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jun 2022 23:46:23 -0700 (PDT) Date: Tue, 28 Jun 2022 12:16:08 +0530 From: Manivannan Sadhasivam To: Serge Semin Cc: Rob Herring , Bjorn Helgaas , Lorenzo Pieralisi , Kishon Vijay Abraham I , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Jingoo Han , Krzysztof Kozlowski , Alim Akhtar , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Minghuan Lian , Mingkai Hu , Roy Zang , Yue Wang , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Jonathan Chocron , Thomas Petazzoni , Jesper Nilsson , Gustavo Pimentel , Heiko Stuebner , Paul Walmsley , Greentime Hu , Rahul Tanwar , Srikanth Thokala , Xiaowei Song , Binghui Wang , Andy Gross , Bjorn Andersson , Stanimir Varbanov , Pratyush Anand , Thierry Reding , Jonathan Hunter , Kunihiko Hayashi , Masami Hiramatsu , Nobuhiro Iwamatsu , Serge Semin , Alexey Malahov , Pavel Parkhomenko , Frank Li , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@axis.com, linux-rockchip@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-tegra@vger.kernel.org Subject: Re: [PATCH RESEND v5 15/18] PCI: dwc: Add dw_ prefix to the pcie_port structure name Message-ID: <20220628064608.GH23601@thinkpad> References: <20220624143428.8334-1-Sergey.Semin@baikalelectronics.ru> <20220624143428.8334-16-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220624143428.8334-16-Sergey.Semin@baikalelectronics.ru> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220627_234628_378755_3F1ACD24 X-CRM114-Status: GOOD ( 27.83 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org T24gRnJpLCBKdW4gMjQsIDIwMjIgYXQgMDU6MzQ6MjVQTSArMDMwMCwgU2VyZ2UgU2VtaW4gd3Jv dGU6Cj4gQWxsIG9mIHRoZSBEVyBQQ0llIGNvcmUgZHJpdmVyIGVudGl0aWVzIGhhdmUgbmFtZXMg d2l0aCB0aGUgZHdfIHByZWZpeCBpbgo+IG9yZGVyIHRvIGVhc2lseSBkaXN0aW5ndWlzaCBsb2Nh bCBhbmQgY29tbW9uIFBDSWUgbmFtZSBzcGFjZXMuIEFsbCBleGNlcHQKPiB0aGUgcGNpZV9wb3J0 IHN0cnVjdHVyZSB3aGljaCBjb250YWlucyB0aGUgRFcgUENJZSBSb290IFBvcnQgZGVzY3JpcHRv ci4KPiBGb3IgaGlzdG9yaWNhbCByZWFzb24gdGhlIHN0cnVjdHVyZSBoYXMgcmV0YWluZWQgdGhl IG9yaWdpbmFsIG5hbWUgc2luY2UKPiBjb21taXQgMzQwY2JhNjA5MmMyICgicGNpOiBBZGQgUENJ ZSBkcml2ZXIgZm9yIFNhbXN1bmcgRXh5bm9zIikgd2hlbgo+IHRoZSBEVyBQQ0llIElQLWNvcmUg c3VwcG9ydCB3YXMgYWRkZWQgdG8gdGhlIGtlcm5lbC4gTGV0J3MgZmluYWxseSBmaXgKPiB0aGF0 IGJ5IGFkZGluZyB0aGUgZHdfIHByZWZpeCB0byB0aGUgc3RydWN0dXJlIG5hbWUgYW5kIGJ5IGFk ZGluZyB0aGUgX3JwCj4gc3VmZml4IHRvIGJlIHNpbWlsYXIgdG8gdGhlIEVQIGNvdW50ZXJwYXJ0 LiBUaHVzIHRoZSBuYW1lIHdpbGwgYmUgY29oZXJlbnQKPiB3aXRoIHRoZSBjb21tb24gZHJpdmVy IG5hbWluZyBwb2xpY3kuIEl0IHNoYWxsIG1ha2UgdGhlIGRyaXZlciBjb2RlIG1vcmUKPiByZWFk YWJsZSBlbGltaW5hdGluZyB2aXN1YWwgY29uZnVzaW9uIGJldHdlZW4gdGhlIGxvY2FsIGFuZCBn ZW5lcmljIFBDSQo+IG5hbWUgc3BhY2VzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNlcmdlIFNlbWlu IDxTZXJnZXkuU2VtaW5AYmFpa2FsZWxlY3Ryb25pY3MucnU+CgpSZXZpZXdlZC1ieTogTWFuaXZh bm5hbiBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGluYXJvLm9yZz4KClRoYW5r cywKTWFuaQoKPiBSZXZpZXdlZC1ieTogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KPiAK PiAtLS0KPiAKPiBDaGFuZ2Vsb2cgdjQ6Cj4gLSBUaGlzIGlzIGEgbmV3IHBhdGNoIGNyZWF0ZWQg b24gdGhlIHY0IGxhcCBvZiB0aGUgc2VyaWVzLgo+IC0tLQo+ICBkcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2ktZHJhN3h4LmMgICAgICAgfCAxMiArKystLS0tCj4gIGRyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaS1leHlub3MuYyAgICAgICB8ICA2ICsrLS0KPiAgZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpLWlteDYuYyAgICAgICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2kta2V5c3RvbmUuYyAgICAgfCAyMCArKysrKy0tLS0tLQo+ICBk cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbGF5ZXJzY2FwZS5jICAgfCAgMiArLQo+ICBk cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbWVzb24uYyAgICAgICAgfCAgMiArLQo+ICBk cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMgICAgICAgICAgfCAgNiArKy0tCj4g IGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJtYWRhOGsuYyAgICB8ICA0ICstLQo+ ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFydHBlYzYuYyAgICAgfCAgNCArLS0K PiAgLi4uL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jIHwgMzYgKysr KysrKysrLS0tLS0tLS0tLQo+ICAuLi4vcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2Fy ZS1wbGF0LmMgfCAgMiArLQo+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2ln bndhcmUuaCAgfCAzMCArKysrKysrKy0tLS0tLS0tCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaWUtZHctcm9ja2NoaXAuYyB8ICA0ICstLQo+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLWZ1NzQwLmMgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLWhpc3RiLmMgICAgICAgfCAxMCArKystLS0KPiAgZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpZS1pbnRlbC1ndy5jICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLWtlZW1iYXkuYyAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS1raXJpbi5jICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS1xY29tLmMgICAgICAgIHwgIDQgKy0tCj4gIGRyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtc3BlYXIxM3h4LmMgICB8ICA2ICsrLS0KPiAgZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS10ZWdyYTE5NC5jICAgIHwgMjIgKysrKysrLS0tLS0tCj4gIGRy aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdW5pcGhpZXIuYyAgICB8IDEwICsrKy0tLQo+ ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXZpc2NvbnRpLmMgICAgfCAgNiArKy0t Cj4gIDIzIGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspLCAxMDMgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHgu YyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHguYwo+IGluZGV4IGRmY2Rl YjQzMmRjOC4uYTE3NGI2ODBiMmE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaS1kcmE3eHguYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aS1kcmE3eHguYwo+IEBAIC0xNzgsNyArMTc4LDcgQEAgc3RhdGljIHZvaWQgZHJhN3h4X3BjaWVf ZW5hYmxlX2ludGVycnVwdHMoc3RydWN0IGRyYTd4eF9wY2llICpkcmE3eHgpCj4gIAlkcmE3eHhf cGNpZV9lbmFibGVfbXNpX2ludGVycnVwdHMoZHJhN3h4KTsKPiAgfQo+ICAKPiAtc3RhdGljIGlu dCBkcmE3eHhfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBp bnQgZHJhN3h4X3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJ c3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3Qg ZHJhN3h4X3BjaWUgKmRyYTd4eCA9IHRvX2RyYTd4eF9wY2llKHBjaSk7Cj4gQEAgLTIwMiw3ICsy MDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9kb21haW5fb3BzIGludHhfZG9tYWluX29w cyA9IHsKPiAgCS54bGF0ZSA9IHBjaV9pcnFkX2ludHhfeGxhdGUsCj4gIH07Cj4gIAo+IC1zdGF0 aWMgaW50IGRyYTd4eF9wY2llX2hhbmRsZV9tc2koc3RydWN0IHBjaWVfcG9ydCAqcHAsIGludCBp bmRleCkKPiArc3RhdGljIGludCBkcmE3eHhfcGNpZV9oYW5kbGVfbXNpKHN0cnVjdCBkd19wY2ll X3JwICpwcCwgaW50IGluZGV4KQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdf cGNpZV9mcm9tX3BwKHBwKTsKPiAgCXVuc2lnbmVkIGxvbmcgdmFsOwo+IEBAIC0yMjQsNyArMjI0 LDcgQEAgc3RhdGljIGludCBkcmE3eHhfcGNpZV9oYW5kbGVfbXNpKHN0cnVjdCBwY2llX3BvcnQg KnBwLCBpbnQgaW5kZXgpCj4gIAlyZXR1cm4gMTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZHJh N3h4X3BjaWVfaGFuZGxlX21zaV9pcnEoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2 b2lkIGRyYTd4eF9wY2llX2hhbmRsZV9tc2lfaXJxKHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAg ewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlp bnQgcmV0LCBpLCBjb3VudCwgbnVtX2N0cmxzOwo+IEBAIC0yNTUsOCArMjU1LDggQEAgc3RhdGlj IHZvaWQgZHJhN3h4X3BjaWVfbXNpX2lycV9oYW5kbGVyKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykK PiAgewo+ICAJc3RydWN0IGlycV9jaGlwICpjaGlwID0gaXJxX2Rlc2NfZ2V0X2NoaXAoZGVzYyk7 Cj4gIAlzdHJ1Y3QgZHJhN3h4X3BjaWUgKmRyYTd4eDsKPiArCXN0cnVjdCBkd19wY2llX3JwICpw cDsKPiAgCXN0cnVjdCBkd19wY2llICpwY2k7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcDsKPiAg CXVuc2lnbmVkIGxvbmcgcmVnOwo+ICAJdTMyIGJpdDsKPiAgCj4gQEAgLTM0NCw3ICszNDQsNyBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgZHJhN3h4X3BjaWVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9p ZCAqYXJnKQo+ICAJcmV0dXJuIElSUV9IQU5ETEVEOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGRy YTd4eF9wY2llX2luaXRfaXJxX2RvbWFpbihzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGlj IGludCBkcmE3eHhfcGNpZV9pbml0X2lycV9kb21haW4oc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAg CXN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Owo+IEBAIC00NzUsNyArNDc1LDcgQEAgc3Rh dGljIGludCBkcmE3eHhfYWRkX3BjaWVfcG9ydChzdHJ1Y3QgZHJhN3h4X3BjaWUgKmRyYTd4eCwK PiAgewo+ICAJaW50IHJldDsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSBkcmE3eHgtPnBjaTsK PiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9y cCAqcHAgPSAmcGNpLT5wcDsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Owo+ICAK PiAgCXBwLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDEpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMKPiBpbmRleCA0NjdjOGQxY2Q3ZTQuLjIwNDRkMTkxZmJh NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMK PiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMKPiBAQCAtMjQ5 LDcgKzI0OSw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zX3BjaWVfbGlua191cChzdHJ1Y3QgZHdfcGNp ZSAqcGNpKQo+ICAJcmV0dXJuICh2YWwgJiBQQ0lFX0VMQklfWE1MSF9MSU5LVVApOwo+ICB9Cj4g IAo+IC1zdGF0aWMgaW50IGV4eW5vc19wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpw cCkKPiArc3RhdGljIGludCBleHlub3NfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAg KnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBw KTsKPiAgCXN0cnVjdCBleHlub3NfcGNpZSAqZXAgPSB0b19leHlub3NfcGNpZShwY2kpOwo+IEBA IC0yNzYsNyArMjc2LDcgQEAgc3RhdGljIGludCBleHlub3NfYWRkX3BjaWVfcG9ydChzdHJ1Y3Qg ZXh5bm9zX3BjaWUgKmVwLAo+ICAJCQkJICAgICAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSAmZXAtPnBjaTsKPiAtCXN0cnVjdCBw Y2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNp LT5wcDsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gIAlpbnQgcmV0Owo+ ICAKPiBAQCAtNDA2LDcgKzQwNiw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZXh5bm9z X3BjaWVfcmVzdW1lX25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGV4 eW5vc19wY2llICplcCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAJc3RydWN0IGR3X3BjaWUg KnBjaSA9ICZlcC0+cGNpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcCA9ICZwY2ktPnBwOwo+ICAJaW50IHJldDsKPiAgCj4gIAly ZXQgPSByZWd1bGF0b3JfYnVsa19lbmFibGUoQVJSQVlfU0laRShlcC0+c3VwcGxpZXMpLCBlcC0+ c3VwcGxpZXMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2kt aW14Ni5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYwo+IGluZGV4IDdh Mjg1ZmIwZjYxOS4uNWVhMDFlZDQ2NzRkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaS1pbXg2LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2ktaW14Ni5jCj4gQEAgLTg2Myw3ICs4NjMsNyBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9zdGFy dF9saW5rKHN0cnVjdCBkd19wY2llICpwY2kpCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC1z dGF0aWMgaW50IGlteDZfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0 YXRpYyBpbnQgaW14Nl9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsK PiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3Ry dWN0IGlteDZfcGNpZSAqaW14Nl9wY2llID0gdG9faW14Nl9wY2llKHBjaSk7Cj4gQEAgLTk5Miw3 ICs5OTIsNyBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9yZXN1bWVfbm9pcnEoc3RydWN0IGRldmlj ZSAqZGV2KQo+ICB7Cj4gIAlpbnQgcmV0Owo+ICAJc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2ll ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZpbXg2 X3BjaWUtPnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmaW14Nl9wY2llLT5w Y2ktPnBwOwo+ICAKPiAgCWlmICghKGlteDZfcGNpZS0+ZHJ2ZGF0YS0+ZmxhZ3MgJiBJTVg2X1BD SUVfRkxBR19TVVBQT1JUU19TVVNQRU5EKSkKPiAgCQlyZXR1cm4gMDsKPiBAQCAtMTI5MSw3ICsx MjkxLDcgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgaW14Nl9wY2llX2RyaXZlciA9 IHsKPiAgc3RhdGljIHZvaWQgaW14Nl9wY2llX3F1aXJrKHN0cnVjdCBwY2lfZGV2ICpkZXYpCj4g IHsKPiAgCXN0cnVjdCBwY2lfYnVzICpidXMgPSBkZXYtPmJ1czsKPiAtCXN0cnVjdCBwY2llX3Bv cnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5z eXNkYXRhOwo+ICAKPiAgCS8qIEJ1cyBwYXJlbnQgaXMgdGhlIFBDSSBicmlkZ2UsIGl0cyBwYXJl bnQgaXMgdGhpcyBwbGF0Zm9ybSBkcml2ZXIgKi8KPiAgCWlmICghYnVzLT5kZXYucGFyZW50IHx8 ICFidXMtPmRldi5wYXJlbnQtPnBhcmVudCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpLWtleXN0b25lLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2kta2V5c3RvbmUuYwo+IGluZGV4IGQxMGU1ZmQwZjgzYy4uYzNkODhhYTI3ZGQ0IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1rZXlzdG9uZS5jCj4gKysrIGIv ZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWtleXN0b25lLmMKPiBAQCAtMTQ3LDcgKzE0 Nyw3IEBAIHN0YXRpYyB2b2lkIGtzX3BjaWVfYXBwX3dyaXRlbChzdHJ1Y3Qga2V5c3RvbmVfcGNp ZSAqa3NfcGNpZSwgdTMyIG9mZnNldCwKPiAgCj4gIHN0YXRpYyB2b2lkIGtzX3BjaWVfbXNpX2ly cV9hY2soc3RydWN0IGlycV9kYXRhICpkYXRhKQo+ICB7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpw cCAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkYXRhKTsKPiArCXN0cnVjdCBkd19wY2ll X3JwICpwcCAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkYXRhKTsKPiAgCXN0cnVjdCBr ZXlzdG9uZV9wY2llICprc19wY2llOwo+ICAJdTMyIGlycSA9IGRhdGEtPmh3aXJxOwo+ICAJc3Ry dWN0IGR3X3BjaWUgKnBjaTsKPiBAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyB2b2lkIGtzX3Bj aWVfbXNpX2lycV9hY2soc3RydWN0IGlycV9kYXRhICpkYXRhKQo+ICAKPiAgc3RhdGljIHZvaWQg a3NfcGNpZV9jb21wb3NlX21zaV9tc2coc3RydWN0IGlycV9kYXRhICpkYXRhLCBzdHJ1Y3QgbXNp X21zZyAqbXNnKQo+ICB7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGlycV9kYXRhX2dldF9p cnFfY2hpcF9kYXRhKGRhdGEpOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gaXJxX2RhdGFf Z2V0X2lycV9jaGlwX2RhdGEoZGF0YSk7Cj4gIAlzdHJ1Y3Qga2V5c3RvbmVfcGNpZSAqa3NfcGNp ZTsKPiAgCXN0cnVjdCBkd19wY2llICpwY2k7Cj4gIAl1NjQgbXNpX3RhcmdldDsKPiBAQCAtMTky LDcgKzE5Miw3IEBAIHN0YXRpYyBpbnQga3NfcGNpZV9tc2lfc2V0X2FmZmluaXR5KHN0cnVjdCBp cnFfZGF0YSAqaXJxX2RhdGEsCj4gIAo+ICBzdGF0aWMgdm9pZCBrc19wY2llX21zaV9tYXNrKHN0 cnVjdCBpcnFfZGF0YSAqZGF0YSkKPiAgewo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBpcnFf ZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkYXRhKTsKPiArCXN0cnVjdCBkd19wY2llX3JwICpwcCA9 IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOwo+ICAJc3RydWN0IGtleXN0b25lX3Bj aWUgKmtzX3BjaWU7Cj4gIAl1MzIgaXJxID0gZGF0YS0+aHdpcnE7Cj4gIAlzdHJ1Y3QgZHdfcGNp ZSAqcGNpOwo+IEBAIC0yMTYsNyArMjE2LDcgQEAgc3RhdGljIHZvaWQga3NfcGNpZV9tc2lfbWFz ayhzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEpCj4gIAo+ICBzdGF0aWMgdm9pZCBrc19wY2llX21zaV91 bm1hc2soc3RydWN0IGlycV9kYXRhICpkYXRhKQo+ICB7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpw cCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOwo+ICsJc3RydWN0IGR3X3BjaWVf cnAgKnBwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZGF0YSk7Cj4gIAlzdHJ1Y3Qga2V5 c3RvbmVfcGNpZSAqa3NfcGNpZTsKPiAgCXUzMiBpcnEgPSBkYXRhLT5od2lycTsKPiAgCXN0cnVj dCBkd19wY2llICpwY2k7Cj4gQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGF0aWMgc3RydWN0IGlycV9j aGlwIGtzX3BjaWVfbXNpX2lycV9jaGlwID0gewo+ICAJLmlycV91bm1hc2sgPSBrc19wY2llX21z aV91bm1hc2ssCj4gIH07Cj4gIAo+IC1zdGF0aWMgaW50IGtzX3BjaWVfbXNpX2hvc3RfaW5pdChz dHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGljIGludCBrc19wY2llX21zaV9ob3N0X2luaXQo c3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlwcC0+bXNpX2lycV9jaGlwID0gJmtzX3Bj aWVfbXNpX2lycV9jaGlwOwo+ICAJcmV0dXJuIGR3X3BjaWVfYWxsb2NhdGVfZG9tYWlucyhwcCk7 Cj4gQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0aWMgdm9pZCBrc19wY2llX3NldHVwX3JjX2FwcF9y ZWdzKHN0cnVjdCBrZXlzdG9uZV9wY2llICprc19wY2llKQo+ICAJdTMyIHZhbDsKPiAgCXUzMiBu dW1fdmlld3BvcnQgPSBrc19wY2llLT5udW1fdmlld3BvcnQ7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAq cGNpID0ga3NfcGNpZS0+cGNpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsK PiArCXN0cnVjdCBkd19wY2llX3JwICpwcCA9ICZwY2ktPnBwOwo+ICAJdTY0IHN0YXJ0LCBlbmQ7 Cj4gIAlzdHJ1Y3QgcmVzb3VyY2UgKm1lbTsKPiAgCWludCBpOwo+IEBAIC00MjgsNyArNDI4LDcg QEAgc3RhdGljIHZvaWQga3NfcGNpZV9zZXR1cF9yY19hcHBfcmVncyhzdHJ1Y3Qga2V5c3RvbmVf cGNpZSAqa3NfcGNpZSkKPiAgc3RhdGljIHZvaWQgX19pb21lbSAqa3NfcGNpZV9vdGhlcl9tYXBf YnVzKHN0cnVjdCBwY2lfYnVzICpidXMsCj4gIAkJCQkJICAgdW5zaWduZWQgaW50IGRldmZuLCBp bnQgd2hlcmUpCj4gIHsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICAJc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3Qga2V5c3RvbmVfcGNp ZSAqa3NfcGNpZSA9IHRvX2tleXN0b25lX3BjaWUocGNpKTsKPiAgCXUzMiByZWc7Cj4gQEAgLTQ1 Niw3ICs0NTYsNyBAQCBzdGF0aWMgc3RydWN0IHBjaV9vcHMga3NfY2hpbGRfcGNpZV9vcHMgPSB7 Cj4gICAqLwo+ICBzdGF0aWMgaW50IGtzX3BjaWVfdjNfNjVfYWRkX2J1cyhzdHJ1Y3QgcGNpX2J1 cyAqYnVzKQo+ICB7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1cy0+c3lzZGF0YTsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcCA9IGJ1cy0+c3lzZGF0YTsKPiAgCXN0cnVjdCBkd19wY2ll ICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IGtleXN0b25lX3BjaWUg KmtzX3BjaWUgPSB0b19rZXlzdG9uZV9wY2llKHBjaSk7Cj4gIAo+IEBAIC01NzQsNyArNTc0LDcg QEAgc3RhdGljIHZvaWQga3NfcGNpZV9tc2lfaXJxX2hhbmRsZXIoc3RydWN0IGlycV9kZXNjICpk ZXNjKQo+ICAJc3RydWN0IGtleXN0b25lX3BjaWUgKmtzX3BjaWUgPSBpcnFfZGVzY19nZXRfaGFu ZGxlcl9kYXRhKGRlc2MpOwo+ICAJdTMyIG9mZnNldCA9IGlycSAtIGtzX3BjaWUtPm1zaV9ob3N0 X2lycTsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSBrc19wY2llLT5wY2k7Cj4gLQlzdHJ1Y3Qg cGNpZV9wb3J0ICpwcCA9ICZwY2ktPnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gJnBj aS0+cHA7Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsKPiAgCXN0cnVjdCBpcnFf Y2hpcCAqY2hpcCA9IGlycV9kZXNjX2dldF9jaGlwKGRlc2MpOwo+ICAJdTMyIHZlY3RvciwgcmVn LCBwb3M7Cj4gQEAgLTc5OSw3ICs3OTksNyBAQCBzdGF0aWMgaW50IF9faW5pdCBrc19wY2llX2lu aXRfaWQoc3RydWN0IGtleXN0b25lX3BjaWUgKmtzX3BjaWUpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICAKPiAtc3RhdGljIGludCBfX2luaXQga3NfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9y dCAqcHApCj4gK3N0YXRpYyBpbnQgX19pbml0IGtzX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19w Y2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJv bV9wcChwcCk7Cj4gIAlzdHJ1Y3Qga2V5c3RvbmVfcGNpZSAqa3NfcGNpZSA9IHRvX2tleXN0b25l X3BjaWUocGNpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp LWxheWVyc2NhcGUuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1sYXllcnNjYXBl LmMKPiBpbmRleCA2YTRmMDYxOWJiMWMuLjg3OWI4NjkyZjk2YSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbGF5ZXJzY2FwZS5jCj4gKysrIGIvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpLWxheWVyc2NhcGUuYwo+IEBAIC03NCw3ICs3NCw3IEBAIHN0 YXRpYyB2b2lkIGxzX3BjaWVfZml4X2Vycm9yX3Jlc3BvbnNlKHN0cnVjdCBsc19wY2llICpwY2ll KQo+ICAJaW93cml0ZTMyKFBDSUVfQUJTRVJSX1NFVFRJTkcsIHBjaS0+ZGJpX2Jhc2UgKyBQQ0lF X0FCU0VSUik7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgbHNfcGNpZV9ob3N0X2luaXQoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgbHNfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3 X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9m cm9tX3BwKHBwKTsKPiAgCXN0cnVjdCBsc19wY2llICpwY2llID0gdG9fbHNfcGNpZShwY2kpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbWVzb24uYyBiL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1tZXNvbi5jCj4gaW5kZXggZjQ0YmYzNDc5MDRh Li5jMTUyNzY5M2JlZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpLW1lc29uLmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbWVzb24u Ywo+IEBAIC0zNzAsNyArMzcwLDcgQEAgc3RhdGljIGludCBtZXNvbl9wY2llX2xpbmtfdXAoc3Ry dWN0IGR3X3BjaWUgKnBjaSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IG1l c29uX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0aWMgaW50IG1l c29uX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0 IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3QgbWVzb25f cGNpZSAqbXAgPSB0b19tZXNvbl9wY2llKHBjaSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aWUtYWwuYwo+IGluZGV4IGU4YWZhNTAxMjlhOC4uYjhjYjc3YzljNGJkIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYwo+ICsrKyBiL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYwo+IEBAIC0yMTcsNyArMjE3LDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIGFsX3BjaWVfdGFyZ2V0X2J1c19zZXQoc3RydWN0IGFsX3BjaWUgKnBjaWUsCj4g IHN0YXRpYyB2b2lkIF9faW9tZW0gKmFsX3BjaWVfY29uZl9hZGRyX21hcF9idXMoc3RydWN0IHBj aV9idXMgKmJ1cywKPiAgCQkJCQkgICAgICAgdW5zaWduZWQgaW50IGRldmZuLCBpbnQgd2hlcmUp Cj4gIHsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0 IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICAJc3RydWN0IGFsX3BjaWUgKnBjaWUg PSB0b19hbF9wY2llKHRvX2R3X3BjaWVfZnJvbV9wcChwcCkpOwo+ICAJdW5zaWduZWQgaW50IGJ1 c25yID0gYnVzLT5udW1iZXI7Cj4gIAlzdHJ1Y3QgYWxfcGNpZV90YXJnZXRfYnVzX2NmZyAqdGFy Z2V0X2J1c19jZmcgPSAmcGNpZS0+dGFyZ2V0X2J1c19jZmc7Cj4gQEAgLTI0NSw3ICsyNDUsNyBA QCBzdGF0aWMgc3RydWN0IHBjaV9vcHMgYWxfY2hpbGRfcGNpX29wcyA9IHsKPiAgc3RhdGljIHZv aWQgYWxfcGNpZV9jb25maWdfcHJlcGFyZShzdHJ1Y3QgYWxfcGNpZSAqcGNpZSkKPiAgewo+ICAJ c3RydWN0IGFsX3BjaWVfdGFyZ2V0X2J1c19jZmcgKnRhcmdldF9idXNfY2ZnOwo+IC0Jc3RydWN0 IHBjaWVfcG9ydCAqcHAgPSAmcGNpZS0+cGNpLT5wcDsKPiArCXN0cnVjdCBkd19wY2llX3JwICpw cCA9ICZwY2llLT5wY2ktPnBwOwo+ICAJdW5zaWduZWQgaW50IGVjYW1fYnVzX21hc2s7Cj4gIAl1 MzIgY2ZnX2NvbnRyb2xfb2Zmc2V0Owo+ICAJdTggc3Vib3JkaW5hdGVfYnVzOwo+IEBAIC0yODks NyArMjg5LDcgQEAgc3RhdGljIHZvaWQgYWxfcGNpZV9jb25maWdfcHJlcGFyZShzdHJ1Y3QgYWxf cGNpZSAqcGNpZSkKPiAgCWFsX3BjaWVfY29udHJvbGxlcl93cml0ZWwocGNpZSwgY2ZnX2NvbnRy b2xfb2Zmc2V0LCByZWcpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGFsX3BjaWVfaG9zdF9pbml0 KHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0aWMgaW50IGFsX3BjaWVfaG9zdF9pbml0KHN0 cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3 X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3QgYWxfcGNpZSAqcGNpZSA9IHRvX2FsX3BjaWUo cGNpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hcm1h ZGE4ay5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hcm1hZGE4ay5jCj4gaW5k ZXggNGUyNTUyZGNmOTgyLi44YjExM2QzZjMwOTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS1hcm1hZGE4ay5jCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpZS1hcm1hZGE4ay5jCj4gQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW50 IGFybWFkYThrX3BjaWVfc3RhcnRfbGluayhzdHJ1Y3QgZHdfcGNpZSAqcGNpKQo+ICAJcmV0dXJu IDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgYXJtYWRhOGtfcGNpZV9ob3N0X2luaXQoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgYXJtYWRhOGtfcGNpZV9ob3N0X2luaXQoc3Ry dWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAl1MzIgcmVnOwo+ICAJc3RydWN0IGR3X3BjaWUg KnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gQEAgLTIzMyw3ICsyMzMsNyBAQCBzdGF0 aWMgaW50IGFybWFkYThrX2FkZF9wY2llX3BvcnQoc3RydWN0IGFybWFkYThrX3BjaWUgKnBjaWUs Cj4gIAkJCQkgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBk d19wY2llICpwY2kgPSBwY2llLT5wY2k7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZwY2kt PnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gJnBjaS0+cHA7Cj4gIAlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ICAJaW50IHJldDsKPiAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJ0cGVjNi5jIGIvZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS1hcnRwZWM2LmMKPiBpbmRleCAyZjE1NDQxNzcwZTEuLjk4MTAyMDc5 ZTI2ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFydHBl YzYuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJ0cGVjNi5jCj4g QEAgLTk3LDcgKzk3LDcgQEAgc3RhdGljIHZvaWQgYXJ0cGVjNl9wY2llX3dyaXRlbChzdHJ1Y3Qg YXJ0cGVjNl9wY2llICphcnRwZWM2X3BjaWUsIHUzMiBvZmZzZXQsIHUKPiAgc3RhdGljIHU2NCBh cnRwZWM2X3BjaWVfY3B1X2FkZHJfZml4dXAoc3RydWN0IGR3X3BjaWUgKnBjaSwgdTY0IHBjaV9h ZGRyKQo+ICB7Cj4gIAlzdHJ1Y3QgYXJ0cGVjNl9wY2llICphcnRwZWM2X3BjaWUgPSB0b19hcnRw ZWM2X3BjaWUocGNpKTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlz dHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNpLT5wcDsKPiAgCXN0cnVjdCBkd19wY2llX2VwICpl cCA9ICZwY2ktPmVwOwo+ICAKPiAgCXN3aXRjaCAoYXJ0cGVjNl9wY2llLT5tb2RlKSB7Cj4gQEAg LTMxNSw3ICszMTUsNyBAQCBzdGF0aWMgdm9pZCBhcnRwZWM2X3BjaWVfZGVhc3NlcnRfY29yZV9y ZXNldChzdHJ1Y3QgYXJ0cGVjNl9wY2llICphcnRwZWM2X3BjaWUpCj4gIAl1c2xlZXBfcmFuZ2Uo MTAwLCAyMDApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGFydHBlYzZfcGNpZV9ob3N0X2luaXQo c3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgYXJ0cGVjNl9wY2llX2hvc3RfaW5p dChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0 b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IGFydHBlYzZfcGNpZSAqYXJ0cGVjNl9w Y2llID0gdG9fYXJ0cGVjNl9wY2llKHBjaSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0LmMgYi9kcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jCj4gaW5kZXggN2ZmMmI3NTU1YjkxLi45NTI1 NjQzNDkxM2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1k ZXNpZ253YXJlLWhvc3QuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUt ZGVzaWdud2FyZS1ob3N0LmMKPiBAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgc3RydWN0IG1zaV9k b21haW5faW5mbyBkd19wY2llX21zaV9kb21haW5faW5mbyA9IHsKPiAgfTsKPiAgCj4gIC8qIE1T SSBpbnQgaGFuZGxlciAqLwo+IC1pcnFyZXR1cm5fdCBkd19oYW5kbGVfbXNpX2lycShzdHJ1Y3Qg cGNpZV9wb3J0ICpwcCkKPiAraXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0IGR3 X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlpbnQgaSwgcG9zOwo+ICAJdW5zaWduZWQgbG9uZyB2YWw7 Cj4gQEAgLTg4LDcgKzg4LDcgQEAgaXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gIHN0YXRpYyB2b2lkIGR3X2NoYWluZWRfbXNpX2lzcihzdHJ1Y3Qg aXJxX2Rlc2MgKmRlc2MpCj4gIHsKPiAgCXN0cnVjdCBpcnFfY2hpcCAqY2hpcCA9IGlycV9kZXNj X2dldF9jaGlwKGRlc2MpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHA7Cj4gKwlzdHJ1Y3QgZHdf cGNpZV9ycCAqcHA7Cj4gIAo+ICAJY2hhaW5lZF9pcnFfZW50ZXIoY2hpcCwgZGVzYyk7Cj4gIAo+ IEBAIC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIHZvaWQgZHdfY2hhaW5lZF9tc2lfaXNyKHN0cnVj dCBpcnFfZGVzYyAqZGVzYykKPiAgCj4gIHN0YXRpYyB2b2lkIGR3X3BjaV9zZXR1cF9tc2lfbXNn KHN0cnVjdCBpcnFfZGF0YSAqZCwgc3RydWN0IG1zaV9tc2cgKm1zZykKPiAgewo+IC0Jc3RydWN0 IHBjaWVfcG9ydCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKPiArCXN0cnVj dCBkd19wY2llX3JwICpwcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpOwo+ICAJc3Ry dWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAl1NjQgbXNpX3Rh cmdldDsKPiAgCj4gQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgaW50IGR3X3BjaV9tc2lfc2V0 X2FmZmluaXR5KHN0cnVjdCBpcnFfZGF0YSAqZCwKPiAgCj4gIHN0YXRpYyB2b2lkIGR3X3BjaV9i b3R0b21fbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gIHsKPiAtCXN0cnVjdCBwY2llX3BvcnQg KnBwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9y cCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKPiAgCXN0cnVjdCBkd19wY2ll ICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJdW5zaWduZWQgaW50IHJlcywgYml0 LCBjdHJsOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiBAQCAtMTQyLDcgKzE0Miw3IEBAIHN0 YXRpYyB2b2lkIGR3X3BjaV9ib3R0b21fbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gIAo+ICBz dGF0aWMgdm9pZCBkd19wY2lfYm90dG9tX3VubWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gIHsK PiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7 Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShk KTsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJ dW5zaWduZWQgaW50IHJlcywgYml0LCBjdHJsOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiBA QCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIGR3X3BjaV9ib3R0b21fdW5tYXNrKHN0cnVj dCBpcnFfZGF0YSAqZCkKPiAgCj4gIHN0YXRpYyB2b2lkIGR3X3BjaV9ib3R0b21fYWNrKHN0cnVj dCBpcnFfZGF0YSAqZCkKPiAgewo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgID0gaXJxX2RhdGFf Z2V0X2lycV9jaGlwX2RhdGEoZCk7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgID0gaXJxX2Rh dGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdf cGNpZV9mcm9tX3BwKHBwKTsKPiAgCXVuc2lnbmVkIGludCByZXMsIGJpdCwgY3RybDsKPiAgCj4g QEAgLTE4NSw3ICsxODUsNyBAQCBzdGF0aWMgaW50IGR3X3BjaWVfaXJxX2RvbWFpbl9hbGxvYyhz dHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluLAo+ICAJCQkJICAgIHVuc2lnbmVkIGludCB2aXJxLCB1 bnNpZ25lZCBpbnQgbnJfaXJxcywKPiAgCQkJCSAgICB2b2lkICphcmdzKQo+ICB7Cj4gLQlzdHJ1 Y3QgcGNpZV9wb3J0ICpwcCA9IGRvbWFpbi0+aG9zdF9kYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVf cnAgKnBwID0gZG9tYWluLT5ob3N0X2RhdGE7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAJ dTMyIGk7Cj4gIAlpbnQgYml0Owo+IEBAIC0yMTMsNyArMjEzLDcgQEAgc3RhdGljIHZvaWQgZHdf cGNpZV9pcnFfZG9tYWluX2ZyZWUoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwKPiAgCQkJCSAg ICB1bnNpZ25lZCBpbnQgdmlycSwgdW5zaWduZWQgaW50IG5yX2lycXMpCj4gIHsKPiAgCXN0cnVj dCBpcnFfZGF0YSAqZCA9IGlycV9kb21haW5fZ2V0X2lycV9kYXRhKGRvbWFpbiwgdmlycSk7Cj4g LQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGRvbWFpbi0+aG9zdF9kYXRhOwo+ICsJc3RydWN0IGR3 X3BjaWVfcnAgKnBwID0gZG9tYWluLT5ob3N0X2RhdGE7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdz Owo+ICAKPiAgCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcHAtPmxvY2ssIGZsYWdzKTsKPiBAQCAt MjI5LDcgKzIyOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgZHdfcGNp ZV9tc2lfZG9tYWluX29wcyA9IHsKPiAgCS5mcmVlCT0gZHdfcGNpZV9pcnFfZG9tYWluX2ZyZWUs Cj4gIH07Cj4gIAo+IC1pbnQgZHdfcGNpZV9hbGxvY2F0ZV9kb21haW5zKHN0cnVjdCBwY2llX3Bv cnQgKnBwKQo+ICtpbnQgZHdfcGNpZV9hbGxvY2F0ZV9kb21haW5zKHN0cnVjdCBkd19wY2llX3Jw ICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChw cCk7Cj4gIAlzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlID0gb2Zfbm9kZV90b19md25vZGUo cGNpLT5kZXYtPm9mX25vZGUpOwo+IEBAIC0yNTUsNyArMjU1LDcgQEAgaW50IGR3X3BjaWVfYWxs b2NhdGVfZG9tYWlucyhzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiAgCXJldHVybiAwOwo+ICB9Cj4g IAo+IC1zdGF0aWMgdm9pZCBkd19wY2llX2ZyZWVfbXNpKHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ ICtzdGF0aWMgdm9pZCBkd19wY2llX2ZyZWVfbXNpKHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAg ewo+ICAJaWYgKHBwLT5tc2lfaXJxKQo+ICAJCWlycV9zZXRfY2hhaW5lZF9oYW5kbGVyX2FuZF9k YXRhKHBwLT5tc2lfaXJxLCBOVUxMLCBOVUxMKTsKPiBAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRp YyB2b2lkIGR3X3BjaWVfZnJlZV9tc2koc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gIAl9Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIGR3X3BjaWVfbXNpX2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHAp Cj4gK3N0YXRpYyB2b2lkIGR3X3BjaWVfbXNpX2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAg CXU2NCBtc2lfdGFyZ2V0ID0gKHU2NClwcC0+bXNpX2RhdGE7Cj4gQEAgLTI4NSw3ICsyODUsNyBA QCBzdGF0aWMgdm9pZCBkd19wY2llX21zaV9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICAJ ZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgUENJRV9NU0lfQUREUl9ISSwgdXBwZXJfMzJfYml0cyht c2lfdGFyZ2V0KSk7Cj4gIH0KPiAgCj4gLWludCBkd19wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNp ZV9wb3J0ICpwcCkKPiAraW50IGR3X3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpw cCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7 Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsKPiBAQCAtNDM2LDcgKzQzNiw3IEBA IGludCBkd19wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiAgfQo+ICBFWFBP UlRfU1lNQk9MX0dQTChkd19wY2llX2hvc3RfaW5pdCk7Cj4gIAo+IC12b2lkIGR3X3BjaWVfaG9z dF9kZWluaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3ZvaWQgZHdfcGNpZV9ob3N0X2RlaW5p dChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0 b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAKPiBAQCAtNDU1LDcgKzQ1NSw3IEBAIHN0YXRpYyB2 b2lkIF9faW9tZW0gKmR3X3BjaWVfb3RoZXJfY29uZl9tYXBfYnVzKHN0cnVjdCBwY2lfYnVzICpi dXMsCj4gIHsKPiAgCWludCB0eXBlOwo+ICAJdTMyIGJ1c2RldjsKPiAtCXN0cnVjdCBwY2llX3Bv cnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5z eXNkYXRhOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7 Cj4gIAo+ICAJLyoKPiBAQCAtNDg3LDcgKzQ4Nyw3IEBAIHN0YXRpYyBpbnQgZHdfcGNpZV9yZF9v dGhlcl9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKPiAgCQkJ CSBpbnQgd2hlcmUsIGludCBzaXplLCB1MzIgKnZhbCkKPiAgewo+ICAJaW50IHJldDsKPiAtCXN0 cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAg KnBwID0gYnVzLT5zeXNkYXRhOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVf ZnJvbV9wcChwcCk7Cj4gIAo+ICAJcmV0ID0gcGNpX2dlbmVyaWNfY29uZmlnX3JlYWQoYnVzLCBk ZXZmbiwgd2hlcmUsIHNpemUsIHZhbCk7Cj4gQEAgLTUwMyw3ICs1MDMsNyBAQCBzdGF0aWMgaW50 IGR3X3BjaWVfd3Jfb3RoZXJfY29uZihzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQg ZGV2Zm4sCj4gIAkJCQkgaW50IHdoZXJlLCBpbnQgc2l6ZSwgdTMyIHZhbCkKPiAgewo+ICAJaW50 IHJldDsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0 IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9 IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAo+ICAJcmV0ID0gcGNpX2dlbmVyaWNfY29uZmln X3dyaXRlKGJ1cywgZGV2Zm4sIHdoZXJlLCBzaXplLCB2YWwpOwo+IEBAIC01MjMsNyArNTIzLDcg QEAgc3RhdGljIHN0cnVjdCBwY2lfb3BzIGR3X2NoaWxkX3BjaWVfb3BzID0gewo+ICAKPiAgdm9p ZCBfX2lvbWVtICpkd19wY2llX293bl9jb25mX21hcF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cywg dW5zaWduZWQgaW50IGRldmZuLCBpbnQgd2hlcmUpCj4gIHsKPiAtCXN0cnVjdCBwY2llX3BvcnQg KnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5zeXNk YXRhOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4g IAo+ICAJaWYgKFBDSV9TTE9UKGRldmZuKSA+IDApCj4gQEAgLTUzOSw3ICs1MzksNyBAQCBzdGF0 aWMgc3RydWN0IHBjaV9vcHMgZHdfcGNpZV9vcHMgPSB7Cj4gIAkud3JpdGUgPSBwY2lfZ2VuZXJp Y19jb25maWdfd3JpdGUsCj4gIH07Cj4gIAo+IC12b2lkIGR3X3BjaWVfc2V0dXBfcmMoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gK3ZvaWQgZHdfcGNpZV9zZXR1cF9yYyhzdHJ1Y3QgZHdfcGNpZV9y cCAqcHApCj4gIHsKPiAgCXUzMiB2YWwsIGN0cmwsIG51bV9jdHJsczsKPiAgCXN0cnVjdCBkd19w Y2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtcGxhdC5jIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLXBsYXQuYwo+IGluZGV4IGFiZjFhZmFjNjA2 NC4uOTdkZTZhZDdmOWRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtZGVzaWdud2FyZS1wbGF0LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWRlc2lnbndhcmUtcGxhdC5jCj4gQEAgLTg3LDcgKzg3LDcgQEAgc3RhdGljIGludCBk d19wbGF0X2FkZF9wY2llX3BvcnQoc3RydWN0IGR3X3BsYXRfcGNpZSAqZHdfcGxhdF9wY2llLAo+ ICAJCQkJIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBkd19w Y2llICpwY2kgPSBkd19wbGF0X3BjaWUtPnBjaTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0g JnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNpLT5wcDsKPiAgCXN0cnVj dCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gIAlpbnQgcmV0Owo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmggYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUuaAo+IGluZGV4IDEzYmZmYTNlYWVk Ni4uMzJkZjNlYmNjZjE5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtZGVzaWdud2FyZS5oCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1kZXNpZ253YXJlLmgKPiBAQCAtMTU1LDggKzE1NSw4IEBACj4gICNkZWZpbmUgTUFYX0lBVFVf SU4JCQkyNTYKPiAgI2RlZmluZSBNQVhfSUFUVV9PVVQJCQkyNTYKPiAgCj4gLXN0cnVjdCBwY2ll X3BvcnQ7Cj4gIHN0cnVjdCBkd19wY2llOwo+ICtzdHJ1Y3QgZHdfcGNpZV9ycDsKPiAgc3RydWN0 IGR3X3BjaWVfZXA7Cj4gIAo+ICBlbnVtIGR3X3BjaWVfcmVnaW9uX3R5cGUgewo+IEBAIC0xNzMs MTEgKzE3MywxMSBAQCBlbnVtIGR3X3BjaWVfZGV2aWNlX21vZGUgewo+ICB9Owo+ICAKPiAgc3Ry dWN0IGR3X3BjaWVfaG9zdF9vcHMgewo+IC0JaW50ICgqaG9zdF9pbml0KShzdHJ1Y3QgcGNpZV9w b3J0ICpwcCk7Cj4gLQlpbnQgKCptc2lfaG9zdF9pbml0KShzdHJ1Y3QgcGNpZV9wb3J0ICpwcCk7 Cj4gKwlpbnQgKCpob3N0X2luaXQpKHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gKwlpbnQgKCpt c2lfaG9zdF9pbml0KShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApOwo+ICB9Owo+ICAKPiAtc3RydWN0 IHBjaWVfcG9ydCB7Cj4gK3N0cnVjdCBkd19wY2llX3JwIHsKPiAgCWJvb2wJCQloYXNfbXNpX2N0 cmw6MTsKPiAgCWJvb2wJCQljZmcwX2lvX3NoYXJlZDoxOwo+ICAJdTY0CQkJY2ZnMF9iYXNlOwo+ IEBAIC0yNjcsNyArMjY3LDcgQEAgc3RydWN0IGR3X3BjaWUgewo+ICAJc2l6ZV90CQkJYXR1X3Np emU7Cj4gIAl1MzIJCQludW1faWJfd2luZG93czsKPiAgCXUzMgkJCW51bV9vYl93aW5kb3dzOwo+ IC0Jc3RydWN0IHBjaWVfcG9ydAlwcDsKPiArCXN0cnVjdCBkd19wY2llX3JwCXBwOwo+ICAJc3Ry dWN0IGR3X3BjaWVfZXAJZXA7Cj4gIAljb25zdCBzdHJ1Y3QgZHdfcGNpZV9vcHMgKm9wczsKPiAg CXVuc2lnbmVkIGludAkJdmVyc2lvbjsKPiBAQCAtMzgwLDMzICszODAsMzMgQEAgc3RhdGljIGlu bGluZSB2b2lkIGR3X3BjaWVfc3RvcF9saW5rKHN0cnVjdCBkd19wY2llICpwY2kpCj4gIH0KPiAg Cj4gICNpZmRlZiBDT05GSUdfUENJRV9EV19IT1NUCj4gLWlycXJldHVybl90IGR3X2hhbmRsZV9t c2lfaXJxKHN0cnVjdCBwY2llX3BvcnQgKnBwKTsKPiAtdm9pZCBkd19wY2llX3NldHVwX3JjKHN0 cnVjdCBwY2llX3BvcnQgKnBwKTsKPiAtaW50IGR3X3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2ll X3BvcnQgKnBwKTsKPiAtdm9pZCBkd19wY2llX2hvc3RfZGVpbml0KHN0cnVjdCBwY2llX3BvcnQg KnBwKTsKPiAtaW50IGR3X3BjaWVfYWxsb2NhdGVfZG9tYWlucyhzdHJ1Y3QgcGNpZV9wb3J0ICpw cCk7Cj4gK2lycXJldHVybl90IGR3X2hhbmRsZV9tc2lfaXJxKHN0cnVjdCBkd19wY2llX3JwICpw cCk7Cj4gK3ZvaWQgZHdfcGNpZV9zZXR1cF9yYyhzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApOwo+ICtp bnQgZHdfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiArdm9pZCBkd19w Y2llX2hvc3RfZGVpbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gK2ludCBkd19wY2llX2Fs bG9jYXRlX2RvbWFpbnMoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiAgdm9pZCBfX2lvbWVtICpk d19wY2llX293bl9jb25mX21hcF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50 IGRldmZuLAo+ICAJCQkJICAgICAgIGludCB3aGVyZSk7Cj4gICNlbHNlCj4gLXN0YXRpYyBpbmxp bmUgaXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4g K3N0YXRpYyBpbmxpbmUgaXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0IGR3X3Bj aWVfcnAgKnBwKQo+ICB7Cj4gIAlyZXR1cm4gSVJRX05PTkU7Cj4gIH0KPiAgCj4gLXN0YXRpYyBp bmxpbmUgdm9pZCBkd19wY2llX3NldHVwX3JjKHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0 aWMgaW5saW5lIHZvaWQgZHdfcGNpZV9zZXR1cF9yYyhzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4g IHsKPiAgfQo+ICAKPiAtc3RhdGljIGlubGluZSBpbnQgZHdfcGNpZV9ob3N0X2luaXQoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbmxpbmUgaW50IGR3X3BjaWVfaG9zdF9pbml0KHN0 cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRp YyBpbmxpbmUgdm9pZCBkd19wY2llX2hvc3RfZGVpbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ ICtzdGF0aWMgaW5saW5lIHZvaWQgZHdfcGNpZV9ob3N0X2RlaW5pdChzdHJ1Y3QgZHdfcGNpZV9y cCAqcHApCj4gIHsKPiAgfQo+ICAKPiAtc3RhdGljIGlubGluZSBpbnQgZHdfcGNpZV9hbGxvY2F0 ZV9kb21haW5zKHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0aWMgaW5saW5lIGludCBkd19w Y2llX2FsbG9jYXRlX2RvbWFpbnMoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlyZXR1 cm4gMDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWR3LXJvY2tjaGlwLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWR3LXJvY2tj aGlwLmMKPiBpbmRleCA4YzViYjlkN2NjMzYuLmMxZTc2NTNlNTA4ZSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWR3LXJvY2tjaGlwLmMKPiArKysgYi9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWR3LXJvY2tjaGlwLmMKPiBAQCAtMTg2LDcgKzE4 Niw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfcGNpZV9zdGFydF9saW5rKHN0cnVjdCBkd19wY2ll ICpwY2kpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCByb2NrY2hpcF9wY2ll X2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGljIGludCByb2NrY2hpcF9w Y2llX2hvc3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAgCXN0cnVjdCBkd19w Y2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IHJvY2tjaGlwX3Bj aWUgKnJvY2tjaGlwID0gdG9fcm9ja2NoaXBfcGNpZShwY2kpOwo+IEBAIC0yODgsNyArMjg4LDcg QEAgc3RhdGljIGludCByb2NrY2hpcF9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gIAlzdHJ1 Y3Qgcm9ja2NoaXBfcGNpZSAqcm9ja2NoaXA7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcDsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcDsKPiAgCWludCByZXQ7Cj4gIAo+ICAJcm9ja2NoaXAgPSBk ZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnJvY2tjaGlwKSwgR0ZQX0tFUk5FTCk7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZnU3NDAuYyBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZnU3NDAuYwo+IGluZGV4IDAyY2M3MGQ4Y2MwNi4uZGEw NTlmMWM5ZTkyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUt ZnU3NDAuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZnU3NDAuYwo+ IEBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIGludCBmdTc0MF9wY2llX3N0YXJ0X2xpbmsoc3Ry dWN0IGR3X3BjaWUgKnBjaSkKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQg ZnU3NDBfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQg ZnU3NDBfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCBmdTc0 MF9wY2llICphZnAgPSB0b19mdTc0MF9wY2llKHBjaSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzdGIuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaWUtaGlzdGIuYwo+IGluZGV4IDQxMDU1NWRjY2I2ZC4uZTJiODBmMTAwMzBkIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzdGIuYwo+ICsrKyBi L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzdGIuYwo+IEBAIC03NCw3ICs3NCw3 IEBAIHN0YXRpYyB2b2lkIGhpc3RiX3BjaWVfd3JpdGVsKHN0cnVjdCBoaXN0Yl9wY2llICpoaXN0 Yl9wY2llLCB1MzIgcmVnLCB1MzIgdmFsKQo+ICAJd3JpdGVsKHZhbCwgaGlzdGJfcGNpZS0+Y3Ry bCArIHJlZyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGhpc3RiX3BjaWVfZGJpX3dfbW9kZShz dHJ1Y3QgcGNpZV9wb3J0ICpwcCwgYm9vbCBlbmFibGUpCj4gK3N0YXRpYyB2b2lkIGhpc3RiX3Bj aWVfZGJpX3dfbW9kZShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAsIGJvb2wgZW5hYmxlKQo+ICB7Cj4g IAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVj dCBoaXN0Yl9wY2llICpoaXBjaWUgPSB0b19oaXN0Yl9wY2llKHBjaSk7Cj4gQEAgLTg4LDcgKzg4 LDcgQEAgc3RhdGljIHZvaWQgaGlzdGJfcGNpZV9kYmlfd19tb2RlKHN0cnVjdCBwY2llX3BvcnQg KnBwLCBib29sIGVuYWJsZSkKPiAgCWhpc3RiX3BjaWVfd3JpdGVsKGhpcGNpZSwgUENJRV9TWVNf Q1RSTDAsIHZhbCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGhpc3RiX3BjaWVfZGJpX3JfbW9k ZShzdHJ1Y3QgcGNpZV9wb3J0ICpwcCwgYm9vbCBlbmFibGUpCj4gK3N0YXRpYyB2b2lkIGhpc3Ri X3BjaWVfZGJpX3JfbW9kZShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAsIGJvb2wgZW5hYmxlKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0 cnVjdCBoaXN0Yl9wY2llICpoaXBjaWUgPSB0b19oaXN0Yl9wY2llKHBjaSk7Cj4gQEAgLTE4MCw3 ICsxODAsNyBAQCBzdGF0aWMgaW50IGhpc3RiX3BjaWVfc3RhcnRfbGluayhzdHJ1Y3QgZHdfcGNp ZSAqcGNpKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaGlzdGJfcGNpZV9o b3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgaGlzdGJfcGNpZV9o b3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAq cGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCBoaXN0Yl9wY2llICpoaXBj aWUgPSB0b19oaXN0Yl9wY2llKHBjaSk7Cj4gQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgdm9p ZCBoaXN0Yl9wY2llX2hvc3RfZGlzYWJsZShzdHJ1Y3QgaGlzdGJfcGNpZSAqaGlwY2llKQo+ICAJ CXJlZ3VsYXRvcl9kaXNhYmxlKGhpcGNpZS0+dnBjaWUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50 IGhpc3RiX3BjaWVfaG9zdF9lbmFibGUoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBp bnQgaGlzdGJfcGNpZV9ob3N0X2VuYWJsZShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAg CXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0 IGhpc3RiX3BjaWUgKmhpcGNpZSA9IHRvX2hpc3RiX3BjaWUocGNpKTsKPiBAQCAtMjk3LDcgKzI5 Nyw3IEBAIHN0YXRpYyBpbnQgaGlzdGJfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgaGlzdGJfcGNpZSAqaGlwY2llOwo+ICAJc3RydWN0IGR3 X3BjaWUgKnBjaTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwOwo+ICsJc3RydWN0IGR3X3BjaWVf cnAgKnBwOwo+ICAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IHBkZXYtPmRldi5vZl9ub2RlOwo+ ICAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiAgCWVudW0gb2ZfZ3Bpb19mbGFn cyBvZl9mbGFnczsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1pbnRlbC1ndy5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1pbnRlbC1ndy5j Cj4gaW5kZXggNWJhMTQ0OTI0ZmY4Li4wN2JjNTQ4ODZkNzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1pbnRlbC1ndy5jCj4gKysrIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS1pbnRlbC1ndy5jCj4gQEAgLTM0Myw3ICszNDMsNyBAQCBzdGF0 aWMgdm9pZCBfX2ludGVsX3BjaWVfcmVtb3ZlKHN0cnVjdCBpbnRlbF9wY2llICpwY2llKQo+ICBz dGF0aWMgaW50IGludGVsX3BjaWVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9wY2llICpwY2llID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEo cGRldik7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZwY2llLT5wY2kucHA7Cj4gKwlzdHJ1 Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNpZS0+cGNpLnBwOwo+ICAKPiAgCWR3X3BjaWVfaG9zdF9k ZWluaXQocHApOwo+ICAJX19pbnRlbF9wY2llX3JlbW92ZShwY2llKTsKPiBAQCAtMzczLDcgKzM3 Myw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgaW50ZWxfcGNpZV9yZXN1bWVfbm9pcnEo c3RydWN0IGRldmljZSAqZGV2KQo+ICAJcmV0dXJuIGludGVsX3BjaWVfaG9zdF9zZXR1cChwY2ll KTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBpbnRlbF9wY2llX3JjX2luaXQoc3RydWN0IHBjaWVf cG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgaW50ZWxfcGNpZV9yY19pbml0KHN0cnVjdCBkd19wY2ll X3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9w cChwcCk7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGNpZSAqcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShwY2kt PmRldik7Cj4gQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgaW50IGludGVsX3BjaWVfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCWNvbnN0IHN0cnVjdCBpbnRlbF9wY2ll X3NvYyAqZGF0YTsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gIAlzdHJ1 Y3QgaW50ZWxfcGNpZSAqcGNpZTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwOwo+ICsJc3RydWN0 IGR3X3BjaWVfcnAgKnBwOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaTsKPiAgCWludCByZXQ7Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWtlZW1iYXku YyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUta2VlbWJheS5jCj4gaW5kZXggMWFj MjlhNmVlZjIyLi41OGYzY2FmNzVjZmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpZS1rZWVtYmF5LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWtlZW1iYXkuYwo+IEBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGljIHZvaWQga2VlbWJh eV9wY2llX21zaV9pcnFfaGFuZGxlcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCj4gIAlzdHJ1Y3Qg a2VlbWJheV9wY2llICpwY2llID0gaXJxX2Rlc2NfZ2V0X2hhbmRsZXJfZGF0YShkZXNjKTsKPiAg CXN0cnVjdCBpcnFfY2hpcCAqY2hpcCA9IGlycV9kZXNjX2dldF9jaGlwKGRlc2MpOwo+ICAJdTMy IHZhbCwgbWFzaywgc3RhdHVzOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHA7Cj4gKwlzdHJ1Y3Qg ZHdfcGNpZV9ycCAqcHA7Cj4gIAo+ICAJLyoKPiAgCSAqIEtlZW0gQmF5IFBDSWUgQ29udHJvbGxl ciBwcm92aWRlcyBhbiBhZGRpdGlvbmFsIElQIGxvZ2ljIG9uIHRvcCBvZgo+IEBAIC0zMzIsNyAr MzMyLDcgQEAgc3RhdGljIGludCBrZWVtYmF5X3BjaWVfYWRkX3BjaWVfcG9ydChzdHJ1Y3Qga2Vl bWJheV9wY2llICpwY2llLAo+ICAJCQkJICAgICAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9ICZwY2llLT5wY2k7Cj4gLQlzdHJ1Y3Qg cGNpZV9wb3J0ICpwcCA9ICZwY2ktPnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gJnBj aS0+cHA7Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ICAJdTMyIHZhbDsK PiAgCWludCByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aWUta2lyaW4uYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUta2lyaW4uYwo+IGlu ZGV4IGE1MmNhZDI2OWY4NS4uN2Y2N2FhZDcxZGY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaWUta2lyaW4uYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaWUta2lyaW4uYwo+IEBAIC02MjAsNyArNjIwLDcgQEAgc3RhdGljIGludCBraXJp bl9wY2llX3N0YXJ0X2xpbmsoc3RydWN0IGR3X3BjaWUgKnBjaSkKPiAgCXJldHVybiAwOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgaW50IGtpcmluX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQg KnBwKQo+ICtzdGF0aWMgaW50IGtpcmluX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3Jw ICpwcCkKPiAgewo+ICAJcHAtPmJyaWRnZS0+b3BzID0gJmtpcmluX3BjaV9vcHM7Cj4gIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYyBiL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtcWNvbS5jCj4gaW5kZXggMmVhMTM3NTBiNDkyLi5h OWIyMzIyNjI0ZDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1xY29tLmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYwo+ IEBAIC0xMzgxLDcgKzEzODEsNyBAQCBzdGF0aWMgaW50IHFjb21fcGNpZV9jb25maWdfc2lkX3Nt ODI1MChzdHJ1Y3QgcWNvbV9wY2llICpwY2llKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0 YXRpYyBpbnQgcWNvbV9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3Rh dGljIGludCBxY29tX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1 Y3QgcWNvbV9wY2llICpwY2llID0gdG9fcWNvbV9wY2llKHBjaSk7Cj4gQEAgLTE1NjQsNyArMTU2 NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdfcGNpZV9vcHMgZHdfcGNpZV9vcHMgPSB7Cj4g IHN0YXRpYyBpbnQgcWNvbV9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gLQlzdHJ1Y3QgcGNp ZV9wb3J0ICpwcDsKPiArCXN0cnVjdCBkd19wY2llX3JwICpwcDsKPiAgCXN0cnVjdCBkd19wY2ll ICpwY2k7Cj4gIAlzdHJ1Y3QgcWNvbV9wY2llICpwY2llOwo+ICAJY29uc3Qgc3RydWN0IHFjb21f cGNpZV9jZmcgKnBjaWVfY2ZnOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLXNwZWFyMTN4eC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1z cGVhcjEzeHguYwo+IGluZGV4IDE1NjllODJiNTU2OC4uN2ZkNjk4ZGExNDRlIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtc3BlYXIxM3h4LmMKPiArKysgYi9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXNwZWFyMTN4eC5jCj4gQEAgLTg1LDcgKzg1 LDcgQEAgc3RhdGljIGlycXJldHVybl90IHNwZWFyMTN4eF9wY2llX2lycV9oYW5kbGVyKGludCBp cnEsIHZvaWQgKmFyZykKPiAgCXN0cnVjdCBzcGVhcjEzeHhfcGNpZSAqc3BlYXIxM3h4X3BjaWUg PSBhcmc7Cj4gIAlzdHJ1Y3QgcGNpZV9hcHBfcmVnIF9faW9tZW0gKmFwcF9yZWcgPSBzcGVhcjEz eHhfcGNpZS0+YXBwX2Jhc2U7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gc3BlYXIxM3h4X3Bj aWUtPnBjaTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3Qg ZHdfcGNpZV9ycCAqcHAgPSAmcGNpLT5wcDsKPiAgCXVuc2lnbmVkIGludCBzdGF0dXM7Cj4gIAo+ ICAJc3RhdHVzID0gcmVhZGwoJmFwcF9yZWctPmludF9zdHMpOwo+IEBAIC0xMjEsNyArMTIxLDcg QEAgc3RhdGljIGludCBzcGVhcjEzeHhfcGNpZV9saW5rX3VwKHN0cnVjdCBkd19wY2llICpwY2kp Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBzcGVhcjEzeHhfcGNpZV9ob3N0 X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgc3BlYXIxM3h4X3BjaWVf aG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUg KnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3Qgc3BlYXIxM3h4X3BjaWUg KnNwZWFyMTN4eF9wY2llID0gdG9fc3BlYXIxM3h4X3BjaWUocGNpKTsKPiBAQCAtMTU1LDcgKzE1 NSw3IEBAIHN0YXRpYyBpbnQgc3BlYXIxM3h4X2FkZF9wY2llX3BvcnQoc3RydWN0IHNwZWFyMTN4 eF9wY2llICpzcGVhcjEzeHhfcGNpZSwKPiAgCQkJCSAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSBzcGVhcjEzeHhfcGNpZS0+cGNp Owo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKPiArCXN0cnVjdCBkd19wY2ll X3JwICpwcCA9ICZwY2ktPnBwOwo+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsK PiAgCWludCByZXQ7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLXRlZ3JhMTk0LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3Jh MTk0LmMKPiBpbmRleCBjYzI2Nzg0OTAxNjIuLjY1MTM1ZjVjNGE0YSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMKPiArKysgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMKPiBAQCAtMzExLDcgKzMxMSw3IEBA IHN0cnVjdCB0ZWdyYV9wY2llX3NvYyB7Cj4gIAllbnVtIGR3X3BjaWVfZGV2aWNlX21vZGUgbW9k ZTsKPiAgfTsKPiAgCj4gLXN0YXRpYyB2b2lkIGFwcGx5X2JhZF9saW5rX3dvcmthcm91bmQoc3Ry dWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2b2lkIGFwcGx5X2JhZF9saW5rX3dvcmthcm91 bmQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0g dG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2llID0g dG9fdGVncmFfcGNpZShwY2kpOwo+IEBAIC0zNDksNyArMzQ5LDcgQEAgc3RhdGljIGlycXJldHVy bl90IHRlZ3JhX3BjaWVfcnBfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQo+ICB7Cj4g IAlzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZSA9IGFyZzsKPiAgCXN0cnVjdCBkd19wY2llICpw Y2kgPSAmcGNpZS0+cGNpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcCA9ICZwY2ktPnBwOwo+ICAJdTMyIHZhbCwgdG1wOwo+ICAJ dTE2IHZhbF93Owo+ICAKPiBAQCAtNjk4LDcgKzY5OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBp bml0X2hvc3RfYXNwbShzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZSkgeyByZXR1cm47IH0KPiAg c3RhdGljIGlubGluZSB2b2lkIGluaXRfZGVidWdmcyhzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNp ZSkgeyByZXR1cm47IH0KPiAgI2VuZGlmCj4gIAo+IC1zdGF0aWMgdm9pZCB0ZWdyYV9wY2llX2Vu YWJsZV9zeXN0ZW1faW50ZXJydXB0cyhzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGljIHZv aWQgdGVncmFfcGNpZV9lbmFibGVfc3lzdGVtX2ludGVycnVwdHMoc3RydWN0IGR3X3BjaWVfcnAg KnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBw KTsKPiAgCXN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2llID0gdG9fdGVncmFfcGNpZShwY2kpOwo+ IEBAIC03MzYsNyArNzM2LDcgQEAgc3RhdGljIHZvaWQgdGVncmFfcGNpZV9lbmFibGVfc3lzdGVt X2ludGVycnVwdHMoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gIAkJCSAgIHZhbF93KTsKPiAgfQo+ ICAKPiAtc3RhdGljIHZvaWQgdGVncmFfcGNpZV9lbmFibGVfbGVnYWN5X2ludGVycnVwdHMoc3Ry dWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX2xlZ2Fj eV9pbnRlcnJ1cHRzKHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3QgdGVncmExOTRfcGNp ZSAqcGNpZSA9IHRvX3RlZ3JhX3BjaWUocGNpKTsKPiBAQCAtNzU3LDcgKzc1Nyw3IEBAIHN0YXRp YyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX2xlZ2FjeV9pbnRlcnJ1cHRzKHN0cnVjdCBwY2llX3Bv cnQgKnBwKQo+ICAJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0lOVFJfRU5fTDFfOF8wKTsK PiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdGVncmFfcGNpZV9lbmFibGVfbXNpX2ludGVycnVwdHMo c3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX21z aV9pbnRlcnJ1cHRzKHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3QgdGVncmExOTRfcGNp ZSAqcGNpZSA9IHRvX3RlZ3JhX3BjaWUocGNpKTsKPiBAQCAtNzcwLDcgKzc3MCw3IEBAIHN0YXRp YyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX21zaV9pbnRlcnJ1cHRzKHN0cnVjdCBwY2llX3BvcnQg KnBwKQo+ICAJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0lOVFJfRU5fTDBfMCk7Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX2ludGVycnVwdHMoc3RydWN0IHBj aWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX2ludGVycnVwdHMo c3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9f ZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2llID0gdG9f dGVncmFfcGNpZShwY2kpOwo+IEBAIC04NTEsNyArODUxLDcgQEAgc3RhdGljIHZvaWQgY29uZmln X2dlbjNfZ2VuNF9lcV9wcmVzZXRzKHN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2llKQo+ICAJZHdf cGNpZV93cml0ZWxfZGJpKHBjaSwgR0VOM19SRUxBVEVEX09GRiwgdmFsKTsKPiAgfQo+ICAKPiAt c3RhdGljIGludCB0ZWdyYTE5NF9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkK PiArc3RhdGljIGludCB0ZWdyYTE5NF9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAq cHApCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHAp Owo+ICAJc3RydWN0IHRlZ3JhMTk0X3BjaWUgKnBjaWUgPSB0b190ZWdyYV9wY2llKHBjaSk7Cj4g QEAgLTkxNiw3ICs5MTYsNyBAQCBzdGF0aWMgaW50IHRlZ3JhMTk0X3BjaWVfc3RhcnRfbGluayhz dHJ1Y3QgZHdfcGNpZSAqcGNpKQo+ICB7Cj4gIAl1MzIgdmFsLCBvZmZzZXQsIHNwZWVkLCB0bXA7 Cj4gIAlzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZSA9IHRvX3RlZ3JhX3BjaWUocGNpKTsKPiAt CXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAq cHAgPSAmcGNpLT5wcDsKPiAgCWJvb2wgcmV0cnkgPSB0cnVlOwo+ICAKPiAgCWlmIChwY2llLT5t b2RlID09IERXX1BDSUVfRVBfVFlQRSkgewo+IEBAIC0xMjEyLDcgKzEyMTIsNyBAQCBzdGF0aWMg aW50IHRlZ3JhX3BjaWVfYnBtcF9zZXRfcGxsX3N0YXRlKHN0cnVjdCB0ZWdyYTE5NF9wY2llICpw Y2llLAo+ICAKPiAgc3RhdGljIHZvaWQgdGVncmFfcGNpZV9kb3duc3RyZWFtX2Rldl90b19EMChz dHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZSkKPiAgewo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAg PSAmcGNpZS0+cGNpLnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gJnBjaWUtPnBjaS5w cDsKPiAgCXN0cnVjdCBwY2lfYnVzICpjaGlsZCwgKnJvb3RfYnVzID0gTlVMTDsKPiAgCXN0cnVj dCBwY2lfZGV2ICpwZGV2Owo+ICAKPiBAQCAtMTQ0Myw3ICsxNDQzLDcgQEAgc3RhdGljIHZvaWQg dGVncmFfcGNpZV91bmNvbmZpZ19jb250cm9sbGVyKHN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2ll KQo+ICBzdGF0aWMgaW50IHRlZ3JhX3BjaWVfaW5pdF9jb250cm9sbGVyKHN0cnVjdCB0ZWdyYTE5 NF9wY2llICpwY2llKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gJnBjaWUtPnBjaTsK PiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9y cCAqcHAgPSAmcGNpLT5wcDsKPiAgCWludCByZXQ7Cj4gIAo+ICAJcmV0ID0gdGVncmFfcGNpZV9j b25maWdfY29udHJvbGxlcihwY2llLCBmYWxzZSk7Cj4gQEAgLTE5NjEsNyArMTk2MSw3IEBAIHN0 YXRpYyBpbnQgdGVncmExOTRfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQo+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiAgCXN0cnVjdCByZXNvdXJj ZSAqYXR1X2RtYV9yZXM7Cj4gIAlzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZTsKPiAtCXN0cnVj dCBwY2llX3BvcnQgKnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwOwo+ICAJc3RydWN0IGR3 X3BjaWUgKnBjaTsKPiAgCXN0cnVjdCBwaHkgKipwaHlzOwo+ICAJY2hhciAqbmFtZTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS11bmlwaGllci5jIGIvZHJp dmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS11bmlwaGllci5jCj4gaW5kZXggYjQ1YWMzNzU0 MjQyLi40OGMzZWJhODE3YjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9k d2MvcGNpZS11bmlwaGllci5jCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS11bmlwaGllci5jCj4gQEAgLTE3MSw3ICsxNzEsNyBAQCBzdGF0aWMgdm9pZCB1bmlwaGllcl9w Y2llX2lycV9lbmFibGUoc3RydWN0IHVuaXBoaWVyX3BjaWUgKnBjaWUpCj4gIAo+ICBzdGF0aWMg dm9pZCB1bmlwaGllcl9wY2llX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKPiAgewo+IC0J c3RydWN0IHBjaWVfcG9ydCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpOwo+ ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1 Y3QgdW5pcGhpZXJfcGNpZSAqcGNpZSA9IHRvX3VuaXBoaWVyX3BjaWUocGNpKTsKPiAgCXVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4gQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0aWMgdm9pZCB1bmlwaGll cl9wY2llX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKPiAgCj4gIHN0YXRpYyB2b2lkIHVu aXBoaWVyX3BjaWVfaXJxX3VubWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gIHsKPiAtCXN0cnVj dCBwY2llX3BvcnQgKnBwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7Cj4gKwlzdHJ1 Y3QgZHdfcGNpZV9ycCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKPiAgCXN0 cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IHVu aXBoaWVyX3BjaWUgKnBjaWUgPSB0b191bmlwaGllcl9wY2llKHBjaSk7Cj4gIAl1bnNpZ25lZCBs b25nIGZsYWdzOwo+IEBAIC0yMjUsNyArMjI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFf ZG9tYWluX29wcyB1bmlwaGllcl9pbnR4X2RvbWFpbl9vcHMgPSB7Cj4gIAo+ICBzdGF0aWMgdm9p ZCB1bmlwaGllcl9wY2llX2lycV9oYW5kbGVyKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKPiAgewo+ IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBpcnFfZGVzY19nZXRfaGFuZGxlcl9kYXRhKGRlc2Mp Owo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gaXJxX2Rlc2NfZ2V0X2hhbmRsZXJfZGF0YShk ZXNjKTsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ ICAJc3RydWN0IHVuaXBoaWVyX3BjaWUgKnBjaWUgPSB0b191bmlwaGllcl9wY2llKHBjaSk7Cj4g IAlzdHJ1Y3QgaXJxX2NoaXAgKmNoaXAgPSBpcnFfZGVzY19nZXRfY2hpcChkZXNjKTsKPiBAQCAt MjU4LDcgKzI1OCw3IEBAIHN0YXRpYyB2b2lkIHVuaXBoaWVyX3BjaWVfaXJxX2hhbmRsZXIoc3Ry dWN0IGlycV9kZXNjICpkZXNjKQo+ICAJY2hhaW5lZF9pcnFfZXhpdChjaGlwLCBkZXNjKTsKPiAg fQo+ICAKPiAtc3RhdGljIGludCB1bmlwaGllcl9wY2llX2NvbmZpZ19sZWdhY3lfaXJxKHN0cnVj dCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0aWMgaW50IHVuaXBoaWVyX3BjaWVfY29uZmlnX2xlZ2Fj eV9pcnEoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNp ID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCB1bmlwaGllcl9wY2llICpwY2ll ID0gdG9fdW5pcGhpZXJfcGNpZShwY2kpOwo+IEBAIC0yOTUsNyArMjk1LDcgQEAgc3RhdGljIGlu dCB1bmlwaGllcl9wY2llX2NvbmZpZ19sZWdhY3lfaXJxKHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCB1bmlwaGllcl9wY2llX2hvc3Rf aW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGljIGludCB1bmlwaGllcl9wY2llX2hv c3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpw Y2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IHVuaXBoaWVyX3BjaWUgKnBj aWUgPSB0b191bmlwaGllcl9wY2llKHBjaSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtdmlzY29udGkuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtdmlzY29udGkuYwo+IGluZGV4IDUwZjgwZjA3ZTRkYi4uNzEwMjZmZWZhMzY2IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdmlzY29udGkuYwo+ICsr KyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdmlzY29udGkuYwo+IEBAIC0xNzgs NyArMTc4LDcgQEAgc3RhdGljIHZvaWQgdmlzY29udGlfcGNpZV9zdG9wX2xpbmsoc3RydWN0IGR3 X3BjaWUgKnBjaSkKPiAgICovCj4gIHN0YXRpYyB1NjQgdmlzY29udGlfcGNpZV9jcHVfYWRkcl9m aXh1cChzdHJ1Y3QgZHdfcGNpZSAqcGNpLCB1NjQgY3B1X2FkZHIpCj4gIHsKPiAtCXN0cnVjdCBw Y2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNp LT5wcDsKPiAgCj4gIAlyZXR1cm4gY3B1X2FkZHIgJiB+cHAtPmlvX2Jhc2U7Cj4gIH0KPiBAQCAt MTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdfcGNpZV9vcHMgZHdfcGNpZV9v cHMgPSB7Cj4gIAkuc3RvcF9saW5rID0gdmlzY29udGlfcGNpZV9zdG9wX2xpbmssCj4gIH07Cj4g IAo+IC1zdGF0aWMgaW50IHZpc2NvbnRpX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQg KnBwKQo+ICtzdGF0aWMgaW50IHZpc2NvbnRpX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2ll X3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9w cChwcCk7Cj4gIAlzdHJ1Y3QgdmlzY29udGlfcGNpZSAqcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShw Y2ktPmRldik7Cj4gQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMgaW50IHZpc2NvbnRpX2FkZF9w Y2llX3BvcnQoc3RydWN0IHZpc2NvbnRpX3BjaWUgKnBjaWUsCj4gIAkJCQkgIHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSAmcGNpZS0+ cGNpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKPiArCXN0cnVjdCBkd19w Y2llX3JwICpwcCA9ICZwY2ktPnBwOwo+ICAKPiAgCXBwLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJx X2J5bmFtZShwZGV2LCAiaW50ciIpOwo+ICAJaWYgKHBwLT5pcnEgPCAwKQo+IC0tIAo+IDIuMzUu MQo+IAoKLS0gCuCuruCuo+Cuv+CuteCuo+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprgrr/grrXg rq7gr40KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFtbG9naWMgbWFpbGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFtbG9n aWMK 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46E4BC43334 for ; Tue, 28 Jun 2022 06:46:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343611AbiF1Gq3 (ORCPT ); Tue, 28 Jun 2022 02:46:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244229AbiF1Gq1 (ORCPT ); Tue, 28 Jun 2022 02:46:27 -0400 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7E1113DD7 for ; Mon, 27 Jun 2022 23:46:24 -0700 (PDT) Received: by mail-pj1-x1033.google.com with SMTP id a11-20020a17090acb8b00b001eca0041455so11480637pju.1 for ; Mon, 27 Jun 2022 23:46:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=LRpQs5cOMs5HSj75+8AfUEiKj/osl4OH7vuLs6bfaeI=; b=QXCgEkzKLYlhx5RPQua2KlpaHX0weUucwmk60QBJk5xYxOo5U3IL0UfsbdSBtIVgrX M+B87DZUlnDzP7itXzadMjzNhPSj7ShTp9cpSHagReLhwgvRWYPEUSGG7rb5SMfNU9bf r2XPwTxeN2MrmxL6Y5c/12I7JPJdiscgMb9tF/xiHm8ycAWQ+sfV6aezt9YsTlz5IPUr M16XMZuY2Kr5ZcEqceGmBou7jDwu9kZIASw0EYs6B/Hypn0gyIZV8/66Swe7+VVaS0J3 KmD4W4O+7fehlot+mtDhvynVMD7PE6PDvxlWmpD6eieXBwwnwcVA1qaKPL1dKI+wdb4K 9svw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=LRpQs5cOMs5HSj75+8AfUEiKj/osl4OH7vuLs6bfaeI=; b=7fwQsQXHiMb7ZAPgxDBY0+zFseAs4NGUo8TFpty8lO+x+8zoOfo89ivXJqP2WZjBj8 wQ6aeSb3E4lAC7Gs+BPBCJ8s668fZ1s1ORS2nNuUdcn5o4ncqH3u7/sYaATlfsM91UNz LB3WwYZmgTvrBWC0eNeR4xIs2hrcAK4RGf5RstDiHIZnGgbx3IPMXurNyf149mAAAt7K 1fl97M8ftKP25v3nVhzYZnnLteOTdFhubSQ7F5E75YaK7HYYfRO7gH3gcBWNrdFq4FyV DQs/3bjfwJuCCsYJve0Oqdhx53dQuWYBTHkKNLEt+TQDAN+6E8KZGEj6bP258UpNRo2n cfHQ== X-Gm-Message-State: AJIora8aRCm99quJEVVOw85Qzxk7o3Du68PqRn78hXz/m9mHgmBs80Qh Ydb7y0A5cnekfbLl9TS0NMVw X-Google-Smtp-Source: AGRyM1syVH0OxjF/in3+ZNlpAgeJ4nGCK8UGH4OVrIlm0mTYOfjKN4IudwILz0eDdehI8KY5xROk4g== X-Received: by 2002:a17:902:e850:b0:16a:209a:971a with SMTP id t16-20020a170902e85000b0016a209a971amr3469189plg.163.1656398783887; Mon, 27 Jun 2022 23:46:23 -0700 (PDT) Received: from thinkpad ([27.111.75.159]) by smtp.gmail.com with ESMTPSA id jd12-20020a170903260c00b0016a15842cf5sm8380980plb.121.2022.06.27.23.46.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jun 2022 23:46:23 -0700 (PDT) Date: Tue, 28 Jun 2022 12:16:08 +0530 From: Manivannan Sadhasivam To: Serge Semin Cc: Rob Herring , Bjorn Helgaas , Lorenzo Pieralisi , Kishon Vijay Abraham I , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Jingoo Han , Krzysztof Kozlowski , Alim Akhtar , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Minghuan Lian , Mingkai Hu , Roy Zang , Yue Wang , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Jonathan Chocron , Thomas Petazzoni , Jesper Nilsson , Gustavo Pimentel , Heiko Stuebner , Paul Walmsley , Greentime Hu , Rahul Tanwar , Srikanth Thokala , Xiaowei Song , Binghui Wang , Andy Gross , Bjorn Andersson , Stanimir Varbanov , Pratyush Anand , Thierry Reding , Jonathan Hunter , Kunihiko Hayashi , Masami Hiramatsu , Nobuhiro Iwamatsu , Serge Semin , Alexey Malahov , Pavel Parkhomenko , Frank Li , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@axis.com, linux-rockchip@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-tegra@vger.kernel.org Subject: Re: [PATCH RESEND v5 15/18] PCI: dwc: Add dw_ prefix to the pcie_port structure name Message-ID: <20220628064608.GH23601@thinkpad> References: <20220624143428.8334-1-Sergey.Semin@baikalelectronics.ru> <20220624143428.8334-16-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220624143428.8334-16-Sergey.Semin@baikalelectronics.ru> Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On Fri, Jun 24, 2022 at 05:34:25PM +0300, Serge Semin wrote: > All of the DW PCIe core driver entities have names with the dw_ prefix in > order to easily distinguish local and common PCIe name spaces. All except > the pcie_port structure which contains the DW PCIe Root Port descriptor. > For historical reason the structure has retained the original name since > commit 340cba6092c2 ("pci: Add PCIe driver for Samsung Exynos") when > the DW PCIe IP-core support was added to the kernel. Let's finally fix > that by adding the dw_ prefix to the structure name and by adding the _rp > suffix to be similar to the EP counterpart. Thus the name will be coherent > with the common driver naming policy. It shall make the driver code more > readable eliminating visual confusion between the local and generic PCI > name spaces. > > Signed-off-by: Serge Semin Reviewed-by: Manivannan Sadhasivam Thanks, Mani > Reviewed-by: Rob Herring > > --- > > Changelog v4: > - This is a new patch created on the v4 lap of the series. > --- > drivers/pci/controller/dwc/pci-dra7xx.c | 12 +++---- > drivers/pci/controller/dwc/pci-exynos.c | 6 ++-- > drivers/pci/controller/dwc/pci-imx6.c | 6 ++-- > drivers/pci/controller/dwc/pci-keystone.c | 20 +++++------ > drivers/pci/controller/dwc/pci-layerscape.c | 2 +- > drivers/pci/controller/dwc/pci-meson.c | 2 +- > drivers/pci/controller/dwc/pcie-al.c | 6 ++-- > drivers/pci/controller/dwc/pcie-armada8k.c | 4 +-- > drivers/pci/controller/dwc/pcie-artpec6.c | 4 +-- > .../pci/controller/dwc/pcie-designware-host.c | 36 +++++++++---------- > .../pci/controller/dwc/pcie-designware-plat.c | 2 +- > drivers/pci/controller/dwc/pcie-designware.h | 30 ++++++++-------- > drivers/pci/controller/dwc/pcie-dw-rockchip.c | 4 +-- > drivers/pci/controller/dwc/pcie-fu740.c | 2 +- > drivers/pci/controller/dwc/pcie-histb.c | 10 +++--- > drivers/pci/controller/dwc/pcie-intel-gw.c | 6 ++-- > drivers/pci/controller/dwc/pcie-keembay.c | 4 +-- > drivers/pci/controller/dwc/pcie-kirin.c | 2 +- > drivers/pci/controller/dwc/pcie-qcom.c | 4 +-- > drivers/pci/controller/dwc/pcie-spear13xx.c | 6 ++-- > drivers/pci/controller/dwc/pcie-tegra194.c | 22 ++++++------ > drivers/pci/controller/dwc/pcie-uniphier.c | 10 +++--- > drivers/pci/controller/dwc/pcie-visconti.c | 6 ++-- > 23 files changed, 103 insertions(+), 103 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c > index dfcdeb432dc8..a174b680b2a7 100644 > --- a/drivers/pci/controller/dwc/pci-dra7xx.c > +++ b/drivers/pci/controller/dwc/pci-dra7xx.c > @@ -178,7 +178,7 @@ static void dra7xx_pcie_enable_interrupts(struct dra7xx_pcie *dra7xx) > dra7xx_pcie_enable_msi_interrupts(dra7xx); > } > > -static int dra7xx_pcie_host_init(struct pcie_port *pp) > +static int dra7xx_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct dra7xx_pcie *dra7xx = to_dra7xx_pcie(pci); > @@ -202,7 +202,7 @@ static const struct irq_domain_ops intx_domain_ops = { > .xlate = pci_irqd_intx_xlate, > }; > > -static int dra7xx_pcie_handle_msi(struct pcie_port *pp, int index) > +static int dra7xx_pcie_handle_msi(struct dw_pcie_rp *pp, int index) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > unsigned long val; > @@ -224,7 +224,7 @@ static int dra7xx_pcie_handle_msi(struct pcie_port *pp, int index) > return 1; > } > > -static void dra7xx_pcie_handle_msi_irq(struct pcie_port *pp) > +static void dra7xx_pcie_handle_msi_irq(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > int ret, i, count, num_ctrls; > @@ -255,8 +255,8 @@ static void dra7xx_pcie_msi_irq_handler(struct irq_desc *desc) > { > struct irq_chip *chip = irq_desc_get_chip(desc); > struct dra7xx_pcie *dra7xx; > + struct dw_pcie_rp *pp; > struct dw_pcie *pci; > - struct pcie_port *pp; > unsigned long reg; > u32 bit; > > @@ -344,7 +344,7 @@ static irqreturn_t dra7xx_pcie_irq_handler(int irq, void *arg) > return IRQ_HANDLED; > } > > -static int dra7xx_pcie_init_irq_domain(struct pcie_port *pp) > +static int dra7xx_pcie_init_irq_domain(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct device *dev = pci->dev; > @@ -475,7 +475,7 @@ static int dra7xx_add_pcie_port(struct dra7xx_pcie *dra7xx, > { > int ret; > struct dw_pcie *pci = dra7xx->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = pci->dev; > > pp->irq = platform_get_irq(pdev, 1); > diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c > index 467c8d1cd7e4..2044d191fba6 100644 > --- a/drivers/pci/controller/dwc/pci-exynos.c > +++ b/drivers/pci/controller/dwc/pci-exynos.c > @@ -249,7 +249,7 @@ static int exynos_pcie_link_up(struct dw_pcie *pci) > return (val & PCIE_ELBI_XMLH_LINKUP); > } > > -static int exynos_pcie_host_init(struct pcie_port *pp) > +static int exynos_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct exynos_pcie *ep = to_exynos_pcie(pci); > @@ -276,7 +276,7 @@ static int exynos_add_pcie_port(struct exynos_pcie *ep, > struct platform_device *pdev) > { > struct dw_pcie *pci = &ep->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > int ret; > > @@ -406,7 +406,7 @@ static int __maybe_unused exynos_pcie_resume_noirq(struct device *dev) > { > struct exynos_pcie *ep = dev_get_drvdata(dev); > struct dw_pcie *pci = &ep->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > int ret; > > ret = regulator_bulk_enable(ARRAY_SIZE(ep->supplies), ep->supplies); > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 7a285fb0f619..5ea01ed4674d 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -863,7 +863,7 @@ static int imx6_pcie_start_link(struct dw_pcie *pci) > return ret; > } > > -static int imx6_pcie_host_init(struct pcie_port *pp) > +static int imx6_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct imx6_pcie *imx6_pcie = to_imx6_pcie(pci); > @@ -992,7 +992,7 @@ static int imx6_pcie_resume_noirq(struct device *dev) > { > int ret; > struct imx6_pcie *imx6_pcie = dev_get_drvdata(dev); > - struct pcie_port *pp = &imx6_pcie->pci->pp; > + struct dw_pcie_rp *pp = &imx6_pcie->pci->pp; > > if (!(imx6_pcie->drvdata->flags & IMX6_PCIE_FLAG_SUPPORTS_SUSPEND)) > return 0; > @@ -1291,7 +1291,7 @@ static struct platform_driver imx6_pcie_driver = { > static void imx6_pcie_quirk(struct pci_dev *dev) > { > struct pci_bus *bus = dev->bus; > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > > /* Bus parent is the PCI bridge, its parent is this platform driver */ > if (!bus->dev.parent || !bus->dev.parent->parent) > diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/controller/dwc/pci-keystone.c > index d10e5fd0f83c..c3d88aa27dd4 100644 > --- a/drivers/pci/controller/dwc/pci-keystone.c > +++ b/drivers/pci/controller/dwc/pci-keystone.c > @@ -147,7 +147,7 @@ static void ks_pcie_app_writel(struct keystone_pcie *ks_pcie, u32 offset, > > static void ks_pcie_msi_irq_ack(struct irq_data *data) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(data); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(data); > struct keystone_pcie *ks_pcie; > u32 irq = data->hwirq; > struct dw_pcie *pci; > @@ -167,7 +167,7 @@ static void ks_pcie_msi_irq_ack(struct irq_data *data) > > static void ks_pcie_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(data); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(data); > struct keystone_pcie *ks_pcie; > struct dw_pcie *pci; > u64 msi_target; > @@ -192,7 +192,7 @@ static int ks_pcie_msi_set_affinity(struct irq_data *irq_data, > > static void ks_pcie_msi_mask(struct irq_data *data) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(data); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(data); > struct keystone_pcie *ks_pcie; > u32 irq = data->hwirq; > struct dw_pcie *pci; > @@ -216,7 +216,7 @@ static void ks_pcie_msi_mask(struct irq_data *data) > > static void ks_pcie_msi_unmask(struct irq_data *data) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(data); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(data); > struct keystone_pcie *ks_pcie; > u32 irq = data->hwirq; > struct dw_pcie *pci; > @@ -247,7 +247,7 @@ static struct irq_chip ks_pcie_msi_irq_chip = { > .irq_unmask = ks_pcie_msi_unmask, > }; > > -static int ks_pcie_msi_host_init(struct pcie_port *pp) > +static int ks_pcie_msi_host_init(struct dw_pcie_rp *pp) > { > pp->msi_irq_chip = &ks_pcie_msi_irq_chip; > return dw_pcie_allocate_domains(pp); > @@ -390,7 +390,7 @@ static void ks_pcie_setup_rc_app_regs(struct keystone_pcie *ks_pcie) > u32 val; > u32 num_viewport = ks_pcie->num_viewport; > struct dw_pcie *pci = ks_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > u64 start, end; > struct resource *mem; > int i; > @@ -428,7 +428,7 @@ static void ks_pcie_setup_rc_app_regs(struct keystone_pcie *ks_pcie) > static void __iomem *ks_pcie_other_map_bus(struct pci_bus *bus, > unsigned int devfn, int where) > { > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct keystone_pcie *ks_pcie = to_keystone_pcie(pci); > u32 reg; > @@ -456,7 +456,7 @@ static struct pci_ops ks_child_pcie_ops = { > */ > static int ks_pcie_v3_65_add_bus(struct pci_bus *bus) > { > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct keystone_pcie *ks_pcie = to_keystone_pcie(pci); > > @@ -574,7 +574,7 @@ static void ks_pcie_msi_irq_handler(struct irq_desc *desc) > struct keystone_pcie *ks_pcie = irq_desc_get_handler_data(desc); > u32 offset = irq - ks_pcie->msi_host_irq; > struct dw_pcie *pci = ks_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = pci->dev; > struct irq_chip *chip = irq_desc_get_chip(desc); > u32 vector, reg, pos; > @@ -799,7 +799,7 @@ static int __init ks_pcie_init_id(struct keystone_pcie *ks_pcie) > return 0; > } > > -static int __init ks_pcie_host_init(struct pcie_port *pp) > +static int __init ks_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct keystone_pcie *ks_pcie = to_keystone_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pci-layerscape.c b/drivers/pci/controller/dwc/pci-layerscape.c > index 6a4f0619bb1c..879b8692f96a 100644 > --- a/drivers/pci/controller/dwc/pci-layerscape.c > +++ b/drivers/pci/controller/dwc/pci-layerscape.c > @@ -74,7 +74,7 @@ static void ls_pcie_fix_error_response(struct ls_pcie *pcie) > iowrite32(PCIE_ABSERR_SETTING, pci->dbi_base + PCIE_ABSERR); > } > > -static int ls_pcie_host_init(struct pcie_port *pp) > +static int ls_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct ls_pcie *pcie = to_ls_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pci-meson.c b/drivers/pci/controller/dwc/pci-meson.c > index f44bf347904a..c1527693bed9 100644 > --- a/drivers/pci/controller/dwc/pci-meson.c > +++ b/drivers/pci/controller/dwc/pci-meson.c > @@ -370,7 +370,7 @@ static int meson_pcie_link_up(struct dw_pcie *pci) > return 0; > } > > -static int meson_pcie_host_init(struct pcie_port *pp) > +static int meson_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct meson_pcie *mp = to_meson_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-al.c b/drivers/pci/controller/dwc/pcie-al.c > index e8afa50129a8..b8cb77c9c4bd 100644 > --- a/drivers/pci/controller/dwc/pcie-al.c > +++ b/drivers/pci/controller/dwc/pcie-al.c > @@ -217,7 +217,7 @@ static inline void al_pcie_target_bus_set(struct al_pcie *pcie, > static void __iomem *al_pcie_conf_addr_map_bus(struct pci_bus *bus, > unsigned int devfn, int where) > { > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct al_pcie *pcie = to_al_pcie(to_dw_pcie_from_pp(pp)); > unsigned int busnr = bus->number; > struct al_pcie_target_bus_cfg *target_bus_cfg = &pcie->target_bus_cfg; > @@ -245,7 +245,7 @@ static struct pci_ops al_child_pci_ops = { > static void al_pcie_config_prepare(struct al_pcie *pcie) > { > struct al_pcie_target_bus_cfg *target_bus_cfg; > - struct pcie_port *pp = &pcie->pci->pp; > + struct dw_pcie_rp *pp = &pcie->pci->pp; > unsigned int ecam_bus_mask; > u32 cfg_control_offset; > u8 subordinate_bus; > @@ -289,7 +289,7 @@ static void al_pcie_config_prepare(struct al_pcie *pcie) > al_pcie_controller_writel(pcie, cfg_control_offset, reg); > } > > -static int al_pcie_host_init(struct pcie_port *pp) > +static int al_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct al_pcie *pcie = to_al_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-armada8k.c b/drivers/pci/controller/dwc/pcie-armada8k.c > index 4e2552dcf982..8b113d3f3095 100644 > --- a/drivers/pci/controller/dwc/pcie-armada8k.c > +++ b/drivers/pci/controller/dwc/pcie-armada8k.c > @@ -166,7 +166,7 @@ static int armada8k_pcie_start_link(struct dw_pcie *pci) > return 0; > } > > -static int armada8k_pcie_host_init(struct pcie_port *pp) > +static int armada8k_pcie_host_init(struct dw_pcie_rp *pp) > { > u32 reg; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > @@ -233,7 +233,7 @@ static int armada8k_add_pcie_port(struct armada8k_pcie *pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > int ret; > > diff --git a/drivers/pci/controller/dwc/pcie-artpec6.c b/drivers/pci/controller/dwc/pcie-artpec6.c > index 2f15441770e1..98102079e26d 100644 > --- a/drivers/pci/controller/dwc/pcie-artpec6.c > +++ b/drivers/pci/controller/dwc/pcie-artpec6.c > @@ -97,7 +97,7 @@ static void artpec6_pcie_writel(struct artpec6_pcie *artpec6_pcie, u32 offset, u > static u64 artpec6_pcie_cpu_addr_fixup(struct dw_pcie *pci, u64 pci_addr) > { > struct artpec6_pcie *artpec6_pcie = to_artpec6_pcie(pci); > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct dw_pcie_ep *ep = &pci->ep; > > switch (artpec6_pcie->mode) { > @@ -315,7 +315,7 @@ static void artpec6_pcie_deassert_core_reset(struct artpec6_pcie *artpec6_pcie) > usleep_range(100, 200); > } > > -static int artpec6_pcie_host_init(struct pcie_port *pp) > +static int artpec6_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct artpec6_pcie *artpec6_pcie = to_artpec6_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c > index 7ff2b7555b91..95256434913f 100644 > --- a/drivers/pci/controller/dwc/pcie-designware-host.c > +++ b/drivers/pci/controller/dwc/pcie-designware-host.c > @@ -53,7 +53,7 @@ static struct msi_domain_info dw_pcie_msi_domain_info = { > }; > > /* MSI int handler */ > -irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) > +irqreturn_t dw_handle_msi_irq(struct dw_pcie_rp *pp) > { > int i, pos; > unsigned long val; > @@ -88,7 +88,7 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) > static void dw_chained_msi_isr(struct irq_desc *desc) > { > struct irq_chip *chip = irq_desc_get_chip(desc); > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > > chained_irq_enter(chip, desc); > > @@ -100,7 +100,7 @@ static void dw_chained_msi_isr(struct irq_desc *desc) > > static void dw_pci_setup_msi_msg(struct irq_data *d, struct msi_msg *msg) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > u64 msi_target; > > @@ -123,7 +123,7 @@ static int dw_pci_msi_set_affinity(struct irq_data *d, > > static void dw_pci_bottom_mask(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > unsigned int res, bit, ctrl; > unsigned long flags; > @@ -142,7 +142,7 @@ static void dw_pci_bottom_mask(struct irq_data *d) > > static void dw_pci_bottom_unmask(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > unsigned int res, bit, ctrl; > unsigned long flags; > @@ -161,7 +161,7 @@ static void dw_pci_bottom_unmask(struct irq_data *d) > > static void dw_pci_bottom_ack(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > unsigned int res, bit, ctrl; > > @@ -185,7 +185,7 @@ static int dw_pcie_irq_domain_alloc(struct irq_domain *domain, > unsigned int virq, unsigned int nr_irqs, > void *args) > { > - struct pcie_port *pp = domain->host_data; > + struct dw_pcie_rp *pp = domain->host_data; > unsigned long flags; > u32 i; > int bit; > @@ -213,7 +213,7 @@ static void dw_pcie_irq_domain_free(struct irq_domain *domain, > unsigned int virq, unsigned int nr_irqs) > { > struct irq_data *d = irq_domain_get_irq_data(domain, virq); > - struct pcie_port *pp = domain->host_data; > + struct dw_pcie_rp *pp = domain->host_data; > unsigned long flags; > > raw_spin_lock_irqsave(&pp->lock, flags); > @@ -229,7 +229,7 @@ static const struct irq_domain_ops dw_pcie_msi_domain_ops = { > .free = dw_pcie_irq_domain_free, > }; > > -int dw_pcie_allocate_domains(struct pcie_port *pp) > +int dw_pcie_allocate_domains(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct fwnode_handle *fwnode = of_node_to_fwnode(pci->dev->of_node); > @@ -255,7 +255,7 @@ int dw_pcie_allocate_domains(struct pcie_port *pp) > return 0; > } > > -static void dw_pcie_free_msi(struct pcie_port *pp) > +static void dw_pcie_free_msi(struct dw_pcie_rp *pp) > { > if (pp->msi_irq) > irq_set_chained_handler_and_data(pp->msi_irq, NULL, NULL); > @@ -272,7 +272,7 @@ static void dw_pcie_free_msi(struct pcie_port *pp) > } > } > > -static void dw_pcie_msi_init(struct pcie_port *pp) > +static void dw_pcie_msi_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > u64 msi_target = (u64)pp->msi_data; > @@ -285,7 +285,7 @@ static void dw_pcie_msi_init(struct pcie_port *pp) > dw_pcie_writel_dbi(pci, PCIE_MSI_ADDR_HI, upper_32_bits(msi_target)); > } > > -int dw_pcie_host_init(struct pcie_port *pp) > +int dw_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct device *dev = pci->dev; > @@ -436,7 +436,7 @@ int dw_pcie_host_init(struct pcie_port *pp) > } > EXPORT_SYMBOL_GPL(dw_pcie_host_init); > > -void dw_pcie_host_deinit(struct pcie_port *pp) > +void dw_pcie_host_deinit(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > @@ -455,7 +455,7 @@ static void __iomem *dw_pcie_other_conf_map_bus(struct pci_bus *bus, > { > int type; > u32 busdev; > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > /* > @@ -487,7 +487,7 @@ static int dw_pcie_rd_other_conf(struct pci_bus *bus, unsigned int devfn, > int where, int size, u32 *val) > { > int ret; > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > ret = pci_generic_config_read(bus, devfn, where, size, val); > @@ -503,7 +503,7 @@ static int dw_pcie_wr_other_conf(struct pci_bus *bus, unsigned int devfn, > int where, int size, u32 val) > { > int ret; > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > ret = pci_generic_config_write(bus, devfn, where, size, val); > @@ -523,7 +523,7 @@ static struct pci_ops dw_child_pcie_ops = { > > void __iomem *dw_pcie_own_conf_map_bus(struct pci_bus *bus, unsigned int devfn, int where) > { > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > if (PCI_SLOT(devfn) > 0) > @@ -539,7 +539,7 @@ static struct pci_ops dw_pcie_ops = { > .write = pci_generic_config_write, > }; > > -void dw_pcie_setup_rc(struct pcie_port *pp) > +void dw_pcie_setup_rc(struct dw_pcie_rp *pp) > { > u32 val, ctrl, num_ctrls; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > diff --git a/drivers/pci/controller/dwc/pcie-designware-plat.c b/drivers/pci/controller/dwc/pcie-designware-plat.c > index abf1afac6064..97de6ad7f9db 100644 > --- a/drivers/pci/controller/dwc/pcie-designware-plat.c > +++ b/drivers/pci/controller/dwc/pcie-designware-plat.c > @@ -87,7 +87,7 @@ static int dw_plat_add_pcie_port(struct dw_plat_pcie *dw_plat_pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = dw_plat_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > int ret; > > diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h > index 13bffa3eaed6..32df3ebccf19 100644 > --- a/drivers/pci/controller/dwc/pcie-designware.h > +++ b/drivers/pci/controller/dwc/pcie-designware.h > @@ -155,8 +155,8 @@ > #define MAX_IATU_IN 256 > #define MAX_IATU_OUT 256 > > -struct pcie_port; > struct dw_pcie; > +struct dw_pcie_rp; > struct dw_pcie_ep; > > enum dw_pcie_region_type { > @@ -173,11 +173,11 @@ enum dw_pcie_device_mode { > }; > > struct dw_pcie_host_ops { > - int (*host_init)(struct pcie_port *pp); > - int (*msi_host_init)(struct pcie_port *pp); > + int (*host_init)(struct dw_pcie_rp *pp); > + int (*msi_host_init)(struct dw_pcie_rp *pp); > }; > > -struct pcie_port { > +struct dw_pcie_rp { > bool has_msi_ctrl:1; > bool cfg0_io_shared:1; > u64 cfg0_base; > @@ -267,7 +267,7 @@ struct dw_pcie { > size_t atu_size; > u32 num_ib_windows; > u32 num_ob_windows; > - struct pcie_port pp; > + struct dw_pcie_rp pp; > struct dw_pcie_ep ep; > const struct dw_pcie_ops *ops; > unsigned int version; > @@ -380,33 +380,33 @@ static inline void dw_pcie_stop_link(struct dw_pcie *pci) > } > > #ifdef CONFIG_PCIE_DW_HOST > -irqreturn_t dw_handle_msi_irq(struct pcie_port *pp); > -void dw_pcie_setup_rc(struct pcie_port *pp); > -int dw_pcie_host_init(struct pcie_port *pp); > -void dw_pcie_host_deinit(struct pcie_port *pp); > -int dw_pcie_allocate_domains(struct pcie_port *pp); > +irqreturn_t dw_handle_msi_irq(struct dw_pcie_rp *pp); > +void dw_pcie_setup_rc(struct dw_pcie_rp *pp); > +int dw_pcie_host_init(struct dw_pcie_rp *pp); > +void dw_pcie_host_deinit(struct dw_pcie_rp *pp); > +int dw_pcie_allocate_domains(struct dw_pcie_rp *pp); > void __iomem *dw_pcie_own_conf_map_bus(struct pci_bus *bus, unsigned int devfn, > int where); > #else > -static inline irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) > +static inline irqreturn_t dw_handle_msi_irq(struct dw_pcie_rp *pp) > { > return IRQ_NONE; > } > > -static inline void dw_pcie_setup_rc(struct pcie_port *pp) > +static inline void dw_pcie_setup_rc(struct dw_pcie_rp *pp) > { > } > > -static inline int dw_pcie_host_init(struct pcie_port *pp) > +static inline int dw_pcie_host_init(struct dw_pcie_rp *pp) > { > return 0; > } > > -static inline void dw_pcie_host_deinit(struct pcie_port *pp) > +static inline void dw_pcie_host_deinit(struct dw_pcie_rp *pp) > { > } > > -static inline int dw_pcie_allocate_domains(struct pcie_port *pp) > +static inline int dw_pcie_allocate_domains(struct dw_pcie_rp *pp) > { > return 0; > } > diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > index 8c5bb9d7cc36..c1e7653e508e 100644 > --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c > +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > @@ -186,7 +186,7 @@ static int rockchip_pcie_start_link(struct dw_pcie *pci) > return 0; > } > > -static int rockchip_pcie_host_init(struct pcie_port *pp) > +static int rockchip_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct rockchip_pcie *rockchip = to_rockchip_pcie(pci); > @@ -288,7 +288,7 @@ static int rockchip_pcie_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct rockchip_pcie *rockchip; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > int ret; > > rockchip = devm_kzalloc(dev, sizeof(*rockchip), GFP_KERNEL); > diff --git a/drivers/pci/controller/dwc/pcie-fu740.c b/drivers/pci/controller/dwc/pcie-fu740.c > index 02cc70d8cc06..da059f1c9e92 100644 > --- a/drivers/pci/controller/dwc/pcie-fu740.c > +++ b/drivers/pci/controller/dwc/pcie-fu740.c > @@ -236,7 +236,7 @@ static int fu740_pcie_start_link(struct dw_pcie *pci) > return ret; > } > > -static int fu740_pcie_host_init(struct pcie_port *pp) > +static int fu740_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct fu740_pcie *afp = to_fu740_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-histb.c b/drivers/pci/controller/dwc/pcie-histb.c > index 410555dccb6d..e2b80f10030d 100644 > --- a/drivers/pci/controller/dwc/pcie-histb.c > +++ b/drivers/pci/controller/dwc/pcie-histb.c > @@ -74,7 +74,7 @@ static void histb_pcie_writel(struct histb_pcie *histb_pcie, u32 reg, u32 val) > writel(val, histb_pcie->ctrl + reg); > } > > -static void histb_pcie_dbi_w_mode(struct pcie_port *pp, bool enable) > +static void histb_pcie_dbi_w_mode(struct dw_pcie_rp *pp, bool enable) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct histb_pcie *hipcie = to_histb_pcie(pci); > @@ -88,7 +88,7 @@ static void histb_pcie_dbi_w_mode(struct pcie_port *pp, bool enable) > histb_pcie_writel(hipcie, PCIE_SYS_CTRL0, val); > } > > -static void histb_pcie_dbi_r_mode(struct pcie_port *pp, bool enable) > +static void histb_pcie_dbi_r_mode(struct dw_pcie_rp *pp, bool enable) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct histb_pcie *hipcie = to_histb_pcie(pci); > @@ -180,7 +180,7 @@ static int histb_pcie_start_link(struct dw_pcie *pci) > return 0; > } > > -static int histb_pcie_host_init(struct pcie_port *pp) > +static int histb_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct histb_pcie *hipcie = to_histb_pcie(pci); > @@ -219,7 +219,7 @@ static void histb_pcie_host_disable(struct histb_pcie *hipcie) > regulator_disable(hipcie->vpcie); > } > > -static int histb_pcie_host_enable(struct pcie_port *pp) > +static int histb_pcie_host_enable(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct histb_pcie *hipcie = to_histb_pcie(pci); > @@ -297,7 +297,7 @@ static int histb_pcie_probe(struct platform_device *pdev) > { > struct histb_pcie *hipcie; > struct dw_pcie *pci; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > struct device_node *np = pdev->dev.of_node; > struct device *dev = &pdev->dev; > enum of_gpio_flags of_flags; > diff --git a/drivers/pci/controller/dwc/pcie-intel-gw.c b/drivers/pci/controller/dwc/pcie-intel-gw.c > index 5ba144924ff8..07bc54886d71 100644 > --- a/drivers/pci/controller/dwc/pcie-intel-gw.c > +++ b/drivers/pci/controller/dwc/pcie-intel-gw.c > @@ -343,7 +343,7 @@ static void __intel_pcie_remove(struct intel_pcie *pcie) > static int intel_pcie_remove(struct platform_device *pdev) > { > struct intel_pcie *pcie = platform_get_drvdata(pdev); > - struct pcie_port *pp = &pcie->pci.pp; > + struct dw_pcie_rp *pp = &pcie->pci.pp; > > dw_pcie_host_deinit(pp); > __intel_pcie_remove(pcie); > @@ -373,7 +373,7 @@ static int __maybe_unused intel_pcie_resume_noirq(struct device *dev) > return intel_pcie_host_setup(pcie); > } > > -static int intel_pcie_rc_init(struct pcie_port *pp) > +static int intel_pcie_rc_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct intel_pcie *pcie = dev_get_drvdata(pci->dev); > @@ -403,7 +403,7 @@ static int intel_pcie_probe(struct platform_device *pdev) > const struct intel_pcie_soc *data; > struct device *dev = &pdev->dev; > struct intel_pcie *pcie; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > struct dw_pcie *pci; > int ret; > > diff --git a/drivers/pci/controller/dwc/pcie-keembay.c b/drivers/pci/controller/dwc/pcie-keembay.c > index 1ac29a6eef22..58f3caf75cff 100644 > --- a/drivers/pci/controller/dwc/pcie-keembay.c > +++ b/drivers/pci/controller/dwc/pcie-keembay.c > @@ -231,7 +231,7 @@ static void keembay_pcie_msi_irq_handler(struct irq_desc *desc) > struct keembay_pcie *pcie = irq_desc_get_handler_data(desc); > struct irq_chip *chip = irq_desc_get_chip(desc); > u32 val, mask, status; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > > /* > * Keem Bay PCIe Controller provides an additional IP logic on top of > @@ -332,7 +332,7 @@ static int keembay_pcie_add_pcie_port(struct keembay_pcie *pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = &pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > u32 val; > int ret; > diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c > index a52cad269f85..7f67aad71df4 100644 > --- a/drivers/pci/controller/dwc/pcie-kirin.c > +++ b/drivers/pci/controller/dwc/pcie-kirin.c > @@ -620,7 +620,7 @@ static int kirin_pcie_start_link(struct dw_pcie *pci) > return 0; > } > > -static int kirin_pcie_host_init(struct pcie_port *pp) > +static int kirin_pcie_host_init(struct dw_pcie_rp *pp) > { > pp->bridge->ops = &kirin_pci_ops; > > diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c > index 2ea13750b492..a9b2322624d5 100644 > --- a/drivers/pci/controller/dwc/pcie-qcom.c > +++ b/drivers/pci/controller/dwc/pcie-qcom.c > @@ -1381,7 +1381,7 @@ static int qcom_pcie_config_sid_sm8250(struct qcom_pcie *pcie) > return 0; > } > > -static int qcom_pcie_host_init(struct pcie_port *pp) > +static int qcom_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct qcom_pcie *pcie = to_qcom_pcie(pci); > @@ -1564,7 +1564,7 @@ static const struct dw_pcie_ops dw_pcie_ops = { > static int qcom_pcie_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > struct dw_pcie *pci; > struct qcom_pcie *pcie; > const struct qcom_pcie_cfg *pcie_cfg; > diff --git a/drivers/pci/controller/dwc/pcie-spear13xx.c b/drivers/pci/controller/dwc/pcie-spear13xx.c > index 1569e82b5568..7fd698da144e 100644 > --- a/drivers/pci/controller/dwc/pcie-spear13xx.c > +++ b/drivers/pci/controller/dwc/pcie-spear13xx.c > @@ -85,7 +85,7 @@ static irqreturn_t spear13xx_pcie_irq_handler(int irq, void *arg) > struct spear13xx_pcie *spear13xx_pcie = arg; > struct pcie_app_reg __iomem *app_reg = spear13xx_pcie->app_base; > struct dw_pcie *pci = spear13xx_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > unsigned int status; > > status = readl(&app_reg->int_sts); > @@ -121,7 +121,7 @@ static int spear13xx_pcie_link_up(struct dw_pcie *pci) > return 0; > } > > -static int spear13xx_pcie_host_init(struct pcie_port *pp) > +static int spear13xx_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct spear13xx_pcie *spear13xx_pcie = to_spear13xx_pcie(pci); > @@ -155,7 +155,7 @@ static int spear13xx_add_pcie_port(struct spear13xx_pcie *spear13xx_pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = spear13xx_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > int ret; > > diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c > index cc2678490162..65135f5c4a4a 100644 > --- a/drivers/pci/controller/dwc/pcie-tegra194.c > +++ b/drivers/pci/controller/dwc/pcie-tegra194.c > @@ -311,7 +311,7 @@ struct tegra_pcie_soc { > enum dw_pcie_device_mode mode; > }; > > -static void apply_bad_link_workaround(struct pcie_port *pp) > +static void apply_bad_link_workaround(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -349,7 +349,7 @@ static irqreturn_t tegra_pcie_rp_irq_handler(int irq, void *arg) > { > struct tegra194_pcie *pcie = arg; > struct dw_pcie *pci = &pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > u32 val, tmp; > u16 val_w; > > @@ -698,7 +698,7 @@ static inline void init_host_aspm(struct tegra194_pcie *pcie) { return; } > static inline void init_debugfs(struct tegra194_pcie *pcie) { return; } > #endif > > -static void tegra_pcie_enable_system_interrupts(struct pcie_port *pp) > +static void tegra_pcie_enable_system_interrupts(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -736,7 +736,7 @@ static void tegra_pcie_enable_system_interrupts(struct pcie_port *pp) > val_w); > } > > -static void tegra_pcie_enable_legacy_interrupts(struct pcie_port *pp) > +static void tegra_pcie_enable_legacy_interrupts(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -757,7 +757,7 @@ static void tegra_pcie_enable_legacy_interrupts(struct pcie_port *pp) > appl_writel(pcie, val, APPL_INTR_EN_L1_8_0); > } > > -static void tegra_pcie_enable_msi_interrupts(struct pcie_port *pp) > +static void tegra_pcie_enable_msi_interrupts(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -770,7 +770,7 @@ static void tegra_pcie_enable_msi_interrupts(struct pcie_port *pp) > appl_writel(pcie, val, APPL_INTR_EN_L0_0); > } > > -static void tegra_pcie_enable_interrupts(struct pcie_port *pp) > +static void tegra_pcie_enable_interrupts(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -851,7 +851,7 @@ static void config_gen3_gen4_eq_presets(struct tegra194_pcie *pcie) > dw_pcie_writel_dbi(pci, GEN3_RELATED_OFF, val); > } > > -static int tegra194_pcie_host_init(struct pcie_port *pp) > +static int tegra194_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -916,7 +916,7 @@ static int tegra194_pcie_start_link(struct dw_pcie *pci) > { > u32 val, offset, speed, tmp; > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > bool retry = true; > > if (pcie->mode == DW_PCIE_EP_TYPE) { > @@ -1212,7 +1212,7 @@ static int tegra_pcie_bpmp_set_pll_state(struct tegra194_pcie *pcie, > > static void tegra_pcie_downstream_dev_to_D0(struct tegra194_pcie *pcie) > { > - struct pcie_port *pp = &pcie->pci.pp; > + struct dw_pcie_rp *pp = &pcie->pci.pp; > struct pci_bus *child, *root_bus = NULL; > struct pci_dev *pdev; > > @@ -1443,7 +1443,7 @@ static void tegra_pcie_unconfig_controller(struct tegra194_pcie *pcie) > static int tegra_pcie_init_controller(struct tegra194_pcie *pcie) > { > struct dw_pcie *pci = &pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > int ret; > > ret = tegra_pcie_config_controller(pcie, false); > @@ -1961,7 +1961,7 @@ static int tegra194_pcie_probe(struct platform_device *pdev) > struct device *dev = &pdev->dev; > struct resource *atu_dma_res; > struct tegra194_pcie *pcie; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > struct dw_pcie *pci; > struct phy **phys; > char *name; > diff --git a/drivers/pci/controller/dwc/pcie-uniphier.c b/drivers/pci/controller/dwc/pcie-uniphier.c > index b45ac3754242..48c3eba817b4 100644 > --- a/drivers/pci/controller/dwc/pcie-uniphier.c > +++ b/drivers/pci/controller/dwc/pcie-uniphier.c > @@ -171,7 +171,7 @@ static void uniphier_pcie_irq_enable(struct uniphier_pcie *pcie) > > static void uniphier_pcie_irq_mask(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > unsigned long flags; > @@ -188,7 +188,7 @@ static void uniphier_pcie_irq_mask(struct irq_data *d) > > static void uniphier_pcie_irq_unmask(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > unsigned long flags; > @@ -225,7 +225,7 @@ static const struct irq_domain_ops uniphier_intx_domain_ops = { > > static void uniphier_pcie_irq_handler(struct irq_desc *desc) > { > - struct pcie_port *pp = irq_desc_get_handler_data(desc); > + struct dw_pcie_rp *pp = irq_desc_get_handler_data(desc); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > struct irq_chip *chip = irq_desc_get_chip(desc); > @@ -258,7 +258,7 @@ static void uniphier_pcie_irq_handler(struct irq_desc *desc) > chained_irq_exit(chip, desc); > } > > -static int uniphier_pcie_config_legacy_irq(struct pcie_port *pp) > +static int uniphier_pcie_config_legacy_irq(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > @@ -295,7 +295,7 @@ static int uniphier_pcie_config_legacy_irq(struct pcie_port *pp) > return ret; > } > > -static int uniphier_pcie_host_init(struct pcie_port *pp) > +static int uniphier_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-visconti.c b/drivers/pci/controller/dwc/pcie-visconti.c > index 50f80f07e4db..71026fefa366 100644 > --- a/drivers/pci/controller/dwc/pcie-visconti.c > +++ b/drivers/pci/controller/dwc/pcie-visconti.c > @@ -178,7 +178,7 @@ static void visconti_pcie_stop_link(struct dw_pcie *pci) > */ > static u64 visconti_pcie_cpu_addr_fixup(struct dw_pcie *pci, u64 cpu_addr) > { > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > > return cpu_addr & ~pp->io_base; > } > @@ -190,7 +190,7 @@ static const struct dw_pcie_ops dw_pcie_ops = { > .stop_link = visconti_pcie_stop_link, > }; > > -static int visconti_pcie_host_init(struct pcie_port *pp) > +static int visconti_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct visconti_pcie *pcie = dev_get_drvdata(pci->dev); > @@ -278,7 +278,7 @@ static int visconti_add_pcie_port(struct visconti_pcie *pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = &pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > > pp->irq = platform_get_irq_byname(pdev, "intr"); > if (pp->irq < 0) > -- > 2.35.1 > -- மணிவண்ணன் சதாசிவம் 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 35A7CC43334 for ; Tue, 28 Jun 2022 06:46:49 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=D3FSehhlGheoKPiJ+A//9HXFAAUyVU15I7eVriW77hI=; b=0Z6zv9QOv+A5CL eJl81CYIzbcHLhl2rpWYjL36pSTVQvRMjPgEgLJuDbsCs3wSgim714mczQxCII11w/LuNimXHN6As q3HgBkYP5oRNkcMVJ0MtHA4med5gxKtNdWg8ArURDyWu7KD9aep3SOAsdXxP3qdx5axbETFts1Pqd 3FLMtj1zFfAW86XW4qPYiHXY56QqIyiBRmYKeO3xGD9wDOLv1Hy9JvfW/NjcbsnnlSu4LB04Qvk2N U2oV3sAotFiBPUSEQr67sVbfR+MQWcZUlLbh0bKfMT1zEqXda/kEyAmEfxMi68323rpc/zY3miWS3 KqflRayA2dSWZJLIxbyg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o64za-004noK-NY; Tue, 28 Jun 2022 06:46:34 +0000 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1o64zU-004nkV-6f for linux-rockchip@lists.infradead.org; Tue, 28 Jun 2022 06:46:32 +0000 Received: by mail-pl1-x636.google.com with SMTP id q18so10189118pld.13 for ; Mon, 27 Jun 2022 23:46:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=LRpQs5cOMs5HSj75+8AfUEiKj/osl4OH7vuLs6bfaeI=; b=QXCgEkzKLYlhx5RPQua2KlpaHX0weUucwmk60QBJk5xYxOo5U3IL0UfsbdSBtIVgrX M+B87DZUlnDzP7itXzadMjzNhPSj7ShTp9cpSHagReLhwgvRWYPEUSGG7rb5SMfNU9bf r2XPwTxeN2MrmxL6Y5c/12I7JPJdiscgMb9tF/xiHm8ycAWQ+sfV6aezt9YsTlz5IPUr M16XMZuY2Kr5ZcEqceGmBou7jDwu9kZIASw0EYs6B/Hypn0gyIZV8/66Swe7+VVaS0J3 KmD4W4O+7fehlot+mtDhvynVMD7PE6PDvxlWmpD6eieXBwwnwcVA1qaKPL1dKI+wdb4K 9svw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=LRpQs5cOMs5HSj75+8AfUEiKj/osl4OH7vuLs6bfaeI=; b=0cIOjinNHdhpl2/cM+uR+hYI2q70UBYAlRRQcwU6yy2hz+Rhs8uYx2ucEqKCW5W26T 88VXujL1kKTeHa0iXe/RB9hpaiKUKde2G6dpab5XJWZ3oSTORKYI+UicKl29WVn/FMc1 yF5QXo5fP6x+4GNBNV8AEEMTtrzRnv4Hxv5umVloxYMg22me6qCLycqGXsAdjDBzMHJ2 4OpVS9XO4Va7xxYqIuRIVY8W5pkeIjJ2PgfXZfCyWxKGw990tJwI2G6+6DT0wvSgnERk jjLoge88uI9wegLgfSOCGSPNHpyJR5XPh7lMEYVXV4ANQh9jKDdDQIeofxVT3873uiTL GXoA== X-Gm-Message-State: AJIora8pHrxhwnIQDClNAnTVLAQAxTuRjl272xUl8CBST6d/9FxkBjj3 JZ+U3HV0Lb0gWBXqS2sSrNR8 X-Google-Smtp-Source: AGRyM1syVH0OxjF/in3+ZNlpAgeJ4nGCK8UGH4OVrIlm0mTYOfjKN4IudwILz0eDdehI8KY5xROk4g== X-Received: by 2002:a17:902:e850:b0:16a:209a:971a with SMTP id t16-20020a170902e85000b0016a209a971amr3469189plg.163.1656398783887; Mon, 27 Jun 2022 23:46:23 -0700 (PDT) Received: from thinkpad ([27.111.75.159]) by smtp.gmail.com with ESMTPSA id jd12-20020a170903260c00b0016a15842cf5sm8380980plb.121.2022.06.27.23.46.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jun 2022 23:46:23 -0700 (PDT) Date: Tue, 28 Jun 2022 12:16:08 +0530 From: Manivannan Sadhasivam To: Serge Semin Cc: Rob Herring , Bjorn Helgaas , Lorenzo Pieralisi , Kishon Vijay Abraham I , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Jingoo Han , Krzysztof Kozlowski , Alim Akhtar , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Minghuan Lian , Mingkai Hu , Roy Zang , Yue Wang , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Jonathan Chocron , Thomas Petazzoni , Jesper Nilsson , Gustavo Pimentel , Heiko Stuebner , Paul Walmsley , Greentime Hu , Rahul Tanwar , Srikanth Thokala , Xiaowei Song , Binghui Wang , Andy Gross , Bjorn Andersson , Stanimir Varbanov , Pratyush Anand , Thierry Reding , Jonathan Hunter , Kunihiko Hayashi , Masami Hiramatsu , Nobuhiro Iwamatsu , Serge Semin , Alexey Malahov , Pavel Parkhomenko , Frank Li , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@axis.com, linux-rockchip@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-tegra@vger.kernel.org Subject: Re: [PATCH RESEND v5 15/18] PCI: dwc: Add dw_ prefix to the pcie_port structure name Message-ID: <20220628064608.GH23601@thinkpad> References: <20220624143428.8334-1-Sergey.Semin@baikalelectronics.ru> <20220624143428.8334-16-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220624143428.8334-16-Sergey.Semin@baikalelectronics.ru> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220627_234628_344401_924A9BAE X-CRM114-Status: GOOD ( 28.04 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gRnJpLCBKdW4gMjQsIDIwMjIgYXQgMDU6MzQ6MjVQTSArMDMwMCwgU2VyZ2UgU2VtaW4gd3Jv dGU6Cj4gQWxsIG9mIHRoZSBEVyBQQ0llIGNvcmUgZHJpdmVyIGVudGl0aWVzIGhhdmUgbmFtZXMg d2l0aCB0aGUgZHdfIHByZWZpeCBpbgo+IG9yZGVyIHRvIGVhc2lseSBkaXN0aW5ndWlzaCBsb2Nh bCBhbmQgY29tbW9uIFBDSWUgbmFtZSBzcGFjZXMuIEFsbCBleGNlcHQKPiB0aGUgcGNpZV9wb3J0 IHN0cnVjdHVyZSB3aGljaCBjb250YWlucyB0aGUgRFcgUENJZSBSb290IFBvcnQgZGVzY3JpcHRv ci4KPiBGb3IgaGlzdG9yaWNhbCByZWFzb24gdGhlIHN0cnVjdHVyZSBoYXMgcmV0YWluZWQgdGhl IG9yaWdpbmFsIG5hbWUgc2luY2UKPiBjb21taXQgMzQwY2JhNjA5MmMyICgicGNpOiBBZGQgUENJ ZSBkcml2ZXIgZm9yIFNhbXN1bmcgRXh5bm9zIikgd2hlbgo+IHRoZSBEVyBQQ0llIElQLWNvcmUg c3VwcG9ydCB3YXMgYWRkZWQgdG8gdGhlIGtlcm5lbC4gTGV0J3MgZmluYWxseSBmaXgKPiB0aGF0 IGJ5IGFkZGluZyB0aGUgZHdfIHByZWZpeCB0byB0aGUgc3RydWN0dXJlIG5hbWUgYW5kIGJ5IGFk ZGluZyB0aGUgX3JwCj4gc3VmZml4IHRvIGJlIHNpbWlsYXIgdG8gdGhlIEVQIGNvdW50ZXJwYXJ0 LiBUaHVzIHRoZSBuYW1lIHdpbGwgYmUgY29oZXJlbnQKPiB3aXRoIHRoZSBjb21tb24gZHJpdmVy IG5hbWluZyBwb2xpY3kuIEl0IHNoYWxsIG1ha2UgdGhlIGRyaXZlciBjb2RlIG1vcmUKPiByZWFk YWJsZSBlbGltaW5hdGluZyB2aXN1YWwgY29uZnVzaW9uIGJldHdlZW4gdGhlIGxvY2FsIGFuZCBn ZW5lcmljIFBDSQo+IG5hbWUgc3BhY2VzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNlcmdlIFNlbWlu IDxTZXJnZXkuU2VtaW5AYmFpa2FsZWxlY3Ryb25pY3MucnU+CgpSZXZpZXdlZC1ieTogTWFuaXZh bm5hbiBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGluYXJvLm9yZz4KClRoYW5r cywKTWFuaQoKPiBSZXZpZXdlZC1ieTogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KPiAK PiAtLS0KPiAKPiBDaGFuZ2Vsb2cgdjQ6Cj4gLSBUaGlzIGlzIGEgbmV3IHBhdGNoIGNyZWF0ZWQg b24gdGhlIHY0IGxhcCBvZiB0aGUgc2VyaWVzLgo+IC0tLQo+ICBkcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2ktZHJhN3h4LmMgICAgICAgfCAxMiArKystLS0tCj4gIGRyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaS1leHlub3MuYyAgICAgICB8ICA2ICsrLS0KPiAgZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpLWlteDYuYyAgICAgICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2kta2V5c3RvbmUuYyAgICAgfCAyMCArKysrKy0tLS0tLQo+ICBk cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbGF5ZXJzY2FwZS5jICAgfCAgMiArLQo+ICBk cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbWVzb24uYyAgICAgICAgfCAgMiArLQo+ICBk cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFsLmMgICAgICAgICAgfCAgNiArKy0tCj4g IGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJtYWRhOGsuYyAgICB8ICA0ICstLQo+ ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFydHBlYzYuYyAgICAgfCAgNCArLS0K PiAgLi4uL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jIHwgMzYgKysr KysrKysrLS0tLS0tLS0tLQo+ICAuLi4vcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2Fy ZS1wbGF0LmMgfCAgMiArLQo+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2ln bndhcmUuaCAgfCAzMCArKysrKysrKy0tLS0tLS0tCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaWUtZHctcm9ja2NoaXAuYyB8ICA0ICstLQo+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLWZ1NzQwLmMgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLWhpc3RiLmMgICAgICAgfCAxMCArKystLS0KPiAgZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpZS1pbnRlbC1ndy5jICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2llLWtlZW1iYXkuYyAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS1raXJpbi5jICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS1xY29tLmMgICAgICAgIHwgIDQgKy0tCj4gIGRyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtc3BlYXIxM3h4LmMgICB8ICA2ICsrLS0KPiAgZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS10ZWdyYTE5NC5jICAgIHwgMjIgKysrKysrLS0tLS0tCj4gIGRy aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdW5pcGhpZXIuYyAgICB8IDEwICsrKy0tLQo+ ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXZpc2NvbnRpLmMgICAgfCAgNiArKy0t Cj4gIDIzIGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspLCAxMDMgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHgu YyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHguYwo+IGluZGV4IGRmY2Rl YjQzMmRjOC4uYTE3NGI2ODBiMmE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaS1kcmE3eHguYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aS1kcmE3eHguYwo+IEBAIC0xNzgsNyArMTc4LDcgQEAgc3RhdGljIHZvaWQgZHJhN3h4X3BjaWVf ZW5hYmxlX2ludGVycnVwdHMoc3RydWN0IGRyYTd4eF9wY2llICpkcmE3eHgpCj4gIAlkcmE3eHhf cGNpZV9lbmFibGVfbXNpX2ludGVycnVwdHMoZHJhN3h4KTsKPiAgfQo+ICAKPiAtc3RhdGljIGlu dCBkcmE3eHhfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBp bnQgZHJhN3h4X3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJ c3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3Qg ZHJhN3h4X3BjaWUgKmRyYTd4eCA9IHRvX2RyYTd4eF9wY2llKHBjaSk7Cj4gQEAgLTIwMiw3ICsy MDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlycV9kb21haW5fb3BzIGludHhfZG9tYWluX29w cyA9IHsKPiAgCS54bGF0ZSA9IHBjaV9pcnFkX2ludHhfeGxhdGUsCj4gIH07Cj4gIAo+IC1zdGF0 aWMgaW50IGRyYTd4eF9wY2llX2hhbmRsZV9tc2koc3RydWN0IHBjaWVfcG9ydCAqcHAsIGludCBp bmRleCkKPiArc3RhdGljIGludCBkcmE3eHhfcGNpZV9oYW5kbGVfbXNpKHN0cnVjdCBkd19wY2ll X3JwICpwcCwgaW50IGluZGV4KQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdf cGNpZV9mcm9tX3BwKHBwKTsKPiAgCXVuc2lnbmVkIGxvbmcgdmFsOwo+IEBAIC0yMjQsNyArMjI0 LDcgQEAgc3RhdGljIGludCBkcmE3eHhfcGNpZV9oYW5kbGVfbXNpKHN0cnVjdCBwY2llX3BvcnQg KnBwLCBpbnQgaW5kZXgpCj4gIAlyZXR1cm4gMTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZHJh N3h4X3BjaWVfaGFuZGxlX21zaV9pcnEoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2 b2lkIGRyYTd4eF9wY2llX2hhbmRsZV9tc2lfaXJxKHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAg ewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlp bnQgcmV0LCBpLCBjb3VudCwgbnVtX2N0cmxzOwo+IEBAIC0yNTUsOCArMjU1LDggQEAgc3RhdGlj IHZvaWQgZHJhN3h4X3BjaWVfbXNpX2lycV9oYW5kbGVyKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykK PiAgewo+ICAJc3RydWN0IGlycV9jaGlwICpjaGlwID0gaXJxX2Rlc2NfZ2V0X2NoaXAoZGVzYyk7 Cj4gIAlzdHJ1Y3QgZHJhN3h4X3BjaWUgKmRyYTd4eDsKPiArCXN0cnVjdCBkd19wY2llX3JwICpw cDsKPiAgCXN0cnVjdCBkd19wY2llICpwY2k7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcDsKPiAg CXVuc2lnbmVkIGxvbmcgcmVnOwo+ICAJdTMyIGJpdDsKPiAgCj4gQEAgLTM0NCw3ICszNDQsNyBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgZHJhN3h4X3BjaWVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9p ZCAqYXJnKQo+ICAJcmV0dXJuIElSUV9IQU5ETEVEOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGRy YTd4eF9wY2llX2luaXRfaXJxX2RvbWFpbihzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGlj IGludCBkcmE3eHhfcGNpZV9pbml0X2lycV9kb21haW4oc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAg CXN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Owo+IEBAIC00NzUsNyArNDc1LDcgQEAgc3Rh dGljIGludCBkcmE3eHhfYWRkX3BjaWVfcG9ydChzdHJ1Y3QgZHJhN3h4X3BjaWUgKmRyYTd4eCwK PiAgewo+ICAJaW50IHJldDsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSBkcmE3eHgtPnBjaTsK PiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9y cCAqcHAgPSAmcGNpLT5wcDsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IHBjaS0+ZGV2Owo+ICAK PiAgCXBwLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDEpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMgYi9kcml2ZXJzL3BjaS9jb250 cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMKPiBpbmRleCA0NjdjOGQxY2Q3ZTQuLjIwNDRkMTkxZmJh NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMK PiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZXh5bm9zLmMKPiBAQCAtMjQ5 LDcgKzI0OSw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zX3BjaWVfbGlua191cChzdHJ1Y3QgZHdfcGNp ZSAqcGNpKQo+ICAJcmV0dXJuICh2YWwgJiBQQ0lFX0VMQklfWE1MSF9MSU5LVVApOwo+ICB9Cj4g IAo+IC1zdGF0aWMgaW50IGV4eW5vc19wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpw cCkKPiArc3RhdGljIGludCBleHlub3NfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAg KnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBw KTsKPiAgCXN0cnVjdCBleHlub3NfcGNpZSAqZXAgPSB0b19leHlub3NfcGNpZShwY2kpOwo+IEBA IC0yNzYsNyArMjc2LDcgQEAgc3RhdGljIGludCBleHlub3NfYWRkX3BjaWVfcG9ydChzdHJ1Y3Qg ZXh5bm9zX3BjaWUgKmVwLAo+ICAJCQkJICAgICAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSAmZXAtPnBjaTsKPiAtCXN0cnVjdCBw Y2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNp LT5wcDsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gIAlpbnQgcmV0Owo+ ICAKPiBAQCAtNDA2LDcgKzQwNiw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZXh5bm9z X3BjaWVfcmVzdW1lX25vaXJxKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGV4 eW5vc19wY2llICplcCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAJc3RydWN0IGR3X3BjaWUg KnBjaSA9ICZlcC0+cGNpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcCA9ICZwY2ktPnBwOwo+ICAJaW50IHJldDsKPiAgCj4gIAly ZXQgPSByZWd1bGF0b3JfYnVsa19lbmFibGUoQVJSQVlfU0laRShlcC0+c3VwcGxpZXMpLCBlcC0+ c3VwcGxpZXMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2kt aW14Ni5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYwo+IGluZGV4IDdh Mjg1ZmIwZjYxOS4uNWVhMDFlZDQ2NzRkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaS1pbXg2LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2ktaW14Ni5jCj4gQEAgLTg2Myw3ICs4NjMsNyBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9zdGFy dF9saW5rKHN0cnVjdCBkd19wY2llICpwY2kpCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC1z dGF0aWMgaW50IGlteDZfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0 YXRpYyBpbnQgaW14Nl9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsK PiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3Ry dWN0IGlteDZfcGNpZSAqaW14Nl9wY2llID0gdG9faW14Nl9wY2llKHBjaSk7Cj4gQEAgLTk5Miw3 ICs5OTIsNyBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9yZXN1bWVfbm9pcnEoc3RydWN0IGRldmlj ZSAqZGV2KQo+ICB7Cj4gIAlpbnQgcmV0Owo+ICAJc3RydWN0IGlteDZfcGNpZSAqaW14Nl9wY2ll ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZpbXg2 X3BjaWUtPnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmaW14Nl9wY2llLT5w Y2ktPnBwOwo+ICAKPiAgCWlmICghKGlteDZfcGNpZS0+ZHJ2ZGF0YS0+ZmxhZ3MgJiBJTVg2X1BD SUVfRkxBR19TVVBQT1JUU19TVVNQRU5EKSkKPiAgCQlyZXR1cm4gMDsKPiBAQCAtMTI5MSw3ICsx MjkxLDcgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgaW14Nl9wY2llX2RyaXZlciA9 IHsKPiAgc3RhdGljIHZvaWQgaW14Nl9wY2llX3F1aXJrKHN0cnVjdCBwY2lfZGV2ICpkZXYpCj4g IHsKPiAgCXN0cnVjdCBwY2lfYnVzICpidXMgPSBkZXYtPmJ1czsKPiAtCXN0cnVjdCBwY2llX3Bv cnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5z eXNkYXRhOwo+ICAKPiAgCS8qIEJ1cyBwYXJlbnQgaXMgdGhlIFBDSSBicmlkZ2UsIGl0cyBwYXJl bnQgaXMgdGhpcyBwbGF0Zm9ybSBkcml2ZXIgKi8KPiAgCWlmICghYnVzLT5kZXYucGFyZW50IHx8 ICFidXMtPmRldi5wYXJlbnQtPnBhcmVudCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpLWtleXN0b25lLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2kta2V5c3RvbmUuYwo+IGluZGV4IGQxMGU1ZmQwZjgzYy4uYzNkODhhYTI3ZGQ0IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1rZXlzdG9uZS5jCj4gKysrIGIv ZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWtleXN0b25lLmMKPiBAQCAtMTQ3LDcgKzE0 Nyw3IEBAIHN0YXRpYyB2b2lkIGtzX3BjaWVfYXBwX3dyaXRlbChzdHJ1Y3Qga2V5c3RvbmVfcGNp ZSAqa3NfcGNpZSwgdTMyIG9mZnNldCwKPiAgCj4gIHN0YXRpYyB2b2lkIGtzX3BjaWVfbXNpX2ly cV9hY2soc3RydWN0IGlycV9kYXRhICpkYXRhKQo+ICB7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpw cCAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkYXRhKTsKPiArCXN0cnVjdCBkd19wY2ll X3JwICpwcCAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkYXRhKTsKPiAgCXN0cnVjdCBr ZXlzdG9uZV9wY2llICprc19wY2llOwo+ICAJdTMyIGlycSA9IGRhdGEtPmh3aXJxOwo+ICAJc3Ry dWN0IGR3X3BjaWUgKnBjaTsKPiBAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyB2b2lkIGtzX3Bj aWVfbXNpX2lycV9hY2soc3RydWN0IGlycV9kYXRhICpkYXRhKQo+ICAKPiAgc3RhdGljIHZvaWQg a3NfcGNpZV9jb21wb3NlX21zaV9tc2coc3RydWN0IGlycV9kYXRhICpkYXRhLCBzdHJ1Y3QgbXNp X21zZyAqbXNnKQo+ICB7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGlycV9kYXRhX2dldF9p cnFfY2hpcF9kYXRhKGRhdGEpOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gaXJxX2RhdGFf Z2V0X2lycV9jaGlwX2RhdGEoZGF0YSk7Cj4gIAlzdHJ1Y3Qga2V5c3RvbmVfcGNpZSAqa3NfcGNp ZTsKPiAgCXN0cnVjdCBkd19wY2llICpwY2k7Cj4gIAl1NjQgbXNpX3RhcmdldDsKPiBAQCAtMTky LDcgKzE5Miw3IEBAIHN0YXRpYyBpbnQga3NfcGNpZV9tc2lfc2V0X2FmZmluaXR5KHN0cnVjdCBp cnFfZGF0YSAqaXJxX2RhdGEsCj4gIAo+ICBzdGF0aWMgdm9pZCBrc19wY2llX21zaV9tYXNrKHN0 cnVjdCBpcnFfZGF0YSAqZGF0YSkKPiAgewo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBpcnFf ZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkYXRhKTsKPiArCXN0cnVjdCBkd19wY2llX3JwICpwcCA9 IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOwo+ICAJc3RydWN0IGtleXN0b25lX3Bj aWUgKmtzX3BjaWU7Cj4gIAl1MzIgaXJxID0gZGF0YS0+aHdpcnE7Cj4gIAlzdHJ1Y3QgZHdfcGNp ZSAqcGNpOwo+IEBAIC0yMTYsNyArMjE2LDcgQEAgc3RhdGljIHZvaWQga3NfcGNpZV9tc2lfbWFz ayhzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEpCj4gIAo+ICBzdGF0aWMgdm9pZCBrc19wY2llX21zaV91 bm1hc2soc3RydWN0IGlycV9kYXRhICpkYXRhKQo+ICB7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpw cCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGRhdGEpOwo+ICsJc3RydWN0IGR3X3BjaWVf cnAgKnBwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZGF0YSk7Cj4gIAlzdHJ1Y3Qga2V5 c3RvbmVfcGNpZSAqa3NfcGNpZTsKPiAgCXUzMiBpcnEgPSBkYXRhLT5od2lycTsKPiAgCXN0cnVj dCBkd19wY2llICpwY2k7Cj4gQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGF0aWMgc3RydWN0IGlycV9j aGlwIGtzX3BjaWVfbXNpX2lycV9jaGlwID0gewo+ICAJLmlycV91bm1hc2sgPSBrc19wY2llX21z aV91bm1hc2ssCj4gIH07Cj4gIAo+IC1zdGF0aWMgaW50IGtzX3BjaWVfbXNpX2hvc3RfaW5pdChz dHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGljIGludCBrc19wY2llX21zaV9ob3N0X2luaXQo c3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlwcC0+bXNpX2lycV9jaGlwID0gJmtzX3Bj aWVfbXNpX2lycV9jaGlwOwo+ICAJcmV0dXJuIGR3X3BjaWVfYWxsb2NhdGVfZG9tYWlucyhwcCk7 Cj4gQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0aWMgdm9pZCBrc19wY2llX3NldHVwX3JjX2FwcF9y ZWdzKHN0cnVjdCBrZXlzdG9uZV9wY2llICprc19wY2llKQo+ICAJdTMyIHZhbDsKPiAgCXUzMiBu dW1fdmlld3BvcnQgPSBrc19wY2llLT5udW1fdmlld3BvcnQ7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAq cGNpID0ga3NfcGNpZS0+cGNpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsK PiArCXN0cnVjdCBkd19wY2llX3JwICpwcCA9ICZwY2ktPnBwOwo+ICAJdTY0IHN0YXJ0LCBlbmQ7 Cj4gIAlzdHJ1Y3QgcmVzb3VyY2UgKm1lbTsKPiAgCWludCBpOwo+IEBAIC00MjgsNyArNDI4LDcg QEAgc3RhdGljIHZvaWQga3NfcGNpZV9zZXR1cF9yY19hcHBfcmVncyhzdHJ1Y3Qga2V5c3RvbmVf cGNpZSAqa3NfcGNpZSkKPiAgc3RhdGljIHZvaWQgX19pb21lbSAqa3NfcGNpZV9vdGhlcl9tYXBf YnVzKHN0cnVjdCBwY2lfYnVzICpidXMsCj4gIAkJCQkJICAgdW5zaWduZWQgaW50IGRldmZuLCBp bnQgd2hlcmUpCj4gIHsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICAJc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3Qga2V5c3RvbmVfcGNp ZSAqa3NfcGNpZSA9IHRvX2tleXN0b25lX3BjaWUocGNpKTsKPiAgCXUzMiByZWc7Cj4gQEAgLTQ1 Niw3ICs0NTYsNyBAQCBzdGF0aWMgc3RydWN0IHBjaV9vcHMga3NfY2hpbGRfcGNpZV9vcHMgPSB7 Cj4gICAqLwo+ICBzdGF0aWMgaW50IGtzX3BjaWVfdjNfNjVfYWRkX2J1cyhzdHJ1Y3QgcGNpX2J1 cyAqYnVzKQo+ICB7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1cy0+c3lzZGF0YTsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcCA9IGJ1cy0+c3lzZGF0YTsKPiAgCXN0cnVjdCBkd19wY2ll ICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IGtleXN0b25lX3BjaWUg KmtzX3BjaWUgPSB0b19rZXlzdG9uZV9wY2llKHBjaSk7Cj4gIAo+IEBAIC01NzQsNyArNTc0LDcg QEAgc3RhdGljIHZvaWQga3NfcGNpZV9tc2lfaXJxX2hhbmRsZXIoc3RydWN0IGlycV9kZXNjICpk ZXNjKQo+ICAJc3RydWN0IGtleXN0b25lX3BjaWUgKmtzX3BjaWUgPSBpcnFfZGVzY19nZXRfaGFu ZGxlcl9kYXRhKGRlc2MpOwo+ICAJdTMyIG9mZnNldCA9IGlycSAtIGtzX3BjaWUtPm1zaV9ob3N0 X2lycTsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSBrc19wY2llLT5wY2k7Cj4gLQlzdHJ1Y3Qg cGNpZV9wb3J0ICpwcCA9ICZwY2ktPnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gJnBj aS0+cHA7Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsKPiAgCXN0cnVjdCBpcnFf Y2hpcCAqY2hpcCA9IGlycV9kZXNjX2dldF9jaGlwKGRlc2MpOwo+ICAJdTMyIHZlY3RvciwgcmVn LCBwb3M7Cj4gQEAgLTc5OSw3ICs3OTksNyBAQCBzdGF0aWMgaW50IF9faW5pdCBrc19wY2llX2lu aXRfaWQoc3RydWN0IGtleXN0b25lX3BjaWUgKmtzX3BjaWUpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICAKPiAtc3RhdGljIGludCBfX2luaXQga3NfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9y dCAqcHApCj4gK3N0YXRpYyBpbnQgX19pbml0IGtzX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19w Y2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJv bV9wcChwcCk7Cj4gIAlzdHJ1Y3Qga2V5c3RvbmVfcGNpZSAqa3NfcGNpZSA9IHRvX2tleXN0b25l X3BjaWUocGNpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp LWxheWVyc2NhcGUuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1sYXllcnNjYXBl LmMKPiBpbmRleCA2YTRmMDYxOWJiMWMuLjg3OWI4NjkyZjk2YSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbGF5ZXJzY2FwZS5jCj4gKysrIGIvZHJpdmVycy9w Y2kvY29udHJvbGxlci9kd2MvcGNpLWxheWVyc2NhcGUuYwo+IEBAIC03NCw3ICs3NCw3IEBAIHN0 YXRpYyB2b2lkIGxzX3BjaWVfZml4X2Vycm9yX3Jlc3BvbnNlKHN0cnVjdCBsc19wY2llICpwY2ll KQo+ICAJaW93cml0ZTMyKFBDSUVfQUJTRVJSX1NFVFRJTkcsIHBjaS0+ZGJpX2Jhc2UgKyBQQ0lF X0FCU0VSUik7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgbHNfcGNpZV9ob3N0X2luaXQoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgbHNfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3 X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9m cm9tX3BwKHBwKTsKPiAgCXN0cnVjdCBsc19wY2llICpwY2llID0gdG9fbHNfcGNpZShwY2kpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbWVzb24uYyBiL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1tZXNvbi5jCj4gaW5kZXggZjQ0YmYzNDc5MDRh Li5jMTUyNzY5M2JlZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2Mv cGNpLW1lc29uLmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktbWVzb24u Ywo+IEBAIC0zNzAsNyArMzcwLDcgQEAgc3RhdGljIGludCBtZXNvbl9wY2llX2xpbmtfdXAoc3Ry dWN0IGR3X3BjaWUgKnBjaSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IG1l c29uX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0aWMgaW50IG1l c29uX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0 IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3QgbWVzb25f cGNpZSAqbXAgPSB0b19tZXNvbl9wY2llKHBjaSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aWUtYWwuYwo+IGluZGV4IGU4YWZhNTAxMjlhOC4uYjhjYjc3YzljNGJkIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYwo+ICsrKyBiL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaWUtYWwuYwo+IEBAIC0yMTcsNyArMjE3LDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIGFsX3BjaWVfdGFyZ2V0X2J1c19zZXQoc3RydWN0IGFsX3BjaWUgKnBjaWUsCj4g IHN0YXRpYyB2b2lkIF9faW9tZW0gKmFsX3BjaWVfY29uZl9hZGRyX21hcF9idXMoc3RydWN0IHBj aV9idXMgKmJ1cywKPiAgCQkJCQkgICAgICAgdW5zaWduZWQgaW50IGRldmZuLCBpbnQgd2hlcmUp Cj4gIHsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0 IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICAJc3RydWN0IGFsX3BjaWUgKnBjaWUg PSB0b19hbF9wY2llKHRvX2R3X3BjaWVfZnJvbV9wcChwcCkpOwo+ICAJdW5zaWduZWQgaW50IGJ1 c25yID0gYnVzLT5udW1iZXI7Cj4gIAlzdHJ1Y3QgYWxfcGNpZV90YXJnZXRfYnVzX2NmZyAqdGFy Z2V0X2J1c19jZmcgPSAmcGNpZS0+dGFyZ2V0X2J1c19jZmc7Cj4gQEAgLTI0NSw3ICsyNDUsNyBA QCBzdGF0aWMgc3RydWN0IHBjaV9vcHMgYWxfY2hpbGRfcGNpX29wcyA9IHsKPiAgc3RhdGljIHZv aWQgYWxfcGNpZV9jb25maWdfcHJlcGFyZShzdHJ1Y3QgYWxfcGNpZSAqcGNpZSkKPiAgewo+ICAJ c3RydWN0IGFsX3BjaWVfdGFyZ2V0X2J1c19jZmcgKnRhcmdldF9idXNfY2ZnOwo+IC0Jc3RydWN0 IHBjaWVfcG9ydCAqcHAgPSAmcGNpZS0+cGNpLT5wcDsKPiArCXN0cnVjdCBkd19wY2llX3JwICpw cCA9ICZwY2llLT5wY2ktPnBwOwo+ICAJdW5zaWduZWQgaW50IGVjYW1fYnVzX21hc2s7Cj4gIAl1 MzIgY2ZnX2NvbnRyb2xfb2Zmc2V0Owo+ICAJdTggc3Vib3JkaW5hdGVfYnVzOwo+IEBAIC0yODks NyArMjg5LDcgQEAgc3RhdGljIHZvaWQgYWxfcGNpZV9jb25maWdfcHJlcGFyZShzdHJ1Y3QgYWxf cGNpZSAqcGNpZSkKPiAgCWFsX3BjaWVfY29udHJvbGxlcl93cml0ZWwocGNpZSwgY2ZnX2NvbnRy b2xfb2Zmc2V0LCByZWcpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGFsX3BjaWVfaG9zdF9pbml0 KHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0aWMgaW50IGFsX3BjaWVfaG9zdF9pbml0KHN0 cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3 X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3QgYWxfcGNpZSAqcGNpZSA9IHRvX2FsX3BjaWUo cGNpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hcm1h ZGE4ay5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1hcm1hZGE4ay5jCj4gaW5k ZXggNGUyNTUyZGNmOTgyLi44YjExM2QzZjMwOTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS1hcm1hZGE4ay5jCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpZS1hcm1hZGE4ay5jCj4gQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW50 IGFybWFkYThrX3BjaWVfc3RhcnRfbGluayhzdHJ1Y3QgZHdfcGNpZSAqcGNpKQo+ICAJcmV0dXJu IDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgYXJtYWRhOGtfcGNpZV9ob3N0X2luaXQoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgYXJtYWRhOGtfcGNpZV9ob3N0X2luaXQoc3Ry dWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAl1MzIgcmVnOwo+ICAJc3RydWN0IGR3X3BjaWUg KnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gQEAgLTIzMyw3ICsyMzMsNyBAQCBzdGF0 aWMgaW50IGFybWFkYThrX2FkZF9wY2llX3BvcnQoc3RydWN0IGFybWFkYThrX3BjaWUgKnBjaWUs Cj4gIAkJCQkgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBk d19wY2llICpwY2kgPSBwY2llLT5wY2k7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZwY2kt PnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gJnBjaS0+cHA7Cj4gIAlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ICAJaW50IHJldDsKPiAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJ0cGVjNi5jIGIvZHJpdmVycy9wY2kvY29u dHJvbGxlci9kd2MvcGNpZS1hcnRwZWM2LmMKPiBpbmRleCAyZjE1NDQxNzcwZTEuLjk4MTAyMDc5 ZTI2ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWFydHBl YzYuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtYXJ0cGVjNi5jCj4g QEAgLTk3LDcgKzk3LDcgQEAgc3RhdGljIHZvaWQgYXJ0cGVjNl9wY2llX3dyaXRlbChzdHJ1Y3Qg YXJ0cGVjNl9wY2llICphcnRwZWM2X3BjaWUsIHUzMiBvZmZzZXQsIHUKPiAgc3RhdGljIHU2NCBh cnRwZWM2X3BjaWVfY3B1X2FkZHJfZml4dXAoc3RydWN0IGR3X3BjaWUgKnBjaSwgdTY0IHBjaV9h ZGRyKQo+ICB7Cj4gIAlzdHJ1Y3QgYXJ0cGVjNl9wY2llICphcnRwZWM2X3BjaWUgPSB0b19hcnRw ZWM2X3BjaWUocGNpKTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlz dHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNpLT5wcDsKPiAgCXN0cnVjdCBkd19wY2llX2VwICpl cCA9ICZwY2ktPmVwOwo+ICAKPiAgCXN3aXRjaCAoYXJ0cGVjNl9wY2llLT5tb2RlKSB7Cj4gQEAg LTMxNSw3ICszMTUsNyBAQCBzdGF0aWMgdm9pZCBhcnRwZWM2X3BjaWVfZGVhc3NlcnRfY29yZV9y ZXNldChzdHJ1Y3QgYXJ0cGVjNl9wY2llICphcnRwZWM2X3BjaWUpCj4gIAl1c2xlZXBfcmFuZ2Uo MTAwLCAyMDApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGFydHBlYzZfcGNpZV9ob3N0X2luaXQo c3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgYXJ0cGVjNl9wY2llX2hvc3RfaW5p dChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0 b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IGFydHBlYzZfcGNpZSAqYXJ0cGVjNl9w Y2llID0gdG9fYXJ0cGVjNl9wY2llKHBjaSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0LmMgYi9kcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jCj4gaW5kZXggN2ZmMmI3NTU1YjkxLi45NTI1 NjQzNDkxM2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1k ZXNpZ253YXJlLWhvc3QuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUt ZGVzaWdud2FyZS1ob3N0LmMKPiBAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgc3RydWN0IG1zaV9k b21haW5faW5mbyBkd19wY2llX21zaV9kb21haW5faW5mbyA9IHsKPiAgfTsKPiAgCj4gIC8qIE1T SSBpbnQgaGFuZGxlciAqLwo+IC1pcnFyZXR1cm5fdCBkd19oYW5kbGVfbXNpX2lycShzdHJ1Y3Qg cGNpZV9wb3J0ICpwcCkKPiAraXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0IGR3 X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlpbnQgaSwgcG9zOwo+ICAJdW5zaWduZWQgbG9uZyB2YWw7 Cj4gQEAgLTg4LDcgKzg4LDcgQEAgaXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gIHN0YXRpYyB2b2lkIGR3X2NoYWluZWRfbXNpX2lzcihzdHJ1Y3Qg aXJxX2Rlc2MgKmRlc2MpCj4gIHsKPiAgCXN0cnVjdCBpcnFfY2hpcCAqY2hpcCA9IGlycV9kZXNj X2dldF9jaGlwKGRlc2MpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHA7Cj4gKwlzdHJ1Y3QgZHdf cGNpZV9ycCAqcHA7Cj4gIAo+ICAJY2hhaW5lZF9pcnFfZW50ZXIoY2hpcCwgZGVzYyk7Cj4gIAo+ IEBAIC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIHZvaWQgZHdfY2hhaW5lZF9tc2lfaXNyKHN0cnVj dCBpcnFfZGVzYyAqZGVzYykKPiAgCj4gIHN0YXRpYyB2b2lkIGR3X3BjaV9zZXR1cF9tc2lfbXNn KHN0cnVjdCBpcnFfZGF0YSAqZCwgc3RydWN0IG1zaV9tc2cgKm1zZykKPiAgewo+IC0Jc3RydWN0 IHBjaWVfcG9ydCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKPiArCXN0cnVj dCBkd19wY2llX3JwICpwcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpOwo+ICAJc3Ry dWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAl1NjQgbXNpX3Rh cmdldDsKPiAgCj4gQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgaW50IGR3X3BjaV9tc2lfc2V0 X2FmZmluaXR5KHN0cnVjdCBpcnFfZGF0YSAqZCwKPiAgCj4gIHN0YXRpYyB2b2lkIGR3X3BjaV9i b3R0b21fbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gIHsKPiAtCXN0cnVjdCBwY2llX3BvcnQg KnBwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9y cCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKPiAgCXN0cnVjdCBkd19wY2ll ICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJdW5zaWduZWQgaW50IHJlcywgYml0 LCBjdHJsOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiBAQCAtMTQyLDcgKzE0Miw3IEBAIHN0 YXRpYyB2b2lkIGR3X3BjaV9ib3R0b21fbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gIAo+ICBz dGF0aWMgdm9pZCBkd19wY2lfYm90dG9tX3VubWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gIHsK PiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7 Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShk KTsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJ dW5zaWduZWQgaW50IHJlcywgYml0LCBjdHJsOwo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiBA QCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIGR3X3BjaV9ib3R0b21fdW5tYXNrKHN0cnVj dCBpcnFfZGF0YSAqZCkKPiAgCj4gIHN0YXRpYyB2b2lkIGR3X3BjaV9ib3R0b21fYWNrKHN0cnVj dCBpcnFfZGF0YSAqZCkKPiAgewo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgID0gaXJxX2RhdGFf Z2V0X2lycV9jaGlwX2RhdGEoZCk7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgID0gaXJxX2Rh dGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdf cGNpZV9mcm9tX3BwKHBwKTsKPiAgCXVuc2lnbmVkIGludCByZXMsIGJpdCwgY3RybDsKPiAgCj4g QEAgLTE4NSw3ICsxODUsNyBAQCBzdGF0aWMgaW50IGR3X3BjaWVfaXJxX2RvbWFpbl9hbGxvYyhz dHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluLAo+ICAJCQkJICAgIHVuc2lnbmVkIGludCB2aXJxLCB1 bnNpZ25lZCBpbnQgbnJfaXJxcywKPiAgCQkJCSAgICB2b2lkICphcmdzKQo+ICB7Cj4gLQlzdHJ1 Y3QgcGNpZV9wb3J0ICpwcCA9IGRvbWFpbi0+aG9zdF9kYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVf cnAgKnBwID0gZG9tYWluLT5ob3N0X2RhdGE7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAJ dTMyIGk7Cj4gIAlpbnQgYml0Owo+IEBAIC0yMTMsNyArMjEzLDcgQEAgc3RhdGljIHZvaWQgZHdf cGNpZV9pcnFfZG9tYWluX2ZyZWUoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwKPiAgCQkJCSAg ICB1bnNpZ25lZCBpbnQgdmlycSwgdW5zaWduZWQgaW50IG5yX2lycXMpCj4gIHsKPiAgCXN0cnVj dCBpcnFfZGF0YSAqZCA9IGlycV9kb21haW5fZ2V0X2lycV9kYXRhKGRvbWFpbiwgdmlycSk7Cj4g LQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGRvbWFpbi0+aG9zdF9kYXRhOwo+ICsJc3RydWN0IGR3 X3BjaWVfcnAgKnBwID0gZG9tYWluLT5ob3N0X2RhdGE7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdz Owo+ICAKPiAgCXJhd19zcGluX2xvY2tfaXJxc2F2ZSgmcHAtPmxvY2ssIGZsYWdzKTsKPiBAQCAt MjI5LDcgKzIyOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgZHdfcGNp ZV9tc2lfZG9tYWluX29wcyA9IHsKPiAgCS5mcmVlCT0gZHdfcGNpZV9pcnFfZG9tYWluX2ZyZWUs Cj4gIH07Cj4gIAo+IC1pbnQgZHdfcGNpZV9hbGxvY2F0ZV9kb21haW5zKHN0cnVjdCBwY2llX3Bv cnQgKnBwKQo+ICtpbnQgZHdfcGNpZV9hbGxvY2F0ZV9kb21haW5zKHN0cnVjdCBkd19wY2llX3Jw ICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChw cCk7Cj4gIAlzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlID0gb2Zfbm9kZV90b19md25vZGUo cGNpLT5kZXYtPm9mX25vZGUpOwo+IEBAIC0yNTUsNyArMjU1LDcgQEAgaW50IGR3X3BjaWVfYWxs b2NhdGVfZG9tYWlucyhzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiAgCXJldHVybiAwOwo+ICB9Cj4g IAo+IC1zdGF0aWMgdm9pZCBkd19wY2llX2ZyZWVfbXNpKHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ ICtzdGF0aWMgdm9pZCBkd19wY2llX2ZyZWVfbXNpKHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAg ewo+ICAJaWYgKHBwLT5tc2lfaXJxKQo+ICAJCWlycV9zZXRfY2hhaW5lZF9oYW5kbGVyX2FuZF9k YXRhKHBwLT5tc2lfaXJxLCBOVUxMLCBOVUxMKTsKPiBAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRp YyB2b2lkIGR3X3BjaWVfZnJlZV9tc2koc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gIAl9Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIGR3X3BjaWVfbXNpX2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHAp Cj4gK3N0YXRpYyB2b2lkIGR3X3BjaWVfbXNpX2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAg CXU2NCBtc2lfdGFyZ2V0ID0gKHU2NClwcC0+bXNpX2RhdGE7Cj4gQEAgLTI4NSw3ICsyODUsNyBA QCBzdGF0aWMgdm9pZCBkd19wY2llX21zaV9pbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICAJ ZHdfcGNpZV93cml0ZWxfZGJpKHBjaSwgUENJRV9NU0lfQUREUl9ISSwgdXBwZXJfMzJfYml0cyht c2lfdGFyZ2V0KSk7Cj4gIH0KPiAgCj4gLWludCBkd19wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNp ZV9wb3J0ICpwcCkKPiAraW50IGR3X3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpw cCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7 Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBwY2ktPmRldjsKPiBAQCAtNDM2LDcgKzQzNiw3IEBA IGludCBkd19wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiAgfQo+ICBFWFBP UlRfU1lNQk9MX0dQTChkd19wY2llX2hvc3RfaW5pdCk7Cj4gIAo+IC12b2lkIGR3X3BjaWVfaG9z dF9kZWluaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3ZvaWQgZHdfcGNpZV9ob3N0X2RlaW5p dChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0 b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAKPiBAQCAtNDU1LDcgKzQ1NSw3IEBAIHN0YXRpYyB2 b2lkIF9faW9tZW0gKmR3X3BjaWVfb3RoZXJfY29uZl9tYXBfYnVzKHN0cnVjdCBwY2lfYnVzICpi dXMsCj4gIHsKPiAgCWludCB0eXBlOwo+ICAJdTMyIGJ1c2RldjsKPiAtCXN0cnVjdCBwY2llX3Bv cnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5z eXNkYXRhOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7 Cj4gIAo+ICAJLyoKPiBAQCAtNDg3LDcgKzQ4Nyw3IEBAIHN0YXRpYyBpbnQgZHdfcGNpZV9yZF9v dGhlcl9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGludCBkZXZmbiwKPiAgCQkJ CSBpbnQgd2hlcmUsIGludCBzaXplLCB1MzIgKnZhbCkKPiAgewo+ICAJaW50IHJldDsKPiAtCXN0 cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAg KnBwID0gYnVzLT5zeXNkYXRhOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVf ZnJvbV9wcChwcCk7Cj4gIAo+ICAJcmV0ID0gcGNpX2dlbmVyaWNfY29uZmlnX3JlYWQoYnVzLCBk ZXZmbiwgd2hlcmUsIHNpemUsIHZhbCk7Cj4gQEAgLTUwMyw3ICs1MDMsNyBAQCBzdGF0aWMgaW50 IGR3X3BjaWVfd3Jfb3RoZXJfY29uZihzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQg ZGV2Zm4sCj4gIAkJCQkgaW50IHdoZXJlLCBpbnQgc2l6ZSwgdTMyIHZhbCkKPiAgewo+ICAJaW50 IHJldDsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0 IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5zeXNkYXRhOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9 IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAo+ICAJcmV0ID0gcGNpX2dlbmVyaWNfY29uZmln X3dyaXRlKGJ1cywgZGV2Zm4sIHdoZXJlLCBzaXplLCB2YWwpOwo+IEBAIC01MjMsNyArNTIzLDcg QEAgc3RhdGljIHN0cnVjdCBwY2lfb3BzIGR3X2NoaWxkX3BjaWVfb3BzID0gewo+ICAKPiAgdm9p ZCBfX2lvbWVtICpkd19wY2llX293bl9jb25mX21hcF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cywg dW5zaWduZWQgaW50IGRldmZuLCBpbnQgd2hlcmUpCj4gIHsKPiAtCXN0cnVjdCBwY2llX3BvcnQg KnBwID0gYnVzLT5zeXNkYXRhOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gYnVzLT5zeXNk YXRhOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4g IAo+ICAJaWYgKFBDSV9TTE9UKGRldmZuKSA+IDApCj4gQEAgLTUzOSw3ICs1MzksNyBAQCBzdGF0 aWMgc3RydWN0IHBjaV9vcHMgZHdfcGNpZV9vcHMgPSB7Cj4gIAkud3JpdGUgPSBwY2lfZ2VuZXJp Y19jb25maWdfd3JpdGUsCj4gIH07Cj4gIAo+IC12b2lkIGR3X3BjaWVfc2V0dXBfcmMoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gK3ZvaWQgZHdfcGNpZV9zZXR1cF9yYyhzdHJ1Y3QgZHdfcGNpZV9y cCAqcHApCj4gIHsKPiAgCXUzMiB2YWwsIGN0cmwsIG51bV9jdHJsczsKPiAgCXN0cnVjdCBkd19w Y2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtcGxhdC5jIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLXBsYXQuYwo+IGluZGV4IGFiZjFhZmFjNjA2 NC4uOTdkZTZhZDdmOWRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtZGVzaWdud2FyZS1wbGF0LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWRlc2lnbndhcmUtcGxhdC5jCj4gQEAgLTg3LDcgKzg3LDcgQEAgc3RhdGljIGludCBk d19wbGF0X2FkZF9wY2llX3BvcnQoc3RydWN0IGR3X3BsYXRfcGNpZSAqZHdfcGxhdF9wY2llLAo+ ICAJCQkJIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBkd19w Y2llICpwY2kgPSBkd19wbGF0X3BjaWUtPnBjaTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0g JnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNpLT5wcDsKPiAgCXN0cnVj dCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gIAlpbnQgcmV0Owo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmggYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUuaAo+IGluZGV4IDEzYmZmYTNlYWVk Ni4uMzJkZjNlYmNjZjE5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtZGVzaWdud2FyZS5oCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1kZXNpZ253YXJlLmgKPiBAQCAtMTU1LDggKzE1NSw4IEBACj4gICNkZWZpbmUgTUFYX0lBVFVf SU4JCQkyNTYKPiAgI2RlZmluZSBNQVhfSUFUVV9PVVQJCQkyNTYKPiAgCj4gLXN0cnVjdCBwY2ll X3BvcnQ7Cj4gIHN0cnVjdCBkd19wY2llOwo+ICtzdHJ1Y3QgZHdfcGNpZV9ycDsKPiAgc3RydWN0 IGR3X3BjaWVfZXA7Cj4gIAo+ICBlbnVtIGR3X3BjaWVfcmVnaW9uX3R5cGUgewo+IEBAIC0xNzMs MTEgKzE3MywxMSBAQCBlbnVtIGR3X3BjaWVfZGV2aWNlX21vZGUgewo+ICB9Owo+ICAKPiAgc3Ry dWN0IGR3X3BjaWVfaG9zdF9vcHMgewo+IC0JaW50ICgqaG9zdF9pbml0KShzdHJ1Y3QgcGNpZV9w b3J0ICpwcCk7Cj4gLQlpbnQgKCptc2lfaG9zdF9pbml0KShzdHJ1Y3QgcGNpZV9wb3J0ICpwcCk7 Cj4gKwlpbnQgKCpob3N0X2luaXQpKHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gKwlpbnQgKCpt c2lfaG9zdF9pbml0KShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApOwo+ICB9Owo+ICAKPiAtc3RydWN0 IHBjaWVfcG9ydCB7Cj4gK3N0cnVjdCBkd19wY2llX3JwIHsKPiAgCWJvb2wJCQloYXNfbXNpX2N0 cmw6MTsKPiAgCWJvb2wJCQljZmcwX2lvX3NoYXJlZDoxOwo+ICAJdTY0CQkJY2ZnMF9iYXNlOwo+ IEBAIC0yNjcsNyArMjY3LDcgQEAgc3RydWN0IGR3X3BjaWUgewo+ICAJc2l6ZV90CQkJYXR1X3Np emU7Cj4gIAl1MzIJCQludW1faWJfd2luZG93czsKPiAgCXUzMgkJCW51bV9vYl93aW5kb3dzOwo+ IC0Jc3RydWN0IHBjaWVfcG9ydAlwcDsKPiArCXN0cnVjdCBkd19wY2llX3JwCXBwOwo+ICAJc3Ry dWN0IGR3X3BjaWVfZXAJZXA7Cj4gIAljb25zdCBzdHJ1Y3QgZHdfcGNpZV9vcHMgKm9wczsKPiAg CXVuc2lnbmVkIGludAkJdmVyc2lvbjsKPiBAQCAtMzgwLDMzICszODAsMzMgQEAgc3RhdGljIGlu bGluZSB2b2lkIGR3X3BjaWVfc3RvcF9saW5rKHN0cnVjdCBkd19wY2llICpwY2kpCj4gIH0KPiAg Cj4gICNpZmRlZiBDT05GSUdfUENJRV9EV19IT1NUCj4gLWlycXJldHVybl90IGR3X2hhbmRsZV9t c2lfaXJxKHN0cnVjdCBwY2llX3BvcnQgKnBwKTsKPiAtdm9pZCBkd19wY2llX3NldHVwX3JjKHN0 cnVjdCBwY2llX3BvcnQgKnBwKTsKPiAtaW50IGR3X3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2ll X3BvcnQgKnBwKTsKPiAtdm9pZCBkd19wY2llX2hvc3RfZGVpbml0KHN0cnVjdCBwY2llX3BvcnQg KnBwKTsKPiAtaW50IGR3X3BjaWVfYWxsb2NhdGVfZG9tYWlucyhzdHJ1Y3QgcGNpZV9wb3J0ICpw cCk7Cj4gK2lycXJldHVybl90IGR3X2hhbmRsZV9tc2lfaXJxKHN0cnVjdCBkd19wY2llX3JwICpw cCk7Cj4gK3ZvaWQgZHdfcGNpZV9zZXR1cF9yYyhzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApOwo+ICtp bnQgZHdfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiArdm9pZCBkd19w Y2llX2hvc3RfZGVpbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gK2ludCBkd19wY2llX2Fs bG9jYXRlX2RvbWFpbnMoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiAgdm9pZCBfX2lvbWVtICpk d19wY2llX293bl9jb25mX21hcF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgaW50 IGRldmZuLAo+ICAJCQkJICAgICAgIGludCB3aGVyZSk7Cj4gICNlbHNlCj4gLXN0YXRpYyBpbmxp bmUgaXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4g K3N0YXRpYyBpbmxpbmUgaXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0IGR3X3Bj aWVfcnAgKnBwKQo+ICB7Cj4gIAlyZXR1cm4gSVJRX05PTkU7Cj4gIH0KPiAgCj4gLXN0YXRpYyBp bmxpbmUgdm9pZCBkd19wY2llX3NldHVwX3JjKHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0 aWMgaW5saW5lIHZvaWQgZHdfcGNpZV9zZXR1cF9yYyhzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4g IHsKPiAgfQo+ICAKPiAtc3RhdGljIGlubGluZSBpbnQgZHdfcGNpZV9ob3N0X2luaXQoc3RydWN0 IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbmxpbmUgaW50IGR3X3BjaWVfaG9zdF9pbml0KHN0 cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRp YyBpbmxpbmUgdm9pZCBkd19wY2llX2hvc3RfZGVpbml0KHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ ICtzdGF0aWMgaW5saW5lIHZvaWQgZHdfcGNpZV9ob3N0X2RlaW5pdChzdHJ1Y3QgZHdfcGNpZV9y cCAqcHApCj4gIHsKPiAgfQo+ICAKPiAtc3RhdGljIGlubGluZSBpbnQgZHdfcGNpZV9hbGxvY2F0 ZV9kb21haW5zKHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0aWMgaW5saW5lIGludCBkd19w Y2llX2FsbG9jYXRlX2RvbWFpbnMoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlyZXR1 cm4gMDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ll LWR3LXJvY2tjaGlwLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWR3LXJvY2tj aGlwLmMKPiBpbmRleCA4YzViYjlkN2NjMzYuLmMxZTc2NTNlNTA4ZSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWR3LXJvY2tjaGlwLmMKPiArKysgYi9kcml2 ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWR3LXJvY2tjaGlwLmMKPiBAQCAtMTg2LDcgKzE4 Niw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfcGNpZV9zdGFydF9saW5rKHN0cnVjdCBkd19wY2ll ICpwY2kpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCByb2NrY2hpcF9wY2ll X2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGljIGludCByb2NrY2hpcF9w Y2llX2hvc3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAgCXN0cnVjdCBkd19w Y2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IHJvY2tjaGlwX3Bj aWUgKnJvY2tjaGlwID0gdG9fcm9ja2NoaXBfcGNpZShwY2kpOwo+IEBAIC0yODgsNyArMjg4LDcg QEAgc3RhdGljIGludCByb2NrY2hpcF9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gIAlzdHJ1 Y3Qgcm9ja2NoaXBfcGNpZSAqcm9ja2NoaXA7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcDsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcDsKPiAgCWludCByZXQ7Cj4gIAo+ICAJcm9ja2NoaXAgPSBk ZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnJvY2tjaGlwKSwgR0ZQX0tFUk5FTCk7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZnU3NDAuYyBiL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZnU3NDAuYwo+IGluZGV4IDAyY2M3MGQ4Y2MwNi4uZGEw NTlmMWM5ZTkyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUt ZnU3NDAuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZnU3NDAuYwo+ IEBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIGludCBmdTc0MF9wY2llX3N0YXJ0X2xpbmsoc3Ry dWN0IGR3X3BjaWUgKnBjaSkKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQg ZnU3NDBfcGNpZV9ob3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQg ZnU3NDBfcGNpZV9ob3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCBmdTc0 MF9wY2llICphZnAgPSB0b19mdTc0MF9wY2llKHBjaSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzdGIuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv ZHdjL3BjaWUtaGlzdGIuYwo+IGluZGV4IDQxMDU1NWRjY2I2ZC4uZTJiODBmMTAwMzBkIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzdGIuYwo+ICsrKyBi L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtaGlzdGIuYwo+IEBAIC03NCw3ICs3NCw3 IEBAIHN0YXRpYyB2b2lkIGhpc3RiX3BjaWVfd3JpdGVsKHN0cnVjdCBoaXN0Yl9wY2llICpoaXN0 Yl9wY2llLCB1MzIgcmVnLCB1MzIgdmFsKQo+ICAJd3JpdGVsKHZhbCwgaGlzdGJfcGNpZS0+Y3Ry bCArIHJlZyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGhpc3RiX3BjaWVfZGJpX3dfbW9kZShz dHJ1Y3QgcGNpZV9wb3J0ICpwcCwgYm9vbCBlbmFibGUpCj4gK3N0YXRpYyB2b2lkIGhpc3RiX3Bj aWVfZGJpX3dfbW9kZShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAsIGJvb2wgZW5hYmxlKQo+ICB7Cj4g IAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVj dCBoaXN0Yl9wY2llICpoaXBjaWUgPSB0b19oaXN0Yl9wY2llKHBjaSk7Cj4gQEAgLTg4LDcgKzg4 LDcgQEAgc3RhdGljIHZvaWQgaGlzdGJfcGNpZV9kYmlfd19tb2RlKHN0cnVjdCBwY2llX3BvcnQg KnBwLCBib29sIGVuYWJsZSkKPiAgCWhpc3RiX3BjaWVfd3JpdGVsKGhpcGNpZSwgUENJRV9TWVNf Q1RSTDAsIHZhbCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGhpc3RiX3BjaWVfZGJpX3JfbW9k ZShzdHJ1Y3QgcGNpZV9wb3J0ICpwcCwgYm9vbCBlbmFibGUpCj4gK3N0YXRpYyB2b2lkIGhpc3Ri X3BjaWVfZGJpX3JfbW9kZShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAsIGJvb2wgZW5hYmxlKQo+ICB7 Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0 cnVjdCBoaXN0Yl9wY2llICpoaXBjaWUgPSB0b19oaXN0Yl9wY2llKHBjaSk7Cj4gQEAgLTE4MCw3 ICsxODAsNyBAQCBzdGF0aWMgaW50IGhpc3RiX3BjaWVfc3RhcnRfbGluayhzdHJ1Y3QgZHdfcGNp ZSAqcGNpKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaGlzdGJfcGNpZV9o b3N0X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgaGlzdGJfcGNpZV9o b3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAq cGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCBoaXN0Yl9wY2llICpoaXBj aWUgPSB0b19oaXN0Yl9wY2llKHBjaSk7Cj4gQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgdm9p ZCBoaXN0Yl9wY2llX2hvc3RfZGlzYWJsZShzdHJ1Y3QgaGlzdGJfcGNpZSAqaGlwY2llKQo+ICAJ CXJlZ3VsYXRvcl9kaXNhYmxlKGhpcGNpZS0+dnBjaWUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50 IGhpc3RiX3BjaWVfaG9zdF9lbmFibGUoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBp bnQgaGlzdGJfcGNpZV9ob3N0X2VuYWJsZShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAg CXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0 IGhpc3RiX3BjaWUgKmhpcGNpZSA9IHRvX2hpc3RiX3BjaWUocGNpKTsKPiBAQCAtMjk3LDcgKzI5 Nyw3IEBAIHN0YXRpYyBpbnQgaGlzdGJfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgaGlzdGJfcGNpZSAqaGlwY2llOwo+ICAJc3RydWN0IGR3 X3BjaWUgKnBjaTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwOwo+ICsJc3RydWN0IGR3X3BjaWVf cnAgKnBwOwo+ICAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IHBkZXYtPmRldi5vZl9ub2RlOwo+ ICAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiAgCWVudW0gb2ZfZ3Bpb19mbGFn cyBvZl9mbGFnczsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1pbnRlbC1ndy5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1pbnRlbC1ndy5j Cj4gaW5kZXggNWJhMTQ0OTI0ZmY4Li4wN2JjNTQ4ODZkNzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1pbnRlbC1ndy5jCj4gKysrIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9kd2MvcGNpZS1pbnRlbC1ndy5jCj4gQEAgLTM0Myw3ICszNDMsNyBAQCBzdGF0 aWMgdm9pZCBfX2ludGVsX3BjaWVfcmVtb3ZlKHN0cnVjdCBpbnRlbF9wY2llICpwY2llKQo+ICBz dGF0aWMgaW50IGludGVsX3BjaWVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9wY2llICpwY2llID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEo cGRldik7Cj4gLQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9ICZwY2llLT5wY2kucHA7Cj4gKwlzdHJ1 Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNpZS0+cGNpLnBwOwo+ICAKPiAgCWR3X3BjaWVfaG9zdF9k ZWluaXQocHApOwo+ICAJX19pbnRlbF9wY2llX3JlbW92ZShwY2llKTsKPiBAQCAtMzczLDcgKzM3 Myw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgaW50ZWxfcGNpZV9yZXN1bWVfbm9pcnEo c3RydWN0IGRldmljZSAqZGV2KQo+ICAJcmV0dXJuIGludGVsX3BjaWVfaG9zdF9zZXR1cChwY2ll KTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBpbnRlbF9wY2llX3JjX2luaXQoc3RydWN0IHBjaWVf cG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgaW50ZWxfcGNpZV9yY19pbml0KHN0cnVjdCBkd19wY2ll X3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9w cChwcCk7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGNpZSAqcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShwY2kt PmRldik7Cj4gQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgaW50IGludGVsX3BjaWVfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCWNvbnN0IHN0cnVjdCBpbnRlbF9wY2ll X3NvYyAqZGF0YTsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gIAlzdHJ1 Y3QgaW50ZWxfcGNpZSAqcGNpZTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwOwo+ICsJc3RydWN0 IGR3X3BjaWVfcnAgKnBwOwo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaTsKPiAgCWludCByZXQ7Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWtlZW1iYXku YyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUta2VlbWJheS5jCj4gaW5kZXggMWFj MjlhNmVlZjIyLi41OGYzY2FmNzVjZmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJv bGxlci9kd2MvcGNpZS1rZWVtYmF5LmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWtlZW1iYXkuYwo+IEBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGljIHZvaWQga2VlbWJh eV9wY2llX21zaV9pcnFfaGFuZGxlcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCj4gIAlzdHJ1Y3Qg a2VlbWJheV9wY2llICpwY2llID0gaXJxX2Rlc2NfZ2V0X2hhbmRsZXJfZGF0YShkZXNjKTsKPiAg CXN0cnVjdCBpcnFfY2hpcCAqY2hpcCA9IGlycV9kZXNjX2dldF9jaGlwKGRlc2MpOwo+ICAJdTMy IHZhbCwgbWFzaywgc3RhdHVzOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHA7Cj4gKwlzdHJ1Y3Qg ZHdfcGNpZV9ycCAqcHA7Cj4gIAo+ICAJLyoKPiAgCSAqIEtlZW0gQmF5IFBDSWUgQ29udHJvbGxl ciBwcm92aWRlcyBhbiBhZGRpdGlvbmFsIElQIGxvZ2ljIG9uIHRvcCBvZgo+IEBAIC0zMzIsNyAr MzMyLDcgQEAgc3RhdGljIGludCBrZWVtYmF5X3BjaWVfYWRkX3BjaWVfcG9ydChzdHJ1Y3Qga2Vl bWJheV9wY2llICpwY2llLAo+ICAJCQkJICAgICAgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9ICZwY2llLT5wY2k7Cj4gLQlzdHJ1Y3Qg cGNpZV9wb3J0ICpwcCA9ICZwY2ktPnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gJnBj aS0+cHA7Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ICAJdTMyIHZhbDsK PiAgCWludCByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aWUta2lyaW4uYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUta2lyaW4uYwo+IGlu ZGV4IGE1MmNhZDI2OWY4NS4uN2Y2N2FhZDcxZGY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNp L2NvbnRyb2xsZXIvZHdjL3BjaWUta2lyaW4uYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaWUta2lyaW4uYwo+IEBAIC02MjAsNyArNjIwLDcgQEAgc3RhdGljIGludCBraXJp bl9wY2llX3N0YXJ0X2xpbmsoc3RydWN0IGR3X3BjaWUgKnBjaSkKPiAgCXJldHVybiAwOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgaW50IGtpcmluX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQg KnBwKQo+ICtzdGF0aWMgaW50IGtpcmluX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3Jw ICpwcCkKPiAgewo+ICAJcHAtPmJyaWRnZS0+b3BzID0gJmtpcmluX3BjaV9vcHM7Cj4gIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYyBiL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtcWNvbS5jCj4gaW5kZXggMmVhMTM3NTBiNDkyLi5h OWIyMzIyNjI0ZDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1xY29tLmMKPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYwo+ IEBAIC0xMzgxLDcgKzEzODEsNyBAQCBzdGF0aWMgaW50IHFjb21fcGNpZV9jb25maWdfc2lkX3Nt ODI1MChzdHJ1Y3QgcWNvbV9wY2llICpwY2llKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0 YXRpYyBpbnQgcWNvbV9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3Rh dGljIGludCBxY29tX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1 Y3QgcWNvbV9wY2llICpwY2llID0gdG9fcWNvbV9wY2llKHBjaSk7Cj4gQEAgLTE1NjQsNyArMTU2 NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdfcGNpZV9vcHMgZHdfcGNpZV9vcHMgPSB7Cj4g IHN0YXRpYyBpbnQgcWNvbV9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gLQlzdHJ1Y3QgcGNp ZV9wb3J0ICpwcDsKPiArCXN0cnVjdCBkd19wY2llX3JwICpwcDsKPiAgCXN0cnVjdCBkd19wY2ll ICpwY2k7Cj4gIAlzdHJ1Y3QgcWNvbV9wY2llICpwY2llOwo+ICAJY29uc3Qgc3RydWN0IHFjb21f cGNpZV9jZmcgKnBjaWVfY2ZnOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L2R3Yy9wY2llLXNwZWFyMTN4eC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1z cGVhcjEzeHguYwo+IGluZGV4IDE1NjllODJiNTU2OC4uN2ZkNjk4ZGExNDRlIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtc3BlYXIxM3h4LmMKPiArKysgYi9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXNwZWFyMTN4eC5jCj4gQEAgLTg1LDcgKzg1 LDcgQEAgc3RhdGljIGlycXJldHVybl90IHNwZWFyMTN4eF9wY2llX2lycV9oYW5kbGVyKGludCBp cnEsIHZvaWQgKmFyZykKPiAgCXN0cnVjdCBzcGVhcjEzeHhfcGNpZSAqc3BlYXIxM3h4X3BjaWUg PSBhcmc7Cj4gIAlzdHJ1Y3QgcGNpZV9hcHBfcmVnIF9faW9tZW0gKmFwcF9yZWcgPSBzcGVhcjEz eHhfcGNpZS0+YXBwX2Jhc2U7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gc3BlYXIxM3h4X3Bj aWUtPnBjaTsKPiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3Qg ZHdfcGNpZV9ycCAqcHAgPSAmcGNpLT5wcDsKPiAgCXVuc2lnbmVkIGludCBzdGF0dXM7Cj4gIAo+ ICAJc3RhdHVzID0gcmVhZGwoJmFwcF9yZWctPmludF9zdHMpOwo+IEBAIC0xMjEsNyArMTIxLDcg QEAgc3RhdGljIGludCBzcGVhcjEzeHhfcGNpZV9saW5rX3VwKHN0cnVjdCBkd19wY2llICpwY2kp Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBzcGVhcjEzeHhfcGNpZV9ob3N0 X2luaXQoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyBpbnQgc3BlYXIxM3h4X3BjaWVf aG9zdF9pbml0KHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUg KnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3Qgc3BlYXIxM3h4X3BjaWUg KnNwZWFyMTN4eF9wY2llID0gdG9fc3BlYXIxM3h4X3BjaWUocGNpKTsKPiBAQCAtMTU1LDcgKzE1 NSw3IEBAIHN0YXRpYyBpbnQgc3BlYXIxM3h4X2FkZF9wY2llX3BvcnQoc3RydWN0IHNwZWFyMTN4 eF9wY2llICpzcGVhcjEzeHhfcGNpZSwKPiAgCQkJCSAgIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSBzcGVhcjEzeHhfcGNpZS0+cGNp Owo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKPiArCXN0cnVjdCBkd19wY2ll X3JwICpwcCA9ICZwY2ktPnBwOwo+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsK PiAgCWludCByZXQ7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLXRlZ3JhMTk0LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3Jh MTk0LmMKPiBpbmRleCBjYzI2Nzg0OTAxNjIuLjY1MTM1ZjVjNGE0YSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMKPiArKysgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLXRlZ3JhMTk0LmMKPiBAQCAtMzExLDcgKzMxMSw3IEBA IHN0cnVjdCB0ZWdyYV9wY2llX3NvYyB7Cj4gIAllbnVtIGR3X3BjaWVfZGV2aWNlX21vZGUgbW9k ZTsKPiAgfTsKPiAgCj4gLXN0YXRpYyB2b2lkIGFwcGx5X2JhZF9saW5rX3dvcmthcm91bmQoc3Ry dWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2b2lkIGFwcGx5X2JhZF9saW5rX3dvcmthcm91 bmQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0g dG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2llID0g dG9fdGVncmFfcGNpZShwY2kpOwo+IEBAIC0zNDksNyArMzQ5LDcgQEAgc3RhdGljIGlycXJldHVy bl90IHRlZ3JhX3BjaWVfcnBfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQo+ICB7Cj4g IAlzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZSA9IGFyZzsKPiAgCXN0cnVjdCBkd19wY2llICpw Y2kgPSAmcGNpZS0+cGNpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcCA9ICZwY2ktPnBwOwo+ICAJdTMyIHZhbCwgdG1wOwo+ICAJ dTE2IHZhbF93Owo+ICAKPiBAQCAtNjk4LDcgKzY5OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBp bml0X2hvc3RfYXNwbShzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZSkgeyByZXR1cm47IH0KPiAg c3RhdGljIGlubGluZSB2b2lkIGluaXRfZGVidWdmcyhzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNp ZSkgeyByZXR1cm47IH0KPiAgI2VuZGlmCj4gIAo+IC1zdGF0aWMgdm9pZCB0ZWdyYV9wY2llX2Vu YWJsZV9zeXN0ZW1faW50ZXJydXB0cyhzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGljIHZv aWQgdGVncmFfcGNpZV9lbmFibGVfc3lzdGVtX2ludGVycnVwdHMoc3RydWN0IGR3X3BjaWVfcnAg KnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBw KTsKPiAgCXN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2llID0gdG9fdGVncmFfcGNpZShwY2kpOwo+ IEBAIC03MzYsNyArNzM2LDcgQEAgc3RhdGljIHZvaWQgdGVncmFfcGNpZV9lbmFibGVfc3lzdGVt X2ludGVycnVwdHMoc3RydWN0IHBjaWVfcG9ydCAqcHApCj4gIAkJCSAgIHZhbF93KTsKPiAgfQo+ ICAKPiAtc3RhdGljIHZvaWQgdGVncmFfcGNpZV9lbmFibGVfbGVnYWN5X2ludGVycnVwdHMoc3Ry dWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX2xlZ2Fj eV9pbnRlcnJ1cHRzKHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3QgdGVncmExOTRfcGNp ZSAqcGNpZSA9IHRvX3RlZ3JhX3BjaWUocGNpKTsKPiBAQCAtNzU3LDcgKzc1Nyw3IEBAIHN0YXRp YyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX2xlZ2FjeV9pbnRlcnJ1cHRzKHN0cnVjdCBwY2llX3Bv cnQgKnBwKQo+ICAJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0lOVFJfRU5fTDFfOF8wKTsK PiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdGVncmFfcGNpZV9lbmFibGVfbXNpX2ludGVycnVwdHMo c3RydWN0IHBjaWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX21z aV9pbnRlcnJ1cHRzKHN0cnVjdCBkd19wY2llX3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3Bj aWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1Y3QgdGVncmExOTRfcGNp ZSAqcGNpZSA9IHRvX3RlZ3JhX3BjaWUocGNpKTsKPiBAQCAtNzcwLDcgKzc3MCw3IEBAIHN0YXRp YyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX21zaV9pbnRlcnJ1cHRzKHN0cnVjdCBwY2llX3BvcnQg KnBwKQo+ICAJYXBwbF93cml0ZWwocGNpZSwgdmFsLCBBUFBMX0lOVFJfRU5fTDBfMCk7Cj4gIH0K PiAgCj4gLXN0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX2ludGVycnVwdHMoc3RydWN0IHBj aWVfcG9ydCAqcHApCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3BjaWVfZW5hYmxlX2ludGVycnVwdHMo c3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gdG9f ZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2llID0gdG9f dGVncmFfcGNpZShwY2kpOwo+IEBAIC04NTEsNyArODUxLDcgQEAgc3RhdGljIHZvaWQgY29uZmln X2dlbjNfZ2VuNF9lcV9wcmVzZXRzKHN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2llKQo+ICAJZHdf cGNpZV93cml0ZWxfZGJpKHBjaSwgR0VOM19SRUxBVEVEX09GRiwgdmFsKTsKPiAgfQo+ICAKPiAt c3RhdGljIGludCB0ZWdyYTE5NF9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkK PiArc3RhdGljIGludCB0ZWdyYTE5NF9wY2llX2hvc3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAq cHApCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHAp Owo+ICAJc3RydWN0IHRlZ3JhMTk0X3BjaWUgKnBjaWUgPSB0b190ZWdyYV9wY2llKHBjaSk7Cj4g QEAgLTkxNiw3ICs5MTYsNyBAQCBzdGF0aWMgaW50IHRlZ3JhMTk0X3BjaWVfc3RhcnRfbGluayhz dHJ1Y3QgZHdfcGNpZSAqcGNpKQo+ICB7Cj4gIAl1MzIgdmFsLCBvZmZzZXQsIHNwZWVkLCB0bXA7 Cj4gIAlzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZSA9IHRvX3RlZ3JhX3BjaWUocGNpKTsKPiAt CXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAq cHAgPSAmcGNpLT5wcDsKPiAgCWJvb2wgcmV0cnkgPSB0cnVlOwo+ICAKPiAgCWlmIChwY2llLT5t b2RlID09IERXX1BDSUVfRVBfVFlQRSkgewo+IEBAIC0xMjEyLDcgKzEyMTIsNyBAQCBzdGF0aWMg aW50IHRlZ3JhX3BjaWVfYnBtcF9zZXRfcGxsX3N0YXRlKHN0cnVjdCB0ZWdyYTE5NF9wY2llICpw Y2llLAo+ICAKPiAgc3RhdGljIHZvaWQgdGVncmFfcGNpZV9kb3duc3RyZWFtX2Rldl90b19EMChz dHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZSkKPiAgewo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAg PSAmcGNpZS0+cGNpLnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gJnBjaWUtPnBjaS5w cDsKPiAgCXN0cnVjdCBwY2lfYnVzICpjaGlsZCwgKnJvb3RfYnVzID0gTlVMTDsKPiAgCXN0cnVj dCBwY2lfZGV2ICpwZGV2Owo+ICAKPiBAQCAtMTQ0Myw3ICsxNDQzLDcgQEAgc3RhdGljIHZvaWQg dGVncmFfcGNpZV91bmNvbmZpZ19jb250cm9sbGVyKHN0cnVjdCB0ZWdyYTE5NF9wY2llICpwY2ll KQo+ICBzdGF0aWMgaW50IHRlZ3JhX3BjaWVfaW5pdF9jb250cm9sbGVyKHN0cnVjdCB0ZWdyYTE5 NF9wY2llICpwY2llKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNpID0gJnBjaWUtPnBjaTsK PiAtCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9y cCAqcHAgPSAmcGNpLT5wcDsKPiAgCWludCByZXQ7Cj4gIAo+ICAJcmV0ID0gdGVncmFfcGNpZV9j b25maWdfY29udHJvbGxlcihwY2llLCBmYWxzZSk7Cj4gQEAgLTE5NjEsNyArMTk2MSw3IEBAIHN0 YXRpYyBpbnQgdGVncmExOTRfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQo+ICAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiAgCXN0cnVjdCByZXNvdXJj ZSAqYXR1X2RtYV9yZXM7Cj4gIAlzdHJ1Y3QgdGVncmExOTRfcGNpZSAqcGNpZTsKPiAtCXN0cnVj dCBwY2llX3BvcnQgKnBwOwo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwOwo+ICAJc3RydWN0IGR3 X3BjaWUgKnBjaTsKPiAgCXN0cnVjdCBwaHkgKipwaHlzOwo+ICAJY2hhciAqbmFtZTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS11bmlwaGllci5jIGIvZHJp dmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS11bmlwaGllci5jCj4gaW5kZXggYjQ1YWMzNzU0 MjQyLi40OGMzZWJhODE3YjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9k d2MvcGNpZS11bmlwaGllci5jCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS11bmlwaGllci5jCj4gQEAgLTE3MSw3ICsxNzEsNyBAQCBzdGF0aWMgdm9pZCB1bmlwaGllcl9w Y2llX2lycV9lbmFibGUoc3RydWN0IHVuaXBoaWVyX3BjaWUgKnBjaWUpCj4gIAo+ICBzdGF0aWMg dm9pZCB1bmlwaGllcl9wY2llX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKPiAgewo+IC0J c3RydWN0IHBjaWVfcG9ydCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKPiAr CXN0cnVjdCBkd19wY2llX3JwICpwcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpOwo+ ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9wcChwcCk7Cj4gIAlzdHJ1 Y3QgdW5pcGhpZXJfcGNpZSAqcGNpZSA9IHRvX3VuaXBoaWVyX3BjaWUocGNpKTsKPiAgCXVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4gQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0aWMgdm9pZCB1bmlwaGll cl9wY2llX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKPiAgCj4gIHN0YXRpYyB2b2lkIHVu aXBoaWVyX3BjaWVfaXJxX3VubWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gIHsKPiAtCXN0cnVj dCBwY2llX3BvcnQgKnBwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7Cj4gKwlzdHJ1 Y3QgZHdfcGNpZV9ycCAqcHAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTsKPiAgCXN0 cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IHVu aXBoaWVyX3BjaWUgKnBjaWUgPSB0b191bmlwaGllcl9wY2llKHBjaSk7Cj4gIAl1bnNpZ25lZCBs b25nIGZsYWdzOwo+IEBAIC0yMjUsNyArMjI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFf ZG9tYWluX29wcyB1bmlwaGllcl9pbnR4X2RvbWFpbl9vcHMgPSB7Cj4gIAo+ICBzdGF0aWMgdm9p ZCB1bmlwaGllcl9wY2llX2lycV9oYW5kbGVyKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKPiAgewo+ IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBpcnFfZGVzY19nZXRfaGFuZGxlcl9kYXRhKGRlc2Mp Owo+ICsJc3RydWN0IGR3X3BjaWVfcnAgKnBwID0gaXJxX2Rlc2NfZ2V0X2hhbmRsZXJfZGF0YShk ZXNjKTsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ ICAJc3RydWN0IHVuaXBoaWVyX3BjaWUgKnBjaWUgPSB0b191bmlwaGllcl9wY2llKHBjaSk7Cj4g IAlzdHJ1Y3QgaXJxX2NoaXAgKmNoaXAgPSBpcnFfZGVzY19nZXRfY2hpcChkZXNjKTsKPiBAQCAt MjU4LDcgKzI1OCw3IEBAIHN0YXRpYyB2b2lkIHVuaXBoaWVyX3BjaWVfaXJxX2hhbmRsZXIoc3Ry dWN0IGlycV9kZXNjICpkZXNjKQo+ICAJY2hhaW5lZF9pcnFfZXhpdChjaGlwLCBkZXNjKTsKPiAg fQo+ICAKPiAtc3RhdGljIGludCB1bmlwaGllcl9wY2llX2NvbmZpZ19sZWdhY3lfaXJxKHN0cnVj dCBwY2llX3BvcnQgKnBwKQo+ICtzdGF0aWMgaW50IHVuaXBoaWVyX3BjaWVfY29uZmlnX2xlZ2Fj eV9pcnEoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfcGNpZSAqcGNp ID0gdG9fZHdfcGNpZV9mcm9tX3BwKHBwKTsKPiAgCXN0cnVjdCB1bmlwaGllcl9wY2llICpwY2ll ID0gdG9fdW5pcGhpZXJfcGNpZShwY2kpOwo+IEBAIC0yOTUsNyArMjk1LDcgQEAgc3RhdGljIGlu dCB1bmlwaGllcl9wY2llX2NvbmZpZ19sZWdhY3lfaXJxKHN0cnVjdCBwY2llX3BvcnQgKnBwKQo+ ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCB1bmlwaGllcl9wY2llX2hvc3Rf aW5pdChzdHJ1Y3QgcGNpZV9wb3J0ICpwcCkKPiArc3RhdGljIGludCB1bmlwaGllcl9wY2llX2hv c3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpw Y2kgPSB0b19kd19wY2llX2Zyb21fcHAocHApOwo+ICAJc3RydWN0IHVuaXBoaWVyX3BjaWUgKnBj aWUgPSB0b191bmlwaGllcl9wY2llKHBjaSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvZHdjL3BjaWUtdmlzY29udGkuYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtdmlzY29udGkuYwo+IGluZGV4IDUwZjgwZjA3ZTRkYi4uNzEwMjZmZWZhMzY2IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdmlzY29udGkuYwo+ICsr KyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdmlzY29udGkuYwo+IEBAIC0xNzgs NyArMTc4LDcgQEAgc3RhdGljIHZvaWQgdmlzY29udGlfcGNpZV9zdG9wX2xpbmsoc3RydWN0IGR3 X3BjaWUgKnBjaSkKPiAgICovCj4gIHN0YXRpYyB1NjQgdmlzY29udGlfcGNpZV9jcHVfYWRkcl9m aXh1cChzdHJ1Y3QgZHdfcGNpZSAqcGNpLCB1NjQgY3B1X2FkZHIpCj4gIHsKPiAtCXN0cnVjdCBw Y2llX3BvcnQgKnBwID0gJnBjaS0+cHA7Cj4gKwlzdHJ1Y3QgZHdfcGNpZV9ycCAqcHAgPSAmcGNp LT5wcDsKPiAgCj4gIAlyZXR1cm4gY3B1X2FkZHIgJiB+cHAtPmlvX2Jhc2U7Cj4gIH0KPiBAQCAt MTkwLDcgKzE5MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdfcGNpZV9vcHMgZHdfcGNpZV9v cHMgPSB7Cj4gIAkuc3RvcF9saW5rID0gdmlzY29udGlfcGNpZV9zdG9wX2xpbmssCj4gIH07Cj4g IAo+IC1zdGF0aWMgaW50IHZpc2NvbnRpX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBwY2llX3BvcnQg KnBwKQo+ICtzdGF0aWMgaW50IHZpc2NvbnRpX3BjaWVfaG9zdF9pbml0KHN0cnVjdCBkd19wY2ll X3JwICpwcCkKPiAgewo+ICAJc3RydWN0IGR3X3BjaWUgKnBjaSA9IHRvX2R3X3BjaWVfZnJvbV9w cChwcCk7Cj4gIAlzdHJ1Y3QgdmlzY29udGlfcGNpZSAqcGNpZSA9IGRldl9nZXRfZHJ2ZGF0YShw Y2ktPmRldik7Cj4gQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMgaW50IHZpc2NvbnRpX2FkZF9w Y2llX3BvcnQoc3RydWN0IHZpc2NvbnRpX3BjaWUgKnBjaWUsCj4gIAkJCQkgIHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsKPiAgCXN0cnVjdCBkd19wY2llICpwY2kgPSAmcGNpZS0+ cGNpOwo+IC0Jc3RydWN0IHBjaWVfcG9ydCAqcHAgPSAmcGNpLT5wcDsKPiArCXN0cnVjdCBkd19w Y2llX3JwICpwcCA9ICZwY2ktPnBwOwo+ICAKPiAgCXBwLT5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJx X2J5bmFtZShwZGV2LCAiaW50ciIpOwo+ICAJaWYgKHBwLT5pcnEgPCAwKQo+IC0tIAo+IDIuMzUu MQo+IAoKLS0gCuCuruCuo+Cuv+CuteCuo+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprgrr/grrXg rq7gr40KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxp bnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9j a2NoaXAK 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 AB2AAC433EF for ; Tue, 28 Jun 2022 07:02:23 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4LXFsB1P1Nz3dsX for ; Tue, 28 Jun 2022 17:02:22 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=QXCgEkzK; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=linaro.org (client-ip=2607:f8b0:4864:20::1035; helo=mail-pj1-x1035.google.com; envelope-from=manivannan.sadhasivam@linaro.org; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=QXCgEkzK; dkim-atps=neutral Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) (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 4LXFVp3WL6z30F8 for ; Tue, 28 Jun 2022 16:46:26 +1000 (AEST) Received: by mail-pj1-x1035.google.com with SMTP id a11-20020a17090acb8b00b001eca0041455so11480640pju.1 for ; Mon, 27 Jun 2022 23:46:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=LRpQs5cOMs5HSj75+8AfUEiKj/osl4OH7vuLs6bfaeI=; b=QXCgEkzKLYlhx5RPQua2KlpaHX0weUucwmk60QBJk5xYxOo5U3IL0UfsbdSBtIVgrX M+B87DZUlnDzP7itXzadMjzNhPSj7ShTp9cpSHagReLhwgvRWYPEUSGG7rb5SMfNU9bf r2XPwTxeN2MrmxL6Y5c/12I7JPJdiscgMb9tF/xiHm8ycAWQ+sfV6aezt9YsTlz5IPUr M16XMZuY2Kr5ZcEqceGmBou7jDwu9kZIASw0EYs6B/Hypn0gyIZV8/66Swe7+VVaS0J3 KmD4W4O+7fehlot+mtDhvynVMD7PE6PDvxlWmpD6eieXBwwnwcVA1qaKPL1dKI+wdb4K 9svw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=LRpQs5cOMs5HSj75+8AfUEiKj/osl4OH7vuLs6bfaeI=; b=OpUZiXvNbB3IQAUzZ8Gij8Iz9WOWAgY8N6gzXUVN8ENQJvenPIunADhzuzx9nYpP57 RRzTM7VWuBrMuPzRuexnjBysIZzeKp5QkXH9daGqXL0pQjPtGVx07HTmSBSqs72u3JDG O9ncfgDexNvd6E1YcFjztvq3fWBdczBKWJZ10hpRwXDbrBd3lDq/2Xz5xBMCQ6XU8bkZ i+TQku52WPpF4rDmL6lm8lH3nt3YAHznlg8xkQrBIeRJneV2N1jadBASDiL0s1hGbYCQ I8cuLi1iizzJCmCrviBzy1Xp+ZyxBCL6jpygzYxCWTMlC2INB5QJn5TfB8j7bsVNIFoH oYmg== X-Gm-Message-State: AJIora+13JCunq7SYUOVpytobBpPitsLL0noK+kIJWaTAemIumMIr2JY fO5PpyP4xhvkW+3WTqQUwCXY X-Google-Smtp-Source: AGRyM1syVH0OxjF/in3+ZNlpAgeJ4nGCK8UGH4OVrIlm0mTYOfjKN4IudwILz0eDdehI8KY5xROk4g== X-Received: by 2002:a17:902:e850:b0:16a:209a:971a with SMTP id t16-20020a170902e85000b0016a209a971amr3469189plg.163.1656398783887; Mon, 27 Jun 2022 23:46:23 -0700 (PDT) Received: from thinkpad ([27.111.75.159]) by smtp.gmail.com with ESMTPSA id jd12-20020a170903260c00b0016a15842cf5sm8380980plb.121.2022.06.27.23.46.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jun 2022 23:46:23 -0700 (PDT) Date: Tue, 28 Jun 2022 12:16:08 +0530 From: Manivannan Sadhasivam To: Serge Semin Subject: Re: [PATCH RESEND v5 15/18] PCI: dwc: Add dw_ prefix to the pcie_port structure name Message-ID: <20220628064608.GH23601@thinkpad> References: <20220624143428.8334-1-Sergey.Semin@baikalelectronics.ru> <20220624143428.8334-16-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220624143428.8334-16-Sergey.Semin@baikalelectronics.ru> X-Mailman-Approved-At: Tue, 28 Jun 2022 16:58:59 +1000 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: Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Thomas Petazzoni , Kunihiko Hayashi , Neil Armstrong , linux-pci@vger.kernel.org, Lorenzo Pieralisi , Binghui Wang , Frank Li , Bjorn Andersson , Minghuan Lian , Thierry Reding , Pavel Parkhomenko , Alim Akhtar , Jonathan Chocron , Nobuhiro Iwamatsu , Jonathan Hunter , Fabio Estevam , Jerome Brunet , Rob Herring , Jesper Nilsson , Lorenzo Pieralisi , Kevin Hilman , Pratyush Anand , linux-tegra@vger.kernel. org, linux-arm-kernel@axis.com, Kishon Vijay Abraham I , linux-rockchip@lists.infradead.org, Rahul Tanwar , Andy Gross , NXP Linux Team , Xiaowei Song , Greentime Hu , Richard Zhu , linux-omap@vger.kernel.org, Srikanth Thokala , Martin Blumenstingl , linux-arm-msm@vger.kernel.org, Sascha Hauer , linuxppc-dev@lists.ozlabs.org, Yue Wang , linux-samsung-soc@vger.kernel.org, Paul Walmsley , Bjorn Helgaas , linux-amlogic@lists.infradead.org, Alexey Malahov , Mingkai Hu , linux-arm-kernel@lists.infradead.org, Roy Zang , Jingoo Han , Heiko Stuebner , linux-kernel@vger.kernel.o rg, Serge Semin , Stanimir V arbanov , Krzysztof Kozlowski , Masami Hiramatsu , Pengutronix Kernel Team , Gustavo Pimentel , Shawn Guo , Lucas Stach Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Fri, Jun 24, 2022 at 05:34:25PM +0300, Serge Semin wrote: > All of the DW PCIe core driver entities have names with the dw_ prefix in > order to easily distinguish local and common PCIe name spaces. All except > the pcie_port structure which contains the DW PCIe Root Port descriptor. > For historical reason the structure has retained the original name since > commit 340cba6092c2 ("pci: Add PCIe driver for Samsung Exynos") when > the DW PCIe IP-core support was added to the kernel. Let's finally fix > that by adding the dw_ prefix to the structure name and by adding the _rp > suffix to be similar to the EP counterpart. Thus the name will be coherent > with the common driver naming policy. It shall make the driver code more > readable eliminating visual confusion between the local and generic PCI > name spaces. > > Signed-off-by: Serge Semin Reviewed-by: Manivannan Sadhasivam Thanks, Mani > Reviewed-by: Rob Herring > > --- > > Changelog v4: > - This is a new patch created on the v4 lap of the series. > --- > drivers/pci/controller/dwc/pci-dra7xx.c | 12 +++---- > drivers/pci/controller/dwc/pci-exynos.c | 6 ++-- > drivers/pci/controller/dwc/pci-imx6.c | 6 ++-- > drivers/pci/controller/dwc/pci-keystone.c | 20 +++++------ > drivers/pci/controller/dwc/pci-layerscape.c | 2 +- > drivers/pci/controller/dwc/pci-meson.c | 2 +- > drivers/pci/controller/dwc/pcie-al.c | 6 ++-- > drivers/pci/controller/dwc/pcie-armada8k.c | 4 +-- > drivers/pci/controller/dwc/pcie-artpec6.c | 4 +-- > .../pci/controller/dwc/pcie-designware-host.c | 36 +++++++++---------- > .../pci/controller/dwc/pcie-designware-plat.c | 2 +- > drivers/pci/controller/dwc/pcie-designware.h | 30 ++++++++-------- > drivers/pci/controller/dwc/pcie-dw-rockchip.c | 4 +-- > drivers/pci/controller/dwc/pcie-fu740.c | 2 +- > drivers/pci/controller/dwc/pcie-histb.c | 10 +++--- > drivers/pci/controller/dwc/pcie-intel-gw.c | 6 ++-- > drivers/pci/controller/dwc/pcie-keembay.c | 4 +-- > drivers/pci/controller/dwc/pcie-kirin.c | 2 +- > drivers/pci/controller/dwc/pcie-qcom.c | 4 +-- > drivers/pci/controller/dwc/pcie-spear13xx.c | 6 ++-- > drivers/pci/controller/dwc/pcie-tegra194.c | 22 ++++++------ > drivers/pci/controller/dwc/pcie-uniphier.c | 10 +++--- > drivers/pci/controller/dwc/pcie-visconti.c | 6 ++-- > 23 files changed, 103 insertions(+), 103 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c > index dfcdeb432dc8..a174b680b2a7 100644 > --- a/drivers/pci/controller/dwc/pci-dra7xx.c > +++ b/drivers/pci/controller/dwc/pci-dra7xx.c > @@ -178,7 +178,7 @@ static void dra7xx_pcie_enable_interrupts(struct dra7xx_pcie *dra7xx) > dra7xx_pcie_enable_msi_interrupts(dra7xx); > } > > -static int dra7xx_pcie_host_init(struct pcie_port *pp) > +static int dra7xx_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct dra7xx_pcie *dra7xx = to_dra7xx_pcie(pci); > @@ -202,7 +202,7 @@ static const struct irq_domain_ops intx_domain_ops = { > .xlate = pci_irqd_intx_xlate, > }; > > -static int dra7xx_pcie_handle_msi(struct pcie_port *pp, int index) > +static int dra7xx_pcie_handle_msi(struct dw_pcie_rp *pp, int index) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > unsigned long val; > @@ -224,7 +224,7 @@ static int dra7xx_pcie_handle_msi(struct pcie_port *pp, int index) > return 1; > } > > -static void dra7xx_pcie_handle_msi_irq(struct pcie_port *pp) > +static void dra7xx_pcie_handle_msi_irq(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > int ret, i, count, num_ctrls; > @@ -255,8 +255,8 @@ static void dra7xx_pcie_msi_irq_handler(struct irq_desc *desc) > { > struct irq_chip *chip = irq_desc_get_chip(desc); > struct dra7xx_pcie *dra7xx; > + struct dw_pcie_rp *pp; > struct dw_pcie *pci; > - struct pcie_port *pp; > unsigned long reg; > u32 bit; > > @@ -344,7 +344,7 @@ static irqreturn_t dra7xx_pcie_irq_handler(int irq, void *arg) > return IRQ_HANDLED; > } > > -static int dra7xx_pcie_init_irq_domain(struct pcie_port *pp) > +static int dra7xx_pcie_init_irq_domain(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct device *dev = pci->dev; > @@ -475,7 +475,7 @@ static int dra7xx_add_pcie_port(struct dra7xx_pcie *dra7xx, > { > int ret; > struct dw_pcie *pci = dra7xx->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = pci->dev; > > pp->irq = platform_get_irq(pdev, 1); > diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c > index 467c8d1cd7e4..2044d191fba6 100644 > --- a/drivers/pci/controller/dwc/pci-exynos.c > +++ b/drivers/pci/controller/dwc/pci-exynos.c > @@ -249,7 +249,7 @@ static int exynos_pcie_link_up(struct dw_pcie *pci) > return (val & PCIE_ELBI_XMLH_LINKUP); > } > > -static int exynos_pcie_host_init(struct pcie_port *pp) > +static int exynos_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct exynos_pcie *ep = to_exynos_pcie(pci); > @@ -276,7 +276,7 @@ static int exynos_add_pcie_port(struct exynos_pcie *ep, > struct platform_device *pdev) > { > struct dw_pcie *pci = &ep->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > int ret; > > @@ -406,7 +406,7 @@ static int __maybe_unused exynos_pcie_resume_noirq(struct device *dev) > { > struct exynos_pcie *ep = dev_get_drvdata(dev); > struct dw_pcie *pci = &ep->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > int ret; > > ret = regulator_bulk_enable(ARRAY_SIZE(ep->supplies), ep->supplies); > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 7a285fb0f619..5ea01ed4674d 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -863,7 +863,7 @@ static int imx6_pcie_start_link(struct dw_pcie *pci) > return ret; > } > > -static int imx6_pcie_host_init(struct pcie_port *pp) > +static int imx6_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct imx6_pcie *imx6_pcie = to_imx6_pcie(pci); > @@ -992,7 +992,7 @@ static int imx6_pcie_resume_noirq(struct device *dev) > { > int ret; > struct imx6_pcie *imx6_pcie = dev_get_drvdata(dev); > - struct pcie_port *pp = &imx6_pcie->pci->pp; > + struct dw_pcie_rp *pp = &imx6_pcie->pci->pp; > > if (!(imx6_pcie->drvdata->flags & IMX6_PCIE_FLAG_SUPPORTS_SUSPEND)) > return 0; > @@ -1291,7 +1291,7 @@ static struct platform_driver imx6_pcie_driver = { > static void imx6_pcie_quirk(struct pci_dev *dev) > { > struct pci_bus *bus = dev->bus; > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > > /* Bus parent is the PCI bridge, its parent is this platform driver */ > if (!bus->dev.parent || !bus->dev.parent->parent) > diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/controller/dwc/pci-keystone.c > index d10e5fd0f83c..c3d88aa27dd4 100644 > --- a/drivers/pci/controller/dwc/pci-keystone.c > +++ b/drivers/pci/controller/dwc/pci-keystone.c > @@ -147,7 +147,7 @@ static void ks_pcie_app_writel(struct keystone_pcie *ks_pcie, u32 offset, > > static void ks_pcie_msi_irq_ack(struct irq_data *data) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(data); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(data); > struct keystone_pcie *ks_pcie; > u32 irq = data->hwirq; > struct dw_pcie *pci; > @@ -167,7 +167,7 @@ static void ks_pcie_msi_irq_ack(struct irq_data *data) > > static void ks_pcie_compose_msi_msg(struct irq_data *data, struct msi_msg *msg) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(data); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(data); > struct keystone_pcie *ks_pcie; > struct dw_pcie *pci; > u64 msi_target; > @@ -192,7 +192,7 @@ static int ks_pcie_msi_set_affinity(struct irq_data *irq_data, > > static void ks_pcie_msi_mask(struct irq_data *data) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(data); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(data); > struct keystone_pcie *ks_pcie; > u32 irq = data->hwirq; > struct dw_pcie *pci; > @@ -216,7 +216,7 @@ static void ks_pcie_msi_mask(struct irq_data *data) > > static void ks_pcie_msi_unmask(struct irq_data *data) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(data); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(data); > struct keystone_pcie *ks_pcie; > u32 irq = data->hwirq; > struct dw_pcie *pci; > @@ -247,7 +247,7 @@ static struct irq_chip ks_pcie_msi_irq_chip = { > .irq_unmask = ks_pcie_msi_unmask, > }; > > -static int ks_pcie_msi_host_init(struct pcie_port *pp) > +static int ks_pcie_msi_host_init(struct dw_pcie_rp *pp) > { > pp->msi_irq_chip = &ks_pcie_msi_irq_chip; > return dw_pcie_allocate_domains(pp); > @@ -390,7 +390,7 @@ static void ks_pcie_setup_rc_app_regs(struct keystone_pcie *ks_pcie) > u32 val; > u32 num_viewport = ks_pcie->num_viewport; > struct dw_pcie *pci = ks_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > u64 start, end; > struct resource *mem; > int i; > @@ -428,7 +428,7 @@ static void ks_pcie_setup_rc_app_regs(struct keystone_pcie *ks_pcie) > static void __iomem *ks_pcie_other_map_bus(struct pci_bus *bus, > unsigned int devfn, int where) > { > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct keystone_pcie *ks_pcie = to_keystone_pcie(pci); > u32 reg; > @@ -456,7 +456,7 @@ static struct pci_ops ks_child_pcie_ops = { > */ > static int ks_pcie_v3_65_add_bus(struct pci_bus *bus) > { > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct keystone_pcie *ks_pcie = to_keystone_pcie(pci); > > @@ -574,7 +574,7 @@ static void ks_pcie_msi_irq_handler(struct irq_desc *desc) > struct keystone_pcie *ks_pcie = irq_desc_get_handler_data(desc); > u32 offset = irq - ks_pcie->msi_host_irq; > struct dw_pcie *pci = ks_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = pci->dev; > struct irq_chip *chip = irq_desc_get_chip(desc); > u32 vector, reg, pos; > @@ -799,7 +799,7 @@ static int __init ks_pcie_init_id(struct keystone_pcie *ks_pcie) > return 0; > } > > -static int __init ks_pcie_host_init(struct pcie_port *pp) > +static int __init ks_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct keystone_pcie *ks_pcie = to_keystone_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pci-layerscape.c b/drivers/pci/controller/dwc/pci-layerscape.c > index 6a4f0619bb1c..879b8692f96a 100644 > --- a/drivers/pci/controller/dwc/pci-layerscape.c > +++ b/drivers/pci/controller/dwc/pci-layerscape.c > @@ -74,7 +74,7 @@ static void ls_pcie_fix_error_response(struct ls_pcie *pcie) > iowrite32(PCIE_ABSERR_SETTING, pci->dbi_base + PCIE_ABSERR); > } > > -static int ls_pcie_host_init(struct pcie_port *pp) > +static int ls_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct ls_pcie *pcie = to_ls_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pci-meson.c b/drivers/pci/controller/dwc/pci-meson.c > index f44bf347904a..c1527693bed9 100644 > --- a/drivers/pci/controller/dwc/pci-meson.c > +++ b/drivers/pci/controller/dwc/pci-meson.c > @@ -370,7 +370,7 @@ static int meson_pcie_link_up(struct dw_pcie *pci) > return 0; > } > > -static int meson_pcie_host_init(struct pcie_port *pp) > +static int meson_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct meson_pcie *mp = to_meson_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-al.c b/drivers/pci/controller/dwc/pcie-al.c > index e8afa50129a8..b8cb77c9c4bd 100644 > --- a/drivers/pci/controller/dwc/pcie-al.c > +++ b/drivers/pci/controller/dwc/pcie-al.c > @@ -217,7 +217,7 @@ static inline void al_pcie_target_bus_set(struct al_pcie *pcie, > static void __iomem *al_pcie_conf_addr_map_bus(struct pci_bus *bus, > unsigned int devfn, int where) > { > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct al_pcie *pcie = to_al_pcie(to_dw_pcie_from_pp(pp)); > unsigned int busnr = bus->number; > struct al_pcie_target_bus_cfg *target_bus_cfg = &pcie->target_bus_cfg; > @@ -245,7 +245,7 @@ static struct pci_ops al_child_pci_ops = { > static void al_pcie_config_prepare(struct al_pcie *pcie) > { > struct al_pcie_target_bus_cfg *target_bus_cfg; > - struct pcie_port *pp = &pcie->pci->pp; > + struct dw_pcie_rp *pp = &pcie->pci->pp; > unsigned int ecam_bus_mask; > u32 cfg_control_offset; > u8 subordinate_bus; > @@ -289,7 +289,7 @@ static void al_pcie_config_prepare(struct al_pcie *pcie) > al_pcie_controller_writel(pcie, cfg_control_offset, reg); > } > > -static int al_pcie_host_init(struct pcie_port *pp) > +static int al_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct al_pcie *pcie = to_al_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-armada8k.c b/drivers/pci/controller/dwc/pcie-armada8k.c > index 4e2552dcf982..8b113d3f3095 100644 > --- a/drivers/pci/controller/dwc/pcie-armada8k.c > +++ b/drivers/pci/controller/dwc/pcie-armada8k.c > @@ -166,7 +166,7 @@ static int armada8k_pcie_start_link(struct dw_pcie *pci) > return 0; > } > > -static int armada8k_pcie_host_init(struct pcie_port *pp) > +static int armada8k_pcie_host_init(struct dw_pcie_rp *pp) > { > u32 reg; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > @@ -233,7 +233,7 @@ static int armada8k_add_pcie_port(struct armada8k_pcie *pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > int ret; > > diff --git a/drivers/pci/controller/dwc/pcie-artpec6.c b/drivers/pci/controller/dwc/pcie-artpec6.c > index 2f15441770e1..98102079e26d 100644 > --- a/drivers/pci/controller/dwc/pcie-artpec6.c > +++ b/drivers/pci/controller/dwc/pcie-artpec6.c > @@ -97,7 +97,7 @@ static void artpec6_pcie_writel(struct artpec6_pcie *artpec6_pcie, u32 offset, u > static u64 artpec6_pcie_cpu_addr_fixup(struct dw_pcie *pci, u64 pci_addr) > { > struct artpec6_pcie *artpec6_pcie = to_artpec6_pcie(pci); > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct dw_pcie_ep *ep = &pci->ep; > > switch (artpec6_pcie->mode) { > @@ -315,7 +315,7 @@ static void artpec6_pcie_deassert_core_reset(struct artpec6_pcie *artpec6_pcie) > usleep_range(100, 200); > } > > -static int artpec6_pcie_host_init(struct pcie_port *pp) > +static int artpec6_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct artpec6_pcie *artpec6_pcie = to_artpec6_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c > index 7ff2b7555b91..95256434913f 100644 > --- a/drivers/pci/controller/dwc/pcie-designware-host.c > +++ b/drivers/pci/controller/dwc/pcie-designware-host.c > @@ -53,7 +53,7 @@ static struct msi_domain_info dw_pcie_msi_domain_info = { > }; > > /* MSI int handler */ > -irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) > +irqreturn_t dw_handle_msi_irq(struct dw_pcie_rp *pp) > { > int i, pos; > unsigned long val; > @@ -88,7 +88,7 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) > static void dw_chained_msi_isr(struct irq_desc *desc) > { > struct irq_chip *chip = irq_desc_get_chip(desc); > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > > chained_irq_enter(chip, desc); > > @@ -100,7 +100,7 @@ static void dw_chained_msi_isr(struct irq_desc *desc) > > static void dw_pci_setup_msi_msg(struct irq_data *d, struct msi_msg *msg) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > u64 msi_target; > > @@ -123,7 +123,7 @@ static int dw_pci_msi_set_affinity(struct irq_data *d, > > static void dw_pci_bottom_mask(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > unsigned int res, bit, ctrl; > unsigned long flags; > @@ -142,7 +142,7 @@ static void dw_pci_bottom_mask(struct irq_data *d) > > static void dw_pci_bottom_unmask(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > unsigned int res, bit, ctrl; > unsigned long flags; > @@ -161,7 +161,7 @@ static void dw_pci_bottom_unmask(struct irq_data *d) > > static void dw_pci_bottom_ack(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > unsigned int res, bit, ctrl; > > @@ -185,7 +185,7 @@ static int dw_pcie_irq_domain_alloc(struct irq_domain *domain, > unsigned int virq, unsigned int nr_irqs, > void *args) > { > - struct pcie_port *pp = domain->host_data; > + struct dw_pcie_rp *pp = domain->host_data; > unsigned long flags; > u32 i; > int bit; > @@ -213,7 +213,7 @@ static void dw_pcie_irq_domain_free(struct irq_domain *domain, > unsigned int virq, unsigned int nr_irqs) > { > struct irq_data *d = irq_domain_get_irq_data(domain, virq); > - struct pcie_port *pp = domain->host_data; > + struct dw_pcie_rp *pp = domain->host_data; > unsigned long flags; > > raw_spin_lock_irqsave(&pp->lock, flags); > @@ -229,7 +229,7 @@ static const struct irq_domain_ops dw_pcie_msi_domain_ops = { > .free = dw_pcie_irq_domain_free, > }; > > -int dw_pcie_allocate_domains(struct pcie_port *pp) > +int dw_pcie_allocate_domains(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct fwnode_handle *fwnode = of_node_to_fwnode(pci->dev->of_node); > @@ -255,7 +255,7 @@ int dw_pcie_allocate_domains(struct pcie_port *pp) > return 0; > } > > -static void dw_pcie_free_msi(struct pcie_port *pp) > +static void dw_pcie_free_msi(struct dw_pcie_rp *pp) > { > if (pp->msi_irq) > irq_set_chained_handler_and_data(pp->msi_irq, NULL, NULL); > @@ -272,7 +272,7 @@ static void dw_pcie_free_msi(struct pcie_port *pp) > } > } > > -static void dw_pcie_msi_init(struct pcie_port *pp) > +static void dw_pcie_msi_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > u64 msi_target = (u64)pp->msi_data; > @@ -285,7 +285,7 @@ static void dw_pcie_msi_init(struct pcie_port *pp) > dw_pcie_writel_dbi(pci, PCIE_MSI_ADDR_HI, upper_32_bits(msi_target)); > } > > -int dw_pcie_host_init(struct pcie_port *pp) > +int dw_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct device *dev = pci->dev; > @@ -436,7 +436,7 @@ int dw_pcie_host_init(struct pcie_port *pp) > } > EXPORT_SYMBOL_GPL(dw_pcie_host_init); > > -void dw_pcie_host_deinit(struct pcie_port *pp) > +void dw_pcie_host_deinit(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > @@ -455,7 +455,7 @@ static void __iomem *dw_pcie_other_conf_map_bus(struct pci_bus *bus, > { > int type; > u32 busdev; > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > /* > @@ -487,7 +487,7 @@ static int dw_pcie_rd_other_conf(struct pci_bus *bus, unsigned int devfn, > int where, int size, u32 *val) > { > int ret; > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > ret = pci_generic_config_read(bus, devfn, where, size, val); > @@ -503,7 +503,7 @@ static int dw_pcie_wr_other_conf(struct pci_bus *bus, unsigned int devfn, > int where, int size, u32 val) > { > int ret; > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > ret = pci_generic_config_write(bus, devfn, where, size, val); > @@ -523,7 +523,7 @@ static struct pci_ops dw_child_pcie_ops = { > > void __iomem *dw_pcie_own_conf_map_bus(struct pci_bus *bus, unsigned int devfn, int where) > { > - struct pcie_port *pp = bus->sysdata; > + struct dw_pcie_rp *pp = bus->sysdata; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > > if (PCI_SLOT(devfn) > 0) > @@ -539,7 +539,7 @@ static struct pci_ops dw_pcie_ops = { > .write = pci_generic_config_write, > }; > > -void dw_pcie_setup_rc(struct pcie_port *pp) > +void dw_pcie_setup_rc(struct dw_pcie_rp *pp) > { > u32 val, ctrl, num_ctrls; > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > diff --git a/drivers/pci/controller/dwc/pcie-designware-plat.c b/drivers/pci/controller/dwc/pcie-designware-plat.c > index abf1afac6064..97de6ad7f9db 100644 > --- a/drivers/pci/controller/dwc/pcie-designware-plat.c > +++ b/drivers/pci/controller/dwc/pcie-designware-plat.c > @@ -87,7 +87,7 @@ static int dw_plat_add_pcie_port(struct dw_plat_pcie *dw_plat_pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = dw_plat_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > int ret; > > diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h > index 13bffa3eaed6..32df3ebccf19 100644 > --- a/drivers/pci/controller/dwc/pcie-designware.h > +++ b/drivers/pci/controller/dwc/pcie-designware.h > @@ -155,8 +155,8 @@ > #define MAX_IATU_IN 256 > #define MAX_IATU_OUT 256 > > -struct pcie_port; > struct dw_pcie; > +struct dw_pcie_rp; > struct dw_pcie_ep; > > enum dw_pcie_region_type { > @@ -173,11 +173,11 @@ enum dw_pcie_device_mode { > }; > > struct dw_pcie_host_ops { > - int (*host_init)(struct pcie_port *pp); > - int (*msi_host_init)(struct pcie_port *pp); > + int (*host_init)(struct dw_pcie_rp *pp); > + int (*msi_host_init)(struct dw_pcie_rp *pp); > }; > > -struct pcie_port { > +struct dw_pcie_rp { > bool has_msi_ctrl:1; > bool cfg0_io_shared:1; > u64 cfg0_base; > @@ -267,7 +267,7 @@ struct dw_pcie { > size_t atu_size; > u32 num_ib_windows; > u32 num_ob_windows; > - struct pcie_port pp; > + struct dw_pcie_rp pp; > struct dw_pcie_ep ep; > const struct dw_pcie_ops *ops; > unsigned int version; > @@ -380,33 +380,33 @@ static inline void dw_pcie_stop_link(struct dw_pcie *pci) > } > > #ifdef CONFIG_PCIE_DW_HOST > -irqreturn_t dw_handle_msi_irq(struct pcie_port *pp); > -void dw_pcie_setup_rc(struct pcie_port *pp); > -int dw_pcie_host_init(struct pcie_port *pp); > -void dw_pcie_host_deinit(struct pcie_port *pp); > -int dw_pcie_allocate_domains(struct pcie_port *pp); > +irqreturn_t dw_handle_msi_irq(struct dw_pcie_rp *pp); > +void dw_pcie_setup_rc(struct dw_pcie_rp *pp); > +int dw_pcie_host_init(struct dw_pcie_rp *pp); > +void dw_pcie_host_deinit(struct dw_pcie_rp *pp); > +int dw_pcie_allocate_domains(struct dw_pcie_rp *pp); > void __iomem *dw_pcie_own_conf_map_bus(struct pci_bus *bus, unsigned int devfn, > int where); > #else > -static inline irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) > +static inline irqreturn_t dw_handle_msi_irq(struct dw_pcie_rp *pp) > { > return IRQ_NONE; > } > > -static inline void dw_pcie_setup_rc(struct pcie_port *pp) > +static inline void dw_pcie_setup_rc(struct dw_pcie_rp *pp) > { > } > > -static inline int dw_pcie_host_init(struct pcie_port *pp) > +static inline int dw_pcie_host_init(struct dw_pcie_rp *pp) > { > return 0; > } > > -static inline void dw_pcie_host_deinit(struct pcie_port *pp) > +static inline void dw_pcie_host_deinit(struct dw_pcie_rp *pp) > { > } > > -static inline int dw_pcie_allocate_domains(struct pcie_port *pp) > +static inline int dw_pcie_allocate_domains(struct dw_pcie_rp *pp) > { > return 0; > } > diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > index 8c5bb9d7cc36..c1e7653e508e 100644 > --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c > +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c > @@ -186,7 +186,7 @@ static int rockchip_pcie_start_link(struct dw_pcie *pci) > return 0; > } > > -static int rockchip_pcie_host_init(struct pcie_port *pp) > +static int rockchip_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct rockchip_pcie *rockchip = to_rockchip_pcie(pci); > @@ -288,7 +288,7 @@ static int rockchip_pcie_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct rockchip_pcie *rockchip; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > int ret; > > rockchip = devm_kzalloc(dev, sizeof(*rockchip), GFP_KERNEL); > diff --git a/drivers/pci/controller/dwc/pcie-fu740.c b/drivers/pci/controller/dwc/pcie-fu740.c > index 02cc70d8cc06..da059f1c9e92 100644 > --- a/drivers/pci/controller/dwc/pcie-fu740.c > +++ b/drivers/pci/controller/dwc/pcie-fu740.c > @@ -236,7 +236,7 @@ static int fu740_pcie_start_link(struct dw_pcie *pci) > return ret; > } > > -static int fu740_pcie_host_init(struct pcie_port *pp) > +static int fu740_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct fu740_pcie *afp = to_fu740_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-histb.c b/drivers/pci/controller/dwc/pcie-histb.c > index 410555dccb6d..e2b80f10030d 100644 > --- a/drivers/pci/controller/dwc/pcie-histb.c > +++ b/drivers/pci/controller/dwc/pcie-histb.c > @@ -74,7 +74,7 @@ static void histb_pcie_writel(struct histb_pcie *histb_pcie, u32 reg, u32 val) > writel(val, histb_pcie->ctrl + reg); > } > > -static void histb_pcie_dbi_w_mode(struct pcie_port *pp, bool enable) > +static void histb_pcie_dbi_w_mode(struct dw_pcie_rp *pp, bool enable) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct histb_pcie *hipcie = to_histb_pcie(pci); > @@ -88,7 +88,7 @@ static void histb_pcie_dbi_w_mode(struct pcie_port *pp, bool enable) > histb_pcie_writel(hipcie, PCIE_SYS_CTRL0, val); > } > > -static void histb_pcie_dbi_r_mode(struct pcie_port *pp, bool enable) > +static void histb_pcie_dbi_r_mode(struct dw_pcie_rp *pp, bool enable) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct histb_pcie *hipcie = to_histb_pcie(pci); > @@ -180,7 +180,7 @@ static int histb_pcie_start_link(struct dw_pcie *pci) > return 0; > } > > -static int histb_pcie_host_init(struct pcie_port *pp) > +static int histb_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct histb_pcie *hipcie = to_histb_pcie(pci); > @@ -219,7 +219,7 @@ static void histb_pcie_host_disable(struct histb_pcie *hipcie) > regulator_disable(hipcie->vpcie); > } > > -static int histb_pcie_host_enable(struct pcie_port *pp) > +static int histb_pcie_host_enable(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct histb_pcie *hipcie = to_histb_pcie(pci); > @@ -297,7 +297,7 @@ static int histb_pcie_probe(struct platform_device *pdev) > { > struct histb_pcie *hipcie; > struct dw_pcie *pci; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > struct device_node *np = pdev->dev.of_node; > struct device *dev = &pdev->dev; > enum of_gpio_flags of_flags; > diff --git a/drivers/pci/controller/dwc/pcie-intel-gw.c b/drivers/pci/controller/dwc/pcie-intel-gw.c > index 5ba144924ff8..07bc54886d71 100644 > --- a/drivers/pci/controller/dwc/pcie-intel-gw.c > +++ b/drivers/pci/controller/dwc/pcie-intel-gw.c > @@ -343,7 +343,7 @@ static void __intel_pcie_remove(struct intel_pcie *pcie) > static int intel_pcie_remove(struct platform_device *pdev) > { > struct intel_pcie *pcie = platform_get_drvdata(pdev); > - struct pcie_port *pp = &pcie->pci.pp; > + struct dw_pcie_rp *pp = &pcie->pci.pp; > > dw_pcie_host_deinit(pp); > __intel_pcie_remove(pcie); > @@ -373,7 +373,7 @@ static int __maybe_unused intel_pcie_resume_noirq(struct device *dev) > return intel_pcie_host_setup(pcie); > } > > -static int intel_pcie_rc_init(struct pcie_port *pp) > +static int intel_pcie_rc_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct intel_pcie *pcie = dev_get_drvdata(pci->dev); > @@ -403,7 +403,7 @@ static int intel_pcie_probe(struct platform_device *pdev) > const struct intel_pcie_soc *data; > struct device *dev = &pdev->dev; > struct intel_pcie *pcie; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > struct dw_pcie *pci; > int ret; > > diff --git a/drivers/pci/controller/dwc/pcie-keembay.c b/drivers/pci/controller/dwc/pcie-keembay.c > index 1ac29a6eef22..58f3caf75cff 100644 > --- a/drivers/pci/controller/dwc/pcie-keembay.c > +++ b/drivers/pci/controller/dwc/pcie-keembay.c > @@ -231,7 +231,7 @@ static void keembay_pcie_msi_irq_handler(struct irq_desc *desc) > struct keembay_pcie *pcie = irq_desc_get_handler_data(desc); > struct irq_chip *chip = irq_desc_get_chip(desc); > u32 val, mask, status; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > > /* > * Keem Bay PCIe Controller provides an additional IP logic on top of > @@ -332,7 +332,7 @@ static int keembay_pcie_add_pcie_port(struct keembay_pcie *pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = &pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > u32 val; > int ret; > diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c > index a52cad269f85..7f67aad71df4 100644 > --- a/drivers/pci/controller/dwc/pcie-kirin.c > +++ b/drivers/pci/controller/dwc/pcie-kirin.c > @@ -620,7 +620,7 @@ static int kirin_pcie_start_link(struct dw_pcie *pci) > return 0; > } > > -static int kirin_pcie_host_init(struct pcie_port *pp) > +static int kirin_pcie_host_init(struct dw_pcie_rp *pp) > { > pp->bridge->ops = &kirin_pci_ops; > > diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c > index 2ea13750b492..a9b2322624d5 100644 > --- a/drivers/pci/controller/dwc/pcie-qcom.c > +++ b/drivers/pci/controller/dwc/pcie-qcom.c > @@ -1381,7 +1381,7 @@ static int qcom_pcie_config_sid_sm8250(struct qcom_pcie *pcie) > return 0; > } > > -static int qcom_pcie_host_init(struct pcie_port *pp) > +static int qcom_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct qcom_pcie *pcie = to_qcom_pcie(pci); > @@ -1564,7 +1564,7 @@ static const struct dw_pcie_ops dw_pcie_ops = { > static int qcom_pcie_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > struct dw_pcie *pci; > struct qcom_pcie *pcie; > const struct qcom_pcie_cfg *pcie_cfg; > diff --git a/drivers/pci/controller/dwc/pcie-spear13xx.c b/drivers/pci/controller/dwc/pcie-spear13xx.c > index 1569e82b5568..7fd698da144e 100644 > --- a/drivers/pci/controller/dwc/pcie-spear13xx.c > +++ b/drivers/pci/controller/dwc/pcie-spear13xx.c > @@ -85,7 +85,7 @@ static irqreturn_t spear13xx_pcie_irq_handler(int irq, void *arg) > struct spear13xx_pcie *spear13xx_pcie = arg; > struct pcie_app_reg __iomem *app_reg = spear13xx_pcie->app_base; > struct dw_pcie *pci = spear13xx_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > unsigned int status; > > status = readl(&app_reg->int_sts); > @@ -121,7 +121,7 @@ static int spear13xx_pcie_link_up(struct dw_pcie *pci) > return 0; > } > > -static int spear13xx_pcie_host_init(struct pcie_port *pp) > +static int spear13xx_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct spear13xx_pcie *spear13xx_pcie = to_spear13xx_pcie(pci); > @@ -155,7 +155,7 @@ static int spear13xx_add_pcie_port(struct spear13xx_pcie *spear13xx_pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = spear13xx_pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > struct device *dev = &pdev->dev; > int ret; > > diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c > index cc2678490162..65135f5c4a4a 100644 > --- a/drivers/pci/controller/dwc/pcie-tegra194.c > +++ b/drivers/pci/controller/dwc/pcie-tegra194.c > @@ -311,7 +311,7 @@ struct tegra_pcie_soc { > enum dw_pcie_device_mode mode; > }; > > -static void apply_bad_link_workaround(struct pcie_port *pp) > +static void apply_bad_link_workaround(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -349,7 +349,7 @@ static irqreturn_t tegra_pcie_rp_irq_handler(int irq, void *arg) > { > struct tegra194_pcie *pcie = arg; > struct dw_pcie *pci = &pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > u32 val, tmp; > u16 val_w; > > @@ -698,7 +698,7 @@ static inline void init_host_aspm(struct tegra194_pcie *pcie) { return; } > static inline void init_debugfs(struct tegra194_pcie *pcie) { return; } > #endif > > -static void tegra_pcie_enable_system_interrupts(struct pcie_port *pp) > +static void tegra_pcie_enable_system_interrupts(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -736,7 +736,7 @@ static void tegra_pcie_enable_system_interrupts(struct pcie_port *pp) > val_w); > } > > -static void tegra_pcie_enable_legacy_interrupts(struct pcie_port *pp) > +static void tegra_pcie_enable_legacy_interrupts(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -757,7 +757,7 @@ static void tegra_pcie_enable_legacy_interrupts(struct pcie_port *pp) > appl_writel(pcie, val, APPL_INTR_EN_L1_8_0); > } > > -static void tegra_pcie_enable_msi_interrupts(struct pcie_port *pp) > +static void tegra_pcie_enable_msi_interrupts(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -770,7 +770,7 @@ static void tegra_pcie_enable_msi_interrupts(struct pcie_port *pp) > appl_writel(pcie, val, APPL_INTR_EN_L0_0); > } > > -static void tegra_pcie_enable_interrupts(struct pcie_port *pp) > +static void tegra_pcie_enable_interrupts(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -851,7 +851,7 @@ static void config_gen3_gen4_eq_presets(struct tegra194_pcie *pcie) > dw_pcie_writel_dbi(pci, GEN3_RELATED_OFF, val); > } > > -static int tegra194_pcie_host_init(struct pcie_port *pp) > +static int tegra194_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > @@ -916,7 +916,7 @@ static int tegra194_pcie_start_link(struct dw_pcie *pci) > { > u32 val, offset, speed, tmp; > struct tegra194_pcie *pcie = to_tegra_pcie(pci); > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > bool retry = true; > > if (pcie->mode == DW_PCIE_EP_TYPE) { > @@ -1212,7 +1212,7 @@ static int tegra_pcie_bpmp_set_pll_state(struct tegra194_pcie *pcie, > > static void tegra_pcie_downstream_dev_to_D0(struct tegra194_pcie *pcie) > { > - struct pcie_port *pp = &pcie->pci.pp; > + struct dw_pcie_rp *pp = &pcie->pci.pp; > struct pci_bus *child, *root_bus = NULL; > struct pci_dev *pdev; > > @@ -1443,7 +1443,7 @@ static void tegra_pcie_unconfig_controller(struct tegra194_pcie *pcie) > static int tegra_pcie_init_controller(struct tegra194_pcie *pcie) > { > struct dw_pcie *pci = &pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > int ret; > > ret = tegra_pcie_config_controller(pcie, false); > @@ -1961,7 +1961,7 @@ static int tegra194_pcie_probe(struct platform_device *pdev) > struct device *dev = &pdev->dev; > struct resource *atu_dma_res; > struct tegra194_pcie *pcie; > - struct pcie_port *pp; > + struct dw_pcie_rp *pp; > struct dw_pcie *pci; > struct phy **phys; > char *name; > diff --git a/drivers/pci/controller/dwc/pcie-uniphier.c b/drivers/pci/controller/dwc/pcie-uniphier.c > index b45ac3754242..48c3eba817b4 100644 > --- a/drivers/pci/controller/dwc/pcie-uniphier.c > +++ b/drivers/pci/controller/dwc/pcie-uniphier.c > @@ -171,7 +171,7 @@ static void uniphier_pcie_irq_enable(struct uniphier_pcie *pcie) > > static void uniphier_pcie_irq_mask(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > unsigned long flags; > @@ -188,7 +188,7 @@ static void uniphier_pcie_irq_mask(struct irq_data *d) > > static void uniphier_pcie_irq_unmask(struct irq_data *d) > { > - struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + struct dw_pcie_rp *pp = irq_data_get_irq_chip_data(d); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > unsigned long flags; > @@ -225,7 +225,7 @@ static const struct irq_domain_ops uniphier_intx_domain_ops = { > > static void uniphier_pcie_irq_handler(struct irq_desc *desc) > { > - struct pcie_port *pp = irq_desc_get_handler_data(desc); > + struct dw_pcie_rp *pp = irq_desc_get_handler_data(desc); > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > struct irq_chip *chip = irq_desc_get_chip(desc); > @@ -258,7 +258,7 @@ static void uniphier_pcie_irq_handler(struct irq_desc *desc) > chained_irq_exit(chip, desc); > } > > -static int uniphier_pcie_config_legacy_irq(struct pcie_port *pp) > +static int uniphier_pcie_config_legacy_irq(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > @@ -295,7 +295,7 @@ static int uniphier_pcie_config_legacy_irq(struct pcie_port *pp) > return ret; > } > > -static int uniphier_pcie_host_init(struct pcie_port *pp) > +static int uniphier_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct uniphier_pcie *pcie = to_uniphier_pcie(pci); > diff --git a/drivers/pci/controller/dwc/pcie-visconti.c b/drivers/pci/controller/dwc/pcie-visconti.c > index 50f80f07e4db..71026fefa366 100644 > --- a/drivers/pci/controller/dwc/pcie-visconti.c > +++ b/drivers/pci/controller/dwc/pcie-visconti.c > @@ -178,7 +178,7 @@ static void visconti_pcie_stop_link(struct dw_pcie *pci) > */ > static u64 visconti_pcie_cpu_addr_fixup(struct dw_pcie *pci, u64 cpu_addr) > { > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > > return cpu_addr & ~pp->io_base; > } > @@ -190,7 +190,7 @@ static const struct dw_pcie_ops dw_pcie_ops = { > .stop_link = visconti_pcie_stop_link, > }; > > -static int visconti_pcie_host_init(struct pcie_port *pp) > +static int visconti_pcie_host_init(struct dw_pcie_rp *pp) > { > struct dw_pcie *pci = to_dw_pcie_from_pp(pp); > struct visconti_pcie *pcie = dev_get_drvdata(pci->dev); > @@ -278,7 +278,7 @@ static int visconti_add_pcie_port(struct visconti_pcie *pcie, > struct platform_device *pdev) > { > struct dw_pcie *pci = &pcie->pci; > - struct pcie_port *pp = &pci->pp; > + struct dw_pcie_rp *pp = &pci->pp; > > pp->irq = platform_get_irq_byname(pdev, "intr"); > if (pp->irq < 0) > -- > 2.35.1 > -- மணிவண்ணன் சதாசிவம்