From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rik van Riel Subject: Re: [PATCH -v5 6/5] context_tracking: fix exception_enter when already in IN_KERNEL Date: Thu, 12 Feb 2015 10:47:10 -0500 Message-ID: <54DCCAFE.7080206@redhat.com> References: <1423600074-2907-1-git-send-email-riel@redhat.com> <20150211144319.2a0c29d6@cuia.bos.redhat.com> <20150212154232.GE18363@lerouge> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: paulmck@linux.vnet.ibm.com, luto@amacapital.net, will.deacon@arm.com, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, mtosatti@redhat.com, borntraeger@de.ibm.com, lcapitulino@redhat.com, pbonzini@redhat.com To: Frederic Weisbecker Return-path: In-Reply-To: <20150212154232.GE18363@lerouge> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 02/12/2015 10:42 AM, Frederic Weisbecker wrote: > On Wed, Feb 11, 2015 at 02:43:19PM -0500, Rik van Riel wrote: >> If exception_enter happens when already in IN_KERNEL state, the >> code still calls context_tracking_exit, which ends up in >> rcu_eqs_exit_common, which explodes with a WARN_ON when it is >> called in a situation where dynticks are not enabled. > > Fortunately context_tracking_exit() already has a current_state == > IN_KERNEL check so this shouldn't be a problem. No, it had a hard-coded "current_state == IN_USER" check, which is very close, but ... ... I replaced that with a state argument, and forgot to ensure that it never gets called with state == IN_KERNEL. This patch fixes that. > Meanwhile I'll still take the patch, it's better to handle that > from the caller. Thanks. - -- All rights reversed -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJU3Mr+AAoJEM553pKExN6DYNUH/2m9CtXhLdTHOEHRvxg41PCZ /xafetUOS9cka0CNuiYpUuvfMSucoePW7YqUXqjYSIP25DsAleOh0qdep1Ob5bH+ 2BqZNMwK3QDHf1+/V7nulnjVkeHtpXJm0HIZOjc06xeL+9T6ydB1vhQGIMLrGL9S LvOstI3fseeIgglwYc2Gx7H7e99oOkxysvwMMvcMrW0cPSRAOdYxINQnfYW8A5kq DTTXwWuJRZa4FLtP3wLpvocm5dMGDwTsDmuOk1PmXYlsTsO6H2BmCeio0euzStoJ l+jR4x7Aq2KXES7gnMgpPw1iON3xKJ/RbXF8IC/doII8FYEV8Raxnf7hl47etBw= =yIjW -----END PGP SIGNATURE-----