Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22056614 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 fixes from Martin Schwidefsky:
 "One patch to increase the number of possible CPUs to 256, with the
  latest machine a single LPAR can have up to 101 CPUs.  Plus a number
  of bug fixes, the clock_gettime patch fixes a regression added in the
  3.13 merge window"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/time,vdso: fix clock_gettime for CLOCK_MONOTONIC
  s390/vdso: ectg gettime support for CLOCK_THREAD_CPUTIME_ID
  s390/vdso: fix access-list entry initialization
  s390: increase CONFIG_NR_CPUS limit
  s390/smp,sclp: fix size of sclp_cpu_info structure
  s390/sclp: replace uninitialized early_event_mask_sccb variable with sccb_early
  s390/dasd: fix memory leak caused by dangling references to request_queue
parents 17b2112f ca5de58b
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -347,14 +347,14 @@ config SMP
	  Even if you don't know what to do here, say Y.

config NR_CPUS
	int "Maximum number of CPUs (2-64)"
	range 2 64
	int "Maximum number of CPUs (2-256)"
	range 2 256
	depends on SMP
	default "32" if !64BIT
	default "64" if 64BIT
	help
	  This allows you to specify the maximum number of CPUs which this
	  kernel will support.  The maximum supported value is 64 and the
	  kernel will support. The maximum supported value is 256 and the
	  minimum value which makes sense is 2.

	  This is purely to save memory - each supported CPU adds
+2 −1
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@

#include <linux/types.h>
#include <asm/chpid.h>
#include <asm/cpu.h>

#define SCLP_CHP_INFO_MASK_SIZE		32

@@ -37,7 +38,7 @@ struct sclp_cpu_info {
	unsigned int standby;
	unsigned int combined;
	int has_cpu_type;
	struct sclp_cpu_entry cpu[255];
	struct sclp_cpu_entry cpu[MAX_CPU_ADDRESS + 1];
};

int sclp_get_cpu_info(struct sclp_cpu_info *info);
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ int main(void)
	/* constants used by the vdso */
	DEFINE(__CLOCK_REALTIME, CLOCK_REALTIME);
	DEFINE(__CLOCK_MONOTONIC, CLOCK_MONOTONIC);
	DEFINE(__CLOCK_THREAD_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID);
	DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
	BLANK();
	/* idle data offsets */
+1 −1
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ int vdso_alloc_per_cpu(struct _lowcore *lowcore)
		psal[i] = 0x80000000;

	lowcore->paste[4] = (u32)(addr_t) psal;
	psal[0] = 0x20000000;
	psal[0] = 0x02000000;
	psal[2] = (u32)(addr_t) aste;
	*(unsigned long *) (aste + 2) = segment_table +
		_ASCE_TABLE_LENGTH + _ASCE_USER_BITS + _ASCE_TYPE_SEGMENT;
+2 −7
Original line number Diff line number Diff line
@@ -46,18 +46,13 @@ __kernel_clock_gettime:
	jnm	3f
	a	%r0,__VDSO_TK_MULT(%r5)
3:	alr	%r0,%r2
	al	%r0,__VDSO_XTIME_NSEC(%r5)	/*  + tk->xtime_nsec */
	al	%r1,__VDSO_XTIME_NSEC+4(%r5)
	brc	12,4f
	ahi	%r0,1
4:	al	%r0,__VDSO_WTOM_NSEC(%r5)	/*  + wall_to_monotonic.nsec */
	al	%r0,__VDSO_WTOM_NSEC(%r5)
	al	%r1,__VDSO_WTOM_NSEC+4(%r5)
	brc	12,5f
	ahi	%r0,1
5:	l	%r2,__VDSO_TK_SHIFT(%r5)	/* Timekeeper shift */
	srdl	%r0,0(%r2)			/*  >> tk->shift */
	l	%r2,__VDSO_XTIME_SEC+4(%r5)
	al	%r2,__VDSO_WTOM_SEC+4(%r5)
	l	%r2,__VDSO_WTOM_SEC+4(%r5)
	cl	%r4,__VDSO_UPD_COUNT+4(%r5)	/* check update counter */
	jne	1b
	basr	%r5,0
Loading