On Fri, 2013-03-15 at 10:21 -0700, Linus Torvalds wrote: > Adding linux-arch. Guys, can you check your architectures? > > Also, make sure to check huge-pages if they are separate. Basically, > if you have code like this: > > if (!pte_present(pte) || > pte_special(pte) || (write && !pte_write(pte))) { > pte_unmap(ptep); > return 0; > } > > it's probably buggy. It's not sufficient to just check write > permissions, you do need to check user permissions too. > > Powerpc,x86 and sh seem to get it right by virtue of checking rthe > user bit. s390 checks against TASK_SIZE. > > MIPS does seem buggy. Sparc I don't know the meaning of the bits for. > And powerpc does have several variants, so while the main one looks > fine, I didn't look at the other ones. Took the train half way through... I assume we are talking gup_fast here ? So we have an access_ok() accross the range, which should make us safe. Additionally on ppc64 we have a different pgd for user and kernel pages anyway. We do check for huge pages at every level as far as I can tell (and those are user only) and finally we check for _PAGE_USER. The only "subtlety" I can think of is that PROT_NONE has no _PAGE_USER for us and thus will fail a gup but that's expected right ? Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html