From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754450AbcLBVJG (ORCPT ); Fri, 2 Dec 2016 16:09:06 -0500 Received: from atrey.karlin.mff.cuni.cz ([195.113.26.193]:58469 "EHLO atrey.karlin.mff.cuni.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751220AbcLBVJF (ORCPT ); Fri, 2 Dec 2016 16:09:05 -0500 Date: Fri, 2 Dec 2016 22:09:03 +0100 From: Pavel Machek To: Josh Poimboeuf Cc: Andrey Ryabinin , Dmitry Vyukov , "Rafael J. Wysocki" , Len Brown , linux-pm@vger.kernel.org, LKML , Peter Zijlstra , Ingo Molnar , Andy Lutomirski , Scott Bauer , "x86@kernel.org" , Alexander Potapenko , kasan-dev Subject: Re: [PATCH v4] x86/suspend: fix false positive KASAN warning on suspend/resume Message-ID: <20161202210903.GB15126@amd> References: <20161201173438.bfe5eq23i6ezfxsq@treble> <20161201175611.gf63mwzomt4wrlxy@treble> <20161201203154.mwt5x736g7z6jh3o@treble> <5144d695-7ac4-f992-5239-91c772b0c121@virtuozzo.com> <20161202140147.gvj452hmlbxnstrg@treble> <20161202144240.3tect4hx4cks44iu@treble> <20161202150819.2h25oyoj7qsvrw77@treble> <20161202174221.sfcvvddbvl5uz4f4@treble> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="i9LlY+UWpKt15+FH" Content-Disposition: inline In-Reply-To: <20161202174221.sfcvvddbvl5uz4f4@treble> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --i9LlY+UWpKt15+FH Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri 2016-12-02 11:42:21, Josh Poimboeuf wrote: > Resuming from a suspend operation is showing a KASAN false positive > warning: >=20 >=20 > Reported-by: Scott Bauer > Signed-off-by: Josh Poimboeuf Acked-by: Pavel Machek > diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c > index 0e9505f..b2a0cff 100644 > --- a/mm/kasan/kasan.c > +++ b/mm/kasan/kasan.c > @@ -80,7 +80,14 @@ void kasan_unpoison_task_stack(struct task_struct *tas= k) > /* Unpoison the stack for the current task beyond a watermark sp value. = */ > asmlinkage void kasan_unpoison_task_stack_below(const void *watermark) > { > - __kasan_unpoison_stack(current, watermark); > + /* > + * Calculate the task stack base address. Avoid using 'current' > + * because this function is called by early resume code which hasn't > + * yet set up the percpu register (%gs). > + */ > + void *base =3D (void *)((unsigned long)watermark & ~(THREAD_SIZE - 1)); > + > + kasan_unpoison_shadow(base, watermark - base); > } > =20 I know you modified this code to be arch-independend... but is it really? I guess it is portable enough across architectures that run kasan today.. Pavel --=20 (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blo= g.html --i9LlY+UWpKt15+FH Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlhB4u8ACgkQMOfwapXb+vJNEACgoXZ22Dmb5bXMTmEdB828Vl0+ YrwAoIUg4g4tUZDEc2NFX4OB1bHsoCYJ =GYOo -----END PGP SIGNATURE----- --i9LlY+UWpKt15+FH--