From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423322AbcBZVfo (ORCPT ); Fri, 26 Feb 2016 16:35:44 -0500 Received: from p3plsmtps2ded01.prod.phx3.secureserver.net ([208.109.80.58]:54010 "EHLO p3plsmtps2ded01.prod.phx3.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755450AbcBZVfG (ORCPT ); Fri, 26 Feb 2016 16:35:06 -0500 x-originating-ip: 72.167.245.219 From: "K. Y. Srinivasan" To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com Cc: Alex Ng , "K. Y. Srinivasan" Subject: [PATCH 6/8] Drivers: hv: utils: Remove util transport handler from list if registration fails Date: Fri, 26 Feb 2016 15:13:20 -0800 Message-Id: <1456528402-21982-6-git-send-email-kys@microsoft.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1456528402-21982-1-git-send-email-kys@microsoft.com> References: <1456528381-21943-1-git-send-email-kys@microsoft.com> <1456528402-21982-1-git-send-email-kys@microsoft.com> X-CMAE-Envelope: MS4wfCPtwJSyjDQQuOls0f4n99U3a7R7o7jXL7WnEfMZDo8dO/oSM56g/1gg4qe2L+eokbUFHLVwJaQtiL6cgDbM9Hparg6/HQjEyQB7b5ltkWuALuWxLdc+ 2oLucegHqXQcfABUUTbMptIGJdzTWFj/Agl+09tyIk1fGXjLIJI4MRMwgYirkNuCKjliaGghJEO/bXAI7mGEhZ46sYOtP1br7o1/uH1e7scFRmaMZZTKix3R RtaFPwP7swKe25regh3+CndAvAz8hEnGU56ouzIZd6zeuixDPSqk29Q85elWCa2ke3P4eux9kpbmijwaucuPSBCQh83U1abY1sig7GpxaK1riAd7cYqAUYgb eUFvbK439qhqJrZEltieKPqJWQBz9jvCh3Oi2AGAuEegzQZmIaSMQpUznfFnG8SVzwmHVPWlxptwK5BOU5EpjdhmeR+DBw== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alex Ng If util transport fails to initialize for any reason, the list of transport handlers may become corrupted due to freeing the transport handler without removing it from the list. Fix this by cleaning it up from the list. Signed-off-by: Alex Ng Signed-off-by: K. Y. Srinivasan --- drivers/hv/hv_utils_transport.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/hv/hv_utils_transport.c b/drivers/hv/hv_utils_transport.c index 4f42c0e..9a9983f 100644 --- a/drivers/hv/hv_utils_transport.c +++ b/drivers/hv/hv_utils_transport.c @@ -310,6 +310,9 @@ struct hvutil_transport *hvutil_transport_init(const char *name, return hvt; err_free_hvt: + spin_lock(&hvt_list_lock); + list_del(&hvt->list); + spin_unlock(&hvt_list_lock); kfree(hvt); return NULL; } -- 1.7.4.1