powerpc fixes for 4.6

- Fixup preempt underflow with huge pages from Sebastian Siewior
  - Fix altivec SPR not being saved from Oliver O'Halloran
  - Correct used_vsr comment from Simon Guo
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJW/ki6AAoJEFHr6jzI4aWAH14QAKWhKBtOVNW0XHWMexfam4t2
 W5R9OstmXCPzxK4xfXK2R4ixQDSg3XIsZhWlD36lEb8UqcGz0sshrKbcBO0ZKsNd
 4zYkmK4lX8qiQ1fpZp/5ISIl6+kX3ogLzIsGcw7S3SedhQgpfOSNZOQIOxQeNkwg
 NCcVk8J7s2KVRQMRme85iaoWKOSDoW9vQ3Jem0w5uSUlG48jTIPEL16OckFt9CsI
 gHTTH6ypzWmYjfauMW3US3yCUB2maKsM4kDR9bvETu/32zvwAW6dP9164DhTrH5S
 8frQeRXvlk3jbXlpUqRI4fGTWKoCufFCtRzYEUlYLxo+fxmqLX+VbbhLHoHJbA2Z
 1wU/Q0vyK2XxFAV9BijJfnNqfejSGR/sKX1bxqs3dPxgeAP/0qU1DI6DX9GwSQum
 ikYAj1ZK7NUsnRcekMwfR/uoIQsDryTt9w/SQRoZ4xqpRNbjJM6bqbzeurNxIpKj
 2LuxqJJFdy0iduTpmkVDeNUd5xwEYFDlt+p+uYlZhRE4EQTzUbysSUxAsbscazGX
 jJT/ACzco4B3qYYwepLVCV1oYFTL7/zissq6DGiO99DLOrRU1ON3We2Ouow+ykdV
 oD2DDz0kPFgmnECMhSl2pApCUeRG7Kw0QPT317W+DaPFDccgkOPg7u477aVvMlEP
 3VHmTLoy+7ze0erDjFzo
 =9i5T
 -----END PGP SIGNATURE-----

Merge tag 'powerpc-4.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

Pull powerpc fixes from Michael Ellerman:
 - Fixup preempt underflow with huge pages from Sebastian Siewior
 - Fix altivec SPR not being saved from Oliver O'Halloran
 - Correct used_vsr comment from Simon Guo

* tag 'powerpc-4.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
  powerpc: Correct used_vsr comment
  powerpc/process: Fix altivec SPR not being saved
  powerpc/mm: Fixup preempt underflow with huge pages
This commit is contained in:
Linus Torvalds 2016-04-01 07:18:27 -05:00
commit 52bef0cb10
3 changed files with 4 additions and 4 deletions

View File

@ -246,7 +246,7 @@ struct thread_struct {
#endif /* CONFIG_ALTIVEC */
#ifdef CONFIG_VSX
/* VSR status */
int used_vsr; /* set if process has used altivec */
int used_vsr; /* set if process has used VSX */
#endif /* CONFIG_VSX */
#ifdef CONFIG_SPE
unsigned long evr[32]; /* upper 32-bits of SPE regs */

View File

@ -983,7 +983,7 @@ void restore_tm_state(struct pt_regs *regs)
static inline void save_sprs(struct thread_struct *t)
{
#ifdef CONFIG_ALTIVEC
if (cpu_has_feature(cpu_has_feature(CPU_FTR_ALTIVEC)))
if (cpu_has_feature(CPU_FTR_ALTIVEC))
t->vrsave = mfspr(SPRN_VRSAVE);
#endif
#ifdef CONFIG_PPC_BOOK3S_64

View File

@ -413,13 +413,13 @@ static void hugepd_free(struct mmu_gather *tlb, void *hugepte)
{
struct hugepd_freelist **batchp;
batchp = this_cpu_ptr(&hugepd_freelist_cur);
batchp = &get_cpu_var(hugepd_freelist_cur);
if (atomic_read(&tlb->mm->mm_users) < 2 ||
cpumask_equal(mm_cpumask(tlb->mm),
cpumask_of(smp_processor_id()))) {
kmem_cache_free(hugepte_cache, hugepte);
put_cpu_var(hugepd_freelist_cur);
put_cpu_var(hugepd_freelist_cur);
return;
}