Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc/kvm: Remove problematic BUILD_BUG_ON statement
powerpc/pci: Fix regression in powerpc MSI-X
powerpc: Avoid giving out RTC dates below EPOCH
powerpc/mm: Remove debug context clamping from nohash code
powerpc: Cleanup Kconfig selection of hugetlbfs support

+34 -6
+4
arch/powerpc/Kconfig
··· 414 config ARCH_POPULATES_NODE_MAP 415 def_bool y 416 417 source "mm/Kconfig" 418 419 config ARCH_MEMORY_PROBE
··· 414 config ARCH_POPULATES_NODE_MAP 415 def_bool y 416 417 + config SYS_SUPPORTS_HUGETLBFS 418 + def_bool y 419 + depends on PPC_BOOK3S_64 420 + 421 source "mm/Kconfig" 422 423 config ARCH_MEMORY_PROBE
+14 -1
arch/powerpc/kernel/time.c
··· 777 return ppc_md.set_rtc_time(&tm); 778 } 779 780 - void read_persistent_clock(struct timespec *ts) 781 { 782 struct rtc_time tm; 783 static int first = 1; ··· 800 return; 801 } 802 ppc_md.get_rtc_time(&tm); 803 ts->tv_sec = mktime(tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, 804 tm.tm_hour, tm.tm_min, tm.tm_sec); 805 } 806 807 /* clocksource code */
··· 777 return ppc_md.set_rtc_time(&tm); 778 } 779 780 + static void __read_persistent_clock(struct timespec *ts) 781 { 782 struct rtc_time tm; 783 static int first = 1; ··· 800 return; 801 } 802 ppc_md.get_rtc_time(&tm); 803 + 804 ts->tv_sec = mktime(tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, 805 tm.tm_hour, tm.tm_min, tm.tm_sec); 806 + } 807 + 808 + void read_persistent_clock(struct timespec *ts) 809 + { 810 + __read_persistent_clock(ts); 811 + 812 + /* Sanitize it in case real time clock is set below EPOCH */ 813 + if (ts->tv_sec < 0) { 814 + ts->tv_sec = 0; 815 + ts->tv_nsec = 0; 816 + } 817 + 818 } 819 820 /* clocksource code */
+4
arch/powerpc/kvm/timing.h
··· 48 static inline void kvmppc_account_exit_stat(struct kvm_vcpu *vcpu, int type) 49 { 50 /* type has to be known at build time for optimization */ 51 BUILD_BUG_ON(__builtin_constant_p(type)); 52 switch (type) { 53 case EXT_INTR_EXITS: 54 vcpu->stat.ext_intr_exits++;
··· 48 static inline void kvmppc_account_exit_stat(struct kvm_vcpu *vcpu, int type) 49 { 50 /* type has to be known at build time for optimization */ 51 + 52 + /* The BUILD_BUG_ON below breaks in funny ways, commented out 53 + * for now ... -BenH 54 BUILD_BUG_ON(__builtin_constant_p(type)); 55 + */ 56 switch (type) { 57 case EXT_INTR_EXITS: 58 vcpu->stat.ext_intr_exits++;
+2 -2
arch/powerpc/mm/mmu_context_nohash.c
··· 25 * also clear mm->cpu_vm_mask bits when processes are migrated 26 */ 27 28 - #define DEBUG_MAP_CONSISTENCY 29 - #define DEBUG_CLAMP_LAST_CONTEXT 31 30 //#define DEBUG_HARDER 31 32 /* We don't use DEBUG because it tends to be compiled in always nowadays
··· 25 * also clear mm->cpu_vm_mask bits when processes are migrated 26 */ 27 28 + //#define DEBUG_MAP_CONSISTENCY 29 + //#define DEBUG_CLAMP_LAST_CONTEXT 31 30 //#define DEBUG_HARDER 31 32 /* We don't use DEBUG because it tends to be compiled in always nowadays
-2
arch/powerpc/platforms/pseries/msi.c
··· 432 /* Read config space back so we can restore after reset */ 433 read_msi_msg(virq, &msg); 434 entry->msg = msg; 435 - 436 - unmask_msi_irq(virq); 437 } 438 439 return 0;
··· 432 /* Read config space back so we can restore after reset */ 433 read_msi_msg(virq, &msg); 434 entry->msg = msg; 435 } 436 437 return 0;
+9
arch/powerpc/platforms/pseries/xics.c
··· 18 #include <linux/init.h> 19 #include <linux/radix-tree.h> 20 #include <linux/cpu.h> 21 #include <linux/of.h> 22 23 #include <asm/firmware.h> ··· 220 221 static unsigned int xics_startup(unsigned int virq) 222 { 223 /* unmask it */ 224 xics_unmask_irq(virq); 225 return 0;
··· 18 #include <linux/init.h> 19 #include <linux/radix-tree.h> 20 #include <linux/cpu.h> 21 + #include <linux/msi.h> 22 #include <linux/of.h> 23 24 #include <asm/firmware.h> ··· 219 220 static unsigned int xics_startup(unsigned int virq) 221 { 222 + /* 223 + * The generic MSI code returns with the interrupt disabled on the 224 + * card, using the MSI mask bits. Firmware doesn't appear to unmask 225 + * at that level, so we do it here by hand. 226 + */ 227 + if (irq_to_desc(virq)->msi_desc) 228 + unmask_msi_irq(virq); 229 + 230 /* unmask it */ 231 xics_unmask_irq(virq); 232 return 0;
+1 -1
fs/Kconfig
··· 135 136 config HUGETLBFS 137 bool "HugeTLB file system support" 138 - depends on X86 || IA64 || PPC_BOOK3S_64 || SPARC64 || (S390 && 64BIT) || \ 139 SYS_SUPPORTS_HUGETLBFS || BROKEN 140 help 141 hugetlbfs is a filesystem backing for HugeTLB pages, based on
··· 135 136 config HUGETLBFS 137 bool "HugeTLB file system support" 138 + depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \ 139 SYS_SUPPORTS_HUGETLBFS || BROKEN 140 help 141 hugetlbfs is a filesystem backing for HugeTLB pages, based on