Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 fixes from Martin Schwidefsky:
"Two small bug fixes and a follow-up to the CONFIG_NR_CPUS change.

A kernel compiled with CONFIG_NR_CPUS=256 will waste quite a bit of
memory for the per-cpu arrays. Under z/VM the maximum number of CPUs
is 64, the code now limits the possible cpu mask to 64 if running
under z/VM"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
s390/pci: obtain function handle in hotplug notifier
s390/3270: fix allocation of tty3270_screen structure
s390/smp: improve setup of possible cpu mask

+22 -11
-1
arch/s390/Kconfig
··· 135 135 select HAVE_SYSCALL_TRACEPOINTS 136 136 select HAVE_UID16 if 32BIT 137 137 select HAVE_VIRT_CPU_ACCOUNTING 138 - select INIT_ALL_POSSIBLE 139 138 select KTIME_SCALAR if 32BIT 140 139 select MODULES_USE_ELF_RELA 141 140 select OLD_SIGACTION
+2
arch/s390/include/asm/smp.h
··· 31 31 extern void smp_stop_cpu(void); 32 32 extern void smp_cpu_set_polarization(int cpu, int val); 33 33 extern int smp_cpu_get_polarization(int cpu); 34 + extern void smp_fill_possible_mask(void); 34 35 35 36 #else /* CONFIG_SMP */ 36 37 ··· 51 50 static inline void smp_yield_cpu(int cpu) { } 52 51 static inline void smp_yield(void) { } 53 52 static inline void smp_stop_cpu(void) { } 53 + static inline void smp_fill_possible_mask(void) { } 54 54 55 55 #endif /* CONFIG_SMP */ 56 56
+1
arch/s390/kernel/setup.c
··· 1023 1023 setup_vmcoreinfo(); 1024 1024 setup_lowcore(); 1025 1025 1026 + smp_fill_possible_mask(); 1026 1027 cpu_init(); 1027 1028 s390_init_cpu_topology(); 1028 1029
+16 -9
arch/s390/kernel/smp.c
··· 721 721 return 0; 722 722 } 723 723 724 - static int __init setup_possible_cpus(char *s) 725 - { 726 - int max, cpu; 724 + static unsigned int setup_possible_cpus __initdata; 727 725 728 - if (kstrtoint(s, 0, &max) < 0) 729 - return 0; 730 - init_cpu_possible(cpumask_of(0)); 731 - for (cpu = 1; cpu < max && cpu < nr_cpu_ids; cpu++) 732 - set_cpu_possible(cpu, true); 726 + static int __init _setup_possible_cpus(char *s) 727 + { 728 + get_option(&s, &setup_possible_cpus); 733 729 return 0; 734 730 } 735 - early_param("possible_cpus", setup_possible_cpus); 731 + early_param("possible_cpus", _setup_possible_cpus); 736 732 737 733 #ifdef CONFIG_HOTPLUG_CPU 738 734 ··· 770 774 } 771 775 772 776 #endif /* CONFIG_HOTPLUG_CPU */ 777 + 778 + void __init smp_fill_possible_mask(void) 779 + { 780 + unsigned int possible, cpu; 781 + 782 + possible = setup_possible_cpus; 783 + if (!possible) 784 + possible = MACHINE_IS_VM ? 64 : nr_cpu_ids; 785 + for (cpu = 0; cpu < possible && cpu < nr_cpu_ids; cpu++) 786 + set_cpu_possible(cpu, true); 787 + } 773 788 774 789 void __init smp_prepare_cpus(unsigned int max_cpus) 775 790 {
+2
arch/s390/pci/pci_event.c
··· 75 75 if (!zdev || zdev->state == ZPCI_FN_STATE_CONFIGURED) 76 76 break; 77 77 zdev->state = ZPCI_FN_STATE_CONFIGURED; 78 + zdev->fh = ccdf->fh; 78 79 ret = zpci_enable_device(zdev); 79 80 if (ret) 80 81 break; ··· 102 101 if (pdev) 103 102 pci_stop_and_remove_bus_device(pdev); 104 103 104 + zdev->fh = ccdf->fh; 105 105 zpci_disable_device(zdev); 106 106 zdev->state = ZPCI_FN_STATE_STANDBY; 107 107 break;
+1 -1
drivers/s390/char/tty3270.c
··· 942 942 return rc; 943 943 } 944 944 945 - tp->screen = tty3270_alloc_screen(tp->view.cols, tp->view.rows); 945 + tp->screen = tty3270_alloc_screen(tp->view.rows, tp->view.cols); 946 946 if (IS_ERR(tp->screen)) { 947 947 rc = PTR_ERR(tp->screen); 948 948 raw3270_put_view(&tp->view);