Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp4532988imm; Mon, 17 Sep 2018 16:00:58 -0700 (PDT) X-Google-Smtp-Source: ANB0VdbN3xZT6Q/HwD1Gx88YXxvuaZDcOIxTHzmq/QZyMYXSoN041S6FPnVV8Vj4E4bZA6k2p5cr X-Received: by 2002:a17:902:26c:: with SMTP id 99-v6mr26752012plc.341.1537225258253; Mon, 17 Sep 2018 16:00:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537225258; cv=none; d=google.com; s=arc-20160816; b=yQql6wFNTdnz9O/A3v+/NYYwYnn1FgH6aJlc/VxgmTsNYLPV9vZZPJ6ysT8mbFtaUQ sKzTap6Rg2lhjdQTwD6OQAZDz6YKCYGkfeQ1N30L/NJQkjV/PAG38scyN8qGNqpARXbX 6zUcIvV3YJ3k5b8lB6ZZorQd6v8qlqtwI6AYt8mOT5szhR7dbcfpuDb+f0lChyy+wNLA YbqQMcBydnycZPsuId8ANdREgTILl73XzQ4gpttI8ABsywMjWTonwCrVgqWDJ18nwECt aL0TFBHRBoLs4+TahSBnFlEN0RjN5tml3IF1xjd7mpRrNBUnw4azob+D5xih1Lgu1VZu Ye9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from; bh=SPna7SMwfs6GHmVyHG9WjWOWDHNe95nRhHzXFl0Ol2o=; b=SRzWuk4DYix83SjDr6LrrZnELYoX1F3P6+/lJTD44fj1+xuAuogjl+mbkZ2qqJweA1 tXxuq3ic00fbOLS2AXlQMkz4tTRSQLjs93nVhbtrqSHOqatYjA96qLCF1PXVZ09eeN9C WXJVb8t+mMUYOmfKADlziQvL9gOHNi3+woKWie2QCJuIRv32mmWNbxVTZHLVtfAr+Jc0 SEp0rtP1Q/DcQsyMvNBq8fn918m7RskyM/KOsDiaLBhByUKkcMa3VUXCJGvz6CZT5iYL 8bSIsVllVJVnRNJukrmetl0n5D/2w7LmaqR1KTnvt7z/cLyvoLcnlFflndxQJeAjsMmQ a8vg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 1-v6si16329174pgb.107.2018.09.17.16.00.43; Mon, 17 Sep 2018 16:00:58 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730032AbeIREaF (ORCPT + 99 others); Tue, 18 Sep 2018 00:30:05 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:48102 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727559AbeIREaE (ORCPT ); Tue, 18 Sep 2018 00:30:04 -0400 Received: from localhost (li1825-44.members.linode.com [172.104.248.44]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 52F8BC03; Mon, 17 Sep 2018 23:00:37 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dan Carpenter , Sasha Levin Subject: [PATCH 4.14 022/126] misc: mic: SCIF Fix scif_get_new_port() error handling Date: Tue, 18 Sep 2018 00:41:10 +0200 Message-Id: <20180917211706.228166042@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180917211703.481236999@linuxfoundation.org> References: <20180917211703.481236999@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Dan Carpenter [ Upstream commit a39284ae9d2ad09975c8ae33f1bd0f05fbfbf6ee ] There are only 2 callers of scif_get_new_port() and both appear to get the error handling wrong. Both treat zero returns as error, but it actually returns negative error codes and >= 0 on success. Fixes: e9089f43c9a7 ("misc: mic: SCIF open close bind and listen APIs") Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/misc/mic/scif/scif_api.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) --- a/drivers/misc/mic/scif/scif_api.c +++ b/drivers/misc/mic/scif/scif_api.c @@ -370,11 +370,10 @@ int scif_bind(scif_epd_t epd, u16 pn) goto scif_bind_exit; } } else { - pn = scif_get_new_port(); - if (!pn) { - ret = -ENOSPC; + ret = scif_get_new_port(); + if (ret < 0) goto scif_bind_exit; - } + pn = ret; } ep->state = SCIFEP_BOUND; @@ -648,13 +647,12 @@ int __scif_connect(scif_epd_t epd, struc err = -EISCONN; break; case SCIFEP_UNBOUND: - ep->port.port = scif_get_new_port(); - if (!ep->port.port) { - err = -ENOSPC; - } else { - ep->port.node = scif_info.nodeid; - ep->conn_async_state = ASYNC_CONN_IDLE; - } + err = scif_get_new_port(); + if (err < 0) + break; + ep->port.port = err; + ep->port.node = scif_info.nodeid; + ep->conn_async_state = ASYNC_CONN_IDLE; /* Fall through */ case SCIFEP_BOUND: /*