Messages in this thread | | | Date | Mon, 22 Feb 2016 12:48:29 -0800 | From | Yu-cheng Yu <> | Subject | Re: [PATCH 08/10] x86/xsaves: Fix PTRACE frames for XSAVES |
| |
On Mon, Feb 22, 2016 at 12:00:02PM -0800, Dave Hansen wrote: > On 02/22/2016 11:00 AM, Yu-cheng Yu wrote: > > + if (xsave->header.xfeatures & XFEATURE_MASK_SUPERVISOR) > > + xsave->header.xfeatures = xfeatures | XFEATURE_MASK_SUPERVISOR; > > + else > > + xsave->header.xfeatures = xfeatures; > > This is dangerous. It says, "if any supervisor feature bit is set, then > set *ALL* of the known bits". There's no way that can work. > > Don't you just want to or in the new bits that were in the passed-in > 'xfeatures': > > xsave->header.xfeatures |= xfeatures; > > 'xfeatures' is known not to contain any supervisor bits. >
It should have been:
xsave->header.xfeatures = xfeatures | (xsave->header.xfeatures & XFEATURE_MASK_SUPERVISOR);
I'll fix it.
--Yu-cheng
| |