[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b913d9fd-9722-d5cc-cf94-426885947890@maciej.szmigiero.name>
Date: Thu, 15 Mar 2018 00:46:05 +0100
From: "Maciej S. Szmigiero" <mail@...iej.szmigiero.name>
To: Borislav Petkov <bp@...en8.de>
Cc: Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>, x86@...nel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 3/9] x86/microcode/AMD: install_equiv_cpu_table()
should not return (signed) int
On 14.03.2018 18:58, Borislav Petkov wrote:
> On Tue, Mar 13, 2018 at 10:06:34PM +0100, Maciej S. Szmigiero wrote:
>> The maximum possible value returned by install_equiv_cpu_table() is
>> UINT_MAX + CONTAINER_HDR_SZ (on a 64-bit kernel).
>> This is more than (signed) int type currently returned by this function can
>> hold so this function will need to return a size_t instead.
>
> I'm trying to parse this but I'm not really sure.
>
> All I know is:
>
> unsigned int size = ibuf[2];
>
> and that is really a 4-byte unsigned quantity so anything less is an
> arbitrary limitation.
There is no limit on CPU equivalence table length in this patch series
like it was in the previous version.
The maximum possible value returned by install_equiv_cpu_table() of
UINT_MAX + CONTAINER_HDR_SZ comes from the maximum value of this 'size'
variable (that is UINT_MAX) plus the header length of CONTAINER_HDR_SZ.
This won't fit in 'int' type, hence this patch.
That's because this functions tells its caller how much bytes to skip
from the beginning of a microcode container file to the first patch
section contained in it.
Maciej
Powered by blists - more mailing lists