From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755248AbcESWuU (ORCPT ); Thu, 19 May 2016 18:50:20 -0400 Received: from mail-bl2on0057.outbound.protection.outlook.com ([65.55.169.57]:60879 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751646AbcESWuQ (ORCPT ); Thu, 19 May 2016 18:50:16 -0400 Authentication-Results: scotdoyle.com; dkim=none (message not signed) header.d=none;scotdoyle.com; dmarc=none action=none header.from=caviumnetworks.com; Message-ID: <573E431E.5000405@caviumnetworks.com> Date: Thu, 19 May 2016 15:50:06 -0700 From: David Daney User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: Scot Doyle CC: Tomi Valkeinen , Jean-Christophe Plagniol-Villard , David Daney , Ming Lei , Dann Frazier , Jeremy Kerr , Peter Hurley , Pavel Machek , Jonathan Liu , Alistair Popple , Jean-Philippe Brucker , "Chintakuntla, Radha" , Greg Kroah-Hartman , Jiri Slaby , David Airlie , , , , , Subject: Re: [PATCH] fbcon: warn on invalid cursor blink intervals References: <1463510464-28124-1-git-send-email-ddaney.cavm@gmail.com> <20160517204912.GA29719@amd> <573DE2D0.1050402@caviumnetworks.com> In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [50.233.148.158] X-ClientProxiedBy: DM2PR07CA0051.namprd07.prod.outlook.com (10.141.52.179) To CY1PR07MB2133.namprd07.prod.outlook.com (10.164.112.11) X-MS-Office365-Filtering-Correlation-Id: 6c609482-4e05-46c2-f80e-08d38037ef70 X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2133;2:C1k+vLpsYGMcY77FLfBu7mK7cc942NuOpMQcVCSGQIL87tU2ncUNmwtNkKqcWSHEiINFy3nrSnyZLgbVxs56iMkArUMsYBKnHnme1vHxSR7g9X29ceCXoZPIN8w7Sdgty/uC0S/lBL3ScRmyoiQ0lyW+J9eJNNIdQOZd97i5jxAUzmD1MOC6FVBAEsL1j+sS;3:7uLu9uUKNxcz3Daf/um6z9okdcn4zVZrzwUt/UxYAQR2Flzxy/+dW+wYq7v397iklEDttcq/sTNlSBGOanfD+faU95goYOEC2HT8+Wrd/RiwDK76ufF0kCxO/TFe48uC;25:Uhzcb8lZ3b4c+ntEcsLgUSaQvWoo/GfSCRPGvvRV9G2+zwOrEQyv9tMtg38EyYnJBka2G9nLVceyfgPLAqoa5n9ZB7PlysbDdL+3vNqDgG9H4XzycavIqptj4Hg6uDzFKceetiG7rt69abWEE9UHKqqCR+K/O8Q8b4nR7nqu1YgfwqbJXbSlSUa85Td23p3uo7uzMLumhMT7+FV+ZcWbu/OTJnkP3uQ4f9yFcRS1zaFqydIqX1ztBSn+p3ry+sCuFqKGNH0uM4b5XSv/QKWx1JXH1YOujo9nD3USfIVaBJI1vAOMi/7jXcQZECwGPEoT1/BePIyfVNb1PMt0z5dmhM6rJmz/IYpeknx/9XjKU1bw09Z5uibuxYzkETvN9+UhjP+wTj8pSzD3tb2rSPhTtkkEIhW2JZr4jhvOIRBK2j8= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2133; X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2133;20:gh/24se+ZubCQxSchvmjQNllxu2CsnwUplVkC4UYtrIhfom4/XT2Sb0bSMSjGjol2O9atVvi1BpdnzcJVL6HJ661Q0ntYGx447/0gYMLoy7Y/9Dnd6amd/sXmJ8ilzfQ40VDgJ3uJC8eucSAo/BFeJIBrP0XozkSb2QVFlRieKlchxdqE6ZUMxr4iP4QWwH7/Q5VQkY7QJSqIHODuZxZooGGhxggAIfP20u0z1kPK9SjuVUm/TiSlLYOkktBcRo0bp4LeSEOhaFdDflHZK0k4Dnu358/3DZPlFVtC7hWmqZjxa0ArgMJUrzQKF1XkoJSqzVpVg5Wh+H9gaaxQWH8AILdA7hejQ5Q0fzY8kfiUv3kTgsndMv9AfTVDOriu/RO8p51DM09BfBRsFUDu1THHhtsrmaNHtpj8/6tGs9O/4SNJQE9WzuxAOi0kGrRO44/crjwnElIZeovHZuxuIH2HUrsO8xfztHRx20C1SN5D9vkVR7/59cngZVew4iXy4YvsabvUIVWj1qqf7VIifvaTFacvx/5FYoBox1sNGZewiIgDRO0JUcnB/GWlL55G2Vhhii4vMIi1ro66cUBMaj1wCNPTyk5AsMO5wQaeHEf3P4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:CY1PR07MB2133;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2133; X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2133;4:2s2HPRj14UPnk3qXTb/2xbWKmN0UAbAt90QmnsLCVUipUoj7U9wIpg46OYww+3lD3Egn1zEiM7JuhKsnPGDlW1Fv6PVM3elNoWOYSDyPKEwU+QywN7urEvd0Cumn1qpTyK3JuBxCPB95WYrNcGE9TW9djcqmZDKjSY2AXMuTEIYaIcaSJULhFARbLrZE2iU3h0JUMHQgnBluXttsxwrJW7EYp6ayKMtsWgK4/ITjMNZ0WKq4nenNVEouzlPBCRXAxXPUoSqfqbEKJlo3zEKMtQVAuHNhJNcDQ3I11LqBm7/iJZHmwfS1kMubwsEOnYwdGmf1CtpcXMjwbKxwkx1vOEt0ULhyhKBHp16njYJZWum0gV58nqz+851+AwQnWzL1 X-Forefront-PRVS: 094700CA91 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(377454003)(24454002)(23756003)(87266999)(76176999)(50986999)(8676002)(65816999)(81166006)(54356999)(92566002)(5004730100002)(36756003)(66066001)(19580395003)(33656002)(19580405001)(47776003)(65806001)(230700001)(83506001)(65956001)(4001350100001)(50466002)(6116002)(189998001)(4326007)(110136002)(5008740100001)(64126003)(3846002)(77096005)(15975445007)(2950100001)(53416004)(2906002)(42186005)(586003)(93886004);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR07MB2133;H:dl.caveonetworks.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;CY1PR07MB2133;23:I0EHqr/EXL7EdCNi9dvTq7Bs7TWWem5T6g4yr19?= =?iso-8859-1?Q?Rrwz9uE8rBLWiBuI7dnfo32b125e08edqg0UFRvcTBkrYAFzg0ynQadEZ8?= =?iso-8859-1?Q?WkfRTQvDkA8StzRAbNat64w7wweD2x8PmGngXhsUPhB5GciaTYAobxL3K9?= =?iso-8859-1?Q?TBdMl2e9O9TGM1y1oBjWKgGjcbWKC7FgzfG4FeBKXXoezq3iI+BeMTDTmR?= =?iso-8859-1?Q?cbBJmvicNQuhzjrAu5SDDcs4L+tucQGhpmyqNL9T81TK4qpYw1oiZLw9kD?= =?iso-8859-1?Q?IpEwFmyJo3hUY6zLhlt54HgDu9eKOPBC1CjWSvL0WcvTSVE5NreoNqaobT?= =?iso-8859-1?Q?ckAwf4qbxXyOKbb5+CrmGTYeV6O5VUbT9HjiKcCyn2JJiklmvjBtz5961d?= =?iso-8859-1?Q?tweD3W2yeFRniJFQ9itLVjiU5/WV1MtmE0YIFHifeJOab6JABUfDzpJ9TG?= =?iso-8859-1?Q?kaBJttJv/kiE6Z+hsEfMgITlPH3BCopyZwVJQw3iCsq4mViJhkloTY+T3R?= =?iso-8859-1?Q?f4G/MN+J5ast1g8erFnTCjVCoNiBe2BqbTlJxGQ7Mv6YghSvj9O6Ykm3C+?= =?iso-8859-1?Q?lVz2wuDqyjhsj4o+dpvJRSEOAMVqwgn95Dm7ktkW49QP8lYnFeyrrS1HPt?= =?iso-8859-1?Q?f61s/QbLCD0nngAK6ePJIA3Fs/0+efQCToCt0is1nvfZnOHKzMyzABxzoC?= =?iso-8859-1?Q?M2WG0Vd2YuEAvqe3byeQ5bnNiMyv8xDH1HXxjuLu1Q/Kx5m+3fqvO0cLdg?= =?iso-8859-1?Q?Q/Bms7/Fm5LowKrmNY8hxKZeCnVV33VS8uOryGg3dhwrwLM+vWiZAotsD0?= =?iso-8859-1?Q?4xH4fOxvqAgv73VYv3qWE7itQbXc9MskJLGX2M+bC18KlDOxbHuJvEsMI3?= =?iso-8859-1?Q?GU9O+B5sJMxuOqxDjvZ6jdkK/Vh62nNMSXUNZKPtz08LBb2MPcZ1pzNHWx?= =?iso-8859-1?Q?ZJdOq+Z9VzQ9JQ/eg94ZzhwKY2JD2jNsJXDcgmw5WzzC3bIUbAxfvfYbcn?= =?iso-8859-1?Q?z8iqxWjGTQY9gb/O5IQkmCNB6Cann3XmTCUH6e3eaY0MK3spI9yfgXJ4rC?= =?iso-8859-1?Q?mlzGy0ixBwzTgSltqKTav7EWE9JcZJn3dsdGpqdNmOdVrfEGEfB80KTS8b?= =?iso-8859-1?Q?BaWkAlCuPBzpk/F7MqaR+QGvPjg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2133;5:Whc16bYedFW8lKaa4d+Kh4aopKfnc165gA1BHfEqrM+82gM2nrOkztBkj2SxyAgiEgPbuHhl0z9emuYd57MquzTjPQeuDu7nL9EKxedXQhnp/qwThUJSALp17ikkwUtGptXEzKDh65GQVSqC10NV7g==;24:nN9Wm9onpCnl3nvRemunugRREXuoiN27lIdywAOKDnMtQXey/ZHntKn1fmD03nofSDMe2fm4xWD47nVqd5fNkjLLjW4JZ8qsm71SG0feKXI=;7:r17L9jtFBWMFGnnCiMvVKTFezH46u6RpagcBAM4YCrEy41CQwjSMpE3v0iFZGC4EsASOR5RB0Y8vtgyHSEBb6PQMVBQJEn8K1ZSQiqz/qlaTo7bv1AZv9cWbETw/jbV20/M30cPVmr2jNnOuetcutSZ1UOarC7fmmmWZEI5VQlLcUeDt2Uz+E/bfiutKnV7e SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2016 22:50:10.1836 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2133 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/19/2016 03:31 PM, Scot Doyle wrote: > Two systems are locking on boot [1] because ops->cur_blink_jiffies > is set to zero from vc->vc_cur_blink_ms. > > Ignore such invalid intervals and log a warning. > > [1] https://bugs.launchpad.net/bugs/1574814 > > Suggested-by: David Daney > Signed-off-by: Scot Doyle > Cc: [v4.2] This seems better. I didn't test it, but... Acked-by: David Daney > --- > drivers/video/console/fbcon.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c > index 6e92917..fad5b89 100644 > --- a/drivers/video/console/fbcon.c > +++ b/drivers/video/console/fbcon.c > @@ -1095,7 +1095,13 @@ static void fbcon_init(struct vc_data *vc, int init) > con_copy_unimap(vc, svc); > > ops = info->fbcon_par; > - ops->cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms); > + > + if (vc->vc_cur_blink_ms >= 50) > + ops->cur_blink_jiffies = > + msecs_to_jiffies(vc->vc_cur_blink_ms); > + else > + WARN_ONCE(1, "blink interval < 50 ms"); > + > p->con_rotate = initial_rotation; > set_blitting_type(vc, info); > > @@ -1309,7 +1315,11 @@ static void fbcon_cursor(struct vc_data *vc, int mode) > int y; > int c = scr_readw((u16 *) vc->vc_pos); > > - ops->cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms); > + if (vc->vc_cur_blink_ms >= 50) > + ops->cur_blink_jiffies = > + msecs_to_jiffies(vc->vc_cur_blink_ms); > + else > + WARN_ONCE(1, "blink interval < 50 ms"); > > if (fbcon_is_inactive(vc, info) || vc->vc_deccm != 1) > return; >