Subject: Re: F00F bug *fixed* in 2.0.x kernels
From: Linus Torvalds,
Date: 1997/11/15

Toon Moene <> wrote:
> (Sam Trenholme) wrote:
> >> The Linux developers have, again, done the impossible. Within seven days
>> of the serious FOOF bug in the Pentium being discovered, the kernel
>> developers have not only figured out a software fix for the problem, but
>> have patches for *both* the 2.1.63 and the 2.0.31 kernels which make
>> Linux immune to the F00F bug.
>And the most interesting aspect of it is, of course, that Intel tried the
>good old road of keeping the Free Software Community out of it by only
>supplying a fix to BSDI.
>Long Live Reverse Engineering !

To be fair to Intel, I want to tell people that Intel (a) did approach me too, and that (b) the BSDi patch was in fact unauthorized by intel and had to be withdrawn by BSDi.

So intel actually did pretty much do the correct thing this time. Sure, they pissed me off a lot when I heard that BSDi had gotten the patch, but when it became clear that they hadn't _meant_ it that way, their approach was actually totally understandable.

Essentially, they asked everybody to sign NDA's in order to let _everybody_ in on the fix to the problem, and not have anybody be the "first" one.

Now, I personally think that asking people to sign NDA's for a bug that they themselves had introduced is pretty stupid, which was the reason I refused when they contacted me. In this case, that turned out to be the right solution, because then when BSDi did make the patch available despite the NDA my hands weren't tied in any way.

Note that we would probably have figured out the fix even without BSDi, although it might have taken a day or two more. Ingo Molnar had already found another way to make the problem go away (with a very bad performance impact, admittedly), but there were people working on approaches that would probably eventually have ended up with what we have now anyway.

As to today, intel seems to be quite open about the problem, and they have even given me their own patch for fixing this in 2.0.x (which does essentially the same thing that we already did, but with a few improvements actually). has my latest 2.0.32 pre-patch in the directory "pub/linux/kernel/testing", and I'm just about to do another 2.1.x release with most of the obvious problems fixed.