summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel
Commit message (Collapse)AuthorAgeFilesLines
* s390/compat: add sync_file_range and fallocate compat syscallsHeiko Carstens2014-03-044-20/+19
| | | | | | | | | | The compat syscall wrappers for sync_file_range and fallocate merged 32 bit parameters into 64 bit parameters. Therefore they did more than just the usual zero and/or sign extension of system call parameters. So convert these two wrappers to full s390 specific compat sytem calls. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 15Heiko Carstens2014-03-044-86/+25
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 14Heiko Carstens2014-03-043-60/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 13Heiko Carstens2014-03-043-77/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 12Heiko Carstens2014-03-043-76/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 11Heiko Carstens2014-03-043-58/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 10Heiko Carstens2014-03-043-70/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 09Heiko Carstens2014-03-043-67/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 08Heiko Carstens2014-03-043-66/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 07Heiko Carstens2014-03-043-76/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 06Heiko Carstens2014-03-043-61/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 05Heiko Carstens2014-03-044-65/+23
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 04Heiko Carstens2014-03-043-67/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 03Heiko Carstens2014-03-043-65/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 02Heiko Carstens2014-03-043-55/+20
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert system call wrappers to C part 01Heiko Carstens2014-03-044-68/+48
| | | | | | | | | | | | | | | Introduce a new compat_wrap.c file which contains the s390 specific compat system call wrappers. The s390 specific system call wrappers only perform sign, zero and pointer conversion of system call arguments before actually calling the non-compat system call. Therefore introduce COMPAT_SYSCALL_WRAPx macros which generate C code that is nearly identical to the assembly code. This has the advantage that the compile will generate correct code, and we avoid the frequent copy-paste errors seen in the compat_wrapper.S file. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 7Heiko Carstens2014-03-044-42/+13
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 6Heiko Carstens2014-03-044-43/+16
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 5Heiko Carstens2014-03-044-60/+21
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 4Heiko Carstens2014-03-044-34/+16
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 3Heiko Carstens2014-03-044-39/+16
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 2Heiko Carstens2014-03-044-44/+18
| | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 1Heiko Carstens2014-03-044-42/+17
| | | | | | | Convert s390 specific system calls to to the new COMPAT_SYSCALL_DEFINE macro. This allows us to get rid of the assembly compat wrappers. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
* s390/compat: fix sys_sched_getattr compat wrapperHeiko Carstens2014-02-211-1/+1
| | | | | | | Fix stupid typo. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
* Merge branch 'for-linus' of ↵Linus Torvalds2014-02-111-2/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 bugfixes from Martin Schwidefsky: "A collection a bug fixes. Most of them are minor but two of them are more severe. The linkage stack bug can be used by user space to force an oops, with panic_on_oops this is a denial-of-service. And the dump memory detection issue can cause incomplete memory dumps" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/cio: improve cio_commit_config s390: fix kernel crash due to linkage stack instructions s390/dump: Fix dump memory detection s390/appldata: restore missing init_virt_timer() s390/qdio: correct program-controlled interruption checking s390/qdio: for_each macro correctness
| * s390: fix kernel crash due to linkage stack instructionsMartin Schwidefsky2014-02-051-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The kernel currently crashes with a low-address-protection exception if a user space process executes an instruction that tries to use the linkage stack. Set the base-ASTE origin and the subspace-ASTE origin of the dispatchable-unit-control-table to point to a dummy ASTE. Set up control register 15 to point to an empty linkage stack with no room left. A user space process with a linkage stack instruction will still crash but with a different exception which is correctly translated to a segmentation fault instead of a kernel oops. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
* | s390/compat: change parameter types from unsigned long to compat_ulong_tHeiko Carstens2014-01-291-2/+2
|/ | | | | | | | | | | | | | | | | | | | | Change parameter types of s390's compat ipc syscall from unsigned long to compat_ulong_t to enforce zero extension of these parameters. This is not really a bug, since s390_ipc compat syscall is only a wrapper to the generic compat_sys_ipc() syscall, which performs correct zero and sign extension. This was introduced with commit 56e41d3c5aa8 ("merge compat sys_ipc instances"). Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Ingo Molnar <mingo@kernel.org> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* s390: wire up sys_sched_setattr/sys_sched_getattrHeiko Carstens2014-01-222-0/+13
| | | | | Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
* Merge branch 'for-linus' of ↵Linus Torvalds2014-01-2012-51/+2167
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 updates from Martin Schwidefsky: "The bulk of the s390 updates for v3.14. New features are the perf support for the CPU-Measurement Sample Facility and the EP11 support for the crypto cards. And the normal cleanups and bug-fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (44 commits) s390/cpum_sf: fix printk format warnings s390: Fix misspellings using 'codespell' tool s390/qdio: bridgeport support - CHSC part s390: delete new instances of __cpuinit usage s390/compat: fix PSW32_USER_BITS definition s390/zcrypt: add support for EP11 coprocessor cards s390/mm: optimize randomize_et_dyn for !PF_RANDOMIZE s390: use IS_ENABLED to check if a CONFIG is set to y or m s390/cio: use device_lock to synchronize calls to the ccwgroup driver s390/cio: use device_lock to synchronize calls to the ccw driver s390/cio: fix unlocked access of online member s390/cpum_sf: Add flag to process full SDBs only s390/cpum_sf: Add raw data sampling to support the diagnostic-sampling function s390/cpum_sf: Filter perf events based event->attr.exclude_* settings s390/cpum_sf: Detect KVM guest samples s390/cpum_sf: Add helper to read TOD from trailer entries s390/cpum_sf: Atomically reset trailer entry fields of sample-data-blocks s390/cpum_sf: Dynamically extend the sampling buffer if overflows occur s390/pci: reenable per default s390/pci/dma: fix accounting of allocated_pages ...
| * s390/cpum_sf: fix printk format warningsHendrik Brueckner2014-01-161-3/+3
| | | | | | | | | | Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390: Fix misspellings using 'codespell' toolHendrik Brueckner2014-01-162-2/+2
| | | | | | | | | | Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390: delete new instances of __cpuinit usagePaul Gortmaker2014-01-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch "s390/perf: add support for the CPU-Measurement Sampling Facility" added a new instance of the __cpuinit macro usage. We removed this a couple versions ago; we now want to remove the compat no-op stubs. Introducing new users is not what we want to see at this point in time, as it will break once the stubs are gone. Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/mm: optimize randomize_et_dyn for !PF_RANDOMIZEMartin Schwidefsky2013-12-181-8/+6
| | | | | | | | | | | | | | | | Skip the call to brk_rnd() if the PF_RANDOMIZE flag is not set for the process. This avoids the costly get_random_int() call. Modify arch_randomize_brk() as well to make it look like randomize_et_dyn(). Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390: use IS_ENABLED to check if a CONFIG is set to y or mHeiko Carstens2013-12-163-5/+5
| | | | | | | | | | | | | | | | This is shorter and should be used instead of the longer form which checks for both possible config options. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/cpum_sf: Add flag to process full SDBs onlyHendrik Brueckner2013-12-161-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the PERF_CPUM_SF_FULL_BLOCKS flag to process only sample-data-blocks that have the block-full-indicator bit set. Sample-data-blocks that are partially filled are discarded. Use this flag if the sampling buffer is likely to be shared among perf events that use different sampling modes. In such environments, flushing sample-data-blocks that are not completely filled, might cause invalid-data-formats. Setting PERF_CPUM_SF_FULL_BLOCKS prevents potentially invalid sampling data to be processed but, in contrast, also discards valid samples in partially filled sample-data-blocks. Note that sample-data-blocks might not become full for small sampling frequencies or for workload that is scheduled for tiny intervals. To sample with the PERF_CPUM_SF_FULL_BLOCKS flag, set the perf->attr.config1 to 0x0004. For example: perf record -e cpum_sf/config=0xB000,config1=0x0004/ Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/cpum_sf: Add raw data sampling to support the diagnostic-sampling functionHendrik Brueckner2013-12-162-79/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also support the diagnostic-sampling function in addition to the basic-sampling function. Diagnostic-sampling data entries contain hardware model specific sampling data and additional programs are required to analyze the data. To deliver diagnostic-sampling, as well, as basis-sampling data entries to user space, introduce support for sampling "raw data". If this particular perf sampling type (PERF_SAMPLE_RAW) is used, sampling data entries are copied to user space. External programs can then analyze these data. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/cpum_sf: Filter perf events based event->attr.exclude_* settingsHendrik Brueckner2013-12-161-1/+35
| | | | | | | | | | | | | | | | | | Introduce the perf_exclude_event() function to filter perf samples according to event->attr.exclude_* settings. During event initialization, reset event exclude settings that are not supported. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/cpum_sf: Detect KVM guest samplesHendrik Brueckner2013-12-162-1/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The host-program-parameter (hpp) value of basic sample-data-entries designates a SIE control block that is set by the LPP instruction in sie64a(). Non-zero values indicate guest samples, a value of zero indicates a host sample. For perf samples, host and guest samples are distinguished using particular PERF_MISC_* flags. The perf layer calls perf_misc_flags() to set the flags based on the pt_regs content. For each sample-data-entry, the cpum_sf PMU creates a pt_regs structure with the sample-data information. An additional flag structure is added to easily distinguish between host and guest samples. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/cpum_sf: Add helper to read TOD from trailer entriesHendrik Brueckner2013-12-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The trailer entry contains a timestamp of the time when the sample-data-block became full. The timestamp specifies a TOD (time-of-day) value in either the STCK or STCKE format. Provide a helper function to return the TOD value depending on the setting of time format indicator. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/cpum_sf: Atomically reset trailer entry fields of sample-data-blocksHendrik Brueckner2013-12-161-4/+8
| | | | | | | | | | | | | | | | | | Ensure to reset the sample-data-block full indicator and the overflow counter at the same time. This must be done atomically because the sampling hardware is still active while full sample-data-block is processed. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/cpum_sf: Dynamically extend the sampling buffer if overflows occurHendrik Brueckner2013-12-161-120/+407
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve the sampling buffer allocation and add a function to reallocate and increase the sampling buffer structure. The number of allocated buffer elements (sample-data-blocks) are accounted. You can control the minimum and maximum number these sample-data-blocks through the cpum_sfb_size kernel parameter. The number hardware sample overflows (if any) are also accounted and stored per perf event. During the PMU disable/enable calls, the accumulated overflow counter is analyzed and, if necessary, the sampling buffer is dynamically increased. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/perf: Add service level information for CPU-Measurement FacilitiesHendrik Brueckner2013-12-161-1/+57
| | | | | | | | | | | | | | | | Register a service level handler to report information about available CPU-Measurement facilities. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/perf,oprofile: Share sampling facilityHendrik Brueckner2013-12-162-5/+42
| | | | | | | | | | | | | | | | | | Introduce reserve/release functions to share the sampling facility between perf and oprofile. Also improve error handling for the sampling facility support in perf. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/perf: Improve PMU selection for PERF_COUNT_HW_CPU_CYCLES eventsHendrik Brueckner2013-12-161-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | The cpum_cf (counter facility) PMU does not support sampling events. With cpum_sf (sampling facility), a PMU for sampling CPU cycles is available. Make cpum_sf the "default" PMU for PERF_COUNT_HW_CPU_CYCLES sampling events but use the more precise cpum_cf PMU for non-sampling events. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/perf: add support for the CPU-Measurement Sampling FacilityHendrik Brueckner2013-12-163-10/+1058
| | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a perf PMU, "cpum_sf", to support the CPU-Measurement Sampling Facility. You can control the sampling facility through this perf PMU interfaces. Perf sampling events are created for hardware samples. For details about the CPU-Measurement Sampling Facility, see "The Load-Program-Parameter and the CPU-Measurement Facilities" (SA23-2260). Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/cpum_cf: Export event names in sysfsHendrik Brueckner2013-12-164-1/+337
| | | | | | | | | | | | | | | | | | | | | | Provide PMU event attributes for supported counters and export their symbolic names to the sysfs "events" directory. See the /sys/devices/cpum_cf/events/ directory for a list of available counters. Note that you might require counter set authorizations for the LPAR to use them. Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/compat: correct check for EFAULT in rt-signal frame creationMartin Schwidefsky2013-12-161-2/+3
| | | | | | | | | | | | | | | | | | The return code of the __put_user call to store the rt_sigreturn system call to the user stack if not properly checked, the err variable is only checked before to the __put_user. Use an if statement instead. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/smp: reduce memory consumption of pcpu_devices arrayHeiko Carstens2013-12-161-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | Remove the embedded struct cpu from struct pcpu and replace it with a pointer instead. The struct cpu now gets allocated when a new cpu gets detected. The size of the pcpu_devices array (NR_CPUS * sizeof(struct pcpu)) gets reduced by nearly 120KB. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390: optimize control register updateMartin Schwidefsky2013-12-161-11/+12
| | | | | | | | | | | | | | | | It is less expensive to update control registers 0 and 2 with two individual stctg/lctlg instructions as with a single one that spans control register 0, 1 and 2. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| * s390/ptrace: simplify enable/disable single stepMartin Schwidefsky2013-12-161-4/+0
| | | | | | | | | | | | | | | | | | The user_enable_single_step() and user_disable_sindle_step() functions are always called on the inferior, never for the currently active process. Remove the unnecessary check for the current process and the update_cr_regs() call from the enable/disable functions. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
OpenPOWER on IntegriCloud