On Tue, Apr 23, 2019 at 1:25 AM Peter Zijlstra <pet...@infradead.org> wrote: > > Now, we could of course allow this symbol, but I found only the below > was required to make allyesconfig build without issue. > > Andy, Linus?
Ack on that patch. Except I think the uaccess.h part should be a separate commit: I think it goes along with 2a418cf3f5f1 ("x86/uaccess: Don't leak the AC flag into __put_user() value evaluation") we did earlier. I think the logic is the same - it's not just the _value_ that can have complex calculations, the address can too (although admittedly that's really not supposed to be common, but you clearly found one case where a complier misfeature made it happen, so...). I also wonder if we should just make "count" be "unsigned long" in do_{strncpy_from,strnlen}_user() too, since we've already done if (unlikely(count <= 0)) return 0; in the caller, so it *is* unsigned by then, and we'd not be mixing signedness when comparing "max/count/res". Linus