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 X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DE3EBC10F14 for ; Thu, 3 Oct 2019 15:37:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9E79D21783 for ; Thu, 3 Oct 2019 15:37:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="aPQFIEAO" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730309AbfJCPh2 (ORCPT ); Thu, 3 Oct 2019 11:37:28 -0400 Received: from mail-qk1-f195.google.com ([209.85.222.195]:45828 "EHLO mail-qk1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728345AbfJCPh2 (ORCPT ); Thu, 3 Oct 2019 11:37:28 -0400 Received: by mail-qk1-f195.google.com with SMTP id z67so2760891qkb.12 for ; Thu, 03 Oct 2019 08:37:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=gZFcoJD5h7pLVZwS4bu88KYjedPUR1Ymm2WLx75z8WU=; b=aPQFIEAO+y2jMTl8WnBSEMai7mJBphrA/yWDs3A7Zr+wWI3W2LjF/Mhzfr0/OvoNwx EFSQ5z6ZOqGRc3+ByyLU/tG2etAyO8akUr+L+QUvYdvLvLkWn+dVMowBeRZ4dFo27Zna nTVALah4L59jouOoOKKVc8Mob9hoPPBKmiBNTBiYn4GWq/yO3oalTfo2EIoItLKjxzqu 0sNaFBRKZtCD2Ekg217uUcebIwFa6uZFWgrrcHIIHUZ85JOrLxyeBkVo4KW2l4XdLj1c vrZR2w3olCzfKjNlwls3T/0icphAx6wWnol6Rsq5cFeDc9Kg5Ntz25aMZ3BH1YwDwcjM hppA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=gZFcoJD5h7pLVZwS4bu88KYjedPUR1Ymm2WLx75z8WU=; b=e3jTngSlXVmcAI6Uf6/vBJo9IqO3m8Srnmfa2oJTrht2gjjSMlCSyUeS5BZsUaeguE 4tULMjzbjTXw7iIhstjwwF7ThgcXDk99Gn6VdhYCjHdEMnar7E8rnJ+sOf9TmnpVMjgl oP7S6TjnoBroDQEQ6l5jJdinHeY5o3XUGOBr7JClIZQbRA82PWRH4R3ud/wCpGMdHEr6 R53BqpQr//kLJF/8H5kLQ835ra0DhO50Jjx/rXAwzooy1iATaz7J6eFtB/qxw5nUU9t7 AsIVPUIvBIrNhCCIuypiMbOvLxDo08/4L97dS9AfJSY/+khgIge+9eaaynL0R8vhtnsx zrjw== X-Gm-Message-State: APjAAAV4VFEkebSZDwdLRlr8P8lCgPdOXpQAOzAfDdK6Dj9LqBGCUN6v /GkEvCA/QMLfz5k2gl2yTc7rtor9IFMBk+ytr9dfOvgp X-Google-Smtp-Source: APXvYqwiB2DWrAYfbXnScIu7M9vzmf9DIqiWyAxKa/OaA6E9HbmFOxaATJYtY/iR6NE3MSLAYbobwi2eujPod/J6FVc= X-Received: by 2002:a37:7086:: with SMTP id l128mr4793562qkc.433.1570117047075; Thu, 03 Oct 2019 08:37:27 -0700 (PDT) MIME-Version: 1.0 References: <20190909135205.10277-1-benjamin.gaignard@st.com> <20190909135205.10277-2-benjamin.gaignard@st.com> <20191003142738.GM1208@intel.com> <20191003150526.GN1208@intel.com> In-Reply-To: <20191003150526.GN1208@intel.com> From: Benjamin Gaignard Date: Thu, 3 Oct 2019 17:37:15 +0200 Message-ID: Subject: Re: [PATCH] drm: atomic helper: fix W=1 warnings To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: Benjamin Gaignard , David Airlie , Daniel Vetter , Linux Kernel Mailing List , ML dri-devel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le jeu. 3 oct. 2019 =C3=A0 17:05, Ville Syrj=C3=A4l=C3=A4 a =C3=A9crit : > > On Thu, Oct 03, 2019 at 04:46:54PM +0200, Benjamin Gaignard wrote: > > Le jeu. 3 oct. 2019 =C3=A0 16:27, Ville Syrj=C3=A4l=C3=A4 > > a =C3=A9crit : > > > > > > On Mon, Sep 09, 2019 at 03:52:05PM +0200, Benjamin Gaignard wrote: > > > > Fix warnings with W=3D1. > > > > Few for_each macro set variables that are never used later. > > > > Prevent warning by marking these variables as __maybe_unused. > > > > > > > > Signed-off-by: Benjamin Gaignard > > > > --- > > > > drivers/gpu/drm/drm_atomic_helper.c | 36 ++++++++++++++++++-------= ----------- > > > > 1 file changed, 18 insertions(+), 18 deletions(-) > > > > > > > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/= drm_atomic_helper.c > > > > index aa16ea17ff9b..b69d17b0b9bd 100644 > > > > --- a/drivers/gpu/drm/drm_atomic_helper.c > > > > +++ b/drivers/gpu/drm/drm_atomic_helper.c > > > > @@ -262,7 +262,7 @@ steal_encoder(struct drm_atomic_state *state, > > > > struct drm_encoder *encoder) > > > > { > > > > struct drm_crtc_state *crtc_state; > > > > - struct drm_connector *connector; > > > > + struct drm_connector __maybe_unused *connector; > > > > > > Rather ugly. IMO would be nicer if we could hide something inside > > > the iterator macros to suppress the warning. > > > > Ok but how ? > > connector is assigned in the macros but not used later and we can't > > set "__maybe_unused" > > in the macro. > > Does another keyword exist for that ? > > Stick a (void)(connector) into the macro? That could work but it will look strange inside the macro. > > Another (arguably cleaner) idea would be to remove the connector/crtc/pla= ne > argument from the iterators entirely since it's redundant, and instead ju= st > extract it from the appropriate new/old state as needed. > > We could then also add a for_each_connector_in_state()/etc. which omit > s the state arguments and just has the connector argument, for cases wher= e > you don't care about the states when iterating. That may lead to get a macro for each possible combination of used variable= s. > > > > > > > > > > struct drm_connector_state *old_connector_state, *new_connect= or_state; > > > > int i; > > > > > > > > @@ -412,7 +412,7 @@ mode_fixup(struct drm_atomic_state *state) > > > > { > > > > struct drm_crtc *crtc; > > > > struct drm_crtc_state *new_crtc_state; > > > > - struct drm_connector *connector; > > > > + struct drm_connector __maybe_unused *connector; > > > > struct drm_connector_state *new_conn_state; > > > > int i; > > > > int ret; > > > > @@ -608,7 +608,7 @@ drm_atomic_helper_check_modeset(struct drm_devi= ce *dev, > > > > { > > > > struct drm_crtc *crtc; > > > > struct drm_crtc_state *old_crtc_state, *new_crtc_state; > > > > - struct drm_connector *connector; > > > > + struct drm_connector __maybe_unused *connector; > > > > struct drm_connector_state *old_connector_state, *new_connect= or_state; > > > > int i, ret; > > > > unsigned connectors_mask =3D 0; > > > > @@ -984,7 +984,7 @@ crtc_needs_disable(struct drm_crtc_state *old_s= tate, > > > > static void > > > > disable_outputs(struct drm_device *dev, struct drm_atomic_state *o= ld_state) > > > > { > > > > - struct drm_connector *connector; > > > > + struct drm_connector __maybe_unused *connector; > > > > struct drm_connector_state *old_conn_state, *new_conn_state; > > > > struct drm_crtc *crtc; > > > > struct drm_crtc_state *old_crtc_state, *new_crtc_state; > > > > @@ -1173,7 +1173,7 @@ crtc_set_mode(struct drm_device *dev, struct = drm_atomic_state *old_state) > > > > { > > > > struct drm_crtc *crtc; > > > > struct drm_crtc_state *new_crtc_state; > > > > - struct drm_connector *connector; > > > > + struct drm_connector __maybe_unused *connector; > > > > struct drm_connector_state *new_conn_state; > > > > int i; > > > > > > > > @@ -1294,7 +1294,7 @@ void drm_atomic_helper_commit_modeset_enables= (struct drm_device *dev, > > > > struct drm_crtc *crtc; > > > > struct drm_crtc_state *old_crtc_state; > > > > struct drm_crtc_state *new_crtc_state; > > > > - struct drm_connector *connector; > > > > + struct drm_connector __maybe_unused *connector; > > > > struct drm_connector_state *new_conn_state; > > > > int i; > > > > > > > > @@ -1384,7 +1384,7 @@ int drm_atomic_helper_wait_for_fences(struct = drm_device *dev, > > > > struct drm_atomic_state *state, > > > > bool pre_swap) > > > > { > > > > - struct drm_plane *plane; > > > > + struct drm_plane __maybe_unused *plane; > > > > struct drm_plane_state *new_plane_state; > > > > int i, ret; > > > > > > > > @@ -1431,7 +1431,7 @@ drm_atomic_helper_wait_for_vblanks(struct drm= _device *dev, > > > > struct drm_atomic_state *old_state) > > > > { > > > > struct drm_crtc *crtc; > > > > - struct drm_crtc_state *old_crtc_state, *new_crtc_state; > > > > + struct drm_crtc_state __maybe_unused *old_crtc_state, *new_cr= tc_state; > > > > int i, ret; > > > > unsigned crtc_mask =3D 0; > > > > > > > > @@ -1621,7 +1621,7 @@ static void commit_work(struct work_struct *w= ork) > > > > int drm_atomic_helper_async_check(struct drm_device *dev, > > > > struct drm_atomic_state *state) > > > > { > > > > - struct drm_crtc *crtc; > > > > + struct drm_crtc __maybe_unused *crtc; > > > > struct drm_crtc_state *crtc_state; > > > > struct drm_plane *plane =3D NULL; > > > > struct drm_plane_state *old_plane_state =3D NULL; > > > > @@ -1982,9 +1982,9 @@ int drm_atomic_helper_setup_commit(struct drm= _atomic_state *state, > > > > { > > > > struct drm_crtc *crtc; > > > > struct drm_crtc_state *old_crtc_state, *new_crtc_state; > > > > - struct drm_connector *conn; > > > > + struct drm_connector __maybe_unused *conn; > > > > struct drm_connector_state *old_conn_state, *new_conn_state; > > > > - struct drm_plane *plane; > > > > + struct drm_plane __maybe_unused *plane; > > > > struct drm_plane_state *old_plane_state, *new_plane_state; > > > > struct drm_crtc_commit *commit; > > > > int i, ret; > > > > @@ -2214,7 +2214,7 @@ EXPORT_SYMBOL(drm_atomic_helper_fake_vblank); > > > > */ > > > > void drm_atomic_helper_commit_hw_done(struct drm_atomic_state *old= _state) > > > > { > > > > - struct drm_crtc *crtc; > > > > + struct drm_crtc __maybe_unused *crtc; > > > > struct drm_crtc_state *old_crtc_state, *new_crtc_state; > > > > struct drm_crtc_commit *commit; > > > > int i; > > > > @@ -2300,7 +2300,7 @@ EXPORT_SYMBOL(drm_atomic_helper_commit_cleanu= p_done); > > > > int drm_atomic_helper_prepare_planes(struct drm_device *dev, > > > > struct drm_atomic_state *state) > > > > { > > > > - struct drm_connector *connector; > > > > + struct drm_connector __maybe_unused *connector; > > > > struct drm_connector_state *new_conn_state; > > > > struct drm_plane *plane; > > > > struct drm_plane_state *new_plane_state; > > > > @@ -2953,9 +2953,9 @@ int drm_atomic_helper_disable_all(struct drm_= device *dev, > > > > { > > > > struct drm_atomic_state *state; > > > > struct drm_connector_state *conn_state; > > > > - struct drm_connector *conn; > > > > + struct drm_connector __maybe_unused *conn; > > > > struct drm_plane_state *plane_state; > > > > - struct drm_plane *plane; > > > > + struct drm_plane __maybe_unused *plane; > > > > struct drm_crtc_state *crtc_state; > > > > struct drm_crtc *crtc; > > > > int ret, i; > > > > @@ -3199,11 +3199,11 @@ int drm_atomic_helper_commit_duplicated_sta= te(struct drm_atomic_state *state, > > > > { > > > > int i, ret; > > > > struct drm_plane *plane; > > > > - struct drm_plane_state *new_plane_state; > > > > + struct drm_plane_state __maybe_unused *new_plane_state; > > > > struct drm_connector *connector; > > > > - struct drm_connector_state *new_conn_state; > > > > + struct drm_connector_state __maybe_unused *new_conn_state; > > > > struct drm_crtc *crtc; > > > > - struct drm_crtc_state *new_crtc_state; > > > > + struct drm_crtc_state __maybe_unused *new_crtc_state; > > > > > > > > state->acquire_ctx =3D ctx; > > > > > > > > -- > > > > 2.15.0 > > > > > > > > _______________________________________________ > > > > dri-devel mailing list > > > > dri-devel@lists.freedesktop.org > > > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > > > > > -- > > > Ville Syrj=C3=A4l=C3=A4 > > > Intel > > -- > Ville Syrj=C3=A4l=C3=A4 > Intel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Gaignard Subject: Re: [PATCH] drm: atomic helper: fix W=1 warnings Date: Thu, 3 Oct 2019 17:37:15 +0200 Message-ID: References: <20190909135205.10277-1-benjamin.gaignard@st.com> <20190909135205.10277-2-benjamin.gaignard@st.com> <20191003142738.GM1208@intel.com> <20191003150526.GN1208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk1-x743.google.com (mail-qk1-x743.google.com [IPv6:2607:f8b0:4864:20::743]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BFB76EA1D for ; Thu, 3 Oct 2019 15:37:28 +0000 (UTC) Received: by mail-qk1-x743.google.com with SMTP id y189so2813067qkc.3 for ; Thu, 03 Oct 2019 08:37:28 -0700 (PDT) In-Reply-To: <20191003150526.GN1208@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: David Airlie , ML dri-devel , Benjamin Gaignard , Linux Kernel Mailing List List-Id: dri-devel@lists.freedesktop.org TGUgamV1LiAzIG9jdC4gMjAxOSDDoCAxNzowNSwgVmlsbGUgU3lyasOkbMOkCjx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4gYSDDqWNyaXQgOgo+Cj4gT24gVGh1LCBPY3QgMDMsIDIwMTkg YXQgMDQ6NDY6NTRQTSArMDIwMCwgQmVuamFtaW4gR2FpZ25hcmQgd3JvdGU6Cj4gPiBMZSBqZXUu IDMgb2N0LiAyMDE5IMOgIDE2OjI3LCBWaWxsZSBTeXJqw6Rsw6QKPiA+IDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4gYSDDqWNyaXQgOgo+ID4gPgo+ID4gPiBPbiBNb24sIFNlcCAwOSwg MjAxOSBhdCAwMzo1MjowNVBNICswMjAwLCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPiA+ID4g PiBGaXggd2FybmluZ3Mgd2l0aCBXPTEuCj4gPiA+ID4gRmV3IGZvcl9lYWNoIG1hY3JvIHNldCB2 YXJpYWJsZXMgdGhhdCBhcmUgbmV2ZXIgdXNlZCBsYXRlci4KPiA+ID4gPiBQcmV2ZW50IHdhcm5p bmcgYnkgbWFya2luZyB0aGVzZSB2YXJpYWJsZXMgYXMgX19tYXliZV91bnVzZWQuCj4gPiA+ID4K PiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25h cmRAc3QuY29tPgo+ID4gPiA+IC0tLQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYyB8IDM2ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ID4g PiA+ICAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4g PiA+ID4KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4gPiA+IGluZGV4 IGFhMTZlYTE3ZmY5Yi4uYjY5ZDE3YjBiOWJkIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfaGVscGVyLmMKPiA+ID4gPiBAQCAtMjYyLDcgKzI2Miw3IEBAIHN0ZWFsX2Vu Y29kZXIoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gPiA+ICAgICAgICAgICAg IHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ID4gPiAgewo+ID4gPiA+ICAgICAgIHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiA+ID4gPiAtICAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4gPiA+ICsgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9y IF9fbWF5YmVfdW51c2VkICpjb25uZWN0b3I7Cj4gPiA+Cj4gPiA+IFJhdGhlciB1Z2x5LiBJTU8g d291bGQgYmUgbmljZXIgaWYgd2UgY291bGQgaGlkZSBzb21ldGhpbmcgaW5zaWRlCj4gPiA+IHRo ZSBpdGVyYXRvciBtYWNyb3MgdG8gc3VwcHJlc3MgdGhlIHdhcm5pbmcuCj4gPgo+ID4gT2sgYnV0 IGhvdyA/Cj4gPiBjb25uZWN0b3IgaXMgYXNzaWduZWQgaW4gdGhlIG1hY3JvcyBidXQgbm90IHVz ZWQgbGF0ZXIgYW5kIHdlIGNhbid0Cj4gPiBzZXQgIl9fbWF5YmVfdW51c2VkIgo+ID4gaW4gdGhl IG1hY3JvLgo+ID4gRG9lcyBhbm90aGVyIGtleXdvcmQgZXhpc3QgZm9yIHRoYXQgPwo+Cj4gU3Rp Y2sgYSAodm9pZCkoY29ubmVjdG9yKSBpbnRvIHRoZSBtYWNybz8KClRoYXQgY291bGQgd29yayBi dXQgaXQgd2lsbCBsb29rIHN0cmFuZ2UgaW5zaWRlIHRoZSBtYWNyby4KCj4KPiBBbm90aGVyIChh cmd1YWJseSBjbGVhbmVyKSBpZGVhIHdvdWxkIGJlIHRvIHJlbW92ZSB0aGUgY29ubmVjdG9yL2Ny dGMvcGxhbmUKPiBhcmd1bWVudCBmcm9tIHRoZSBpdGVyYXRvcnMgZW50aXJlbHkgc2luY2UgaXQn cyByZWR1bmRhbnQsIGFuZCBpbnN0ZWFkIGp1c3QKPiBleHRyYWN0IGl0IGZyb20gdGhlIGFwcHJv cHJpYXRlIG5ldy9vbGQgc3RhdGUgYXMgbmVlZGVkLgo+Cj4gV2UgY291bGQgdGhlbiBhbHNvIGFk ZCBhIGZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZSgpL2V0Yy4gd2hpY2ggb21pdAo+IHMgdGhl IHN0YXRlIGFyZ3VtZW50cyBhbmQganVzdCBoYXMgdGhlIGNvbm5lY3RvciBhcmd1bWVudCwgZm9y IGNhc2VzIHdoZXJlCj4geW91IGRvbid0IGNhcmUgYWJvdXQgdGhlIHN0YXRlcyB3aGVuIGl0ZXJh dGluZy4KClRoYXQgbWF5IGxlYWQgdG8gZ2V0IGEgbWFjcm8gZm9yIGVhY2ggcG9zc2libGUgY29t YmluYXRpb24gb2YgdXNlZCB2YXJpYWJsZXMuCgo+Cj4gPgo+ID4gPgo+ID4gPiA+ICAgICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubmVjdG9yX3N0YXRlLCAqbmV3X2Nvbm5l Y3Rvcl9zdGF0ZTsKPiA+ID4gPiAgICAgICBpbnQgaTsKPiA+ID4gPgo+ID4gPiA+IEBAIC00MTIs NyArNDEyLDcgQEAgbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4g PiA+ID4gIHsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPiA+ID4gICAg ICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKPiA+ID4gPiAtICAgICBz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4gPiA+ICsgICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yIF9fbWF5YmVfdW51c2VkICpjb25uZWN0b3I7Cj4gPiA+ID4gICAgICAgc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOwo+ID4gPiA+ICAgICAgIGludCBp Owo+ID4gPiA+ICAgICAgIGludCByZXQ7Cj4gPiA+ID4gQEAgLTYwOCw3ICs2MDgsNyBAQCBkcm1f YXRvbWljX2hlbHBlcl9jaGVja19tb2Rlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ ID4gIHsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPiA+ID4gICAgICAg c3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRjX3N0YXRlOwo+ ID4gPiA+IC0gICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiA+ID4gKyAg ICAgc3RydWN0IGRybV9jb25uZWN0b3IgX19tYXliZV91bnVzZWQgKmNvbm5lY3RvcjsKPiA+ID4g PiAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5lY3Rvcl9zdGF0ZSwg Km5ld19jb25uZWN0b3Jfc3RhdGU7Cj4gPiA+ID4gICAgICAgaW50IGksIHJldDsKPiA+ID4gPiAg ICAgICB1bnNpZ25lZCBjb25uZWN0b3JzX21hc2sgPSAwOwo+ID4gPiA+IEBAIC05ODQsNyArOTg0 LDcgQEAgY3J0Y19uZWVkc19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX3N0YXRl LAo+ID4gPiA+ICBzdGF0aWMgdm9pZAo+ID4gPiA+ICBkaXNhYmxlX291dHB1dHMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiA+ID4g PiAgewo+ID4gPiA+IC0gICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiA+ ID4gKyAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgX19tYXliZV91bnVzZWQgKmNvbm5lY3RvcjsK PiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUs ICpuZXdfY29ubl9zdGF0ZTsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4g PiA+ID4gICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19j cnRjX3N0YXRlOwo+ID4gPiA+IEBAIC0xMTczLDcgKzExNzMsNyBAQCBjcnRjX3NldF9tb2RlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUp Cj4gPiA+ID4gIHsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPiA+ID4g ICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKPiA+ID4gPiAtICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4gPiA+ICsgICAgIHN0cnVjdCBk cm1fY29ubmVjdG9yIF9fbWF5YmVfdW51c2VkICpjb25uZWN0b3I7Cj4gPiA+ID4gICAgICAgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOwo+ID4gPiA+ICAgICAgIGlu dCBpOwo+ID4gPiA+Cj4gPiA+ID4gQEAgLTEyOTQsNyArMTI5NCw3IEBAIHZvaWQgZHJtX2F0b21p Y19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ID4gPiA+ICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ID4gPiAgICAgICBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOwo+ID4gPiA+ICAgICAgIHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Cj4gPiA+ID4gLSAgICAgc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKPiA+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBfX21h eWJlX3VudXNlZCAqY29ubmVjdG9yOwo+ID4gPiA+ICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpuZXdfY29ubl9zdGF0ZTsKPiA+ID4gPiAgICAgICBpbnQgaTsKPiA+ID4gPgo+ID4g PiA+IEBAIC0xMzg0LDcgKzEzODQsNyBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3Jf ZmVuY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcHJlX3N3YXApCj4gPiA+ ID4gIHsKPiA+ID4gPiAtICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ID4gPiArICAg ICBzdHJ1Y3QgZHJtX3BsYW5lIF9fbWF5YmVfdW51c2VkICpwbGFuZTsKPiA+ID4gPiAgICAgICBz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGU7Cj4gPiA+ID4gICAgICAgaW50 IGksIHJldDsKPiA+ID4gPgo+ID4gPiA+IEBAIC0xNDMxLDcgKzE0MzEsNyBAQCBkcm1fYXRvbWlj X2hlbHBlcl93YWl0X2Zvcl92YmxhbmtzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiA+ID4g ICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ID4gPiA+ ICB7Cj4gPiA+ID4gICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gPiA+IC0gICAgIHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0ZTsKPiA+ ID4gPiArICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgX19tYXliZV91bnVzZWQgKm9sZF9jcnRj X3N0YXRlLCAqbmV3X2NydGNfc3RhdGU7Cj4gPiA+ID4gICAgICAgaW50IGksIHJldDsKPiA+ID4g PiAgICAgICB1bnNpZ25lZCBjcnRjX21hc2sgPSAwOwo+ID4gPiA+Cj4gPiA+ID4gQEAgLTE2MjEs NyArMTYyMSw3IEBAIHN0YXRpYyB2b2lkIGNvbW1pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKPiA+ID4gPiAgaW50IGRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NoZWNrKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiA+ICB7Cj4gPiA+ID4gLSAgICAg c3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gPiA+ICsgICAgIHN0cnVjdCBkcm1fY3J0YyBfX21h eWJlX3VudXNlZCAqY3J0YzsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGU7Cj4gPiA+ID4gICAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBOVUxMOwo+ ID4gPiA+ICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSA9IE5V TEw7Cj4gPiA+ID4gQEAgLTE5ODIsOSArMTk4Miw5IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9z ZXR1cF9jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gPiA+ICB7Cj4g PiA+ID4gICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gPiA+ICAgICAgIHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0ZTsKPiA+ID4gPiAt ICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKPiA+ID4gPiArICAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3RvciBfX21heWJlX3VudXNlZCAqY29ubjsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUsICpuZXdfY29ubl9zdGF0ZTsKPiA+ID4g PiAtICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ID4gPiArICAgICBzdHJ1Y3QgZHJt X3BsYW5lIF9fbWF5YmVfdW51c2VkICpwbGFuZTsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7Cj4gPiA+ID4gICAg ICAgc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+ID4gPiA+ICAgICAgIGludCBpLCBy ZXQ7Cj4gPiA+ID4gQEAgLTIyMTQsNyArMjIxNCw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21p Y19oZWxwZXJfZmFrZV92YmxhbmspOwo+ID4gPiA+ICAgKi8KPiA+ID4gPiAgdm9pZCBkcm1fYXRv bWljX2hlbHBlcl9jb21taXRfaHdfZG9uZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0 YXRlKQo+ID4gPiA+ICB7Cj4gPiA+ID4gLSAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4g PiA+ICsgICAgIHN0cnVjdCBkcm1fY3J0YyBfX21heWJlX3VudXNlZCAqY3J0YzsKPiA+ID4gPiAg ICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLCAqbmV3X2NydGNfc3Rh dGU7Cj4gPiA+ID4gICAgICAgc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+ID4gPiA+ ICAgICAgIGludCBpOwo+ID4gPiA+IEBAIC0yMzAwLDcgKzIzMDAsNyBAQCBFWFBPUlRfU1lNQk9M KGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUpOwo+ID4gPiA+ICBpbnQgZHJt X2F0b21pY19oZWxwZXJfcHJlcGFyZV9wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKPiA+ID4gPiAgewo+ID4gPiA+IC0gICAgIHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3I7Cj4gPiA+ID4gKyAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgX19tYXli ZV91bnVzZWQgKmNvbm5lY3RvcjsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqbmV3X2Nvbm5fc3RhdGU7Cj4gPiA+ID4gICAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxh bmU7Cj4gPiA+ID4gICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRl Owo+ID4gPiA+IEBAIC0yOTUzLDkgKzI5NTMsOSBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfZGlz YWJsZV9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gPiAgewo+ID4gPiA+ICAgICAg IHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKPiA+ID4gPiAtICAgICBzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubjsKPiA+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBfX21heWJl X3VudXNlZCAqY29ubjsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZTsKPiA+ID4gPiAtICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ID4gPiAr ICAgICBzdHJ1Y3QgZHJtX3BsYW5lIF9fbWF5YmVfdW51c2VkICpwbGFuZTsKPiA+ID4gPiAgICAg ICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiA+ID4gICAgICAgc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+ID4gPiA+ICAgICAgIGludCByZXQsIGk7Cj4gPiA+ID4gQEAgLTMx OTksMTEgKzMxOTksMTEgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9kdXBsaWNhdGVk X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+ID4gPiAgewo+ID4gPiA+ ICAgICAgIGludCBpLCByZXQ7Cj4gPiA+ID4gICAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7 Cj4gPiA+ID4gLSAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlOwo+ ID4gPiA+ICsgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgX19tYXliZV91bnVzZWQgKm5ld19w bGFuZV9zdGF0ZTsKPiA+ID4gPiAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y Owo+ID4gPiA+IC0gICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0 ZTsKPiA+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSBfX21heWJlX3VudXNl ZCAqbmV3X2Nvbm5fc3RhdGU7Cj4gPiA+ID4gICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ ID4gPiA+IC0gICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Cj4gPiA+ ID4gKyAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlIF9fbWF5YmVfdW51c2VkICpuZXdfY3J0Y19z dGF0ZTsKPiA+ID4gPgo+ID4gPiA+ICAgICAgIHN0YXRlLT5hY3F1aXJlX2N0eCA9IGN0eDsKPiA+ ID4gPgo+ID4gPiA+IC0tCj4gPiA+ID4gMi4xNS4wCj4gPiA+ID4KPiA+ID4gPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiA+IGRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKPiA+ID4gPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwKPiA+ID4KPiA+ID4gLS0KPiA+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiA+IEludGVsCj4KPiAt LQo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbA==