Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp5355448ybl; Tue, 10 Dec 2019 04:47:53 -0800 (PST) X-Google-Smtp-Source: APXvYqwF8IM0GvHszSGIDM0vbRFVvpdygx5qPUTJ1E7A9JKmB6RM05mCjevqs+v2AX2oZvAAcjS6 X-Received: by 2002:a05:6830:1d59:: with SMTP id p25mr26482163oth.308.1575982073789; Tue, 10 Dec 2019 04:47:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575982073; cv=none; d=google.com; s=arc-20160816; b=0NH5TqkosBtJlWzW03n8UnFuhHFT6IgBdXDs5VQElG8EDXgNRCNGI2qphUs75zwd5d FgJ5dvK6hEk3AWhpb102Rk9Nep3UVcj6cEkZjP4qZ7eoGfGyokBMFhZUXilRto+K7OCk rksdcuG0EWUugO0R1LLcFoZgxIAL+6cMbJ/M2YDMtjbqzCToeuWL0KrVuGjZnvwWuyHB wEX8sTfsqouaaYoaJ9LDAde+t63BGjq2hplHVpQ+AfzAXbB5Cd32pEfVXgCkR58jeRws nlp8Y1Jy1XnpzJsKFbGfjF3L6MBzL4cqLvIULx+PQnG1W0cp9ijTgLElLp8T9pjV9pm/ 7zXg== 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 :content-language:mime-version:user-agent:date:message-id:subject :from:cc:to:dkim-signature; bh=Lh5+1WfIEgUnDr8d3ihVGfrWyi/jZrJ8BAv6kVedqtQ=; b=tiZWxbWYebfAsYNhWTsuJT6XaBL8o02qI9gKmMt44XFsKVZTvEatLAeObNWNUu7NS3 v1gyYsyv5WmMNQD5Sp5Fk/DsAkcUiGne6FKfw/s4bVUOLdB/qWEV6h1Qq7p235WHcCLw dVa3MlaCaFXkKb+OC6dtTYQcWpQ4C1CKRxpZ2mhr2U8eKQfuOiGuhZNWaxD5qAGvUH8F QdLDCfxTY+M50zAX2opmKm/Tus1DwDukojdEHF/jf2npGZtofxFEzID2grfaE2btFHlr jVe+k2GcGByYj+uIYcFr69kGu7Va3gzZGzlb0TmdndExa7ugb2oXqzUxkconEHIm0DIy PAkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=hhBlP788; 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 l21si1727697otk.142.2019.12.10.04.47.41; Tue, 10 Dec 2019 04:47:53 -0800 (PST) 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; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=hhBlP788; 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 S1727431AbfLJMq4 (ORCPT + 99 others); Tue, 10 Dec 2019 07:46:56 -0500 Received: from mout.gmx.net ([212.227.15.15]:54749 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727131AbfLJMqz (ORCPT ); Tue, 10 Dec 2019 07:46:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1575982008; bh=qd6qYQjvAd9VTFlGBK9Mkz5yHOz8UjRTgv5aTL5Cw3Y=; h=X-UI-Sender-Class:To:Cc:From:Subject:Date; b=hhBlP7887M824IbKa7I7yDYEPHAQfH3TMeebNPBLjGWljwdBv2FV/Fm6zl7Of3lBH Ollw67OrhmET+Irwo8BLaoU2YYWW5dDQk+jyLfYqQYqH0GKZgQSpFfloOpzKTfFmZU QGez7W/yJxwtOfYS+Ylc75lQurXYYAoh1I/8oppI= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [172.17.64.14] ([192.166.200.216]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MOA3P-1iP2nZ039V-00OXRx; Tue, 10 Dec 2019 13:46:48 +0100 To: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: jejb@linux.ibm.com, martin.petersen@oracle.com From: Arne Jansen Subject: [PATCH] bnx2fc: protect kref_put by tgt_lock Message-ID: Date: Tue, 10 Dec 2019 13:46:47 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:fzDZQzJWHugSdDAjPOMOchWakvhnamcnXmO126KB0Lus9WTmmDv wU/CcPvk4oobHEO7+ENQSuMQImQrWl6OnMTpApcbQgfnSTX5jbD4Eh1P9VK8qDComfZR/L0 r3cu8P5OnOZJm0QyjWCp6qilcFs9Hu4hjjhp4YYrw+/iPRJtfVAYgbE5k/qFnLKkhKzpIcr txc0TMofgOf8U9Y7ZpZDg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:QJOTFJrty3g=:oQzq05IhX8fJue3oJP8hQ9 oYJD/7GfrHZXZDqlYM0GhG5MMKBVKaRkblmk2sF+fu+z1pNJqM1QtagW3pcmsvQmZ42nxV+KP n+NKAtqpEb2uJ0sQIzQCFM+/h/cUYRKkESwbRi4J3G8BDteyiBS8+lnMRDuGLVav6+kKp0lO6 7IDoY+ffkETL4FB2aM9rr/hGY4r4KsBtp5C1BuVw7MWRDLOa43WF+SV+klYoo3rq5N5HITzEH diBLNwuu2VM2qWwVK7BO8lqZtYktj/puOJ1gkBWi4yzsC/iY8E5+mQKPx192OWGFRAIHgsf3X A1IUCYcGXw2S8/V0Mk67En8/x3nLJo5fZm8mV+8FBiqCNLXHIm47rM+6ZK0bOSqZXm572JTKG GgSK3SR8NKs9b2n9fySrE0pzXEVMIvFJcxTimSDTq20UTlJsgnkNwZgVvCyv7WyNKKHiLWuia IOB+gtNGamMoWcF/u5s+WEfF1ijYcAjU1CvINIoAJRiAuk66V4csYJ0ZxSDe2ZLvruMM3R9VG nfzkRSobJMREula6WVJq8VLrEN3NiQG/mP39dJ3gjMJr8t4NMbu82wqK3WW8utzfoeVpu1V4h VD1Z9v+UE1Z/NN1+JmZnMQT2DWxI+V5nbNi7Q/FQ0MaWF+Gutw003yvOKmNsw4AXA1SyIvvbb t5KV6jQYNKFUVdyMANrU9T6vt/Tp06wsOke/TybKzj5YVP2EwlsU1iYsHDoshHLJbbmPADkE5 kSA7vv/P9+NEIlCvgqap3oQYPTiFweCLZ7xpMg3jswsYkLYsRc+gKlCeXNw31YdHepu4/O7DZ Y/ceqNrS0l8747AzKgT20K50CarGi0BiZ5kdlzTpuqNvUh1oU1Uo3BgWGKtT2qo+CyfYuUp8Q RpENnbNnDGnAZbd9IR3IKusnkcIRsJloEZY/i8WK70TA1zMgxoBMQKzFM1QqfK6Uf0qUbt3w6 eN+TiPZDuwd9fqcuZLHJ+3c2hfZI93jgQagDjI9GPzF5b8rhOgxb0Gio9FiI6zwKKJp0I0Jni /arQAAGz+6J7OAkMpACFCEBJHuG2bbz06rJKL77A5bF/uWk5lLng5u+iVpQfiuYkginq8dKB0 KBMBEEOuq6mgCOXAGhqsN1cgH6yLsHuDX8DvfSO1X4+Qs272wiUKhaOTBNV26avaYLZpBOtQD DRXgfx4KMJ1lOtYSc0R+dIuClTCGHD9fVimjtSpD9shomTmFJrPR3tJdX+zWcCLzFHU3jgBYs WwUoUWFalykYf/Tm2HNNNLLA5LYST/oaHgOwsMw8oxgBT7jSHBNa7o5JjEDI= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We have seen several kernel warning about list corruptions involving bnx2fc_cmd.link. Reviewing the locking of this element showed that in one instance a kref_put on io_req->refcount has been called without tgt_lock. As the io_req might still be enqueued on a list protected by this lock, this patch adds it. This was the only call site without it. Signed-off-by: Arne Jansen =2D-- drivers/scsi/bnx2fc/bnx2fc_io.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c index 4c8122a82322..d0d465271e5c 100644 =2D-- a/drivers/scsi/bnx2fc/bnx2fc_io.c +++ b/drivers/scsi/bnx2fc/bnx2fc_io.c @@ -1097,6 +1097,9 @@ static int bnx2fc_abts_cleanup(struct bnx2fc_cmd *io_req) */ time_left =3D wait_for_completion_timeout(&io_req->cleanup_done, BNX2FC_FW_TIMEOUT); + + spin_lock_bh(&tgt->tgt_lock); + if (!time_left) { BNX2FC_IO_DBG(io_req, "%s(): Wait for cleanup timed out.\n", __func__); @@ -1107,8 +1110,6 @@ static int bnx2fc_abts_cleanup(struct bnx2fc_cmd *io_req) */ kref_put(&io_req->refcount, bnx2fc_cmd_release); } - - spin_lock_bh(&tgt->tgt_lock); io_req->wait_for_cleanup_comp =3D 0; return SUCCESS; } =2D- 2.11.0