From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Gaignard Subject: [PATCH v2] drm/dp_mst: Fix W=1 warnings Date: Thu, 28 Nov 2019 12:00:12 +0100 Message-ID: <20191128110012.23898-1-benjamin.gaignard@st.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: 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 , Jani Nikula List-Id: dri-devel@lists.freedesktop.org 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 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]); -- 2.15.0 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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 2E483C432C0 for ; Sat, 30 Nov 2019 13:24:01 +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 D1B4F2073C for ; Sat, 30 Nov 2019 13:24:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D1B4F2073C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=st.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 227FB6E0ED; Sat, 30 Nov 2019 13:24:00 +0000 (UTC) Received: from mx07-00178001.pphosted.com (mx07-00178001.pphosted.com [62.209.51.94]) by gabe.freedesktop.org (Postfix) with ESMTPS id F1E2F6E7AC for ; Thu, 28 Nov 2019 11:00:30 +0000 (UTC) Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xASAq4aw023223; Thu, 28 Nov 2019 12:00:20 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2whcxks8mc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 28 Nov 2019 12:00:20 +0100 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 6753C10002A; Thu, 28 Nov 2019 12:00:16 +0100 (CET) Received: from Webmail-eu.st.com (sfhdag3node3.st.com [10.75.127.9]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 31E532B11E2; Thu, 28 Nov 2019 12:00:16 +0100 (CET) Received: from localhost (10.75.127.47) by SFHDAG3NODE3.st.com (10.75.127.9) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Thu, 28 Nov 2019 12:00:15 +0100 From: Benjamin Gaignard To: , , , , Subject: [PATCH v2] drm/dp_mst: Fix W=1 warnings Date: Thu, 28 Nov 2019 12:00:12 +0100 Message-ID: <20191128110012.23898-1-benjamin.gaignard@st.com> X-Mailer: git-send-email 2.15.0 MIME-Version: 1.0 X-Originating-IP: [10.75.127.47] X-ClientProxiedBy: SFHDAG7NODE1.st.com (10.75.127.19) To SFHDAG3NODE3.st.com (10.75.127.9) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-11-28_01:2019-11-28,2019-11-28 signatures=0 X-Mailman-Approved-At: Sat, 30 Nov 2019 13:23:59 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=STMicroelectronics; bh=YlvngK0gfmo41ZPgYNmQ5FeUoDq2NlVbgxbpkAXqaNo=; b=g+PBel5CcX28hOwSErBElntV7lIrjG+ImRaFZ/DcosdQWmLQa1wYF8wMdMTXXLxh8XK+ LkW4iImv5f/JCPZQrARr5/V8I4k5ARI+P6RRaIlbLO7uDMBE2p4eASawAx6sxf6KZgd9 lGgiaNJbL6CxItNeuSbAYVw/zEFE/WS0x3wtehG6OV7eSmN407na6kiKZja7TisHYQci vUGP69CrjA4to8oPnWPb+srmmZOiXEvl1aD9HiKCUF5m1gDKP0cYhrw2D3ISH5A1LH24 BByv03/I1nrsxRea6jCBwt/kkD0oUMN3eSSx1XTLWH7H0FXUisgoRon83q5xGuxHopvB Yg== 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: <20191128110012.Pik_rlT6VmgjdkXFXZ9JDwigrUvaMzMiCsLzpPvkaV8@z> Rml4IHRoZSB3YXJuaW5ncyB0aGF0IHNob3cgdXAgd2l0aCBXPTEuClRoZXkgYXJlIGFsbCBhYm91 dCB1bnVzZWQgYnV0IHNldCB2YXJpYWJsZXMuCklmIGZ1bmN0aW9ucyByZXR1cm5zIGFyZSBub3Qg dXNlZCBhbnltb3JlIG1ha2UgdGhlbSB2b2lkLgoKU2lnbmVkLW9mZi1ieTogQmVuamFtaW4gR2Fp Z25hcmQgPGJlbmphbWluLmdhaWduYXJkQHN0LmNvbT4KQ0M6IEphbmkgTmlrdWxhIDxqYW5pLm5p a3VsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQpjaGFuZ2VzIGluIHZlcnNpb24gMjoKLSBmaXggaW5k ZW50YXRpb25zCi0gd2hlbiBwb3NzaWJsZSBjaGFuZ2UgZnVuY3Rpb25zIHByb3RvdHlwZSB0byB2 b2lkCgpOb3RlOiB0aGlzIHBhdGNoIG1heSBjb25mbGljdCB3aXRoIGM0ODVlMmM5N2RhZSAoImRy bS9kcF9tc3Q6IFJlZmFjdG9yIHBkdApzZXR1cC90ZWFyZG93biwgYWRkIG1vcmUgbG9ja2luZyIp IHdoZW4gaXQgd2lsbCBoaXQgZHJtLW1pc2MtbmV4dAoKIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHBf bXN0X3RvcG9sb2d5LmMgfCA4MyArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCmluZGV4IGI4NTRhNDIyYTUyMy4uZmYyZDgxZGIw Nzc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKQEAgLTY3Miw3ICs2NzIs NiBAQCBzdGF0aWMgYm9vbCBkcm1fZHBfc2lkZWJhbmRfbXNnX2J1aWxkKHN0cnVjdCBkcm1fZHBf c2lkZWJhbmRfbXNnX3J4ICptc2csCiAJCQkJICAgICAgdTggKnJlcGx5YnVmLCB1OCByZXBseWJ1 ZmxlbiwgYm9vbCBoZHIpCiB7CiAJaW50IHJldDsKLQl1OCBjcmM0OwogCiAJaWYgKGhkcikgewog CQl1OCBoZHJsZW47CkBAIC03MTQsOCArNzEzLDYgQEAgc3RhdGljIGJvb2wgZHJtX2RwX3NpZGVi YW5kX21zZ19idWlsZChzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yeCAqbXNnLAogCX0KIAog CWlmIChtc2ctPmN1cmNodW5rX2lkeCA+PSBtc2ctPmN1cmNodW5rX2xlbikgewotCQkvKiBkbyBD UkMgKi8KLQkJY3JjNCA9IGRybV9kcF9tc2dfZGF0YV9jcmM0KG1zZy0+Y2h1bmssIG1zZy0+Y3Vy Y2h1bmtfbGVuIC0gMSk7CiAJCS8qIGNvcHkgY2h1bmsgaW50byBiaWdnZXIgbXNnICovCiAJCW1l bWNweSgmbXNnLT5tc2dbbXNnLT5jdXJsZW5dLCBtc2ctPmNodW5rLCBtc2ctPmN1cmNodW5rX2xl biAtIDEpOwogCQltc2ctPmN1cmxlbiArPSBtc2ctPmN1cmNodW5rX2xlbiAtIDE7CkBAIC0xMDEy LDcgKzEwMDksNyBAQCBzdGF0aWMgYm9vbCBkcm1fZHBfc2lkZWJhbmRfcGFyc2VfcmVxKHN0cnVj dCBkcm1fZHBfc2lkZWJhbmRfbXNnX3J4ICpyYXcsCiAJfQogfQogCi1zdGF0aWMgaW50IGJ1aWxk X2RwY2Rfd3JpdGUoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZywgdTggcG9ydF9u dW0sIHUzMiBvZmZzZXQsIHU4IG51bV9ieXRlcywgdTggKmJ5dGVzKQorc3RhdGljIHZvaWQgYnVp bGRfZHBjZF93cml0ZShzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAqbXNnLCB1OCBwb3J0 X251bSwgdTMyIG9mZnNldCwgdTggbnVtX2J5dGVzLCB1OCAqYnl0ZXMpCiB7CiAJc3RydWN0IGRy bV9kcF9zaWRlYmFuZF9tc2dfcmVxX2JvZHkgcmVxOwogCkBAIC0xMDIyLDE3ICsxMDE5LDE0IEBA IHN0YXRpYyBpbnQgYnVpbGRfZHBjZF93cml0ZShzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190 eCAqbXNnLCB1OCBwb3J0X251bSwgdTMyCiAJcmVxLnUuZHBjZF93cml0ZS5udW1fYnl0ZXMgPSBu dW1fYnl0ZXM7CiAJcmVxLnUuZHBjZF93cml0ZS5ieXRlcyA9IGJ5dGVzOwogCWRybV9kcF9lbmNv ZGVfc2lkZWJhbmRfcmVxKCZyZXEsIG1zZyk7Ci0KLQlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dCBidWlsZF9saW5rX2FkZHJlc3Moc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZykK K3N0YXRpYyB2b2lkIGJ1aWxkX2xpbmtfYWRkcmVzcyhzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21z Z190eCAqbXNnKQogewogCXN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5IHJlcTsK IAogCXJlcS5yZXFfdHlwZSA9IERQX0xJTktfQUREUkVTUzsKIAlkcm1fZHBfZW5jb2RlX3NpZGVi YW5kX3JlcSgmcmVxLCBtc2cpOwotCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGJ1aWxkX2Vu dW1fcGF0aF9yZXNvdXJjZXMoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZywgaW50 IHBvcnRfbnVtKQpAQCAtMTA0Niw3ICsxMDQwLDcgQEAgc3RhdGljIGludCBidWlsZF9lbnVtX3Bh dGhfcmVzb3VyY2VzKHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4ICptc2csIGludCBwb3IK IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBidWlsZF9hbGxvY2F0ZV9wYXlsb2FkKHN0cnVj dCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4ICptc2csIGludCBwb3J0X251bSwKK3N0YXRpYyB2b2lk IGJ1aWxkX2FsbG9jYXRlX3BheWxvYWQoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1z ZywgaW50IHBvcnRfbnVtLAogCQkJCSAgdTggdmNwaSwgdWludDE2X3QgcGJuLAogCQkJCSAgdTgg bnVtYmVyX3NkcF9zdHJlYW1zLAogCQkJCSAgdTggKnNkcF9zdHJlYW1fc2luaykKQEAgLTEwNjIs MTAgKzEwNTYsOSBAQCBzdGF0aWMgaW50IGJ1aWxkX2FsbG9jYXRlX3BheWxvYWQoc3RydWN0IGRy bV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZywgaW50IHBvcnRfbgogCQkgICBudW1iZXJfc2RwX3N0 cmVhbXMpOwogCWRybV9kcF9lbmNvZGVfc2lkZWJhbmRfcmVxKCZyZXEsIG1zZyk7CiAJbXNnLT5w YXRoX21zZyA9IHRydWU7Ci0JcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYnVpbGRfcG93ZXJf dXBkb3duX3BoeShzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAqbXNnLAorc3RhdGljIHZv aWQgYnVpbGRfcG93ZXJfdXBkb3duX3BoeShzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190eCAq bXNnLAogCQkJCSAgaW50IHBvcnRfbnVtLCBib29sIHBvd2VyX3VwKQogewogCXN0cnVjdCBkcm1f ZHBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5IHJlcTsKQEAgLTEwNzgsNyArMTA3MSw2IEBAIHN0YXRp YyBpbnQgYnVpbGRfcG93ZXJfdXBkb3duX3BoeShzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ190 eCAqbXNnLAogCXJlcS51LnBvcnRfbnVtLnBvcnRfbnVtYmVyID0gcG9ydF9udW07CiAJZHJtX2Rw X2VuY29kZV9zaWRlYmFuZF9yZXEoJnJlcSwgbXNnKTsKIAltc2ctPnBhdGhfbXNnID0gdHJ1ZTsK LQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBkcm1fZHBfbXN0X2Fzc2lnbl9wYXlsb2FkX2lk KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLApAQCAtMTc0NCwxNCArMTczNiwx MyBAQCBzdGF0aWMgdTggZHJtX2RwX2NhbGN1bGF0ZV9yYWQoc3RydWN0IGRybV9kcF9tc3RfcG9y dCAqcG9ydCwKICAqLwogc3RhdGljIGJvb2wgZHJtX2RwX3BvcnRfc2V0dXBfcGR0KHN0cnVjdCBk cm1fZHBfbXN0X3BvcnQgKnBvcnQpCiB7Ci0JaW50IHJldDsKIAl1OCByYWRbNl0sIGxjdDsKIAli b29sIHNlbmRfbGluayA9IGZhbHNlOwogCXN3aXRjaCAocG9ydC0+cGR0KSB7CiAJY2FzZSBEUF9Q RUVSX0RFVklDRV9EUF9MRUdBQ1lfQ09OVjoKIAljYXNlIERQX1BFRVJfREVWSUNFX1NTVF9TSU5L OgogCQkvKiBhZGQgaTJjIG92ZXIgc2lkZWJhbmQgKi8KLQkJcmV0ID0gZHJtX2RwX21zdF9yZWdp c3Rlcl9pMmNfYnVzKCZwb3J0LT5hdXgpOworCQlkcm1fZHBfbXN0X3JlZ2lzdGVyX2kyY19idXMo JnBvcnQtPmF1eCk7CiAJCWJyZWFrOwogCWNhc2UgRFBfUEVFUl9ERVZJQ0VfTVNUX0JSQU5DSElO RzoKIAkJbGN0ID0gZHJtX2RwX2NhbGN1bGF0ZV9yYWQocG9ydCwgcmFkKTsKQEAgLTE4MjEsMjUg KzE4MTIsMjAgQEAgc3NpemVfdCBkcm1fZHBfbXN0X2RwY2Rfd3JpdGUoc3RydWN0IGRybV9kcF9h dXggKmF1eCwKIAogc3RhdGljIHZvaWQgZHJtX2RwX2NoZWNrX21zdGJfZ3VpZChzdHJ1Y3QgZHJt X2RwX21zdF9icmFuY2ggKm1zdGIsIHU4ICpndWlkKQogewotCWludCByZXQ7Ci0KIAltZW1jcHko bXN0Yi0+Z3VpZCwgZ3VpZCwgMTYpOwogCiAJaWYgKCFkcm1fZHBfdmFsaWRhdGVfZ3VpZChtc3Ri LT5tZ3IsIG1zdGItPmd1aWQpKSB7CiAJCWlmIChtc3RiLT5wb3J0X3BhcmVudCkgewotCQkJcmV0 ID0gZHJtX2RwX3NlbmRfZHBjZF93cml0ZSgKLQkJCQkJbXN0Yi0+bWdyLAotCQkJCQltc3RiLT5w b3J0X3BhcmVudCwKLQkJCQkJRFBfR1VJRCwKLQkJCQkJMTYsCi0JCQkJCW1zdGItPmd1aWQpOwor CQkJZHJtX2RwX3NlbmRfZHBjZF93cml0ZShtc3RiLT5tZ3IsCisJCQkJCSAgICAgICBtc3RiLT5w b3J0X3BhcmVudCwKKwkJCQkJICAgICAgIERQX0dVSUQsCisJCQkJCSAgICAgICAxNiwKKwkJCQkJ ICAgICAgIG1zdGItPmd1aWQpOwogCQl9IGVsc2UgewotCi0JCQlyZXQgPSBkcm1fZHBfZHBjZF93 cml0ZSgKLQkJCQkJbXN0Yi0+bWdyLT5hdXgsCi0JCQkJCURQX0dVSUQsCi0JCQkJCW1zdGItPmd1 aWQsCi0JCQkJCTE2KTsKKwkJCWRybV9kcF9kcGNkX3dyaXRlKG1zdGItPm1nci0+YXV4LAorCQkJ CQkgIERQX0dVSUQsCisJCQkJCSAgbXN0Yi0+Z3VpZCwKKwkJCQkJICAxNik7CiAJCX0KIAl9CiB9 CkBAIC0yMTk1LDcgKzIxODEsNyBAQCBzdGF0aWMgYm9vbCBkcm1fZHBfdmFsaWRhdGVfZ3VpZChz dHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAlyZXR1cm4gZmFsc2U7CiB9CiAK LXN0YXRpYyBpbnQgYnVpbGRfZHBjZF9yZWFkKHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4 ICptc2csIHU4IHBvcnRfbnVtLCB1MzIgb2Zmc2V0LCB1OCBudW1fYnl0ZXMpCitzdGF0aWMgdm9p ZCBidWlsZF9kcGNkX3JlYWQoc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKm1zZywgdTgg cG9ydF9udW0sIHUzMiBvZmZzZXQsIHU4IG51bV9ieXRlcykKIHsKIAlzdHJ1Y3QgZHJtX2RwX3Np ZGViYW5kX21zZ19yZXFfYm9keSByZXE7CiAKQEAgLTIyMDQsOCArMjE5MCw2IEBAIHN0YXRpYyBp bnQgYnVpbGRfZHBjZF9yZWFkKHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4ICptc2csIHU4 IHBvcnRfbnVtLCB1MzIKIAlyZXEudS5kcGNkX3JlYWQuZHBjZF9hZGRyZXNzID0gb2Zmc2V0Owog CXJlcS51LmRwY2RfcmVhZC5udW1fYnl0ZXMgPSBudW1fYnl0ZXM7CiAJZHJtX2RwX2VuY29kZV9z aWRlYmFuZF9yZXEoJnJlcSwgbXNnKTsKLQotCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGRy bV9kcF9zZW5kX3NpZGViYW5kX21zZyhzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1n ciwKQEAgLTI0MjcsMTQgKzI0MTEsMTQgQEAgc3RhdGljIHZvaWQgZHJtX2RwX3NlbmRfbGlua19h ZGRyZXNzKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogewogCXN0cnVjdCBk cm1fZHBfc2lkZWJhbmRfbXNnX3R4ICp0eG1zZzsKIAlzdHJ1Y3QgZHJtX2RwX2xpbmtfYWRkcmVz c19hY2tfcmVwbHkgKnJlcGx5OwotCWludCBpLCBsZW4sIHJldDsKKwlpbnQgaSwgcmV0OwogCiAJ dHhtc2cgPSBremFsbG9jKHNpemVvZigqdHhtc2cpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXR4bXNn KQogCQlyZXR1cm47CiAKIAl0eG1zZy0+ZHN0ID0gbXN0YjsKLQlsZW4gPSBidWlsZF9saW5rX2Fk ZHJlc3ModHhtc2cpOworCWJ1aWxkX2xpbmtfYWRkcmVzcyh0eG1zZyk7CiAKIAltc3RiLT5saW5r X2FkZHJlc3Nfc2VudCA9IHRydWU7CiAJZHJtX2RwX3F1ZXVlX2Rvd25fdHgobWdyLCB0eG1zZyk7 CkBAIC0yNDc2LDcgKzI0NjAsNiBAQCBkcm1fZHBfc2VuZF9lbnVtX3BhdGhfcmVzb3VyY2VzKHN0 cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogewogCXN0cnVjdCBkcm1fZHBfZW51 bV9wYXRoX3Jlc291cmNlc19hY2tfcmVwbHkgKnBhdGhfcmVzOwogCXN0cnVjdCBkcm1fZHBfc2lk ZWJhbmRfbXNnX3R4ICp0eG1zZzsKLQlpbnQgbGVuOwogCWludCByZXQ7CiAKIAl0eG1zZyA9IGt6 YWxsb2Moc2l6ZW9mKCp0eG1zZyksIEdGUF9LRVJORUwpOwpAQCAtMjQ4NCw3ICsyNDY3LDcgQEAg ZHJtX2RwX3NlbmRfZW51bV9wYXRoX3Jlc291cmNlcyhzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3IgKm1nciwKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAl0eG1zZy0+ZHN0ID0gbXN0YjsKLQls ZW4gPSBidWlsZF9lbnVtX3BhdGhfcmVzb3VyY2VzKHR4bXNnLCBwb3J0LT5wb3J0X251bSk7CisJ YnVpbGRfZW51bV9wYXRoX3Jlc291cmNlcyh0eG1zZywgcG9ydC0+cG9ydF9udW0pOwogCiAJZHJt X2RwX3F1ZXVlX2Rvd25fdHgobWdyLCB0eG1zZyk7CiAKQEAgLTI1NjcsNyArMjU1MCw3IEBAIHN0 YXRpYyBpbnQgZHJtX2RwX3BheWxvYWRfc2VuZF9tc2coc3RydWN0IGRybV9kcF9tc3RfdG9wb2xv Z3lfbWdyICptZ3IsCiB7CiAJc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKnR4bXNnOwog CXN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YjsKLQlpbnQgbGVuLCByZXQsIHBvcnRfbnVt OworCWludCByZXQsIHBvcnRfbnVtOwogCXU4IHNpbmtzW0RSTV9EUF9NQVhfU0RQX1NUUkVBTVNd OwogCWludCBpOwogCkBAIC0yNTkyLDkgKzI1NzUsOSBAQCBzdGF0aWMgaW50IGRybV9kcF9wYXls b2FkX3NlbmRfbXNnKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCQlzaW5r c1tpXSA9IGk7CiAKIAl0eG1zZy0+ZHN0ID0gbXN0YjsKLQlsZW4gPSBidWlsZF9hbGxvY2F0ZV9w YXlsb2FkKHR4bXNnLCBwb3J0X251bSwKLQkJCQkgICAgIGlkLAotCQkJCSAgICAgcGJuLCBwb3J0 LT5udW1fc2RwX3N0cmVhbXMsIHNpbmtzKTsKKwlidWlsZF9hbGxvY2F0ZV9wYXlsb2FkKHR4bXNn LCBwb3J0X251bSwKKwkJCSAgICAgICBpZCwKKwkJCSAgICAgICBwYm4sIHBvcnQtPm51bV9zZHBf c3RyZWFtcywgc2lua3MpOwogCiAJZHJtX2RwX3F1ZXVlX2Rvd25fdHgobWdyLCB0eG1zZyk7CiAK QEAgLTI2MjMsNyArMjYwNiw3IEBAIGludCBkcm1fZHBfc2VuZF9wb3dlcl91cGRvd25fcGh5KHN0 cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCQkJCSBzdHJ1Y3QgZHJtX2RwX21z dF9wb3J0ICpwb3J0LCBib29sIHBvd2VyX3VwKQogewogCXN0cnVjdCBkcm1fZHBfc2lkZWJhbmRf bXNnX3R4ICp0eG1zZzsKLQlpbnQgbGVuLCByZXQ7CisJaW50IHJldDsKIAogCXBvcnQgPSBkcm1f ZHBfbXN0X3RvcG9sb2d5X2dldF9wb3J0X3ZhbGlkYXRlZChtZ3IsIHBvcnQpOwogCWlmICghcG9y dCkKQEAgLTI2MzYsNyArMjYxOSw3IEBAIGludCBkcm1fZHBfc2VuZF9wb3dlcl91cGRvd25fcGh5 KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCX0KIAogCXR4bXNnLT5kc3Qg PSBwb3J0LT5wYXJlbnQ7Ci0JbGVuID0gYnVpbGRfcG93ZXJfdXBkb3duX3BoeSh0eG1zZywgcG9y dC0+cG9ydF9udW0sIHBvd2VyX3VwKTsKKwlidWlsZF9wb3dlcl91cGRvd25fcGh5KHR4bXNnLCBw b3J0LT5wb3J0X251bSwgcG93ZXJfdXApOwogCWRybV9kcF9xdWV1ZV9kb3duX3R4KG1nciwgdHht c2cpOwogCiAJcmV0ID0gZHJtX2RwX21zdF93YWl0X3R4X3JlcGx5KHBvcnQtPnBhcmVudCwgdHht c2cpOwpAQCAtMjg1Niw3ICsyODM5LDYgQEAgc3RhdGljIGludCBkcm1fZHBfc2VuZF9kcGNkX3Jl YWQoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJIHN0cnVjdCBkcm1f ZHBfbXN0X3BvcnQgKnBvcnQsCiAJCQkJIGludCBvZmZzZXQsIGludCBzaXplLCB1OCAqYnl0ZXMp CiB7Ci0JaW50IGxlbjsKIAlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21z Z190eCAqdHhtc2c7CiAJc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiOwpAQCAtMjg3MSw3 ICsyODUzLDcgQEAgc3RhdGljIGludCBkcm1fZHBfc2VuZF9kcGNkX3JlYWQoc3RydWN0IGRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCWdvdG8gZmFpbF9wdXQ7CiAJfQogCi0JbGVuID0g YnVpbGRfZHBjZF9yZWFkKHR4bXNnLCBwb3J0LT5wb3J0X251bSwgb2Zmc2V0LCBzaXplKTsKKwli dWlsZF9kcGNkX3JlYWQodHhtc2csIHBvcnQtPnBvcnRfbnVtLCBvZmZzZXQsIHNpemUpOwogCXR4 bXNnLT5kc3QgPSBwb3J0LT5wYXJlbnQ7CiAKIAlkcm1fZHBfcXVldWVfZG93bl90eChtZ3IsIHR4 bXNnKTsKQEAgLTI5MDksNyArMjg5MSw2IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3NlbmRfZHBjZF93 cml0ZShzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKIAkJCQkgIHN0cnVjdCBk cm1fZHBfbXN0X3BvcnQgKnBvcnQsCiAJCQkJICBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdTggKmJ5 dGVzKQogewotCWludCBsZW47CiAJaW50IHJldDsKIAlzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21z Z190eCAqdHhtc2c7CiAJc3RydWN0IGRybV9kcF9tc3RfYnJhbmNoICptc3RiOwpAQCAtMjkyNCw3 ICsyOTA1LDcgQEAgc3RhdGljIGludCBkcm1fZHBfc2VuZF9kcGNkX3dyaXRlKHN0cnVjdCBkcm1f ZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCQlnb3RvIGZhaWxfcHV0OwogCX0KIAotCWxlbiA9 IGJ1aWxkX2RwY2Rfd3JpdGUodHhtc2csIHBvcnQtPnBvcnRfbnVtLCBvZmZzZXQsIHNpemUsIGJ5 dGVzKTsKKwlidWlsZF9kcGNkX3dyaXRlKHR4bXNnLCBwb3J0LT5wb3J0X251bSwgb2Zmc2V0LCBz aXplLCBieXRlcyk7CiAJdHhtc2ctPmRzdCA9IG1zdGI7CiAKIAlkcm1fZHBfcXVldWVfZG93bl90 eChtZ3IsIHR4bXNnKTsKQEAgLTMxNDcsNyArMzEyOCw3IEBAIHN0YXRpYyBib29sIGRybV9kcF9n ZXRfb25lX3NiX21zZyhzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwgYm9vbCB1 cCkKIHsKIAlpbnQgbGVuOwogCXU4IHJlcGx5YmxvY2tbMzJdOwotCWludCByZXBseWxlbiwgb3Jp Z2xlbiwgY3VycmVwbHk7CisJaW50IHJlcGx5bGVuLCBjdXJyZXBseTsKIAlpbnQgcmV0OwogCXN0 cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3J4ICptc2c7CiAJaW50IGJhc2VyZWcgPSB1cCA/IERQ X1NJREVCQU5EX01TR19VUF9SRVFfQkFTRSA6IERQX1NJREVCQU5EX01TR19ET1dOX1JFUF9CQVNF OwpAQCAtMzE2Nyw3ICszMTQ4LDYgQEAgc3RhdGljIGJvb2wgZHJtX2RwX2dldF9vbmVfc2JfbXNn KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLCBib29sIHVwKQogCX0KIAlyZXBs eWxlbiA9IG1zZy0+Y3VyY2h1bmtfbGVuICsgbXNnLT5jdXJjaHVua19oZHJsZW47CiAKLQlvcmln bGVuID0gcmVwbHlsZW47CiAJcmVwbHlsZW4gLT0gbGVuOwogCWN1cnJlcGx5ID0gbGVuOwogCXdo aWxlIChyZXBseWxlbiA+IDApIHsKQEAgLTM5NTksMTcgKzM5MzksMTYgQEAgdm9pZCBkcm1fZHBf bXN0X2R1bXBfdG9wb2xvZ3koc3RydWN0IHNlcV9maWxlICptLAogCW11dGV4X2xvY2soJm1nci0+ bG9jayk7CiAJaWYgKG1nci0+bXN0X3ByaW1hcnkpIHsKIAkJdTggYnVmW0RQX1BBWUxPQURfVEFC TEVfU0laRV07Ci0JCWludCByZXQ7CiAKLQkJcmV0ID0gZHJtX2RwX2RwY2RfcmVhZChtZ3ItPmF1 eCwgRFBfRFBDRF9SRVYsIGJ1ZiwgRFBfUkVDRUlWRVJfQ0FQX1NJWkUpOworCQlkcm1fZHBfZHBj ZF9yZWFkKG1nci0+YXV4LCBEUF9EUENEX1JFViwgYnVmLCBEUF9SRUNFSVZFUl9DQVBfU0laRSk7 CiAJCXNlcV9wcmludGYobSwgImRwY2Q6ICUqcGhcbiIsIERQX1JFQ0VJVkVSX0NBUF9TSVpFLCBi dWYpOwotCQlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKG1nci0+YXV4LCBEUF9GQVVYX0NBUCwgYnVm LCAyKTsKKwkJZHJtX2RwX2RwY2RfcmVhZChtZ3ItPmF1eCwgRFBfRkFVWF9DQVAsIGJ1ZiwgMik7 CiAJCXNlcV9wcmludGYobSwgImZhdXgvbXN0OiAlKnBoXG4iLCAyLCBidWYpOwotCQlyZXQgPSBk cm1fZHBfZHBjZF9yZWFkKG1nci0+YXV4LCBEUF9NU1RNX0NUUkwsIGJ1ZiwgMSk7CisJCWRybV9k cF9kcGNkX3JlYWQobWdyLT5hdXgsIERQX01TVE1fQ1RSTCwgYnVmLCAxKTsKIAkJc2VxX3ByaW50 ZihtLCAibXN0IGN0cmw6ICUqcGhcbiIsIDEsIGJ1Zik7CiAKIAkJLyogZHVtcCB0aGUgc3RhbmRh cmQgT1VJIGJyYW5jaCBoZWFkZXIgKi8KLQkJcmV0ID0gZHJtX2RwX2RwY2RfcmVhZChtZ3ItPmF1 eCwgRFBfQlJBTkNIX09VSSwgYnVmLCBEUF9CUkFOQ0hfT1VJX0hFQURFUl9TSVpFKTsKKwkJZHJt X2RwX2RwY2RfcmVhZChtZ3ItPmF1eCwgRFBfQlJBTkNIX09VSSwgYnVmLCBEUF9CUkFOQ0hfT1VJ X0hFQURFUl9TSVpFKTsKIAkJc2VxX3ByaW50ZihtLCAiYnJhbmNoIG91aTogJSpwaE4gZGV2aWQ6 ICIsIDMsIGJ1Zik7CiAJCWZvciAoaSA9IDB4MzsgaSA8IDB4OCAmJiBidWZbaV07IGkrKykKIAkJ CXNlcV9wcmludGYobSwgIiVjIiwgYnVmW2ldKTsKLS0gCjIuMTUuMAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs 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=-9.8 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,URIBL_BLOCKED,USER_AGENT_GIT 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 4A00BC432C0 for ; Thu, 28 Nov 2019 11:00:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0B810217BC for ; Thu, 28 Nov 2019 11:00:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=st.com header.i=@st.com header.b="g+PBel5C" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727300AbfK1LAl (ORCPT ); Thu, 28 Nov 2019 06:00:41 -0500 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:39126 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727239AbfK1LAh (ORCPT ); Thu, 28 Nov 2019 06:00:37 -0500 Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xASAq4aw023223; Thu, 28 Nov 2019 12:00:20 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=STMicroelectronics; bh=YlvngK0gfmo41ZPgYNmQ5FeUoDq2NlVbgxbpkAXqaNo=; b=g+PBel5CcX28hOwSErBElntV7lIrjG+ImRaFZ/DcosdQWmLQa1wYF8wMdMTXXLxh8XK+ LkW4iImv5f/JCPZQrARr5/V8I4k5ARI+P6RRaIlbLO7uDMBE2p4eASawAx6sxf6KZgd9 lGgiaNJbL6CxItNeuSbAYVw/zEFE/WS0x3wtehG6OV7eSmN407na6kiKZja7TisHYQci vUGP69CrjA4to8oPnWPb+srmmZOiXEvl1aD9HiKCUF5m1gDKP0cYhrw2D3ISH5A1LH24 BByv03/I1nrsxRea6jCBwt/kkD0oUMN3eSSx1XTLWH7H0FXUisgoRon83q5xGuxHopvB Yg== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2whcxks8mc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 28 Nov 2019 12:00:20 +0100 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 6753C10002A; Thu, 28 Nov 2019 12:00:16 +0100 (CET) Received: from Webmail-eu.st.com (sfhdag3node3.st.com [10.75.127.9]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 31E532B11E2; Thu, 28 Nov 2019 12:00:16 +0100 (CET) Received: from localhost (10.75.127.47) by SFHDAG3NODE3.st.com (10.75.127.9) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Thu, 28 Nov 2019 12:00:15 +0100 From: Benjamin Gaignard To: , , , , CC: , , Benjamin Gaignard , Jani Nikula Subject: [PATCH v2] drm/dp_mst: Fix W=1 warnings Date: Thu, 28 Nov 2019 12:00:12 +0100 Message-ID: <20191128110012.23898-1-benjamin.gaignard@st.com> X-Mailer: git-send-email 2.15.0 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.75.127.47] X-ClientProxiedBy: SFHDAG7NODE1.st.com (10.75.127.19) To SFHDAG3NODE3.st.com (10.75.127.9) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-11-28_01:2019-11-28,2019-11-28 signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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]); -- 2.15.0