Message ID | 20200521152308.33096-1-steven.price@arm.com (mailing list archive) |
---|---|
Headers | show |
Series | Fix W+X debug feature on x86 | expand |
On Thu, 21 May 2020 16:23:06 +0100 Steven Price <steven.price@arm.com> wrote: > Jan alert me[1] that the W+X detection debug feature was broken in x86 > by my change[2] to switch x86 to use the generic ptdump infrastructure. > > Fundamentally the approach of trying to move the calculation of > effective permissions into note_page() was broken because note_page() is > only called for 'leaf' entries and the effective permissions are passed > down via the internal nodes of the page tree. The solution I've taken > here is to create a new (optional) callback which is called for all > nodes of the page tree and therefore can calculate the effective > permissions. > > Secondly on some configurations (32 bit with PAE) "unsigned long" is not > large enough to store the table entries. The fix here is simple - let's > just use a u64. I assumed that a cc:stable was appropriate on both of these(?). > I'd welcome testing (and other comments), especially if you have a > configuration which previously triggered W+X warnings as I don't have > such a setup. I'll wait a while for such testing. If nothing happens then I guess we merge it up and see what then happens.
On 21/05/2020 20:08, Andrew Morton wrote: > On Thu, 21 May 2020 16:23:06 +0100 Steven Price <steven.price@arm.com> wrote: > >> Jan alert me[1] that the W+X detection debug feature was broken in x86 >> by my change[2] to switch x86 to use the generic ptdump infrastructure. >> >> Fundamentally the approach of trying to move the calculation of >> effective permissions into note_page() was broken because note_page() is >> only called for 'leaf' entries and the effective permissions are passed >> down via the internal nodes of the page tree. The solution I've taken >> here is to create a new (optional) callback which is called for all >> nodes of the page tree and therefore can calculate the effective >> permissions. >> >> Secondly on some configurations (32 bit with PAE) "unsigned long" is not >> large enough to store the table entries. The fix here is simple - let's >> just use a u64. > > I assumed that a cc:stable was appropriate on both of these(?). Yes thanks. >> I'd welcome testing (and other comments), especially if you have a >> configuration which previously triggered W+X warnings as I don't have >> such a setup. > > I'll wait a while for such testing. If nothing happens then I guess we > merge it up and see what then happens. > Thanks, Steve