From patchwork Tue May 23 23:48:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9744481 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 97C306037F for ; Tue, 23 May 2017 23:50:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8788D28818 for ; Tue, 23 May 2017 23:50:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7A6AE28854; Tue, 23 May 2017 23:50:03 +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 73E9228818 for ; Tue, 23 May 2017 23:50:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935008AbdEWXuB (ORCPT ); Tue, 23 May 2017 19:50:01 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:56777 "EHLO esa3.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936478AbdEWXtk (ORCPT ); Tue, 23 May 2017 19:49:40 -0400 X-IronPort-AV: E=Sophos;i="5.38,383,1491235200"; d="scan'208";a="19876969" Received: from mail-co1nam03lp0015.outbound.protection.outlook.com (HELO NAM03-CO1-obe.outbound.protection.outlook.com) ([216.32.181.15]) by ob1.hgst.iphmx.com with ESMTP; 24 May 2017 07:49:12 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=HlA3wfzkuApoqPqzmiknPHI8xz8G/KMrNfcqW0LFlCo=; b=speVYBudAj+H8GA1us336BT4XwzVEkU/97jTZXhmgoB+EvczM3nTPDGX5y0w/RzfYKIPpknHNerNEA/hkEoeJfdEF9IEfJvwFjDsChlGc6KXuTE+WnSiP8noeTzuc7cv77WfQlO3URcFV+1W6wzUxbAmv4fZXwY9sNYpLrJ1NUY= Received: from BLUPR0401CA0030.namprd04.prod.outlook.com (10.162.114.168) by MWHPR04MB0369.namprd04.prod.outlook.com (10.173.48.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14; Tue, 23 May 2017 23:49:09 +0000 Received: from CO1NAM04FT016.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4d::207) by BLUPR0401CA0030.outlook.office365.com (2a01:111:e400:525a::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14 via Frontend Transport; Tue, 23 May 2017 23:49:08 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.21) smtp.mailfrom=sandisk.com; suse.de; dkim=none (message not signed) header.d=none;suse.de; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.21 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.21; helo=milsmgep15.sandisk.com; Received: from milsmgep15.sandisk.com (63.163.107.21) by CO1NAM04FT016.mail.protection.outlook.com (10.152.90.168) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1075.5 via Frontend Transport; Tue, 23 May 2017 23:49:08 +0000 Received: from MILHUBIP03.sdcorp.global.sandisk.com (Unknown_Domain [10.201.67.162]) by (Symantec Messaging Gateway) with SMTP id 8F.D1.45291.17AC4295; Tue, 23 May 2017 16:49:05 -0700 (PDT) Received: from milsmgip12.sandisk.com (10.177.8.100) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Tue, 23 May 2017 16:48:59 -0700 X-AuditID: 0ac94369-166ac9800001b0eb-16-5924ca718d10 Received: from exp-402881.sdcorp.global.sandisk.com ( [10.177.9.6]) by (Symantec Messaging Gateway) with SMTP id 04.03.18148.A6AC4295; Tue, 23 May 2017 16:48:58 -0700 (PDT) From: Bart Van Assche To: Nicholas Bellinger CC: , Bart Van Assche , Christoph Hellwig , Andy Grover , David Disseldorp , Subject: [PATCH 29/33] target/iscsi: Simplify timer manipulation code Date: Tue, 23 May 2017 16:48:50 -0700 Message-ID: <20170523234854.21452-30-bart.vanassche@sandisk.com> X-Mailer: git-send-email 2.12.2 In-Reply-To: <20170523234854.21452-1-bart.vanassche@sandisk.com> References: <20170523234854.21452-1-bart.vanassche@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrCLMWRmVeSWpSXmKPExsXCddJ5kW7hKZVIgwdL5Cz2z3rGZPH1/3QW i5WrjzJZtK0+w2ixYOMjRovWpW+ZHNg87m8/wuSx+2YDm8f7fVfZPDafrvb4vEkugDWKyyYl NSezLLVI3y6BK2N18wy2gvk5FRtn3GNpYLwS18XIySEhYCKxqbeXqYuRi0NI4ACjxKZjvYwQ zg5GiZmrJzLBVN0/sACqaiOjxKpjnSwgCTYBI4lv72eC2SICOhKz7r5gByliFrjCKHGn9Qkb SEJYwFVi0ZH3QEUcHCwCqhI/NliAhHkFHCS+fv/OCrFAXuLslp3MIDYnUHzlnm3MIOVCAvYS l78rg4yUEJjHKrFv8g0miF5BiZMzn4DtZRaQkDj44gVYr5CAusTJJfOZJjAKzUJSNgtJ2QJG plWMYrmZOcW56akFhqZ6xYl5KZnF2XrJ+bmbGCFhn7mD8e4T70OMAhyMSjy8CQ4qkUKsiWXF lbmHGCU4mJVEeJdvAArxpiRWVqUW5ccXleakFh9ilOZgURLnPSczNUJIID2xJDU7NbUgtQgm y8TBKdXAuHqdw63O+YduKAsVdJ4t8f3gskO9YbJCe4b4g1Vm3F01Zue6tSTM375OkkvoaDe4 zaJRuPrKedXGc0wJM7M4uVu6VjWF/MzPOquUs37Ror5JGa82ipav+KD7y/ZdtNito2wH0l/G FWR/jmi4Ov2gtZ94jdoHp70RStpfJ7F3PTWI9VlmuYhNiaU4I9FQi7moOBEAZ/pKDHcCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrMJMWRmVeSWpSXmKPExsXCtZGTTTfrlEqkwfqLNhb7Zz1jsjj4s43R 4uv/6SwWK1cfZbJoW32G0WLBxkeMFq1L3zI5sHvc336EyWP3zQY2j/f7rrJ5TFtznslj8+lq j8+b5ALYorhsUlJzMstSi/TtErgyVjfPYCuYn1OxccY9lgbGK3FdjJwcEgImEvcPLGDqYuTi EBJYzyjxuvMMI0iCTcBI4tv7mSwgtoiAjsSsuy/YQYqYBa4wSpx98p8ZJCEs4Cqx6Mh7oCIO DhYBVYkfGyxAwrwCDhILFt1hhlggL3F2y04wmxMovnLPNmaQciEBe4nL35UnMHIvYGRYxSiW m5lTnJueWWBopFecmJeSWZytl5yfu4kREixROxivTzQ/xMjEwSnVwJhQZmW9W+7gp48hhtO+ v9iRWMx3Vud4rbHdszUZV8uDeITOvEq7GqPN5j1dV2hdy9qZ/xJvNkg4rRTj2J30ecVWZcbl u3WLopxWtxisvV/0frFq8r1J5w7eF+u5Z/nyrpXK5a8Fu47N0ZFysFaJ1n409f6bevnrSa0n JGUXnqpeHMKbvMMjP1SJpTgj0VCLuag4EQDqo7iKxgEAAA== MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.21; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39410400002)(39850400002)(39400400002)(39450400003)(39840400002)(39860400002)(2980300002)(438002)(189002)(199003)(9170700003)(575784001)(86362001)(4326008)(33646002)(50986999)(50226002)(478600001)(5660300001)(106466001)(2906002)(189998001)(72206003)(36756003)(1076002)(54906002)(50466002)(48376002)(8676002)(2950100002)(356003)(6916009)(81166006)(5003940100001)(6666003)(76176999)(77096006)(110136004)(38730400002)(8936002)(305945005)(47776003)(53936002); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR04MB0369; H:milsmgep15.sandisk.com; FPR:; SPF:Pass; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CO1NAM04FT016; 1:9QnWWtK1hcZfYlET97P89oTOHOa90oyJ1BP/c9yB5cAaWC6fgY6D1u+kKlyek/ObwVH6je5nN9hYTf4vm133rI8XF3Y2yz7gv1d5SJROXSBA8jfjbg42CDo2bm357orTSmi1ayIyM4IzDg1PYYR294MwpTtuoZ2VQhe6yE7slMhYe0IvjFUksKlHoGTLqb5fdpgWyTUgFP0Bhoo4JnvUZhOh0QPHOxgurMIX6gGnRUvH8uIxXVKJ8pN08lO+tv/+doFUBEr59RcgO4gIbCMEk2T1iX4PQMZRDjUuB/22j/OjwCfvJeLhT5SO6qIr/BDq0YXU4OlHBwo9ovPCeiRg0mZyZgfZWAR2oG5P+W8pZ6y5DGOH2aSpvmzWU19tZ9tOj4gfdphZcsBmsAUoGyxcoEKEvDsymkodci5c/K6AWmOUub6ZwMGGT65ZSldcGnkeY+YDkStSnWMTRPv8NWkb7z4iHCopHdixV3ykZaukpjwEed1APsBHtp05yk5uPCntc6eoaf1LDH+TjIB58euL8SPPREtq6o92/AGpwxC0BaY= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR04MB0369: X-MS-Office365-Filtering-Correlation-Id: 58420cc3-81fa-4747-cbb3-08d4a2364dde X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081); SRVR:MWHPR04MB0369; X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0369; 3:8H60pNYVMCsxcH5bRPy4Q3zNXTRScWpzh3nmLt9RgLMTxqWAJvXh1EIrBf6fUs7A+N1/5yZ8hLozuRRT8mP42XJcwyJ/V451aM/YJE8sA5veUzK32VEsjwlwZS7j0wkBad6L+/wZYSYOY12f6Zn+1C/CivBUHKatFA7z5hpkizryOR4EqMN6Sv10vrct2rAvhHXdfWUx9bXihpG/YhAKG/QBFZ/PANYMKCtj4QVyghRB9HlT9OlDU+qSf8ML7eeucpLcwglHuiYbVs2z/6lME3tpCpe3kqMCv0xQhEN+wivD6za3HC/jI34t4Dhaqqyju5aNZQiXVq2x1P/yZDertCOyZ/PrFE5xxNumTzuqv/qq4lYJ+qdG0mRdbD1r2bBIS6CmsVJrlSP1LCn6xILlIiRxUgjgYSE9VSUX45w0zvdrWNaur5DOEnctUD3RfL+05Cq1/oILcoz1eHWypxuQ0zxF0vY5c7xr1QvjA7wBFcuKQ5sCWnIw1yYT8QZ8gHa/ X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0369; 25:/Mfl/LtZVoyLjZ5FLHNQ6oj8JS988TycxOWBrqnOqxKuDNd4EnBYWIN/JRQ17nVq/L5iXQMEcl8etBZm6nJgGP3jwDEAHb2NZ9cxQUPcm4DfsqPeDZMUtdKxz9kYIC6xeGGc3YmlbB8MVDKQRLBhckXkxkVmqDE8h3ccsFqF3w49YgpBgh+Jcelhw4xuFB2mvzjcTVvM5EfOhtUXuzS8xakPFbG7UnqPxcPjpG+ZxVYfCKJA2sEnMvXjJyR9eY+NBfzKKkQWingQPheUiWCEhZVz5DJxGbzWChfuxHOxusWJfPo75bi2/GgehfdpW1hecqipxDhLqEwvAjzO9U9CmvOgMTQYYR7kYsk/XwuuVY1IN1M8u3IJY+kJROtEjNOuju2Lr3JmNA0/oTlbL7jrTE7QAWmGIrCiHuDU2oMKd74XqQTj5r2DGC/dATuqX+HfoK+nEVGiCao6cRImWoNEbSjxvrwNBiU9yqDaU4Ji2wM=; 31:WjYbHl+yq4lwyRAeq0GMz6TIHQrfsZDyHqBg3KygmJTTyGzE4msQUCnr7CAZf4osiDz4CMmjrAFlzYlJ9RO768AGTBk+c0/pA35PAjF1yiTbD9QS21Qk2Lj/EEekeq/Uf4WxfoisOaV/eryTjNChR/5lyIyZqFlZOe2rJJH/GcFbmkzzWs0aYvnBG1oEZDeaIOW1Zs8KNfWXrDdSejQvTLbtBiXzFuUbONaoAsS8Qmr6BJbfW9+M1+8PZH4ZhC5cgy0ci/mUGXlXxDitPNQ9pw== WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0369; 20:lnON3eXxhMiqy1qPsXOwnki4uJWqSrBptnbyU5eA+FydwY1PArY9usyVrKa8Ih48NzXy+Nv7DPLG/6LCzqzejUG+o44ru25ERAXIxGPVDfOV/9qb6Akm7B382sUw/apEDepTEs9oq/f9imDrVA5f9SzOOLu35HdhocXiKCtOGFqWPrqhtpobJt3ePHTWg/bfV0BrOXzbre2U/w9zw3j8p266flpS+NnfHznXliSPX1sFgnc9z7G81blCD67cLm8JHfelMG19Dwlc8wwBE6zG8hveEwIk3d+6vj+6BbXCEn0W4iYUzEY4A0AsgK9trTXbG0wtK62Ekx74x94W4/mnEpGd2leXWtRivjFt6x81SVRDQ6cL479fsTsT8F2SjsKxJaSWjikejEaJU+RDp5pbMJmI0aqkjNz1DCKH+etWt5LByGrtRKaCpCnfYbAiHroxN/s2E/gKbJtJYX3oSZfYWMlIp3rgSmJBAj1w/vaW8h38ar8gQn4uJzwdD8LHhrbR X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(13016025)(13018025)(8121501046)(3002001)(93006095)(93004095)(10201501046)(6055026)(6041248)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148); SRVR:MWHPR04MB0369; BCL:0; PCL:0; RULEID:; SRVR:MWHPR04MB0369; X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0369; 4:ZAF4+cldwKDZEvnkhjugE52lhauRfTLco86T+PEF6RDkIdAgqJ2JwQPue0i2b378fv90FAwXvKDPcSftwMY8R6/hhBDN7l5IOThtBw7VYE9NOnHkCI5iBCALPSvUB3UIUV7hZylkjAuOX5dQqnZztEjEG1yn0zMqwTzoCXclEH4SwvZ1GBKVIlNBxrwsCZTBCoFkPoaJ/LTgl3d2en0egobvv+z3QuQvCQtCi6D3vMgIwiHcgu4QiXmWKdmqOrGHTY96Ww4BSB3FN8jv/kYMtfeBUCy1WPF78y9IkdP/z/Z4bE8aKvy1SYQFHXWlJ5S7sP+IlIuRZpVjE2IGGKL+ga4ZBrKzwzABs3CleTPs5ZKJviX8B8CopcpAsKHGhYfUsZAXb/mkF1XrUEMQvfmeohTJ77aAGEklh6osQ+seNdGKQYWEPIUkyPN35jltA4cexD0M3DIGBu8/hhDr6wGxotnM5ZQonc+X6kCP6sg4N2d/xyT0/9t6CUhg4M0ry+BsXfmgNcYM3aNYZ06/gAkywZdFIixsBirJu7BbxBhuoo45jC6EuL9QPQMd7FI4dr4qUk9UXUD8yGvzCp7/TOQjU8JnM3SURTyoO+dVx0VEm8MXu/Oq08XDD4Q05IA2ZCGTXFPvLw/EapI7rQLpjawQi4kQn/ksTGXgl++Fn4Nu7w313Hmzg6V9kfFrA/4Nu0Bko7Ns5Q/NBdBkS6slrla80g8OdB3bblSocLl59YOku5VglSo+HWXYPpCwwNeBT7GmkinBDeYy70pZp43b43IAh60yCUf167KiZ7W10kR+vdBwxXtqlQTI/GXS3gDIbCoTzw2v1crco6obQkHLdBVAbb271tISuigQ1SzaK+RzqtLS5zl9HnxwAHty8ctkv5W4SZPkdxyIdjG254cEr10w8MUMewrl69axGJNWLekfVH w= X-Forefront-PRVS: 0316567485 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR04MB0369; 23:d5QaOSJZvjEtADzijCJZewrHJAPu5S7jcrI9wlj9g?= =?us-ascii?Q?Clz9K5UCHLO7ENPwLMXy3EWdgDtWjvPXPVjN7uNq477Ba5fI46fDwZOI2eoT?= =?us-ascii?Q?1a83ZfiWUoqJp/2QaS3CgH351M/8yKopjc/XyoyiDTwT1XYtO4f4IIjqKcMx?= =?us-ascii?Q?+/+ElTBosXLUq+HH3ycaewYFIjoU5h9QdT9rLqgsnzyTDeYzDWaPdLmVPXqR?= =?us-ascii?Q?uGmXDCj8oljHqkvFfQioX5vybYrg4EoiNJId+QunmQHksyKKZVQgUsDPZO/z?= =?us-ascii?Q?ZXCoRXFrGt9tc28Jp5FdGphbJNMYd+fR3yjaONDrDkmIc7fhhO8KBxgQvq9/?= =?us-ascii?Q?ht2qiYBY1h7qulqS6Gu+Xr4FJY4QxvgIh6yEsxRfAZsqLmS2j0tOLQa/Z0yi?= =?us-ascii?Q?f2H+3Qt/fcyDnG7757AX+rPx6JZ1ftwoQzEOOESy1MbPiQffO2xHwAhzrS0q?= =?us-ascii?Q?V5QXBfgpDxsUlpKRgrMUxeS0u9GZalnFxFI6uAYlWDkV/K9ORk+qr5QtK78W?= =?us-ascii?Q?6Ls4TxSxdiCgN+30duE8dSsQxJZo5aToTlmy4wE8usU3rVtJeWT7PkCDJPRf?= =?us-ascii?Q?7fYLldvvXnRQ07laJifYi2DLXjm+KBSmyZK9vrCevA7rklTbpHDt/wdThupJ?= =?us-ascii?Q?8Ktz2oKETYS3nkPweAaUDANxGibDDAIYpfYTr0Ys+LkbAe0hjLKrXzuSEf8w?= =?us-ascii?Q?OfNKTv02euY0qwAZKbcNkoZZK2wmaDkXN9aavg9QWGJJ7jmAnI5gpEzjImJO?= =?us-ascii?Q?/Fb1tPLIM68Dy5gr1um5B3YOVFc26+1X6syhUKFA0g7h/XyYJkmOkzYYnObI?= =?us-ascii?Q?cojVGkZ4FhLVcY/kbayvpI9o6lbcaloqijJqJrvOKp2rFldLfzxzgjzbqyoh?= =?us-ascii?Q?3eiqbCx2vYho6fsMrO4zGyoLkb7plnTg/jI4FMf2i5M032RyXXvKXFkOV7zT?= =?us-ascii?Q?TBORrBWNDlULyOE0+5rgO39x9Pg9686hbVXyyPrIBEF4r8fb9rpXR7ox0jfQ?= =?us-ascii?Q?UyPcUMHVRebZCfEAmZxejYyRbKwXYY/RvreM8vkSnZmQBIip6FW9Msesk4gJ?= =?us-ascii?Q?1LVS+CuQqf05/Y80jnIPomZQi4YCPRt0hLedR4G3Fk5MBTJGQE/b8HZkhZLV?= =?us-ascii?Q?2j3ZKQhIjg=3D?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0369; 6:tsJMY1TIJSVP3WoymChoUMMM+1SHFg86BkINKJ3H1AKc23yGcJbuw7EWc+hpO+ezgJCBWfpN5WhlI9os+1L98qFL0yJm4tMaT2Xs2oOg9ZXmWXTPUWfIyEZou6uwO+bF2IQNku+L/trQvgivUJZ/ZqBSdGGpx9323rCOrErA51Lb2v/YyKWutIAA2bNGRUHJoA8NrxzNHVwqY+LAcrbPfETCKmkt9wmiGc2rz2e6yTdUYFQU9o3rhGVV5NtLbtAvM03u0JCF/k3vSVGfiuMkAZUK5wqhOsa/23QH1vHXXuRqNdoAjW5fWq8hGUnFAdT1hOLXGJDSaAxHFqBk40XgvTWQU9VA5TGqlH6xdNkGtgf6CMzNgFip/f3AqMWBW05fBOtgyw+T3aVyXqZ/U69Y2AxmfSNKt4EwqoaeaxQNTsPKC9aGEKQtRGlCQhCVg63OMMa2WRASoNO6xiTdPZ6KejOkqhyw0pafUzo/F03RAVSX99DUfdRLIEKbZzHauSyDtjPyvDcSEKlznsPU/BnNawdyVttBjtLd4jAm4ValfAM=; 5:VYbp34HLk4ojpU5RepZss8uggy6rsdmOWo0ElFYq3za2xt3fj3rqvoTZRQdCgUEt7hw7Un+WPOTOjWfO8gHiTVRcPjuSfa/AzrtXdQ74QfYZ92OqQtEa4tM2kLaltRWBqB+kcrQNOkGHpWsECt59Bg==; 24:0VKME6LCFBQNJP/SmXLbETz4ob8gp1UcBN5yfazO8D5GYJG++3llm/78zxLSf5A243WOpotpghj0//QyVevWt2znzo9874gJggy8NHI64c8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0369; 7:IOwbmuikTYS0kN8ctBRhKhdykiHIc/i+U05DgbV6ezSmPUAqKeIYfQ9NaPV4J4w7NkSUg6oE1+5jdCZ4ZuutB7iOAtojLPpICQxxoLjgMQPmxRXK81OUquWwibcEj3g6agDQcIRzveo1mRmeleohcQBs0LHXv0BwK1U/j3NojHswsDDvIsDXDxTin4UaS18hiwUOOvfzLoAQsXQ1JCjJs8aIIApTlpjSaHC6S+rtwSFtI+dp9J0PDNMqs3BnVCAp4wZiLyXQdIDXueDbzy2eaiiC31JGAlNxhGdELA2FLWu5J/J/tL3WZu8XF4UW8vO30+5jvKkj/7v9PMqJE4KJkg==; 20:jFPTr9wRPSC2bSL5OyGCIX/qMvYumYkUQCkuhCOS76jGjenymVLFc0y1xd2iC+vXcnRKSzKLCtiTOtb2pQkThrszfyrsjJwuTR6SrzfqZS+mwQRZ5rPRjqa5Iaz0bhCQWqYHKiXgSVZ1raYJtYvJbLu+xHWH2YmpGTrg9iyMTwo= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2017 23:49:08.0400 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86; Ip=[63.163.107.21]; Helo=[milsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR04MB0369 Sender: target-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: target-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Move timer initialization from before add_timer() to the context where the containing object is initialized. Use setup_timer() and mod_timer() instead of open coding these. Use 'jiffies' instead of get_jiffies_64() when calculating expiry times because expiry times have type unsigned long, just like 'jiffies'. Signed-off-by: Bart Van Assche Reviewed-by: Hannes Reinecke Cc: Christoph Hellwig Cc: Andy Grover Cc: David Disseldorp Cc: --- drivers/target/iscsi/iscsi_target.c | 3 +++ drivers/target/iscsi/iscsi_target_erl0.c | 10 +++------- drivers/target/iscsi/iscsi_target_erl0.h | 1 + drivers/target/iscsi/iscsi_target_erl1.c | 8 ++------ drivers/target/iscsi/iscsi_target_erl1.h | 1 + drivers/target/iscsi/iscsi_target_login.c | 16 ++++++++++------ drivers/target/iscsi/iscsi_target_login.h | 1 + drivers/target/iscsi/iscsi_target_nego.c | 8 +++----- drivers/target/iscsi/iscsi_target_util.c | 26 ++++++++------------------ drivers/target/iscsi/iscsi_target_util.h | 2 ++ 10 files changed, 34 insertions(+), 42 deletions(-) diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c index becf0e9259b2..b378af27df3b 100644 --- a/drivers/target/iscsi/iscsi_target.c +++ b/drivers/target/iscsi/iscsi_target.c @@ -372,6 +372,9 @@ struct iscsi_np *iscsit_add_np( init_completion(&np->np_restart_comp); INIT_LIST_HEAD(&np->np_list); + setup_timer(&np->np_login_timer, iscsi_handle_login_thread_timeout, + (unsigned long)np); + ret = iscsi_target_setup_login_socket(np, sockaddr); if (ret != 0) { kfree(np); diff --git a/drivers/target/iscsi/iscsi_target_erl0.c b/drivers/target/iscsi/iscsi_target_erl0.c index 9a96e17bf7cd..0d7a2d9875c7 100644 --- a/drivers/target/iscsi/iscsi_target_erl0.c +++ b/drivers/target/iscsi/iscsi_target_erl0.c @@ -749,7 +749,7 @@ int iscsit_check_post_dataout( } } -static void iscsit_handle_time2retain_timeout(unsigned long data) +void iscsit_handle_time2retain_timeout(unsigned long data) { struct iscsi_session *sess = (struct iscsi_session *) data; struct iscsi_portal_group *tpg = sess->tpg; @@ -809,14 +809,10 @@ void iscsit_start_time2retain_handler(struct iscsi_session *sess) pr_debug("Starting Time2Retain timer for %u seconds on" " SID: %u\n", sess->sess_ops->DefaultTime2Retain, sess->sid); - init_timer(&sess->time2retain_timer); - sess->time2retain_timer.expires = - (get_jiffies_64() + sess->sess_ops->DefaultTime2Retain * HZ); - sess->time2retain_timer.data = (unsigned long)sess; - sess->time2retain_timer.function = iscsit_handle_time2retain_timeout; sess->time2retain_timer_flags &= ~ISCSI_TF_STOP; sess->time2retain_timer_flags |= ISCSI_TF_RUNNING; - add_timer(&sess->time2retain_timer); + mod_timer(&sess->time2retain_timer, + jiffies + sess->sess_ops->DefaultTime2Retain * HZ); } /* diff --git a/drivers/target/iscsi/iscsi_target_erl0.h b/drivers/target/iscsi/iscsi_target_erl0.h index 60e69e2af6ed..a54d2047ed1b 100644 --- a/drivers/target/iscsi/iscsi_target_erl0.h +++ b/drivers/target/iscsi/iscsi_target_erl0.h @@ -11,6 +11,7 @@ extern void iscsit_set_dataout_sequence_values(struct iscsi_cmd *); extern int iscsit_check_pre_dataout(struct iscsi_cmd *, unsigned char *); extern int iscsit_check_post_dataout(struct iscsi_cmd *, unsigned char *, u8); extern void iscsit_start_time2retain_handler(struct iscsi_session *); +extern void iscsit_handle_time2retain_timeout(unsigned long data); extern int iscsit_stop_time2retain_timer(struct iscsi_session *); extern void iscsit_connection_reinstatement_rcfr(struct iscsi_conn *); extern void iscsit_cause_connection_reinstatement(struct iscsi_conn *, int); diff --git a/drivers/target/iscsi/iscsi_target_erl1.c b/drivers/target/iscsi/iscsi_target_erl1.c index fe9b7f1e44ac..19b28255b687 100644 --- a/drivers/target/iscsi/iscsi_target_erl1.c +++ b/drivers/target/iscsi/iscsi_target_erl1.c @@ -1148,7 +1148,7 @@ static int iscsit_set_dataout_timeout_values( /* * NOTE: Called from interrupt (timer) context. */ -static void iscsit_handle_dataout_timeout(unsigned long data) +void iscsit_handle_dataout_timeout(unsigned long data) { u32 pdu_length = 0, pdu_offset = 0; u32 r2t_length = 0, r2t_offset = 0; @@ -1264,13 +1264,9 @@ void iscsit_start_dataout_timer( pr_debug("Starting DataOUT timer for ITT: 0x%08x on" " CID: %hu.\n", cmd->init_task_tag, conn->cid); - init_timer(&cmd->dataout_timer); - cmd->dataout_timer.expires = (get_jiffies_64() + na->dataout_timeout * HZ); - cmd->dataout_timer.data = (unsigned long)cmd; - cmd->dataout_timer.function = iscsit_handle_dataout_timeout; cmd->dataout_timer_flags &= ~ISCSI_TF_STOP; cmd->dataout_timer_flags |= ISCSI_TF_RUNNING; - add_timer(&cmd->dataout_timer); + mod_timer(&cmd->dataout_timer, jiffies + na->dataout_timeout * HZ); } void iscsit_stop_dataout_timer(struct iscsi_cmd *cmd) diff --git a/drivers/target/iscsi/iscsi_target_erl1.h b/drivers/target/iscsi/iscsi_target_erl1.h index 54d36bd25bea..0ff6e310ca36 100644 --- a/drivers/target/iscsi/iscsi_target_erl1.h +++ b/drivers/target/iscsi/iscsi_target_erl1.h @@ -29,6 +29,7 @@ extern int iscsit_execute_ooo_cmdsns(struct iscsi_session *); extern int iscsit_execute_cmd(struct iscsi_cmd *, int); extern int iscsit_handle_ooo_cmdsn(struct iscsi_session *, struct iscsi_cmd *, u32); extern void iscsit_remove_ooo_cmdsn(struct iscsi_session *, struct iscsi_ooo_cmdsn *); +extern void iscsit_handle_dataout_timeout(unsigned long data); extern void iscsit_mod_dataout_timer(struct iscsi_cmd *); extern void iscsit_start_dataout_timer(struct iscsi_cmd *, struct iscsi_conn *); extern void iscsit_stop_dataout_timer(struct iscsi_cmd *); diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c index 66238477137b..cc2906b5866f 100644 --- a/drivers/target/iscsi/iscsi_target_login.c +++ b/drivers/target/iscsi/iscsi_target_login.c @@ -325,6 +325,9 @@ static int iscsi_login_zero_tsih_s1( spin_lock_init(&sess->session_usage_lock); spin_lock_init(&sess->ttt_lock); + setup_timer(&sess->time2retain_timer, iscsit_handle_time2retain_timeout, + (unsigned long)sess); + idr_preload(GFP_KERNEL); spin_lock_bh(&sess_idr_lock); ret = idr_alloc(&sess_idr, NULL, 0, 0, GFP_NOWAIT); @@ -833,7 +836,7 @@ void iscsi_post_login_handler( iscsit_dec_conn_usage_count(conn); } -static void iscsi_handle_login_thread_timeout(unsigned long data) +void iscsi_handle_login_thread_timeout(unsigned long data) { struct iscsi_np *np = (struct iscsi_np *) data; @@ -860,13 +863,9 @@ static void iscsi_start_login_thread_timer(struct iscsi_np *np) * point we do not have access to ISCSI_TPG_ATTRIB(tpg)->login_timeout */ spin_lock_bh(&np->np_thread_lock); - init_timer(&np->np_login_timer); - np->np_login_timer.expires = (get_jiffies_64() + TA_LOGIN_TIMEOUT * HZ); - np->np_login_timer.data = (unsigned long)np; - np->np_login_timer.function = iscsi_handle_login_thread_timeout; np->np_login_timer_flags &= ~ISCSI_TF_STOP; np->np_login_timer_flags |= ISCSI_TF_RUNNING; - add_timer(&np->np_login_timer); + mod_timer(&np->np_login_timer, jiffies + TA_LOGIN_TIMEOUT * HZ); pr_debug("Added timeout timer to iSCSI login request for" " %u seconds.\n", TA_LOGIN_TIMEOUT); @@ -1258,6 +1257,11 @@ static int __iscsi_target_login_thread(struct iscsi_np *np) pr_debug("Moving to TARG_CONN_STATE_FREE.\n"); conn->conn_state = TARG_CONN_STATE_FREE; + setup_timer(&conn->nopin_response_timer, + iscsit_handle_nopin_response_timeout, (unsigned long)conn); + setup_timer(&conn->nopin_timer, iscsit_handle_nopin_timeout, + (unsigned long)conn); + if (iscsit_conn_set_transport(conn, np->np_transport) < 0) { kfree(conn); return 1; diff --git a/drivers/target/iscsi/iscsi_target_login.h b/drivers/target/iscsi/iscsi_target_login.h index 0e1fd6cedd54..f77850bf3e58 100644 --- a/drivers/target/iscsi/iscsi_target_login.h +++ b/drivers/target/iscsi/iscsi_target_login.h @@ -24,5 +24,6 @@ extern void iscsi_post_login_handler(struct iscsi_np *, struct iscsi_conn *, u8) extern void iscsi_target_login_sess_out(struct iscsi_conn *, struct iscsi_np *, bool, bool); extern int iscsi_target_login_thread(void *); +extern void iscsi_handle_login_thread_timeout(unsigned long data); #endif /*** ISCSI_TARGET_LOGIN_H ***/ diff --git a/drivers/target/iscsi/iscsi_target_nego.c b/drivers/target/iscsi/iscsi_target_nego.c index 7ccc9c1cbfd1..215399af0461 100644 --- a/drivers/target/iscsi/iscsi_target_nego.c +++ b/drivers/target/iscsi/iscsi_target_nego.c @@ -572,11 +572,9 @@ static void iscsi_target_do_login_rx(struct work_struct *work) conn->login_kworker = current; allow_signal(SIGINT); - init_timer(&login_timer); - login_timer.expires = (get_jiffies_64() + TA_LOGIN_TIMEOUT * HZ); - login_timer.data = (unsigned long)conn; - login_timer.function = iscsi_target_login_timeout; - add_timer(&login_timer); + setup_timer_on_stack(&login_timer, iscsi_target_login_timeout, + (unsigned long)conn); + mod_timer(&login_timer, jiffies + TA_LOGIN_TIMEOUT * HZ); pr_debug("Starting login_timer for %s/%d\n", current->comm, current->pid); rc = conn->conn_transport->iscsit_get_login_rx(conn, login); diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c index 68371a7e54d8..07b0c8037762 100644 --- a/drivers/target/iscsi/iscsi_target_util.c +++ b/drivers/target/iscsi/iscsi_target_util.c @@ -176,6 +176,8 @@ struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *conn, int state) spin_lock_init(&cmd->istate_lock); spin_lock_init(&cmd->error_lock); spin_lock_init(&cmd->r2t_lock); + setup_timer(&cmd->dataout_timer, iscsit_handle_dataout_timeout, + (unsigned long)cmd); return cmd; } @@ -881,7 +883,7 @@ static int iscsit_add_nopin(struct iscsi_conn *conn, int want_response) return 0; } -static void iscsit_handle_nopin_response_timeout(unsigned long data) +void iscsit_handle_nopin_response_timeout(unsigned long data) { struct iscsi_conn *conn = (struct iscsi_conn *) data; @@ -950,14 +952,10 @@ void iscsit_start_nopin_response_timer(struct iscsi_conn *conn) return; } - init_timer(&conn->nopin_response_timer); - conn->nopin_response_timer.expires = - (get_jiffies_64() + na->nopin_response_timeout * HZ); - conn->nopin_response_timer.data = (unsigned long)conn; - conn->nopin_response_timer.function = iscsit_handle_nopin_response_timeout; conn->nopin_response_timer_flags &= ~ISCSI_TF_STOP; conn->nopin_response_timer_flags |= ISCSI_TF_RUNNING; - add_timer(&conn->nopin_response_timer); + mod_timer(&conn->nopin_response_timer, + jiffies + na->nopin_response_timeout * HZ); pr_debug("Started NOPIN Response Timer on CID: %d to %u" " seconds\n", conn->cid, na->nopin_response_timeout); @@ -981,7 +979,7 @@ void iscsit_stop_nopin_response_timer(struct iscsi_conn *conn) spin_unlock_bh(&conn->nopin_timer_lock); } -static void iscsit_handle_nopin_timeout(unsigned long data) +void iscsit_handle_nopin_timeout(unsigned long data) { struct iscsi_conn *conn = (struct iscsi_conn *) data; @@ -1016,13 +1014,9 @@ void __iscsit_start_nopin_timer(struct iscsi_conn *conn) if (conn->nopin_timer_flags & ISCSI_TF_RUNNING) return; - init_timer(&conn->nopin_timer); - conn->nopin_timer.expires = (get_jiffies_64() + na->nopin_timeout * HZ); - conn->nopin_timer.data = (unsigned long)conn; - conn->nopin_timer.function = iscsit_handle_nopin_timeout; conn->nopin_timer_flags &= ~ISCSI_TF_STOP; conn->nopin_timer_flags |= ISCSI_TF_RUNNING; - add_timer(&conn->nopin_timer); + mod_timer(&conn->nopin_timer, jiffies + na->nopin_timeout * HZ); pr_debug("Started NOPIN Timer on CID: %d at %u second" " interval\n", conn->cid, na->nopin_timeout); @@ -1044,13 +1038,9 @@ void iscsit_start_nopin_timer(struct iscsi_conn *conn) return; } - init_timer(&conn->nopin_timer); - conn->nopin_timer.expires = (get_jiffies_64() + na->nopin_timeout * HZ); - conn->nopin_timer.data = (unsigned long)conn; - conn->nopin_timer.function = iscsit_handle_nopin_timeout; conn->nopin_timer_flags &= ~ISCSI_TF_STOP; conn->nopin_timer_flags |= ISCSI_TF_RUNNING; - add_timer(&conn->nopin_timer); + mod_timer(&conn->nopin_timer, jiffies + na->nopin_timeout * HZ); pr_debug("Started NOPIN Timer on CID: %d at %u second" " interval\n", conn->cid, na->nopin_timeout); diff --git a/drivers/target/iscsi/iscsi_target_util.h b/drivers/target/iscsi/iscsi_target_util.h index 425160565d0c..78b3b9d20963 100644 --- a/drivers/target/iscsi/iscsi_target_util.h +++ b/drivers/target/iscsi/iscsi_target_util.h @@ -47,9 +47,11 @@ extern struct iscsi_conn *iscsit_get_conn_from_cid_rcfr(struct iscsi_session *, extern void iscsit_check_conn_usage_count(struct iscsi_conn *); extern void iscsit_dec_conn_usage_count(struct iscsi_conn *); extern void iscsit_inc_conn_usage_count(struct iscsi_conn *); +extern void iscsit_handle_nopin_response_timeout(unsigned long data); extern void iscsit_mod_nopin_response_timer(struct iscsi_conn *); extern void iscsit_start_nopin_response_timer(struct iscsi_conn *); extern void iscsit_stop_nopin_response_timer(struct iscsi_conn *); +extern void iscsit_handle_nopin_timeout(unsigned long data); extern void __iscsit_start_nopin_timer(struct iscsi_conn *); extern void iscsit_start_nopin_timer(struct iscsi_conn *); extern void iscsit_stop_nopin_timer(struct iscsi_conn *);