From patchwork Wed Nov 4 04:22:47 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ira Weiny X-Patchwork-Id: 57457 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id nA44PaCI020439 for ; Wed, 4 Nov 2009 04:25:44 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754589AbZKDEZi (ORCPT ); Tue, 3 Nov 2009 23:25:38 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754593AbZKDEZi (ORCPT ); Tue, 3 Nov 2009 23:25:38 -0500 Received: from nspiron-1.llnl.gov ([128.115.41.81]:33384 "EHLO nspiron-1.llnl.gov" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754589AbZKDEZi (ORCPT ); Tue, 3 Nov 2009 23:25:38 -0500 X-Attachments: None Received: from mail-2.llnl.gov ([128.115.41.181]) by nspiron-1.llnl.gov with ESMTP; 03 Nov 2009 20:25:43 -0800 Received: from jeepcj7.llnl.gov (jeepcj7.llnl.gov [134.9.93.67]) by mail-2.llnl.gov (8.13.1/8.12.3/LLNL evision: 1.7 $) with SMTP id nA44PbEB027985; Tue, 3 Nov 2009 20:25:37 -0800 Date: Tue, 3 Nov 2009 20:22:47 -0800 From: Ira Weiny To: Sasha Khapyorsky Cc: "linux-rdma@vger.kernel.org" Subject: [PATCH 2/2] infiniband-diags/ibqueryerrors: Properly exit and clean up resources when node info query fails Message-Id: <20091103202247.901acbda.weiny2@llnl.gov> X-Mailer: Sylpheed 2.6.0 (GTK+ 2.10.4; x86_64-unknown-linux-gnu) Mime-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org diff --git a/infiniband-diags/src/ibqueryerrors.c b/infiniband-diags/src/ibqueryerrors.c index 43698d2..8305e5d 100644 --- a/infiniband-diags/src/ibqueryerrors.c +++ b/infiniband-diags/src/ibqueryerrors.c @@ -559,8 +559,10 @@ int main(int argc, char **argv) uint8_t ni[IB_SMP_DATA_SIZE]; if (!smp_query_via(ni, &portid, IB_ATTR_NODE_INFO, 0, - ibd_timeout, ibmad_port)) - return -1; + ibd_timeout, ibmad_port)) { + rc = -1; + goto destroy_fabric; + } mad_decode_field(ni, IB_NODE_GUID_F, &(node_guid)); node = ibnd_find_node_guid(fabric, node_guid); @@ -571,6 +573,7 @@ int main(int argc, char **argv) } else ibnd_iter_nodes(fabric, print_node, NULL); +destroy_fabric: ibnd_destroy_fabric(fabric); close_port: