From mboxrd@z Thu Jan 1 00:00:00 1970 From: maxime.ripard@free-electrons.com (Maxime Ripard) Date: Tue, 26 Jul 2016 07:49:37 +0200 Subject: [PATCH] clocksource: sun4i: Clear interrupts after stopping timer in probe function In-Reply-To: <1469502119-2344-1-git-send-email-wens@csie.org> References: <1469502119-2344-1-git-send-email-wens@csie.org> Message-ID: <20160726054937.GS7419@lukather> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, Jul 26, 2016 at 11:01:59AM +0800, Chen-Yu Tsai wrote: > The bootloader (U-boot) sometimes uses this timer for various delays. > It uses it as a ongoing counter, and does comparisons on the current > counter value. The timer counter is never stopped. > > In some cases when the user interacts with the bootloader, or lets > it idle for some time before loading Linux, the timer may expire, > and an interrupt will be pending. This results in an unexpected > interrupt when the timer interrupt is enabled by the kernel, at > which point the event_handler isn't set yet. This results in a NULL > pointer dereference exception, panic, and no way to reboot. > > Clear any pending interrupts after we stop the timer in the probe > function to avoid this. > > Signed-off-by: Chen-Yu Tsai Awesome, thanks! You should put stable in Cc though for this kind of patches. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753855AbcGZFtn (ORCPT ); Tue, 26 Jul 2016 01:49:43 -0400 Received: from down.free-electrons.com ([37.187.137.238]:50747 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751723AbcGZFtl (ORCPT ); Tue, 26 Jul 2016 01:49:41 -0400 Date: Tue, 26 Jul 2016 07:49:37 +0200 From: Maxime Ripard To: Chen-Yu Tsai Cc: Daniel Lezcano , Thomas Gleixner , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] clocksource: sun4i: Clear interrupts after stopping timer in probe function Message-ID: <20160726054937.GS7419@lukather> References: <1469502119-2344-1-git-send-email-wens@csie.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ScUgq5oMe+fJq4F1" Content-Disposition: inline In-Reply-To: <1469502119-2344-1-git-send-email-wens@csie.org> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --ScUgq5oMe+fJq4F1 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 26, 2016 at 11:01:59AM +0800, Chen-Yu Tsai wrote: > The bootloader (U-boot) sometimes uses this timer for various delays. > It uses it as a ongoing counter, and does comparisons on the current > counter value. The timer counter is never stopped. >=20 > In some cases when the user interacts with the bootloader, or lets > it idle for some time before loading Linux, the timer may expire, > and an interrupt will be pending. This results in an unexpected > interrupt when the timer interrupt is enabled by the kernel, at > which point the event_handler isn't set yet. This results in a NULL > pointer dereference exception, panic, and no way to reboot. >=20 > Clear any pending interrupts after we stop the timer in the probe > function to avoid this. >=20 > Signed-off-by: Chen-Yu Tsai Awesome, thanks! You should put stable in Cc though for this kind of patches. Maxime --=20 Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com --ScUgq5oMe+fJq4F1 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJXlvnxAAoJEBx+YmzsjxAgwSsP/AjZox/9Bli5x0y3Dm9G7UWG oifaNJLSAM+PneSBMak4JNnmiQh2V+GF7kD99QmC0Tc1Uhy4Bfu//N8eL2tdyIx5 fpYKn/AB0SmWMFOnv4KsNoZKe7VyYOE2DmyGLWh2X4QQlbvb64Niy2SZ5gheU0a4 INTYTekUiZrOm4kChRyLmLWlxTGgHxiBw5ALeIvZULgpNrgPm8AtsFSzsTrzedKY eRsXu25l59cBIje3JmrF6d5vqDXqGWS7g705KY8E8m+z9o159J2daNmtM1YhInsn ac3hLdWC/eUMNjouBTiNOCzBXxLSLK2+pqotes6Qw0r05jfIt6yN87ro19UNYDUJ S1ZHxMzMwdxVQrxx6KGwzSnlhlBGn/9A0Hv4iQl3ODlrWuf7qz9bk75MERsEeGR8 s1oizmV6TbbbhJX+SY5s814f8czilwqT0j+DKQ9jSsNlY3RHMK4sljapXmgKC9MV ZAouLXIrVibELKfYFHJ5ajwz6HuQuVlFcI2rrL8ol3IKd+WSegy6vKBSbJUxkOT+ ebkgqWcswaQG7CHbSOX/cnSKLlIfdqyL62jDBCygFPbGW2WdqvcobCvMrYSrv5qD b6L7vndf3OwQOQFWoypGcufCqrGOmFr6cu69ZlZpKcV+iuzYg2GqPb4UOxfFB+JK Mn2aY79pAtGETqo0NjWR =+5If -----END PGP SIGNATURE----- --ScUgq5oMe+fJq4F1--