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

Commit 7be72c39 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 patches from Martin Schwidefsky:
 "Add the finit_module system call, fix the irq statistics in
  /proc/stat, fix a s390dbf lockdep problem, a patch revert for a
  problem that is not 100% understood yet, and a few patches to
  fix warnings."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/pci: define read*_relaxed functions
  s390/topology: export cpu_topology
  s390/pm: export pm_power_off
  s390/pci: define isa_dma_bridge_buggy
  s390/3215: partially revert tty close handling fix
  s390/irq: count cpu restart events
  s390/irq: remove split irq fields from /proc/stat
  s390/irq: enable irq sum accounting for /proc/stat again
  s390/syscalls: wire up finit_module syscall
  s390/pci: remove dead code
  s390/smp: fix section mismatch for smp_add_present_cpu()
  s390/debug: Fix s390dbf lockdep problem in debug_(un)register_view()
parents 9931faca 478740a1
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -10,4 +10,10 @@
 */
#define MAX_DMA_ADDRESS         0x80000000

#ifdef CONFIG_PCI
extern int isa_dma_bridge_buggy;
#else
#define isa_dma_bridge_buggy	(0)
#endif

#endif /* _ASM_S390_DMA_H */
+5 −0
Original line number Diff line number Diff line
@@ -85,6 +85,11 @@ static inline void iounmap(volatile void __iomem *addr)
#define __raw_writel	zpci_write_u32
#define __raw_writeq	zpci_write_u64

#define readb_relaxed	readb
#define readw_relaxed	readw
#define readl_relaxed	readl
#define readq_relaxed	readq

#endif /* CONFIG_PCI */

#include <asm-generic/io.h>
+48 −30
Original line number Diff line number Diff line
@@ -2,43 +2,61 @@
#define _ASM_IRQ_H

#include <linux/hardirq.h>
#include <linux/percpu.h>
#include <linux/cache.h>
#include <linux/types.h>

enum interruption_class {
enum interruption_main_class {
	EXTERNAL_INTERRUPT,
	IO_INTERRUPT,
	EXTINT_CLK,
	EXTINT_EXC,
	EXTINT_EMS,
	EXTINT_TMR,
	EXTINT_TLA,
	EXTINT_PFL,
	EXTINT_DSD,
	EXTINT_VRT,
	EXTINT_SCP,
	EXTINT_IUC,
	EXTINT_CMS,
	EXTINT_CMC,
	EXTINT_CMR,
	IOINT_CIO,
	IOINT_QAI,
	IOINT_DAS,
	IOINT_C15,
	IOINT_C70,
	IOINT_TAP,
	IOINT_VMR,
	IOINT_LCS,
	IOINT_CLW,
	IOINT_CTC,
	IOINT_APB,
	IOINT_ADM,
	IOINT_CSC,
	IOINT_PCI,
	IOINT_MSI,
	NR_IRQS
};

enum interruption_class {
	IRQEXT_CLK,
	IRQEXT_EXC,
	IRQEXT_EMS,
	IRQEXT_TMR,
	IRQEXT_TLA,
	IRQEXT_PFL,
	IRQEXT_DSD,
	IRQEXT_VRT,
	IRQEXT_SCP,
	IRQEXT_IUC,
	IRQEXT_CMS,
	IRQEXT_CMC,
	IRQEXT_CMR,
	IRQIO_CIO,
	IRQIO_QAI,
	IRQIO_DAS,
	IRQIO_C15,
	IRQIO_C70,
	IRQIO_TAP,
	IRQIO_VMR,
	IRQIO_LCS,
	IRQIO_CLW,
	IRQIO_CTC,
	IRQIO_APB,
	IRQIO_ADM,
	IRQIO_CSC,
	IRQIO_PCI,
	IRQIO_MSI,
	NMI_NMI,
	NR_IRQS,
	CPU_RST,
	NR_ARCH_IRQS
};

struct irq_stat {
	unsigned int irqs[NR_ARCH_IRQS];
};

DECLARE_PER_CPU_SHARED_ALIGNED(struct irq_stat, irq_stat);

static __always_inline void inc_irq_stat(enum interruption_class irq)
{
	__get_cpu_var(irq_stat).irqs[irq]++;
}

struct ext_code {
	unsigned short subcode;
	unsigned short code;
+2 −1
Original line number Diff line number Diff line
@@ -279,7 +279,8 @@
#define __NR_process_vm_writev	341
#define __NR_s390_runtime_instr 342
#define __NR_kcmp		343
#define NR_syscalls 344
#define __NR_finit_module	344
#define NR_syscalls 345

/* 
 * There are some system calls that are not present on 64 bit, some
+6 −0
Original line number Diff line number Diff line
@@ -1659,3 +1659,9 @@ ENTRY(sys_kcmp_wrapper)
	llgfr	%r5,%r5			# unsigned long
	llgfr	%r6,%r6			# unsigned long
	jg	sys_kcmp

ENTRY(sys_finit_module_wrapper)
	lgfr	%r2,%r2			# int
	llgtr	%r3,%r3			# const char __user *
	lgfr	%r4,%r4			# int
	jg	sys_finit_module
Loading