From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753309AbcIAWu1 (ORCPT ); Thu, 1 Sep 2016 18:50:27 -0400 Received: from mail-db5eur01on0043.outbound.protection.outlook.com ([104.47.2.43]:51415 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752437AbcIAWuZ (ORCPT ); Thu, 1 Sep 2016 18:50:25 -0400 Authentication-Results: spf=pass (sender IP is 193.47.165.134) smtp.mailfrom=mellanox.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=pass action=none header.from=mellanox.com; From: Liav Rehana To: CC: , , , , Liav Rehana Subject: [PATCH] Fix chance of sign extension to nsec after its msb is set during calculation. Date: Thu, 1 Sep 2016 14:14:38 +0300 Message-ID: <1472728478-3788-1-git-send-email-liavr@mellanox.com> X-Mailer: git-send-email 1.7.1 MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.000.1202-22520.000 X-TM-AS-Result: No--7.152500-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:193.47.165.134;IPV:NLI;CTRY:IL;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(199003)(189002)(229853001)(48376002)(2906002)(81156014)(8676002)(19580405001)(92566002)(626004)(36756003)(106466001)(4326007)(50986999)(81166006)(356003)(19580395003)(2351001)(33646002)(87936001)(8936002)(107886002)(49486002)(50226002)(110136002)(86362001)(77096005)(305945005)(4001430100002)(47776003)(11100500001)(5003940100001)(189998001)(5660300001)(50466002)(7846002)(586003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0502MB2983;H:mtlcas13.mtl.com;FPR:;SPF:Pass;PTR:mail13.mellanox.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD032;1:+MuRqv6qXnyMz6zZxxB3gli57FDHDcHuTGfEyPDOR+tiFGxgoWjvjLJ9g/snxLPHfy5VNg5P5KrmiMWoZDvKogQEsI3EbBPyRYJoVkSzpOFErqOy3hIKNuUW2mE3lUZMX0SpNFrP4Mc8uXhZ3wDA5J0RrlLbG7LBWkEgoFSrMXLPtDKZX9jROuSFSjzGifYPNgtAfK0TP5dnEyCVwMf4MpCpUApttYNtqno9HG9TSMeeIC2wZgus5Rt2r6XA66KJDlyLlLXNpvnLV0xEmJgmL/xaE345S9pvBkrV0Z+4qvmXDBBLTVKaK2YMuUK8GoLMqgezxzvAvHnR/1hMskiJsjUPMkmluh+kIZHW0CobkapUKriL1yH7KYUO28/oUT3iMosmSDewYaouU+Iwbo5o6yqDSIQU95CNHFEgN+u2cjxLa9oGeDFKC6ihgVBB8VNDor3dq703jD7aHIwiTQ/+F+2ukJyxnB+3Zwg+AfzG5FAmsOuVz6smiicIKSsirgF7 X-MS-Office365-Filtering-Correlation-Id: a537236b-8131-4969-f49e-08d3d2592c9f X-Microsoft-Exchange-Diagnostics: 1;DB6PR0502MB2983;2:b3nLaqxUnUKA2agYGH74/dcJecGbEZJhI/66sv6quYv280okkET3gkc+btr+Wfe80kj6McbNNMtO6FT0WwH91dmvWBWYfQ2/+5+Sn44hMUe4QMun5GNcZybZTHrM1gGXytCuFnr1eXg21HX9L6INmBSjMZB1mvEfHfMR1f7mnSSPe5YtBN1L/h3vlPQHH7kT;3:HQhDUwaNEr07Y6RTA0YnX8CASLQMW/hsWc93z/yCD+CCehXVs9JBP8zVh23Fy9l86PBOAZCqClE1+0Yi3g+ifM0OopjCrX+OgB+ZzWAq3EDCImS52o5UkOM/4XbZU5DHsRFpFi6rH9DjDl7/m2txmwmbOZioCpZ50n8tevKLc++BjUkqhnGvqRPYz+BykrXMlnEymjIciIAG9gQub81vEV6bdGuMvvcvVzlVRpVA70lJM4lC5kkNTEGNlowjKDojQ2B3kh0BmH/4lnhjBydulg==;25:UG/dzKzVIuHWM1BNxGemhJMdU+TLCXLwuQlefvZK+sHc2Cx7ZYAwBvyPEkTY9IZWLM2c9Exdjwss0/tsAlDnvIAb447wMA9MsyZsPdvZswPOGtWT3fPvUOGttj4IENZ1USmYPpweP1Z0QSY4L9GRUzxEcbs2Z8mzL6ErPMSRhWy6I3/9p3QjjiJrKyy8+Txb3f08++TKrResBI307D7ogA5TZVGH5hS9Ou+tRzV/nK6jWCTgqFQKJ1cMtaoe/J+neAky9NAXAY1tpDe3Rhe6E/zgGpTatON40/811kg8wI+JjeqxgSXpfs8Ef9hnJq/lT/bj4ShiueF+knx+seFAU5H9Xv2xcdXNJsKSePSrq/KytNhNB/Jgz0yFhZaKLHxMECh4FUGl7wfyQfKqLESxJGVWdV3JVJknVZmaxzS4Wjc= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:DB6PR0502MB2983; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0502MB2983;31:GQs67Oy2MQXappHYvwvhZ6uLGrtLupqtbMmUAc4leoftafPzZk0Wg8/ScrdxMzU6QPTM749oxJr3nHt+SE4Cvy5ubwnE+1ZqMd5nteeQp9mkLd8eGi0uZwFG9mPL+AFzDrOR3LJs8S4+S8JLUR1cyC5fM1WtNw+VfICnzr+AZ0w6yYaETjd6/DnEFFsGwxBKAvYE/0VE9ysnbZjyeeSV2FHJSdcQiLbG0ewALX+42P4=;20:wdUwIkCtp9lojWdjWZASZAkBPLcOza/dcmP/QKOj+OvFysEbIvaKZguL+oDLl2DHVotZYnqbX/ovKq0e2yWj7/KbUwGULpwudISod7CWKgUiC4lhd1vLbjXqXsjE9zGTT8VwTOzP558kVuZJd1f/7urLNzgKvW6jL/SjPLnAODKuRxMF+JkEU9w24/IgCGD5oc+qCn7uAzH6/J+37pikiO9t2u/cAct/bOp+XEbSt5EULPu57n8aEQHsJSzvqhgwNtRR44eURT/PcVHCyItBXd24r2fhYMgDt7hMFVv06Q9zfp3Uk8QS50fciOC3go8mHsBPSQS4MLTKH2Zil6PJM80qQ94oUeiqUXZz0gapqXDJ7i3m6OH6pTOCi1PxF4VT/rCzpZPW6aPGMpmgqzQ/O7FFe5bHo/1nKmdryDp/c4hIZ2NQHpg0TIQb8CtyJWKjNViRke3hI0S7uFjJvlSMh2AZFSNVCtL7aEVXcJmz18AAM9Ay6ZHuN6W0HK7qGVHv X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(21532816269658); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(13016025)(13018025)(3002001)(10201501046)(6055026);SRVR:DB6PR0502MB2983;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0502MB2983; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0502MB2983;4:/d5fbHC7bnmwHCJ6F/OkS6EKEolJz9FtthHbn9NSyjuh2njCH6+9pVdwpEthCtE3fCjuPAHzBJRpHJ/s3EiQ14LjQFrG3o9uNjG4l2OgvUx0rkdIP3k8OwlkDbNA9z1n9hYAnIRoMsSByBN7CyPQ5nOTIi+NGoo5k584QByuKPenGwcYXpshr8jmteEvvnDYLDqUun+q4STb5gR9ifwoM2oirw6bkcQDFdldfjpXZuSCCJ/xqO61ceUfsNp2fjOe/jo6Z9W4KIAZHlX7oXUQCKctq2RemDxB5An2NXUbqdLbtLrZcGs4oVWEHj+Gjg2tA3IrRrga9uCdWBJ8umeBeBW12gC1yAABy6Ay6Mcg+5ZSRTelBVbZiZ8Psc5b9WdFIJgH3Ad6fV58wsw8GVQYjfRXFC0EjHLx14gFzp196RUBVVux8lpjuf3U6d9kWTPM/c1G3i4Tm+XTFrqvHdp4zhPzlRE7SorhGMpmD/WzWmI= X-Forefront-PRVS: 0052308DC6 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB6PR0502MB2983;23:3lHfEQqPkBysm+yZ2OtYcWfxL5rV0esGtgSghZ2?= =?us-ascii?Q?LVSN+k1G+uRFRRuZ9aHaas56lXYtQFzQsAFCS6vyM/8JwgaO7yoEgMdXjYSQ?= =?us-ascii?Q?y1utRsJ9pTgvavFRQC/sAc10z7zUkq+INOp6gog4TET2r10LtIeb89m5T9MS?= =?us-ascii?Q?ka1miCFErh7Bj76D9zxEMofuNBGR7+p2nzybfW+XFgV13j/DRDXPb0KriFVb?= =?us-ascii?Q?RDM5mXfuK9tk+XVYazdqB217InPzFAX3al1ISrmtJ+0WOln3GidlJQKi09i0?= =?us-ascii?Q?SVb1cQsmF1vJloyezmQcdxBbIjer3DXpwxUQseWFFR/MOMhF76g/bgg3XD54?= =?us-ascii?Q?iG2hUHJojAezpvFQH5Q3TdkOuPgNt1zq30lAIBp5VQEz3i4Gim+SNx2Lx//l?= =?us-ascii?Q?qAnp3tlw/QD72vI1FwGiTrmGZFyq2YBlnFkiz0hw7oOZatXZnX+btfiCdM6c?= =?us-ascii?Q?1qhsUU87gU6tKb/c8KssLHEBWXm1Ol3RIg+Ue71zzH71HX/Vj8jca5FEiCtW?= =?us-ascii?Q?160ZwlGopqVX95irsFXwOENaCdKPj8NgRE3SbRffdiGm46h8LVzxuacl5JAY?= =?us-ascii?Q?z5GUBEG2c9KTmnGMbqD+ogHViPimSW99IN5LQIjuyV+L5NraEDYO0boT4ma4?= =?us-ascii?Q?PkFfDsqjIeWp83M/qzNCyCQ/epFaETGdXQCEDovdoXM9fqY+5bniKStYlQBv?= =?us-ascii?Q?ye1lUjw8l0YfORCaMiZsyqMYGsUyxcBmBsnx9it9yNsxiyR6mfaKG4Kiuq/8?= =?us-ascii?Q?KkA+axQfjpmmhIZeQU+NDtwRECLE5+l+oIz8bZsKTdIjJ805G2Chqsls7ESv?= =?us-ascii?Q?vGRrNg+AjJ6655JANPiJiR+eXaB92NUNxkHVDMdZgrSBTx5619GFxzGqViab?= =?us-ascii?Q?F0j/cdXn6H8W0oO2A8Fk6BuRV/2mnnWuMT2zP+F9L1GYIWjiCM3oC+5Ygy5M?= =?us-ascii?Q?jMciRzCgU2WwNu6SlCJNeMVYli15jYz052DZEmSz4rvmD3Z7oiTHk2XrpNBk?= =?us-ascii?Q?MBtWChW6uVaI/w8tZGLmn9rBU9vBepf0g6BuQtwZaL1CfEZgf23BkrMjm1lo?= =?us-ascii?Q?nlg9me4o=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0502MB2983;6:eW8tgeBpG+BFhhPMvvHzgXhzi5Ld3SrLO0HBpWIRXLXkgPAUlWDYnA1hSqv5spXM65QZeXQ/FSWJrdn9NfLJ4KSTAy6nHC31oM5FhsEh4KscZnuiC/K+2fTxp7iUoWnu7uITOIviXTZiKvqlRRQxZfUfvdiBK/JVpn2pJn9vMrP9kDIKmQfCkPo2+gpOUgAawNjbbf0ULrrxm21QlxKEldCuiM941BwVlqUIK8SjVpo50FojLC0e8Hy1VKABHtTZRVrmuuwjPW4MeG8Gf0FFdEz4UdnQpD2G1RSm2ukqXv3NiG6ahdw4WaqHEC26rLrbgBWNzRZxkuBLyrkNH5D+gg==;5:c4fxmRgBmEcXx0VYR27NTPeXGmfzH8MJUFIus+hZ8A04PBHY3F/DPJLH3T16zrSpq5fs5E4+hudrADbKrMQpaWDR/ZYA0I/796RMLOgo70wIuXOb2AAw3Ue0knFyhX6NWiR4whED5Wku7sNt+ktqng==;24:+3mb3amNMwbByigXnszPMWHQ9d7ItlmYqFxK1Mx4WAL23jB1zICTeQa01RIawiM60GiTzB9SrMZWfe/PTH9VrRxrwjwWjQwj8mTTLMVexMQ=;7:/uVwrZ5ICInr25oj5FVVUaIsQWdMYH35q4gsCyj+O3HLnJI69Omzus631xd+snfvi/moGijQJDsYZRikYoH7qNPbT5rCIzm5LVBY7lZ1fMAoYL6Im5AFys69mSqdCG4isj4k2+D5VbeTnKyOl2p3d6n+rO3eVbOMUXkIVjG088RKiQkYpViEaFEpoNHUtXuKSiskgzQ047WgwUznlmL25sxl9QUlcZZfFaaMVzWMXWXCKv4hSOdTrabLxX3j5K34 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2016 11:14:42.9790 (UTC) X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a652971c-7d2e-4d9b-a6a4-d149256f461b;Ip=[193.47.165.134];Helo=[mtlcas13.mtl.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0502MB2983 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Liav Rehana During the calculation of the nsec variable, "delta * tkr->mult" may cause overflow to the msb, if the suspended time is too long. In that case, we need to guarantee that the variable will not go through a sign extension during its shift, and thus it will result in a much higher value - close to the larget value of 64 bits. The following commit fixes this problem, which causes the following bug: Trying to connect through ftp to the os after a long enough suspended time will cause the nsec variable to get a much higher value after its shift because of sign extension, and thus the loop that follows some instructions afterwards, implemented in the inline function __iter_div_u64_rem, will take too long. Signed-off-by: Liav Rehana --- kernel/time/timekeeping.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 479d25c..ddf56a5 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -305,7 +305,7 @@ static inline s64 timekeeping_delta_to_ns(struct tk_read_base *tkr, s64 nsec; nsec = delta * tkr->mult + tkr->xtime_nsec; - nsec >>= tkr->shift; + nsec = ((u64) nsec) >> tkr->shift; /* If arch requires, add in get_arch_timeoffset() */ return nsec + arch_gettimeoffset(); -- 1.7.1