[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6DCFFE581C@AcuExch.aculab.com>
Date: Thu, 4 May 2017 15:56:49 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Josh Poimboeuf' <jpoimboe@...hat.com>,
"x86@...nel.org" <x86@...nel.org>
CC: Andrey Konovalov <andreyknvl@...gle.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Vlad Yasevich <vyasevich@...il.com>,
"Neil Horman" <nhorman@...driver.com>,
"David S . Miller" <davem@...emloft.net>,
"linux-sctp@...r.kernel.org" <linux-sctp@...r.kernel.org>,
netdev <netdev@...r.kernel.org>,
Marcelo Ricardo Leitner <marcelo.leitner@...il.com>,
Dmitry Vyukov <dvyukov@...gle.com>,
"Kostya Serebryany" <kcc@...gle.com>,
syzkaller <syzkaller@...glegroups.com>,
"Eric Dumazet" <edumazet@...gle.com>,
Cong Wang <xiyou.wangcong@...il.com>
Subject: RE: [PATCH] x86/asm: Don't use rbp as temp register in
csum_partial_copy_generic()
From: Josh Poimboeuf
> Sent: 04 May 2017 15:52
> Andrey Konovalov reported the following warning while fuzzing the kernel
> with syzkaller:
>
> WARNING: kernel stack regs at ffff8800686869f8 in a.out:4933 has bad 'bp' value c3fc855a10167ec0
>
> The unwinder dump revealed that rbp had a bad value when an interrupt
> occurred in csum_partial_copy_generic().
>
> That function saves rbp on the stack and then overwrites it, using it as
> a scratch register. That's problematic because it breaks stack traces
> if an interrupt occurs in the middle of the function.
Does gcc guarantee not to use bp as a scratch register in leaf functions?
David
Powered by blists - more mailing lists