From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2] drm/dp_mst: Fix W=1 warnings Date: Thu, 28 Nov 2019 13:21:36 +0200 Message-ID: <87sgm8mekf.fsf@intel.com> References: <20191128110012.23898-1-benjamin.gaignard@st.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: <20191128110012.23898-1-benjamin.gaignard@st.com> Sender: linux-kernel-owner@vger.kernel.org To: maarten.lankhorst@linux.intel.com, mripard@kernel.org, sean@poorly.run, airlied@linux.ie, daniel@ffwll.ch Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Benjamin Gaignard List-Id: dri-devel@lists.freedesktop.org On Thu, 28 Nov 2019, Benjamin Gaignard wrote: > Fix the warnings that show up with W=1. > They are all about unused but set variables. > If functions returns are not used anymore make them void. > > Signed-off-by: Benjamin Gaignard > CC: Jani Nikula > --- > changes in version 2: > - fix indentations > - when possible change functions prototype to void > > Note: this patch may conflict with c485e2c97dae ("drm/dp_mst: Refactor pdt > setup/teardown, add more locking") when it will hit drm-misc-next Well, why create an unnecessary conflict when the referenced commit also fixes the same warnings as a side-effect? BR, Jani. > > drivers/gpu/drm/drm_dp_mst_topology.c | 83 +++++++++++++---------------------- > 1 file changed, 31 insertions(+), 52 deletions(-) > > diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c > index b854a422a523..ff2d81db0778 100644 > --- a/drivers/gpu/drm/drm_dp_mst_topology.c > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c > @@ -672,7 +672,6 @@ static bool drm_dp_sideband_msg_build(struct drm_dp_sideband_msg_rx *msg, > u8 *replybuf, u8 replybuflen, bool hdr) > { > int ret; > - u8 crc4; > > if (hdr) { > u8 hdrlen; > @@ -714,8 +713,6 @@ static bool drm_dp_sideband_msg_build(struct drm_dp_sideband_msg_rx *msg, > } > > if (msg->curchunk_idx >= msg->curchunk_len) { > - /* do CRC */ > - crc4 = drm_dp_msg_data_crc4(msg->chunk, msg->curchunk_len - 1); > /* copy chunk into bigger msg */ > memcpy(&msg->msg[msg->curlen], msg->chunk, msg->curchunk_len - 1); > msg->curlen += msg->curchunk_len - 1; > @@ -1012,7 +1009,7 @@ static bool drm_dp_sideband_parse_req(struct drm_dp_sideband_msg_rx *raw, > } > } > > -static int build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes, u8 *bytes) > +static void build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes, u8 *bytes) > { > struct drm_dp_sideband_msg_req_body req; > > @@ -1022,17 +1019,14 @@ static int build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 > req.u.dpcd_write.num_bytes = num_bytes; > req.u.dpcd_write.bytes = bytes; > drm_dp_encode_sideband_req(&req, msg); > - > - return 0; > } > > -static int build_link_address(struct drm_dp_sideband_msg_tx *msg) > +static void build_link_address(struct drm_dp_sideband_msg_tx *msg) > { > struct drm_dp_sideband_msg_req_body req; > > req.req_type = DP_LINK_ADDRESS; > drm_dp_encode_sideband_req(&req, msg); > - return 0; > } > > static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int port_num) > @@ -1046,7 +1040,7 @@ static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int por > return 0; > } > > -static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_num, > +static void build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_num, > u8 vcpi, uint16_t pbn, > u8 number_sdp_streams, > u8 *sdp_stream_sink) > @@ -1062,10 +1056,9 @@ static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_n > number_sdp_streams); > drm_dp_encode_sideband_req(&req, msg); > msg->path_msg = true; > - return 0; > } > > -static int build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, > +static void build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, > int port_num, bool power_up) > { > struct drm_dp_sideband_msg_req_body req; > @@ -1078,7 +1071,6 @@ static int build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, > req.u.port_num.port_number = port_num; > drm_dp_encode_sideband_req(&req, msg); > msg->path_msg = true; > - return 0; > } > > static int drm_dp_mst_assign_payload_id(struct drm_dp_mst_topology_mgr *mgr, > @@ -1744,14 +1736,13 @@ static u8 drm_dp_calculate_rad(struct drm_dp_mst_port *port, > */ > static bool drm_dp_port_setup_pdt(struct drm_dp_mst_port *port) > { > - int ret; > u8 rad[6], lct; > bool send_link = false; > switch (port->pdt) { > case DP_PEER_DEVICE_DP_LEGACY_CONV: > case DP_PEER_DEVICE_SST_SINK: > /* add i2c over sideband */ > - ret = drm_dp_mst_register_i2c_bus(&port->aux); > + drm_dp_mst_register_i2c_bus(&port->aux); > break; > case DP_PEER_DEVICE_MST_BRANCHING: > lct = drm_dp_calculate_rad(port, rad); > @@ -1821,25 +1812,20 @@ ssize_t drm_dp_mst_dpcd_write(struct drm_dp_aux *aux, > > static void drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) > { > - int ret; > - > memcpy(mstb->guid, guid, 16); > > if (!drm_dp_validate_guid(mstb->mgr, mstb->guid)) { > if (mstb->port_parent) { > - ret = drm_dp_send_dpcd_write( > - mstb->mgr, > - mstb->port_parent, > - DP_GUID, > - 16, > - mstb->guid); > + drm_dp_send_dpcd_write(mstb->mgr, > + mstb->port_parent, > + DP_GUID, > + 16, > + mstb->guid); > } else { > - > - ret = drm_dp_dpcd_write( > - mstb->mgr->aux, > - DP_GUID, > - mstb->guid, > - 16); > + drm_dp_dpcd_write(mstb->mgr->aux, > + DP_GUID, > + mstb->guid, > + 16); > } > } > } > @@ -2195,7 +2181,7 @@ static bool drm_dp_validate_guid(struct drm_dp_mst_topology_mgr *mgr, > return false; > } > > -static int build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes) > +static void build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes) > { > struct drm_dp_sideband_msg_req_body req; > > @@ -2204,8 +2190,6 @@ static int build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 > req.u.dpcd_read.dpcd_address = offset; > req.u.dpcd_read.num_bytes = num_bytes; > drm_dp_encode_sideband_req(&req, msg); > - > - return 0; > } > > static int drm_dp_send_sideband_msg(struct drm_dp_mst_topology_mgr *mgr, > @@ -2427,14 +2411,14 @@ static void drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, > { > struct drm_dp_sideband_msg_tx *txmsg; > struct drm_dp_link_address_ack_reply *reply; > - int i, len, ret; > + int i, ret; > > txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); > if (!txmsg) > return; > > txmsg->dst = mstb; > - len = build_link_address(txmsg); > + build_link_address(txmsg); > > mstb->link_address_sent = true; > drm_dp_queue_down_tx(mgr, txmsg); > @@ -2476,7 +2460,6 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, > { > struct drm_dp_enum_path_resources_ack_reply *path_res; > struct drm_dp_sideband_msg_tx *txmsg; > - int len; > int ret; > > txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); > @@ -2484,7 +2467,7 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, > return -ENOMEM; > > txmsg->dst = mstb; > - len = build_enum_path_resources(txmsg, port->port_num); > + build_enum_path_resources(txmsg, port->port_num); > > drm_dp_queue_down_tx(mgr, txmsg); > > @@ -2567,7 +2550,7 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr, > { > struct drm_dp_sideband_msg_tx *txmsg; > struct drm_dp_mst_branch *mstb; > - int len, ret, port_num; > + int ret, port_num; > u8 sinks[DRM_DP_MAX_SDP_STREAMS]; > int i; > > @@ -2592,9 +2575,9 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr, > sinks[i] = i; > > txmsg->dst = mstb; > - len = build_allocate_payload(txmsg, port_num, > - id, > - pbn, port->num_sdp_streams, sinks); > + build_allocate_payload(txmsg, port_num, > + id, > + pbn, port->num_sdp_streams, sinks); > > drm_dp_queue_down_tx(mgr, txmsg); > > @@ -2623,7 +2606,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr, > struct drm_dp_mst_port *port, bool power_up) > { > struct drm_dp_sideband_msg_tx *txmsg; > - int len, ret; > + int ret; > > port = drm_dp_mst_topology_get_port_validated(mgr, port); > if (!port) > @@ -2636,7 +2619,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr, > } > > txmsg->dst = port->parent; > - len = build_power_updown_phy(txmsg, port->port_num, power_up); > + build_power_updown_phy(txmsg, port->port_num, power_up); > drm_dp_queue_down_tx(mgr, txmsg); > > ret = drm_dp_mst_wait_tx_reply(port->parent, txmsg); > @@ -2856,7 +2839,6 @@ static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr, > struct drm_dp_mst_port *port, > int offset, int size, u8 *bytes) > { > - int len; > int ret = 0; > struct drm_dp_sideband_msg_tx *txmsg; > struct drm_dp_mst_branch *mstb; > @@ -2871,7 +2853,7 @@ static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr, > goto fail_put; > } > > - len = build_dpcd_read(txmsg, port->port_num, offset, size); > + build_dpcd_read(txmsg, port->port_num, offset, size); > txmsg->dst = port->parent; > > drm_dp_queue_down_tx(mgr, txmsg); > @@ -2909,7 +2891,6 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, > struct drm_dp_mst_port *port, > int offset, int size, u8 *bytes) > { > - int len; > int ret; > struct drm_dp_sideband_msg_tx *txmsg; > struct drm_dp_mst_branch *mstb; > @@ -2924,7 +2905,7 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, > goto fail_put; > } > > - len = build_dpcd_write(txmsg, port->port_num, offset, size, bytes); > + build_dpcd_write(txmsg, port->port_num, offset, size, bytes); > txmsg->dst = mstb; > > drm_dp_queue_down_tx(mgr, txmsg); > @@ -3147,7 +3128,7 @@ static bool drm_dp_get_one_sb_msg(struct drm_dp_mst_topology_mgr *mgr, bool up) > { > int len; > u8 replyblock[32]; > - int replylen, origlen, curreply; > + int replylen, curreply; > int ret; > struct drm_dp_sideband_msg_rx *msg; > int basereg = up ? DP_SIDEBAND_MSG_UP_REQ_BASE : DP_SIDEBAND_MSG_DOWN_REP_BASE; > @@ -3167,7 +3148,6 @@ static bool drm_dp_get_one_sb_msg(struct drm_dp_mst_topology_mgr *mgr, bool up) > } > replylen = msg->curchunk_len + msg->curchunk_hdrlen; > > - origlen = replylen; > replylen -= len; > curreply = len; > while (replylen > 0) { > @@ -3959,17 +3939,16 @@ void drm_dp_mst_dump_topology(struct seq_file *m, > mutex_lock(&mgr->lock); > if (mgr->mst_primary) { > u8 buf[DP_PAYLOAD_TABLE_SIZE]; > - int ret; > > - ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE); > + drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE); > seq_printf(m, "dpcd: %*ph\n", DP_RECEIVER_CAP_SIZE, buf); > - ret = drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2); > + drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2); > seq_printf(m, "faux/mst: %*ph\n", 2, buf); > - ret = drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1); > + drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1); > seq_printf(m, "mst ctrl: %*ph\n", 1, buf); > > /* dump the standard OUI branch header */ > - ret = drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE); > + drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE); > seq_printf(m, "branch oui: %*phN devid: ", 3, buf); > for (i = 0x3; i < 0x8 && buf[i]; i++) > seq_printf(m, "%c", buf[i]); -- Jani Nikula, Intel Open Source Graphics Center 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.8 required=3.0 tests=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 206E4C432C3 for ; Thu, 28 Nov 2019 11:21:49 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F3BFC21741 for ; Thu, 28 Nov 2019 11:21:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F3BFC21741 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 216226E7BE; Thu, 28 Nov 2019 11:21:48 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 083FB6E7A3 for ; Thu, 28 Nov 2019 11:21:45 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Nov 2019 03:21:45 -0800 X-IronPort-AV: E=Sophos;i="5.69,253,1571727600"; d="scan'208";a="199497736" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Nov 2019 03:21:38 -0800 From: Jani Nikula To: Benjamin Gaignard , maarten.lankhorst@linux.intel.com, mripard@kernel.org, sean@poorly.run, airlied@linux.ie, daniel@ffwll.ch Subject: Re: [PATCH v2] drm/dp_mst: Fix W=1 warnings In-Reply-To: <20191128110012.23898-1-benjamin.gaignard@st.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20191128110012.23898-1-benjamin.gaignard@st.com> Date: Thu, 28 Nov 2019 13:21:36 +0200 Message-ID: <87sgm8mekf.fsf@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Benjamin Gaignard Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191128112136.rBIFdosygM3evD_w9HyjYWaS80fEFADL2SBiuURqya8@z> T24gVGh1LCAyOCBOb3YgMjAxOSwgQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJk QHN0LmNvbT4gd3JvdGU6Cj4gRml4IHRoZSB3YXJuaW5ncyB0aGF0IHNob3cgdXAgd2l0aCBXPTEu Cj4gVGhleSBhcmUgYWxsIGFib3V0IHVudXNlZCBidXQgc2V0IHZhcmlhYmxlcy4KPiBJZiBmdW5j dGlvbnMgcmV0dXJucyBhcmUgbm90IHVzZWQgYW55bW9yZSBtYWtlIHRoZW0gdm9pZC4KPgo+IFNp Z25lZC1vZmYtYnk6IEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBzdC5jb20+ Cj4gQ0M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4g Y2hhbmdlcyBpbiB2ZXJzaW9uIDI6Cj4gLSBmaXggaW5kZW50YXRpb25zCj4gLSB3aGVuIHBvc3Np YmxlIGNoYW5nZSBmdW5jdGlvbnMgcHJvdG90eXBlIHRvIHZvaWQKPgo+IE5vdGU6IHRoaXMgcGF0 Y2ggbWF5IGNvbmZsaWN0IHdpdGggYzQ4NWUyYzk3ZGFlICgiZHJtL2RwX21zdDogUmVmYWN0b3Ig cGR0Cj4gc2V0dXAvdGVhcmRvd24sIGFkZCBtb3JlIGxvY2tpbmciKSB3aGVuIGl0IHdpbGwgaGl0 IGRybS1taXNjLW5leHQKCldlbGwsIHdoeSBjcmVhdGUgYW4gdW5uZWNlc3NhcnkgY29uZmxpY3Qg d2hlbiB0aGUgcmVmZXJlbmNlZCBjb21taXQgYWxzbwpmaXhlcyB0aGUgc2FtZSB3YXJuaW5ncyBh cyBhIHNpZGUtZWZmZWN0PwoKQlIsCkphbmkuCgoKPgo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Rw X21zdF90b3BvbG9neS5jIHwgODMgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiAgMSBmaWxlIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCj4gaW5kZXggYjg1NGE0MjJhNTIzLi5m ZjJkODFkYjA3NzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9w b2xvZ3kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKPiBA QCAtNjcyLDcgKzY3Miw2IEBAIHN0YXRpYyBib29sIGRybV9kcF9zaWRlYmFuZF9tc2dfYnVpbGQo c3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfcnggKm1zZywKPiAgCQkJCSAgICAgIHU4ICpyZXBs eWJ1ZiwgdTggcmVwbHlidWZsZW4sIGJvb2wgaGRyKQo+ICB7Cj4gIAlpbnQgcmV0Owo+IC0JdTgg Y3JjNDsKPiAgCj4gIAlpZiAoaGRyKSB7Cj4gIAkJdTggaGRybGVuOwo+IEBAIC03MTQsOCArNzEz LDYgQEAgc3RhdGljIGJvb2wgZHJtX2RwX3NpZGViYW5kX21zZ19idWlsZChzdHJ1Y3QgZHJtX2Rw X3NpZGViYW5kX21zZ19yeCAqbXNnLAo+ICAJfQo+ICAKPiAgCWlmIChtc2ctPmN1cmNodW5rX2lk eCA+PSBtc2ctPmN1cmNodW5rX2xlbikgewo+IC0JCS8qIGRvIENSQyAqLwo+IC0JCWNyYzQgPSBk cm1fZHBfbXNnX2RhdGFfY3JjNChtc2ctPmNodW5rLCBtc2ctPmN1cmNodW5rX2xlbiAtIDEpOwo+ ICAJCS8qIGNvcHkgY2h1bmsgaW50byBiaWdnZXIgbXNnICovCj4gIAkJbWVtY3B5KCZtc2ctPm1z Z1ttc2ctPmN1cmxlbl0sIG1zZy0+Y2h1bmssIG1zZy0+Y3VyY2h1bmtfbGVuIC0gMSk7Cj4gIAkJ bXNnLT5jdXJsZW4gKz0gbXNnLT5jdXJjaHVua19sZW4gLSAxOwo+IEBAIC0xMDEyLDcgKzEwMDks NyBAQCBzdGF0aWMgYm9vbCBkcm1fZHBfc2lkZWJhbmRfcGFyc2VfcmVxKHN0cnVjdCBkcm1fZHBf c2lkZWJhbmRfbXNnX3J4ICpyYXcsCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgYnVpbGRf ZHBjZF93cml0ZShzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAqbXNnLCB1OCBwb3J0X251 bSwgdTMyIG9mZnNldCwgdTggbnVtX2J5dGVzLCB1OCAqYnl0ZXMpCj4gK3N0YXRpYyB2b2lkIGJ1 aWxkX2RwY2Rfd3JpdGUoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZywgdTggcG9y dF9udW0sIHUzMiBvZmZzZXQsIHU4IG51bV9ieXRlcywgdTggKmJ5dGVzKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yZXFfYm9keSByZXE7Cj4gIAo+IEBAIC0xMDIyLDE3ICsx MDE5LDE0IEBAIHN0YXRpYyBpbnQgYnVpbGRfZHBjZF93cml0ZShzdHJ1Y3QgZHJtX2RwX3NpZGVi YW5kX21zZ190eCAqbXNnLCB1OCBwb3J0X251bSwgdTMyCj4gIAlyZXEudS5kcGNkX3dyaXRlLm51 bV9ieXRlcyA9IG51bV9ieXRlczsKPiAgCXJlcS51LmRwY2Rfd3JpdGUuYnl0ZXMgPSBieXRlczsK PiAgCWRybV9kcF9lbmNvZGVfc2lkZWJhbmRfcmVxKCZyZXEsIG1zZyk7Cj4gLQo+IC0JcmV0dXJu IDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgYnVpbGRfbGlua19hZGRyZXNzKHN0cnVjdCBkcm1f ZHBfc2lkZWJhbmRfbXNnX3R4ICptc2cpCj4gK3N0YXRpYyB2b2lkIGJ1aWxkX2xpbmtfYWRkcmVz cyhzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAqbXNnKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJt X2RwX3NpZGViYW5kX21zZ19yZXFfYm9keSByZXE7Cj4gIAo+ICAJcmVxLnJlcV90eXBlID0gRFBf TElOS19BRERSRVNTOwo+ICAJZHJtX2RwX2VuY29kZV9zaWRlYmFuZF9yZXEoJnJlcSwgbXNnKTsK PiAtCXJldHVybiAwOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGJ1aWxkX2VudW1fcGF0aF9yZXNv dXJjZXMoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZywgaW50IHBvcnRfbnVtKQo+ IEBAIC0xMDQ2LDcgKzEwNDAsNyBAQCBzdGF0aWMgaW50IGJ1aWxkX2VudW1fcGF0aF9yZXNvdXJj ZXMoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZywgaW50IHBvcgo+ICAJcmV0dXJu IDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgYnVpbGRfYWxsb2NhdGVfcGF5bG9hZChzdHJ1Y3Qg ZHJtX2RwX3NpZGViYW5kX21zZ190eCAqbXNnLCBpbnQgcG9ydF9udW0sCj4gK3N0YXRpYyB2b2lk IGJ1aWxkX2FsbG9jYXRlX3BheWxvYWQoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1z ZywgaW50IHBvcnRfbnVtLAo+ICAJCQkJICB1OCB2Y3BpLCB1aW50MTZfdCBwYm4sCj4gIAkJCQkg IHU4IG51bWJlcl9zZHBfc3RyZWFtcywKPiAgCQkJCSAgdTggKnNkcF9zdHJlYW1fc2luaykKPiBA QCAtMTA2MiwxMCArMTA1Niw5IEBAIHN0YXRpYyBpbnQgYnVpbGRfYWxsb2NhdGVfcGF5bG9hZChz dHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAqbXNnLCBpbnQgcG9ydF9uCj4gIAkJICAgbnVt YmVyX3NkcF9zdHJlYW1zKTsKPiAgCWRybV9kcF9lbmNvZGVfc2lkZWJhbmRfcmVxKCZyZXEsIG1z Zyk7Cj4gIAltc2ctPnBhdGhfbXNnID0gdHJ1ZTsKPiAtCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1z dGF0aWMgaW50IGJ1aWxkX3Bvd2VyX3VwZG93bl9waHkoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9t c2dfdHggKm1zZywKPiArc3RhdGljIHZvaWQgYnVpbGRfcG93ZXJfdXBkb3duX3BoeShzdHJ1Y3Qg ZHJtX2RwX3NpZGViYW5kX21zZ190eCAqbXNnLAo+ICAJCQkJICBpbnQgcG9ydF9udW0sIGJvb2wg cG93ZXJfdXApCj4gIHsKPiAgCXN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5IHJl cTsKPiBAQCAtMTA3OCw3ICsxMDcxLDYgQEAgc3RhdGljIGludCBidWlsZF9wb3dlcl91cGRvd25f cGh5KHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4ICptc2csCj4gIAlyZXEudS5wb3J0X251 bS5wb3J0X251bWJlciA9IHBvcnRfbnVtOwo+ICAJZHJtX2RwX2VuY29kZV9zaWRlYmFuZF9yZXEo JnJlcSwgbXNnKTsKPiAgCW1zZy0+cGF0aF9tc2cgPSB0cnVlOwo+IC0JcmV0dXJuIDA7Cj4gIH0K PiAgCj4gIHN0YXRpYyBpbnQgZHJtX2RwX21zdF9hc3NpZ25fcGF5bG9hZF9pZChzdHJ1Y3QgZHJt X2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKPiBAQCAtMTc0NCwxNCArMTczNiwxMyBAQCBzdGF0 aWMgdTggZHJtX2RwX2NhbGN1bGF0ZV9yYWQoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCwK PiAgICovCj4gIHN0YXRpYyBib29sIGRybV9kcF9wb3J0X3NldHVwX3BkdChzdHJ1Y3QgZHJtX2Rw X21zdF9wb3J0ICpwb3J0KQo+ICB7Cj4gLQlpbnQgcmV0Owo+ICAJdTggcmFkWzZdLCBsY3Q7Cj4g IAlib29sIHNlbmRfbGluayA9IGZhbHNlOwo+ICAJc3dpdGNoIChwb3J0LT5wZHQpIHsKPiAgCWNh c2UgRFBfUEVFUl9ERVZJQ0VfRFBfTEVHQUNZX0NPTlY6Cj4gIAljYXNlIERQX1BFRVJfREVWSUNF X1NTVF9TSU5LOgo+ICAJCS8qIGFkZCBpMmMgb3ZlciBzaWRlYmFuZCAqLwo+IC0JCXJldCA9IGRy bV9kcF9tc3RfcmVnaXN0ZXJfaTJjX2J1cygmcG9ydC0+YXV4KTsKPiArCQlkcm1fZHBfbXN0X3Jl Z2lzdGVyX2kyY19idXMoJnBvcnQtPmF1eCk7Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIERQX1BFRVJf REVWSUNFX01TVF9CUkFOQ0hJTkc6Cj4gIAkJbGN0ID0gZHJtX2RwX2NhbGN1bGF0ZV9yYWQocG9y dCwgcmFkKTsKPiBAQCAtMTgyMSwyNSArMTgxMiwyMCBAQCBzc2l6ZV90IGRybV9kcF9tc3RfZHBj ZF93cml0ZShzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LAo+ICAKPiAgc3RhdGljIHZvaWQgZHJtX2Rw X2NoZWNrX21zdGJfZ3VpZChzdHJ1Y3QgZHJtX2RwX21zdF9icmFuY2ggKm1zdGIsIHU4ICpndWlk KQo+ICB7Cj4gLQlpbnQgcmV0Owo+IC0KPiAgCW1lbWNweShtc3RiLT5ndWlkLCBndWlkLCAxNik7 Cj4gIAo+ICAJaWYgKCFkcm1fZHBfdmFsaWRhdGVfZ3VpZChtc3RiLT5tZ3IsIG1zdGItPmd1aWQp KSB7Cj4gIAkJaWYgKG1zdGItPnBvcnRfcGFyZW50KSB7Cj4gLQkJCXJldCA9IGRybV9kcF9zZW5k X2RwY2Rfd3JpdGUoCj4gLQkJCQkJbXN0Yi0+bWdyLAo+IC0JCQkJCW1zdGItPnBvcnRfcGFyZW50 LAo+IC0JCQkJCURQX0dVSUQsCj4gLQkJCQkJMTYsCj4gLQkJCQkJbXN0Yi0+Z3VpZCk7Cj4gKwkJ CWRybV9kcF9zZW5kX2RwY2Rfd3JpdGUobXN0Yi0+bWdyLAo+ICsJCQkJCSAgICAgICBtc3RiLT5w b3J0X3BhcmVudCwKPiArCQkJCQkgICAgICAgRFBfR1VJRCwKPiArCQkJCQkgICAgICAgMTYsCj4g KwkJCQkJICAgICAgIG1zdGItPmd1aWQpOwo+ICAJCX0gZWxzZSB7Cj4gLQo+IC0JCQlyZXQgPSBk cm1fZHBfZHBjZF93cml0ZSgKPiAtCQkJCQltc3RiLT5tZ3ItPmF1eCwKPiAtCQkJCQlEUF9HVUlE LAo+IC0JCQkJCW1zdGItPmd1aWQsCj4gLQkJCQkJMTYpOwo+ICsJCQlkcm1fZHBfZHBjZF93cml0 ZShtc3RiLT5tZ3ItPmF1eCwKPiArCQkJCQkgIERQX0dVSUQsCj4gKwkJCQkJICBtc3RiLT5ndWlk LAo+ICsJCQkJCSAgMTYpOwo+ICAJCX0KPiAgCX0KPiAgfQo+IEBAIC0yMTk1LDcgKzIxODEsNyBA QCBzdGF0aWMgYm9vbCBkcm1fZHBfdmFsaWRhdGVfZ3VpZChzdHJ1Y3QgZHJtX2RwX21zdF90b3Bv bG9neV9tZ3IgKm1nciwKPiAgCXJldHVybiBmYWxzZTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBi dWlsZF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZywgdTggcG9y dF9udW0sIHUzMiBvZmZzZXQsIHU4IG51bV9ieXRlcykKPiArc3RhdGljIHZvaWQgYnVpbGRfZHBj ZF9yZWFkKHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4ICptc2csIHU4IHBvcnRfbnVtLCB1 MzIgb2Zmc2V0LCB1OCBudW1fYnl0ZXMpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZHBfc2lkZWJhbmRf bXNnX3JlcV9ib2R5IHJlcTsKPiAgCj4gQEAgLTIyMDQsOCArMjE5MCw2IEBAIHN0YXRpYyBpbnQg YnVpbGRfZHBjZF9yZWFkKHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4ICptc2csIHU4IHBv cnRfbnVtLCB1MzIKPiAgCXJlcS51LmRwY2RfcmVhZC5kcGNkX2FkZHJlc3MgPSBvZmZzZXQ7Cj4g IAlyZXEudS5kcGNkX3JlYWQubnVtX2J5dGVzID0gbnVtX2J5dGVzOwo+ICAJZHJtX2RwX2VuY29k ZV9zaWRlYmFuZF9yZXEoJnJlcSwgbXNnKTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAgfQo+ICAKPiAg c3RhdGljIGludCBkcm1fZHBfc2VuZF9zaWRlYmFuZF9tc2coc3RydWN0IGRybV9kcF9tc3RfdG9w b2xvZ3lfbWdyICptZ3IsCj4gQEAgLTI0MjcsMTQgKzI0MTEsMTQgQEAgc3RhdGljIHZvaWQgZHJt X2RwX3NlbmRfbGlua19hZGRyZXNzKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdy LAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAqdHhtc2c7Cj4gIAlzdHJ1 Y3QgZHJtX2RwX2xpbmtfYWRkcmVzc19hY2tfcmVwbHkgKnJlcGx5Owo+IC0JaW50IGksIGxlbiwg cmV0Owo+ICsJaW50IGksIHJldDsKPiAgCj4gIAl0eG1zZyA9IGt6YWxsb2Moc2l6ZW9mKCp0eG1z ZyksIEdGUF9LRVJORUwpOwo+ICAJaWYgKCF0eG1zZykKPiAgCQlyZXR1cm47Cj4gIAo+ICAJdHht c2ctPmRzdCA9IG1zdGI7Cj4gLQlsZW4gPSBidWlsZF9saW5rX2FkZHJlc3ModHhtc2cpOwo+ICsJ YnVpbGRfbGlua19hZGRyZXNzKHR4bXNnKTsKPiAgCj4gIAltc3RiLT5saW5rX2FkZHJlc3Nfc2Vu dCA9IHRydWU7Cj4gIAlkcm1fZHBfcXVldWVfZG93bl90eChtZ3IsIHR4bXNnKTsKPiBAQCAtMjQ3 Niw3ICsyNDYwLDYgQEAgZHJtX2RwX3NlbmRfZW51bV9wYXRoX3Jlc291cmNlcyhzdHJ1Y3QgZHJt X2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKPiAgewo+ICAJc3RydWN0IGRybV9kcF9lbnVtX3Bh dGhfcmVzb3VyY2VzX2Fja19yZXBseSAqcGF0aF9yZXM7Cj4gIAlzdHJ1Y3QgZHJtX2RwX3NpZGVi YW5kX21zZ190eCAqdHhtc2c7Cj4gLQlpbnQgbGVuOwo+ICAJaW50IHJldDsKPiAgCj4gIAl0eG1z ZyA9IGt6YWxsb2Moc2l6ZW9mKCp0eG1zZyksIEdGUF9LRVJORUwpOwo+IEBAIC0yNDg0LDcgKzI0 NjcsNyBAQCBkcm1fZHBfc2VuZF9lbnVtX3BhdGhfcmVzb3VyY2VzKHN0cnVjdCBkcm1fZHBfbXN0 X3RvcG9sb2d5X21nciAqbWdyLAo+ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAgCXR4bXNnLT5k c3QgPSBtc3RiOwo+IC0JbGVuID0gYnVpbGRfZW51bV9wYXRoX3Jlc291cmNlcyh0eG1zZywgcG9y dC0+cG9ydF9udW0pOwo+ICsJYnVpbGRfZW51bV9wYXRoX3Jlc291cmNlcyh0eG1zZywgcG9ydC0+ cG9ydF9udW0pOwo+ICAKPiAgCWRybV9kcF9xdWV1ZV9kb3duX3R4KG1nciwgdHhtc2cpOwo+ICAK PiBAQCAtMjU2Nyw3ICsyNTUwLDcgQEAgc3RhdGljIGludCBkcm1fZHBfcGF5bG9hZF9zZW5kX21z ZyhzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKPiAgewo+ICAJc3RydWN0IGRy bV9kcF9zaWRlYmFuZF9tc2dfdHggKnR4bXNnOwo+ICAJc3RydWN0IGRybV9kcF9tc3RfYnJhbmNo ICptc3RiOwo+IC0JaW50IGxlbiwgcmV0LCBwb3J0X251bTsKPiArCWludCByZXQsIHBvcnRfbnVt Owo+ICAJdTggc2lua3NbRFJNX0RQX01BWF9TRFBfU1RSRUFNU107Cj4gIAlpbnQgaTsKPiAgCj4g QEAgLTI1OTIsOSArMjU3NSw5IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3BheWxvYWRfc2VuZF9tc2co c3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCj4gIAkJc2lua3NbaV0gPSBpOwo+ ICAKPiAgCXR4bXNnLT5kc3QgPSBtc3RiOwo+IC0JbGVuID0gYnVpbGRfYWxsb2NhdGVfcGF5bG9h ZCh0eG1zZywgcG9ydF9udW0sCj4gLQkJCQkgICAgIGlkLAo+IC0JCQkJICAgICBwYm4sIHBvcnQt Pm51bV9zZHBfc3RyZWFtcywgc2lua3MpOwo+ICsJYnVpbGRfYWxsb2NhdGVfcGF5bG9hZCh0eG1z ZywgcG9ydF9udW0sCj4gKwkJCSAgICAgICBpZCwKPiArCQkJICAgICAgIHBibiwgcG9ydC0+bnVt X3NkcF9zdHJlYW1zLCBzaW5rcyk7Cj4gIAo+ICAJZHJtX2RwX3F1ZXVlX2Rvd25fdHgobWdyLCB0 eG1zZyk7Cj4gIAo+IEBAIC0yNjIzLDcgKzI2MDYsNyBAQCBpbnQgZHJtX2RwX3NlbmRfcG93ZXJf dXBkb3duX3BoeShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKPiAgCQkJCSBz dHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0LCBib29sIHBvd2VyX3VwKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAqdHhtc2c7Cj4gLQlpbnQgbGVuLCByZXQ7Cj4gKwlp bnQgcmV0Owo+ICAKPiAgCXBvcnQgPSBkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9wb3J0X3ZhbGlk YXRlZChtZ3IsIHBvcnQpOwo+ICAJaWYgKCFwb3J0KQo+IEBAIC0yNjM2LDcgKzI2MTksNyBAQCBp bnQgZHJtX2RwX3NlbmRfcG93ZXJfdXBkb3duX3BoeShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3IgKm1nciwKPiAgCX0KPiAgCj4gIAl0eG1zZy0+ZHN0ID0gcG9ydC0+cGFyZW50Owo+IC0J bGVuID0gYnVpbGRfcG93ZXJfdXBkb3duX3BoeSh0eG1zZywgcG9ydC0+cG9ydF9udW0sIHBvd2Vy X3VwKTsKPiArCWJ1aWxkX3Bvd2VyX3VwZG93bl9waHkodHhtc2csIHBvcnQtPnBvcnRfbnVtLCBw b3dlcl91cCk7Cj4gIAlkcm1fZHBfcXVldWVfZG93bl90eChtZ3IsIHR4bXNnKTsKPiAgCj4gIAly ZXQgPSBkcm1fZHBfbXN0X3dhaXRfdHhfcmVwbHkocG9ydC0+cGFyZW50LCB0eG1zZyk7Cj4gQEAg LTI4NTYsNyArMjgzOSw2IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3NlbmRfZHBjZF9yZWFkKHN0cnVj dCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAo+ICAJCQkJIHN0cnVjdCBkcm1fZHBfbXN0 X3BvcnQgKnBvcnQsCj4gIAkJCQkgaW50IG9mZnNldCwgaW50IHNpemUsIHU4ICpieXRlcykKPiAg ewo+IC0JaW50IGxlbjsKPiAgCWludCByZXQgPSAwOwo+ICAJc3RydWN0IGRybV9kcF9zaWRlYmFu ZF9tc2dfdHggKnR4bXNnOwo+ICAJc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiOwo+IEBA IC0yODcxLDcgKzI4NTMsNyBAQCBzdGF0aWMgaW50IGRybV9kcF9zZW5kX2RwY2RfcmVhZChzdHJ1 Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKPiAgCQlnb3RvIGZhaWxfcHV0Owo+ICAJ fQo+ICAKPiAtCWxlbiA9IGJ1aWxkX2RwY2RfcmVhZCh0eG1zZywgcG9ydC0+cG9ydF9udW0sIG9m ZnNldCwgc2l6ZSk7Cj4gKwlidWlsZF9kcGNkX3JlYWQodHhtc2csIHBvcnQtPnBvcnRfbnVtLCBv ZmZzZXQsIHNpemUpOwo+ICAJdHhtc2ctPmRzdCA9IHBvcnQtPnBhcmVudDsKPiAgCj4gIAlkcm1f ZHBfcXVldWVfZG93bl90eChtZ3IsIHR4bXNnKTsKPiBAQCAtMjkwOSw3ICsyODkxLDYgQEAgc3Rh dGljIGludCBkcm1fZHBfc2VuZF9kcGNkX3dyaXRlKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5 X21nciAqbWdyLAo+ICAJCQkJICBzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0LAo+ICAJCQkJ ICBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdTggKmJ5dGVzKQo+ICB7Cj4gLQlpbnQgbGVuOwo+ICAJ aW50IHJldDsKPiAgCXN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4ICp0eG1zZzsKPiAgCXN0 cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YjsKPiBAQCAtMjkyNCw3ICsyOTA1LDcgQEAgc3Rh dGljIGludCBkcm1fZHBfc2VuZF9kcGNkX3dyaXRlKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5 X21nciAqbWdyLAo+ICAJCWdvdG8gZmFpbF9wdXQ7Cj4gIAl9Cj4gIAo+IC0JbGVuID0gYnVpbGRf ZHBjZF93cml0ZSh0eG1zZywgcG9ydC0+cG9ydF9udW0sIG9mZnNldCwgc2l6ZSwgYnl0ZXMpOwo+ ICsJYnVpbGRfZHBjZF93cml0ZSh0eG1zZywgcG9ydC0+cG9ydF9udW0sIG9mZnNldCwgc2l6ZSwg Ynl0ZXMpOwo+ICAJdHhtc2ctPmRzdCA9IG1zdGI7Cj4gIAo+ICAJZHJtX2RwX3F1ZXVlX2Rvd25f dHgobWdyLCB0eG1zZyk7Cj4gQEAgLTMxNDcsNyArMzEyOCw3IEBAIHN0YXRpYyBib29sIGRybV9k cF9nZXRfb25lX3NiX21zZyhzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwgYm9v bCB1cCkKPiAgewo+ICAJaW50IGxlbjsKPiAgCXU4IHJlcGx5YmxvY2tbMzJdOwo+IC0JaW50IHJl cGx5bGVuLCBvcmlnbGVuLCBjdXJyZXBseTsKPiArCWludCByZXBseWxlbiwgY3VycmVwbHk7Cj4g IAlpbnQgcmV0Owo+ICAJc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfcnggKm1zZzsKPiAgCWlu dCBiYXNlcmVnID0gdXAgPyBEUF9TSURFQkFORF9NU0dfVVBfUkVRX0JBU0UgOiBEUF9TSURFQkFO RF9NU0dfRE9XTl9SRVBfQkFTRTsKPiBAQCAtMzE2Nyw3ICszMTQ4LDYgQEAgc3RhdGljIGJvb2wg ZHJtX2RwX2dldF9vbmVfc2JfbXNnKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdy LCBib29sIHVwKQo+ICAJfQo+ICAJcmVwbHlsZW4gPSBtc2ctPmN1cmNodW5rX2xlbiArIG1zZy0+ Y3VyY2h1bmtfaGRybGVuOwo+ICAKPiAtCW9yaWdsZW4gPSByZXBseWxlbjsKPiAgCXJlcGx5bGVu IC09IGxlbjsKPiAgCWN1cnJlcGx5ID0gbGVuOwo+ICAJd2hpbGUgKHJlcGx5bGVuID4gMCkgewo+ IEBAIC0zOTU5LDE3ICszOTM5LDE2IEBAIHZvaWQgZHJtX2RwX21zdF9kdW1wX3RvcG9sb2d5KHN0 cnVjdCBzZXFfZmlsZSAqbSwKPiAgCW11dGV4X2xvY2soJm1nci0+bG9jayk7Cj4gIAlpZiAobWdy LT5tc3RfcHJpbWFyeSkgewo+ICAJCXU4IGJ1ZltEUF9QQVlMT0FEX1RBQkxFX1NJWkVdOwo+IC0J CWludCByZXQ7Cj4gIAo+IC0JCXJldCA9IGRybV9kcF9kcGNkX3JlYWQobWdyLT5hdXgsIERQX0RQ Q0RfUkVWLCBidWYsIERQX1JFQ0VJVkVSX0NBUF9TSVpFKTsKPiArCQlkcm1fZHBfZHBjZF9yZWFk KG1nci0+YXV4LCBEUF9EUENEX1JFViwgYnVmLCBEUF9SRUNFSVZFUl9DQVBfU0laRSk7Cj4gIAkJ c2VxX3ByaW50ZihtLCAiZHBjZDogJSpwaFxuIiwgRFBfUkVDRUlWRVJfQ0FQX1NJWkUsIGJ1Zik7 Cj4gLQkJcmV0ID0gZHJtX2RwX2RwY2RfcmVhZChtZ3ItPmF1eCwgRFBfRkFVWF9DQVAsIGJ1Ziwg Mik7Cj4gKwkJZHJtX2RwX2RwY2RfcmVhZChtZ3ItPmF1eCwgRFBfRkFVWF9DQVAsIGJ1ZiwgMik7 Cj4gIAkJc2VxX3ByaW50ZihtLCAiZmF1eC9tc3Q6ICUqcGhcbiIsIDIsIGJ1Zik7Cj4gLQkJcmV0 ID0gZHJtX2RwX2RwY2RfcmVhZChtZ3ItPmF1eCwgRFBfTVNUTV9DVFJMLCBidWYsIDEpOwo+ICsJ CWRybV9kcF9kcGNkX3JlYWQobWdyLT5hdXgsIERQX01TVE1fQ1RSTCwgYnVmLCAxKTsKPiAgCQlz ZXFfcHJpbnRmKG0sICJtc3QgY3RybDogJSpwaFxuIiwgMSwgYnVmKTsKPiAgCj4gIAkJLyogZHVt cCB0aGUgc3RhbmRhcmQgT1VJIGJyYW5jaCBoZWFkZXIgKi8KPiAtCQlyZXQgPSBkcm1fZHBfZHBj ZF9yZWFkKG1nci0+YXV4LCBEUF9CUkFOQ0hfT1VJLCBidWYsIERQX0JSQU5DSF9PVUlfSEVBREVS X1NJWkUpOwo+ICsJCWRybV9kcF9kcGNkX3JlYWQobWdyLT5hdXgsIERQX0JSQU5DSF9PVUksIGJ1 ZiwgRFBfQlJBTkNIX09VSV9IRUFERVJfU0laRSk7Cj4gIAkJc2VxX3ByaW50ZihtLCAiYnJhbmNo IG91aTogJSpwaE4gZGV2aWQ6ICIsIDMsIGJ1Zik7Cj4gIAkJZm9yIChpID0gMHgzOyBpIDwgMHg4 ICYmIGJ1ZltpXTsgaSsrKQo+ICAJCQlzZXFfcHJpbnRmKG0sICIlYyIsIGJ1ZltpXSk7CgotLSAK SmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw= 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.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED 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 5867CC432C0 for ; Thu, 28 Nov 2019 11:21:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0D0A421741 for ; Thu, 28 Nov 2019 11:21:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726657AbfK1LVq (ORCPT ); Thu, 28 Nov 2019 06:21:46 -0500 Received: from mga18.intel.com ([134.134.136.126]:8840 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726191AbfK1LVp (ORCPT ); Thu, 28 Nov 2019 06:21:45 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Nov 2019 03:21:45 -0800 X-IronPort-AV: E=Sophos;i="5.69,253,1571727600"; d="scan'208";a="199497736" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Nov 2019 03:21:38 -0800 From: Jani Nikula To: Benjamin Gaignard , maarten.lankhorst@linux.intel.com, mripard@kernel.org, sean@poorly.run, airlied@linux.ie, daniel@ffwll.ch Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Benjamin Gaignard Subject: Re: [PATCH v2] drm/dp_mst: Fix W=1 warnings In-Reply-To: <20191128110012.23898-1-benjamin.gaignard@st.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20191128110012.23898-1-benjamin.gaignard@st.com> Date: Thu, 28 Nov 2019 13:21:36 +0200 Message-ID: <87sgm8mekf.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 28 Nov 2019, Benjamin Gaignard wrote: > Fix the warnings that show up with W=1. > They are all about unused but set variables. > If functions returns are not used anymore make them void. > > Signed-off-by: Benjamin Gaignard > CC: Jani Nikula > --- > changes in version 2: > - fix indentations > - when possible change functions prototype to void > > Note: this patch may conflict with c485e2c97dae ("drm/dp_mst: Refactor pdt > setup/teardown, add more locking") when it will hit drm-misc-next Well, why create an unnecessary conflict when the referenced commit also fixes the same warnings as a side-effect? BR, Jani. > > drivers/gpu/drm/drm_dp_mst_topology.c | 83 +++++++++++++---------------------- > 1 file changed, 31 insertions(+), 52 deletions(-) > > diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c > index b854a422a523..ff2d81db0778 100644 > --- a/drivers/gpu/drm/drm_dp_mst_topology.c > +++ b/drivers/gpu/drm/drm_dp_mst_topology.c > @@ -672,7 +672,6 @@ static bool drm_dp_sideband_msg_build(struct drm_dp_sideband_msg_rx *msg, > u8 *replybuf, u8 replybuflen, bool hdr) > { > int ret; > - u8 crc4; > > if (hdr) { > u8 hdrlen; > @@ -714,8 +713,6 @@ static bool drm_dp_sideband_msg_build(struct drm_dp_sideband_msg_rx *msg, > } > > if (msg->curchunk_idx >= msg->curchunk_len) { > - /* do CRC */ > - crc4 = drm_dp_msg_data_crc4(msg->chunk, msg->curchunk_len - 1); > /* copy chunk into bigger msg */ > memcpy(&msg->msg[msg->curlen], msg->chunk, msg->curchunk_len - 1); > msg->curlen += msg->curchunk_len - 1; > @@ -1012,7 +1009,7 @@ static bool drm_dp_sideband_parse_req(struct drm_dp_sideband_msg_rx *raw, > } > } > > -static int build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes, u8 *bytes) > +static void build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes, u8 *bytes) > { > struct drm_dp_sideband_msg_req_body req; > > @@ -1022,17 +1019,14 @@ static int build_dpcd_write(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 > req.u.dpcd_write.num_bytes = num_bytes; > req.u.dpcd_write.bytes = bytes; > drm_dp_encode_sideband_req(&req, msg); > - > - return 0; > } > > -static int build_link_address(struct drm_dp_sideband_msg_tx *msg) > +static void build_link_address(struct drm_dp_sideband_msg_tx *msg) > { > struct drm_dp_sideband_msg_req_body req; > > req.req_type = DP_LINK_ADDRESS; > drm_dp_encode_sideband_req(&req, msg); > - return 0; > } > > static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int port_num) > @@ -1046,7 +1040,7 @@ static int build_enum_path_resources(struct drm_dp_sideband_msg_tx *msg, int por > return 0; > } > > -static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_num, > +static void build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_num, > u8 vcpi, uint16_t pbn, > u8 number_sdp_streams, > u8 *sdp_stream_sink) > @@ -1062,10 +1056,9 @@ static int build_allocate_payload(struct drm_dp_sideband_msg_tx *msg, int port_n > number_sdp_streams); > drm_dp_encode_sideband_req(&req, msg); > msg->path_msg = true; > - return 0; > } > > -static int build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, > +static void build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, > int port_num, bool power_up) > { > struct drm_dp_sideband_msg_req_body req; > @@ -1078,7 +1071,6 @@ static int build_power_updown_phy(struct drm_dp_sideband_msg_tx *msg, > req.u.port_num.port_number = port_num; > drm_dp_encode_sideband_req(&req, msg); > msg->path_msg = true; > - return 0; > } > > static int drm_dp_mst_assign_payload_id(struct drm_dp_mst_topology_mgr *mgr, > @@ -1744,14 +1736,13 @@ static u8 drm_dp_calculate_rad(struct drm_dp_mst_port *port, > */ > static bool drm_dp_port_setup_pdt(struct drm_dp_mst_port *port) > { > - int ret; > u8 rad[6], lct; > bool send_link = false; > switch (port->pdt) { > case DP_PEER_DEVICE_DP_LEGACY_CONV: > case DP_PEER_DEVICE_SST_SINK: > /* add i2c over sideband */ > - ret = drm_dp_mst_register_i2c_bus(&port->aux); > + drm_dp_mst_register_i2c_bus(&port->aux); > break; > case DP_PEER_DEVICE_MST_BRANCHING: > lct = drm_dp_calculate_rad(port, rad); > @@ -1821,25 +1812,20 @@ ssize_t drm_dp_mst_dpcd_write(struct drm_dp_aux *aux, > > static void drm_dp_check_mstb_guid(struct drm_dp_mst_branch *mstb, u8 *guid) > { > - int ret; > - > memcpy(mstb->guid, guid, 16); > > if (!drm_dp_validate_guid(mstb->mgr, mstb->guid)) { > if (mstb->port_parent) { > - ret = drm_dp_send_dpcd_write( > - mstb->mgr, > - mstb->port_parent, > - DP_GUID, > - 16, > - mstb->guid); > + drm_dp_send_dpcd_write(mstb->mgr, > + mstb->port_parent, > + DP_GUID, > + 16, > + mstb->guid); > } else { > - > - ret = drm_dp_dpcd_write( > - mstb->mgr->aux, > - DP_GUID, > - mstb->guid, > - 16); > + drm_dp_dpcd_write(mstb->mgr->aux, > + DP_GUID, > + mstb->guid, > + 16); > } > } > } > @@ -2195,7 +2181,7 @@ static bool drm_dp_validate_guid(struct drm_dp_mst_topology_mgr *mgr, > return false; > } > > -static int build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes) > +static void build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 offset, u8 num_bytes) > { > struct drm_dp_sideband_msg_req_body req; > > @@ -2204,8 +2190,6 @@ static int build_dpcd_read(struct drm_dp_sideband_msg_tx *msg, u8 port_num, u32 > req.u.dpcd_read.dpcd_address = offset; > req.u.dpcd_read.num_bytes = num_bytes; > drm_dp_encode_sideband_req(&req, msg); > - > - return 0; > } > > static int drm_dp_send_sideband_msg(struct drm_dp_mst_topology_mgr *mgr, > @@ -2427,14 +2411,14 @@ static void drm_dp_send_link_address(struct drm_dp_mst_topology_mgr *mgr, > { > struct drm_dp_sideband_msg_tx *txmsg; > struct drm_dp_link_address_ack_reply *reply; > - int i, len, ret; > + int i, ret; > > txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); > if (!txmsg) > return; > > txmsg->dst = mstb; > - len = build_link_address(txmsg); > + build_link_address(txmsg); > > mstb->link_address_sent = true; > drm_dp_queue_down_tx(mgr, txmsg); > @@ -2476,7 +2460,6 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, > { > struct drm_dp_enum_path_resources_ack_reply *path_res; > struct drm_dp_sideband_msg_tx *txmsg; > - int len; > int ret; > > txmsg = kzalloc(sizeof(*txmsg), GFP_KERNEL); > @@ -2484,7 +2467,7 @@ drm_dp_send_enum_path_resources(struct drm_dp_mst_topology_mgr *mgr, > return -ENOMEM; > > txmsg->dst = mstb; > - len = build_enum_path_resources(txmsg, port->port_num); > + build_enum_path_resources(txmsg, port->port_num); > > drm_dp_queue_down_tx(mgr, txmsg); > > @@ -2567,7 +2550,7 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr, > { > struct drm_dp_sideband_msg_tx *txmsg; > struct drm_dp_mst_branch *mstb; > - int len, ret, port_num; > + int ret, port_num; > u8 sinks[DRM_DP_MAX_SDP_STREAMS]; > int i; > > @@ -2592,9 +2575,9 @@ static int drm_dp_payload_send_msg(struct drm_dp_mst_topology_mgr *mgr, > sinks[i] = i; > > txmsg->dst = mstb; > - len = build_allocate_payload(txmsg, port_num, > - id, > - pbn, port->num_sdp_streams, sinks); > + build_allocate_payload(txmsg, port_num, > + id, > + pbn, port->num_sdp_streams, sinks); > > drm_dp_queue_down_tx(mgr, txmsg); > > @@ -2623,7 +2606,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr, > struct drm_dp_mst_port *port, bool power_up) > { > struct drm_dp_sideband_msg_tx *txmsg; > - int len, ret; > + int ret; > > port = drm_dp_mst_topology_get_port_validated(mgr, port); > if (!port) > @@ -2636,7 +2619,7 @@ int drm_dp_send_power_updown_phy(struct drm_dp_mst_topology_mgr *mgr, > } > > txmsg->dst = port->parent; > - len = build_power_updown_phy(txmsg, port->port_num, power_up); > + build_power_updown_phy(txmsg, port->port_num, power_up); > drm_dp_queue_down_tx(mgr, txmsg); > > ret = drm_dp_mst_wait_tx_reply(port->parent, txmsg); > @@ -2856,7 +2839,6 @@ static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr, > struct drm_dp_mst_port *port, > int offset, int size, u8 *bytes) > { > - int len; > int ret = 0; > struct drm_dp_sideband_msg_tx *txmsg; > struct drm_dp_mst_branch *mstb; > @@ -2871,7 +2853,7 @@ static int drm_dp_send_dpcd_read(struct drm_dp_mst_topology_mgr *mgr, > goto fail_put; > } > > - len = build_dpcd_read(txmsg, port->port_num, offset, size); > + build_dpcd_read(txmsg, port->port_num, offset, size); > txmsg->dst = port->parent; > > drm_dp_queue_down_tx(mgr, txmsg); > @@ -2909,7 +2891,6 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, > struct drm_dp_mst_port *port, > int offset, int size, u8 *bytes) > { > - int len; > int ret; > struct drm_dp_sideband_msg_tx *txmsg; > struct drm_dp_mst_branch *mstb; > @@ -2924,7 +2905,7 @@ static int drm_dp_send_dpcd_write(struct drm_dp_mst_topology_mgr *mgr, > goto fail_put; > } > > - len = build_dpcd_write(txmsg, port->port_num, offset, size, bytes); > + build_dpcd_write(txmsg, port->port_num, offset, size, bytes); > txmsg->dst = mstb; > > drm_dp_queue_down_tx(mgr, txmsg); > @@ -3147,7 +3128,7 @@ static bool drm_dp_get_one_sb_msg(struct drm_dp_mst_topology_mgr *mgr, bool up) > { > int len; > u8 replyblock[32]; > - int replylen, origlen, curreply; > + int replylen, curreply; > int ret; > struct drm_dp_sideband_msg_rx *msg; > int basereg = up ? DP_SIDEBAND_MSG_UP_REQ_BASE : DP_SIDEBAND_MSG_DOWN_REP_BASE; > @@ -3167,7 +3148,6 @@ static bool drm_dp_get_one_sb_msg(struct drm_dp_mst_topology_mgr *mgr, bool up) > } > replylen = msg->curchunk_len + msg->curchunk_hdrlen; > > - origlen = replylen; > replylen -= len; > curreply = len; > while (replylen > 0) { > @@ -3959,17 +3939,16 @@ void drm_dp_mst_dump_topology(struct seq_file *m, > mutex_lock(&mgr->lock); > if (mgr->mst_primary) { > u8 buf[DP_PAYLOAD_TABLE_SIZE]; > - int ret; > > - ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE); > + drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE); > seq_printf(m, "dpcd: %*ph\n", DP_RECEIVER_CAP_SIZE, buf); > - ret = drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2); > + drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2); > seq_printf(m, "faux/mst: %*ph\n", 2, buf); > - ret = drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1); > + drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1); > seq_printf(m, "mst ctrl: %*ph\n", 1, buf); > > /* dump the standard OUI branch header */ > - ret = drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE); > + drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE); > seq_printf(m, "branch oui: %*phN devid: ", 3, buf); > for (i = 0x3; i < 0x8 && buf[i]; i++) > seq_printf(m, "%c", buf[i]); -- Jani Nikula, Intel Open Source Graphics Center