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

Commit b30fc14c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
  [S390] s390: Fix build for !CONFIG_S390_GUEST + CONFIG_VIRTIO_CONSOLE
  [S390] No more 4kb stacks.
  [S390] Change default IPL method to IPL_VM.
  [S390] tape: disable interrupts in tape_open and tape_release
  [S390] appldata: unsigned ops->size cannot be negative
  [S390] tape block: complete request with correct locking
  [S390] Fix sysdev class file creation.
  [S390] pgtables: Fix race in enable_sie vs. page table ops
  [S390] qdio: remove incorrect memset
  [S390] qdio: prevent double qdio shutdown in case of I/O errors
parents 3c136f29 ea4bfdf5
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -241,19 +241,17 @@ config PACK_STACK
	  Say Y if you are unsure.

config SMALL_STACK
	bool "Use 4kb/8kb for kernel stack instead of 8kb/16kb"
	depends on PACK_STACK && !LOCKDEP
	bool "Use 8kb for kernel stack instead of 16kb"
	depends on PACK_STACK && 64BIT && !LOCKDEP
	help
	  If you say Y here and the compiler supports the -mkernel-backchain
	  option the kernel will use a smaller kernel stack size. For 31 bit
	  the reduced size is 4kb instead of 8kb and for 64 bit it is 8kb
	  instead of 16kb. This allows to run more thread on a system and
	  reduces the pressure on the memory management for higher order
	  page allocations.
	  option the kernel will use a smaller kernel stack size. The reduced
	  size is 8kb instead of 16kb. This allows to run more threads on a
	  system and reduces the pressure on the memory management for higher
	  order page allocations.

	  Say N if you are unsure.


config CHECK_STACK
	bool "Detect kernel stack overflow"
	help
@@ -384,7 +382,7 @@ config IPL
choice
	prompt "IPL method generated into head.S"
	depends on IPL
	default IPL_TAPE
	default IPL_VM
	help
	  Select "tape" if you want to IPL the image from a Tape.

+1 −1
Original line number Diff line number Diff line
@@ -424,7 +424,7 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
 */
int appldata_register_ops(struct appldata_ops *ops)
{
	if ((ops->size > APPLDATA_MAX_REC_SIZE) || (ops->size < 0))
	if (ops->size > APPLDATA_MAX_REC_SIZE)
		return -EINVAL;

	ops->ctl_table = kzalloc(4 * sizeof(struct ctl_table), GFP_KERNEL);
+1 −1
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ struct kvm_vqconfig {

#ifdef __KERNEL__
/* early virtio console setup */
#ifdef CONFIG_VIRTIO_CONSOLE
#ifdef CONFIG_S390_GUEST
extern void s390_virtio_console_init(void);
#else
static inline void s390_virtio_console_init(void)
+2 −1
Original line number Diff line number Diff line
@@ -7,7 +7,8 @@ typedef struct {
	unsigned long asce_bits;
	unsigned long asce_limit;
	int noexec;
	int pgstes;
	int has_pgste;	 /* The mmu context has extended page tables */
	int alloc_pgste; /* cloned contexts will have extended page tables */
} mm_context_t;

#endif
+16 −3
Original line number Diff line number Diff line
@@ -20,12 +20,25 @@ static inline int init_new_context(struct task_struct *tsk,
#ifdef CONFIG_64BIT
	mm->context.asce_bits |= _ASCE_TYPE_REGION3;
#endif
	if (current->mm->context.pgstes) {
	if (current->mm->context.alloc_pgste) {
		/*
		 * alloc_pgste indicates, that any NEW context will be created
		 * with extended page tables. The old context is unchanged. The
		 * page table allocation and the page table operations will
		 * look at has_pgste to distinguish normal and extended page
		 * tables. The only way to create extended page tables is to
		 * set alloc_pgste and then create a new context (e.g. dup_mm).
		 * The page table allocation is called after init_new_context
		 * and if has_pgste is set, it will create extended page
		 * tables.
		 */
		mm->context.noexec = 0;
		mm->context.pgstes = 1;
		mm->context.has_pgste = 1;
		mm->context.alloc_pgste = 1;
	} else {
		mm->context.noexec = s390_noexec;
		mm->context.pgstes = 0;
		mm->context.has_pgste = 0;
		mm->context.alloc_pgste = 0;
	}
	mm->context.asce_limit = STACK_TOP_MAX;
	crst_table_init((unsigned long *) mm->pgd, pgd_entry_type(mm));
Loading