Thread (15 messages) flat view 15 messages, 4 authors, 2021-01-26

Re: [PATCH v4 1/3] arm64: Improve kernel address detection of __is_lm_address()

From: Mark Rutland <mark.rutland@arm.com>
Date: 2021-01-25 17:40:37
Also in: lkml

On Mon, Jan 25, 2021 at 02:59:12PM +0000, Catalin Marinas wrote:
On Mon, Jan 25, 2021 at 02:36:34PM +0000, Vincenzo Frascino wrote:
quoted
On 1/25/21 1:02 PM, Mark Rutland wrote:
quoted
On Fri, Jan 22, 2021 at 03:56:40PM +0000, Vincenzo Frascino wrote:
This patch itself looks fine, but it's not going to backport very far,
so I suspect we might need to write a preparatory patch that adds an
explicit range check to virt_addr_valid() which can be trivially
backported.
I checked the old releases and I agree this is not back-portable as it stands.
I propose therefore to add a preparatory patch with the check below:

#define __is_ttrb1_address(addr)	((u64)(addr) >= PAGE_OFFSET && \

If it works for you I am happy to take care of it and post a new version of my
patches.
I'm not entirely sure we need a preparatory patch. IIUC (it needs
checking), virt_addr_valid() was fine until 5.4, broken by commit
14c127c957c1 ("arm64: mm: Flip kernel VA space").
Ah, so it was; thanks for digging into the history!
Will addressed the
flip case in 68dd8ef32162 ("arm64: memory: Fix virt_addr_valid() using
__is_lm_address()") but this broke the <PAGE_OFFSET case. So in 5.4 a
NULL address is considered valid.

Ard's commit f4693c2716b3 ("arm64: mm: extend linear region for 52-bit
VA configurations") changed the test to no longer rely on va_bits but
did not change the broken semantics.

If Ard's change plus the fix proposed in this test works on 5.4, I'd say
we just merge this patch with the corresponding Cc stable and Fixes tags
and tweak it slightly when doing the backports as it wouldn't apply
cleanly. IOW, I wouldn't add another check to virt_addr_valid() as we
did not need one prior to 5.4.
That makes sense to me; sorry for the noise!

Thanks,
Mark.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help