From patchwork Sun Dec 18 09:02:44 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9479237 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 70D0F60830 for ; Sun, 18 Dec 2016 09:03:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5E0242845B for ; Sun, 18 Dec 2016 09:03:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 528E02847D; Sun, 18 Dec 2016 09:03:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C0A4B2845B for ; Sun, 18 Dec 2016 09:03:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759809AbcLRJDp (ORCPT ); Sun, 18 Dec 2016 04:03:45 -0500 Received: from mail-bl2nam02on0057.outbound.protection.outlook.com ([104.47.38.57]:1120 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757880AbcLRJDl (ORCPT ); Sun, 18 Dec 2016 04:03:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=spBKN1lx0C4lPCKj7RkZlCmVFs8PT8Ut3JG74zn4N/U=; b=YaZoVq9vzW9JafpxwEt8NIiSyL2D92KNZFbMRqX06gPFlMop52dU0vsCJOdiw21rCvgwN9Bqsxtrxn8a7VwJNS/Gj1nyAXd0GCrwh/yLqkU+oU2356mhmLgP6h9Ee25f+ASSAEhjssKrEsCWZ7JqmEpOnBbgIQNpTR8fs11hMXk= Received: from MWHPR07CA0037.namprd07.prod.outlook.com (10.169.230.23) by BN1PR07MB197.namprd07.prod.outlook.com (10.242.216.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.771.8; Sun, 18 Dec 2016 09:03:39 +0000 Received: from BN1BFFO11FD038.protection.gbl (2a01:111:f400:7c10::1:189) by MWHPR07CA0037.outlook.office365.com (2603:10b6:300:1c::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14 via Frontend Transport; Sun, 18 Dec 2016 09:03:38 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; linux-iscsi.org; dkim=none (message not signed) header.d=none; linux-iscsi.org; dmarc=none action=none header.from=cavium.com; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BN1BFFO11FD038.mail.protection.outlook.com (10.58.144.101) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.789.10 via Frontend Transport; Sun, 18 Dec 2016 09:03:37 +0000 Received: from dut1171.mv.qlogic.com (172.29.51.171) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.309.2; Sun, 18 Dec 2016 01:03:19 -0800 Received: from dut1171.mv.qlogic.com (localhost [127.0.0.1]) by dut1171.mv.qlogic.com (8.14.7/8.14.7) with ESMTP id uBI934mc022986; Sun, 18 Dec 2016 01:03:04 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id uBI934So022985; Sun, 18 Dec 2016 01:03:04 -0800 From: Himanshu Madhani To: , , , CC: , , Subject: [PATCH 4/9] qla2xxx: Cleanup for sess_kref handling Date: Sun, 18 Dec 2016 01:02:44 -0800 Message-ID: <1482051769-22941-5-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1482051769-22941-1-git-send-email-himanshu.madhani@cavium.com> References: <1482051769-22941-1-git-send-email-himanshu.madhani@cavium.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(39450400003)(2980300002)(428002)(199003)(189002)(8936002)(38730400001)(69596002)(107886002)(42186005)(33646002)(356003)(47776003)(5003940100001)(305945005)(189998001)(105586002)(2906002)(2201001)(81156014)(81166006)(50226002)(48376002)(106466001)(39060400001)(8676002)(50986999)(5660300001)(76176999)(92566002)(4720700003)(50466002)(6666003)(86362001)(2950100002)(4001430100002)(626004)(80596001)(101416001)(36756003)(4326007)(5001770100001)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR07MB197; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; PTR:50-232-66-26-static.hfc.comcastbusiness.net; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD038; 1:3hN1y9r9foJq1HKZJatMQQ+iXF18I+EoK/ojv1xD0nHeHzyYYpqzGPz0pOKC496jkz+Vpfus+fHy6bg5xX/UUqaOaicJHCuURb0u9xNsl4AMmVzsg4jzbujWRFG6+Efqr1spKm04zBxH7nc6J7R1LbfcEXLqDQggSbOmpI51L+TWI4Ndl5Xr/7Ed275W3FeFZ5knOqiz6hct4X/MvjdTJyl9rqssnMrvA5dAbP9pRhcJ0BpPlzdAXM1ztdn3YDAJNQAIm/YVQVoNeptcFGsg7BE/g8dLhSQFCOpT4Zmk65YefzAS/c30Wn4iy3h2JrIIV02ENQzdCAnKj7Z7khYxDPkPNyeTr/8u7qD4nWorW/YXIrGyHR290CmfUwK6T+OsQmFv3phBTXXZFsoh9St0kSQ3f9CsuUGIFLFqvPCZEEW/RUyBcNlbmogDZOawabsibJBiPZ3A4X76jO0ZYrchuSPDbtwA/gAvOENbshcnx6Kp4uRUHCfT8xY5dTPXl1vNGT57lycO1L7QEFpxLVWNB81q3P0GG9EYlMJpnFzE86zrBz9mw9gsfSwpmytyyYBC X-MS-Office365-Filtering-Correlation-Id: 46e21010-6167-494c-0a78-08d42724c120 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN1PR07MB197; X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB197; 3:SsHSgPFt3tCeBfYPisKk2XGMFDwEtgdIzzd4DCkNYCxT4suf5zhZ4hd83gKc5eUK5JLDCZGwXh3V708C9x92Mw3vKUIvMjNsSmmSIeVt8SiOWZbeWgG/BSoIVQzaUAcsDWf8ns9cDGFLULduzacnik6n/oti92pqOXrq+jeIknLXTbcdImJnpy9eduEY9k0QpfRS4s3QD3nFtRhZM3HDPEVzVuWiNGePp1XRyo6Nq2cAmmzbn8TC6kpuVy2tF5OLLIu96bqtBEtzKvCmLBFCNM7OnhNhsJKnTK59XICCv+PY81JIs9UUlDYXJ2+UdAnuKUxmVf+iEl2FGPk7a62+a2fF/nVBpJJecD9XI0zZZYAZgDYkyUuu3FYg/Dfff7LY; 25:rbFxy8OdeGCVHjQOqbs6DHXWuJA/01LueONPCapKERuE+u4FQSLi977HOuJlk/ZfU7NXC3yW5ffnMHPyYYjPxVyM5ZQTuvx2M8tqOMFZODZnzdaYUAkja3QSP433tp9OYMIOrs2X6wPDWWhtU63f2UZPucQq//2pdO6iG359apwiCVjQ2ztFWh/BpDeone8/7pgTeZgLqrgwgFPBtF/u0JM6EHfhJxhNH/kX1/vURvikuKTePf0lJbKi+SQQT15aYbE7d8csdlbXz11ddCwbV0h2vEclItjd3eAeSqpGK2SjVMO0NvgndfDe6wwSaVj2hrtB9WZNq0eRihMzNa0L+XYfZ0P2kmMvCAXoVVIFrEwR6h0n+L8tVLHNB9suN3wxmVESVTCROJwXSFNCFUFYh6tCQ0j+6xxbBb/TEQFuiMVNymDJcb1DYW5/iPNnMZp7HpCa0wXov3NK4hVQVMJz0g== X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB197; 31:HXxkl71aLYvcfjUISmeQTJfxzgA+N6+1zPOXzmCHjVTuBp4PFTllFcheBFNLZ0fCgwS7br4i/na6cKxIwTouING8+Z9aczR9VMCgtbHJ3nn9GkiPSCmOirZk/v+UPdBuYbBblGtIQ74aTvKJuMEJYKqIJRJ+tn3htcjyAQhTcIGM3iftPvBcIt7jv2zGA6kkYf2GSufPuXthDI7pkbBN1xx5VpkFeype470MMJX3mnGz4QqJB5embIOmEJxHB6+jDQ46HUUvVWyr5d9dnaYpBA==; 20:qLmI62qjJI1sh3UfqcjYAkCKuol7sNifWIso+N4SrWOV32Z7xd+22cJ1AzHVfzij3RW41GjWyixUUPFWaBWx8RcVD/m/wuClJ4jTmoOngfplTuRJ8gL+6zxrhEpNw6QaVWt6jYfYZ2IQcMNnJf/BkHgbt8RchCbHt9saIIhhIU3QG6uZk9iPQbnWkjekfblJXLjy8BatYoAVQAnekSdgNEejSJVS+4qDVhbQKyf5B1/6BcWTHZh1JkGHl8/h4usCsr3huf7yfZ9p+iavjErmCTW/03ZXWePLjlwdi/IXvuu3MUDgktJlnKRyE7wJ+0WUCXO9CY1KC2+qJT73UAwFcyePWw6dlTJcZzJgfsdINZhAw3NNrC1xm2A70pfKNM1Pn293Cw8+sIDaYlRuh5pF5LJ8dJUQmXn+cYMpXg768/VDMlUBXcQdarsvd8hpd9K2MZFpCrob9ApaOok5EmceyxMEwPVoxT98lg8KvuSor83fCSx9GywfANc5Lt09qJ8s X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13015025)(13024025)(13017025)(13018025)(13023025)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(6072148); SRVR:BN1PR07MB197; BCL:0; PCL:0; RULEID:; SRVR:BN1PR07MB197; X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB197; 4:4GgLOKC8eVY3mSg84QXCTSnauVna0W6C7cLoLvpObFBGadqv9FFzON23jfX/cCZ6s+/kFaKRy0abMfennWtlpfSWOZ37AdN3Y9ukJt43HK9uvA/+3DF3/n7zpdfMJAa/nJMrQMul6wyhKEGosAYfMf+vz2AdYRra3hzV4y7Tv9PoW/M5AhAK1wg1sSDjRtxHFMUivMv8wlKevvDXMbzRxQ8t+nRXCPpH5uMlV26YjoZkkN2AB3r/0Srh0QrqQhiU+seDdX3vKYkTlC/1703Kviu/5UXDSGFTszric+rytk+Equ+P2XtZq0zbESTqMBlekCQCqWVXVQFyIJuRQnUNBEiyTmyqGAtFPEuMN9PP2JDft3XvC8D+oOMJzTJrQK49DnRSEXtvR7kNnkjoji9X/5vmxtlQw3zAWF0B0mv+qcyDLu1WtkFP3YvrvgqEVZiyk+4tmOIQcQQ/q9nEkdCy+tNsLmntDPcDnmLHF/aRSybd5l0WqLA/5gh+g1rUE4vGqTpARlDzCHWe116dFSm2bz40b09eZrHv8l9aVWg1Eby33Sag8aY05tBkR6J64b1Yh0WOPclhdU0JoKXHDmTJorkfwFLUznGrdGBT5REesDUUl2T3OJOSOZoMXwUZ2rzHyWEdJ9HM7Dzl/lT63TGsENORBeJ+ijEg1sXyd288GR8= X-Forefront-PRVS: 01604FB62B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR07MB197; 23:iD51QRqKuK8T5n7ceYMnR2jGB8HyTpBXTiPUzHqd9g?= =?us-ascii?Q?oW/D4IBhKW0wngqa2P62T7M9wwjf1lhSxuwCKlKomyTBQu4XSjibfvpbF9t0?= =?us-ascii?Q?bfpKq8NAy6ugWAu4DZTqvCJJk7B2kEzG9uzSU4nXq5q/krRtzODTZjzpFBxZ?= =?us-ascii?Q?9X/DniBqxFiVcEovJUoDclpKjXVtNuP4t2xEU0avaQ6Ong04N1Lp8IxYeUme?= =?us-ascii?Q?F9RT1R3+JNk99TY+snnGCfwM9LRbCW3Dlm2QeEhHbwhOid1IzvX1UG2aMTBa?= =?us-ascii?Q?NLX8aEALsc4ScdrahqrRthWW2R3MHVe70KKTW0RtYZVC43Yuc14n2md1D9k0?= =?us-ascii?Q?OPRUoZeNrIbh5k2byoaB2BS4k0D6AGWKw5RhB3wP1ZS8qhqnXyS6NWC4qglD?= =?us-ascii?Q?1CJNbGAl8CmIBMXEfebgVpjwol/Xi3KxVXbpd6VX+9i0QrHdopLD1vOTvTEp?= =?us-ascii?Q?NNeyGrEpqjejXc3JBfWL9TVCvseKsipM6H7Dh2XsrQ+EDkJhFH5RsmdNmHgi?= =?us-ascii?Q?Oa/MiDsgreS+zVcELq2/nxsjr6DyD77iO1TCswc1SkYjMvHC6r9WCSvGVm0i?= =?us-ascii?Q?wkJeW+PPmf8PNX5+jeEZdfr7WpXg1cC1JS4jBIEyFTgFmob7euEBnpdLj2ti?= =?us-ascii?Q?lEC52EZ5Rvi4MiEcmZrAQfGWfqhK/gLVSjrLuMwaIW0iaekjwt4OeAhNe5BP?= =?us-ascii?Q?/aiudjG+DQyCAVQXhXMVxgqkoBQuYWxUM6UC3WOCj76lDOdd1bioK3rMrKKt?= =?us-ascii?Q?95U6U/vSRS1Bp7KxOWF30isv4z969ex/8WrszYkDzNjE+AxF6kVDFVH4/UWd?= =?us-ascii?Q?5wgwg01MK64CDj/D9PjIhodr08Z1MOlzQhhqDD6IWcKvzqStvBOsgalD+Nnx?= =?us-ascii?Q?C+ORZBt6XhHjxxKVBKRD7Re4TI53kRN2iGFGXVEgvKbo3HBzYPKBdZIBA7dH?= =?us-ascii?Q?mwlDP2UyjJq57lf/DhbPZjH/ccMdzQFzffkUQRnXTZOqzUNGddyWVAow5E6w?= =?us-ascii?Q?uy6xw4byLadUo2NDjjRBuoLTfT3iAaHoweBVYN/YCWJAC/PTAAW3CLHbaO3y?= =?us-ascii?Q?noI3V8U0+TvZRw8LMxznsa6I7BV6JcUzga4ctiMY99S2R2kLpd9ZzqNzaAqI?= =?us-ascii?Q?M0g9vctx4=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB197; 6:ycSHszUQCUTZeG6NWZEYmFdun/4YS67kCy5hFiTvxXjXG/8ypmL13rF0FeN83rn/5x55a6kJiiqDEsPSs39QcJsEglDamduNOkPaMMxfFLzYfZNynyj9LyBf+7Q892PiXoYFhWfgM1mpfmLYirvoe2XR1lAIukMeIHh2ueEH9awAGJa74xj6xeHDgNF0dPeDLniRL0hQWMSlpjiWkDgnZYfpIWE0Gl68uKSpZdvtKaKum8F8mYI+BW7U1nmNskflFl9Ndus39ucFghyI4nGmyGalfD6KVKFSuvTbxpIU6JMu5XqWKnk5+sYdwAfeUDlKR1Qhhcrn6kBZRIvllDwz93wyApRD84Rbc/bGVjEpcWxPmMPHAhmOPjfbT5apbiXTvj9EFS7ZVWU0RBIeLQK5ClmNQlqffStkqkKsEXNVU6I=; 5:l1SgqR4qAw5HRGQFqUD6nX6zcAOtk/4kHFNv/iu6r91vMU0KecG5b7sjbrtrb954BAoBYOuSknCguFyXHTysySbi6Br9M6DACPwvc9OtBgu/KFKZfa+gK61piFPsgVKvmPMwMM1UjpnvpHdgScOszA==; 24:fj02UYMbblu9AQNe1fCPIWMNdon7qQWPTza23L1cLwDjjTznUMfh2LW1uobanc8IB1y0jBrcHcfBv85OwPhjsFeWnI6OF4QFI6x6G3SqwWQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN1PR07MB197; 7:WlU7VEymeJp4tWGj4EHGAMKYwHGpOjQcoLo6kQH42P+mUtil0D+yuX0PIpGCeMz4U8/6HV+FW7IJTq6jY2TgPhG7Jwu8Q3Vxzwb9m1/YpfLPoyBi74CliQIGiohlOC3Z9y6xkMjFsr3LTAwEzc9Q+MNAsLiiT2Hiq2yhQj3zNfitczyF2NWR+iUCLfC466zaRFYeyGthnaz80RUz7jHYi6G2AJ9oFJGcPJAR8xfd03vDZZ8x5bEFqbN/EYeeEZ/j665pHOESsCGIMpJHJgZPjbDqcbye+qYZt2RzmIIst6KQGCxgxkuNq13QkRIWCzadhnzNAPX3N0OTvnFvMednoDgZFPM/+tqxXGtD1DWW7P+0D/RILR42aFCK5LhmnkHACvBElLMheFDlAM6abxZkh1XHjv7P0LYTD07fCSwe4MEATwUfp9b95zf3BJ5v5owjkqTLCj8V928TCrP3jw1JOw== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2016 09:03:37.4902 (UTC) X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194; Ip=[50.232.66.26]; Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR07MB197 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Quinn Tran Remove se_session internal knowledge. tcm_qla2xxx driver is the only one that have this knowledge. Also check if sess is not NULL before getting kref. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_target.c | 13 +++++++------ drivers/scsi/qla2xxx/qla_target.h | 3 ++- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 16 +++++++++++++--- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index 8ef8219..8640561 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -924,7 +924,8 @@ static struct qla_tgt_sess *qlt_create_sess( } } - kref_get(&sess->sess_kref); + ha->tgt.tgt_ops->get_sess(sess); + ha->tgt.tgt_ops->update_sess(sess, fcport->d_id, fcport->loop_id, (fcport->flags & FCF_CONF_COMP_SUPPORTED)); @@ -999,7 +1000,7 @@ static struct qla_tgt_sess *qlt_create_sess( * Take an extra reference to ->sess_kref here to handle qla_tgt_sess * access across ->tgt.sess_lock reaquire. */ - kref_get(&sess->sess_kref); + ha->tgt.tgt_ops->get_sess(sess); } return sess; @@ -1043,7 +1044,7 @@ void qlt_fc_port_added(struct scsi_qla_host *vha, fc_port_t *fcport) spin_unlock_irqrestore(&ha->tgt.sess_lock, flags); return; } else { - kref_get(&sess->sess_kref); + ha->tgt.tgt_ops->get_sess(sess); if (sess->deleted) { qlt_undelete_sess(sess); @@ -3978,7 +3979,7 @@ static int qlt_handle_cmd_for_atio(struct scsi_qla_host *vha, /* * Do kref_get() before returning + dropping qla_hw_data->hardware_lock. */ - kref_get(&sess->sess_kref); + ha->tgt.tgt_ops->get_sess(sess); cmd = qlt_get_tag(vha, sess, atio); if (!cmd) { @@ -5814,7 +5815,7 @@ static void qlt_abort_work(struct qla_tgt *tgt, goto out_term2; } - kref_get(&sess->sess_kref); + ha->tgt.tgt_ops->get_sess(sess); } spin_lock_irqsave(&ha->hardware_lock, flags); @@ -5878,7 +5879,7 @@ static void qlt_tmr_work(struct qla_tgt *tgt, goto out_term; } - kref_get(&sess->sess_kref); + ha->tgt.tgt_ops->get_sess(sess); } iocb = a; diff --git a/drivers/scsi/qla2xxx/qla_target.h b/drivers/scsi/qla2xxx/qla_target.h index fbc11f3..027bed3 100644 --- a/drivers/scsi/qla2xxx/qla_target.h +++ b/drivers/scsi/qla2xxx/qla_target.h @@ -733,6 +733,7 @@ struct qla_tgt_func_tmpl { int (*check_initiator_node_acl)(struct scsi_qla_host *, unsigned char *, struct qla_tgt_sess *); void (*update_sess)(struct qla_tgt_sess *, port_id_t, uint16_t, bool); + void (*get_sess)(struct qla_tgt_sess *); struct qla_tgt_sess *(*find_sess_by_loop_id)(struct scsi_qla_host *, const uint16_t); struct qla_tgt_sess *(*find_sess_by_s_id)(struct scsi_qla_host *, @@ -932,7 +933,7 @@ struct qla_tgt_sess { int generation; - struct se_session *se_sess; + void *se_sess; struct kref sess_kref; struct scsi_qla_host *vha; struct qla_tgt *tgt; diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c index 9d1fc08..7026f3e 100644 --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c @@ -321,6 +321,14 @@ static int tcm_qla2xxx_check_stop_free(struct se_cmd *se_cmd) return target_put_sess_cmd(se_cmd); } +static void tcm_qla2xxx_get_sess(struct qla_tgt_sess *sess) +{ + if (!sess) + return; + + kref_get(&sess->sess_kref); +} + /* tcm_qla2xxx_release_cmd - Callback from TCM Core to release underlying * fabric descriptor @se_cmd command to release */ @@ -808,7 +816,8 @@ static void tcm_qla2xxx_clear_sess_lookup(struct tcm_qla2xxx_lport *, */ static void tcm_qla2xxx_clear_nacl_from_fcport_map(struct qla_tgt_sess *sess) { - struct se_node_acl *se_nacl = sess->se_sess->se_node_acl; + struct se_node_acl *se_nacl = + ((struct se_session *)sess->se_sess)->se_node_acl; struct se_portal_group *se_tpg = se_nacl->se_tpg; struct se_wwn *se_wwn = se_tpg->se_tpg_wwn; struct tcm_qla2xxx_lport *lport = container_of(se_wwn, @@ -1574,12 +1583,12 @@ static void tcm_qla2xxx_update_sess(struct qla_tgt_sess *sess, port_id_t s_id, struct qla_hw_data *ha = tgt->ha; scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev); struct tcm_qla2xxx_lport *lport = vha->vha_tgt.target_lport_ptr; - struct se_node_acl *se_nacl = sess->se_sess->se_node_acl; + struct se_node_acl *se_nacl = + ((struct se_session *)sess->se_sess)->se_node_acl; struct tcm_qla2xxx_nacl *nacl = container_of(se_nacl, struct tcm_qla2xxx_nacl, se_node_acl); u32 key; - if (sess->loop_id != loop_id || sess->s_id.b24 != s_id.b24) pr_info("Updating session %p from port %8phC loop_id %d -> %d s_id %x:%x:%x -> %x:%x:%x\n", sess, sess->port_name, @@ -1652,6 +1661,7 @@ static void tcm_qla2xxx_update_sess(struct qla_tgt_sess *sess, port_id_t s_id, .free_mcmd = tcm_qla2xxx_free_mcmd, .free_session = tcm_qla2xxx_free_session, .update_sess = tcm_qla2xxx_update_sess, + .get_sess = tcm_qla2xxx_get_sess, .check_initiator_node_acl = tcm_qla2xxx_check_initiator_node_acl, .find_sess_by_s_id = tcm_qla2xxx_find_sess_by_s_id, .find_sess_by_loop_id = tcm_qla2xxx_find_sess_by_loop_id,