diff options
Diffstat (limited to 'arch/s390/kernel/perf_cpum_cf.c')
| -rw-r--r-- | arch/s390/kernel/perf_cpum_cf.c | 13 | 
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/s390/kernel/perf_cpum_cf.c b/arch/s390/kernel/perf_cpum_cf.c index 86ec7447e1f..390d9ae57bb 100644 --- a/arch/s390/kernel/perf_cpum_cf.c +++ b/arch/s390/kernel/perf_cpum_cf.c @@ -367,13 +367,6 @@ static int __hw_perf_event_init(struct perf_event *event)  	if (ev >= PERF_CPUM_CF_MAX_CTR)  		return -EINVAL; -	/* The CPU measurement counter facility does not have any interrupts -	 * to do sampling.  Sampling must be provided by external means, -	 * for example, by timers. -	 */ -	if (hwc->sample_period) -		return -EINVAL; -  	/* Use the hardware perf event structure to store the counter number  	 * in 'config' member and the counter set to which the counter belongs  	 * in the 'config_base'.  The counter set (config_base) is then used @@ -418,6 +411,12 @@ static int cpumf_pmu_event_init(struct perf_event *event)  	case PERF_TYPE_HARDWARE:  	case PERF_TYPE_HW_CACHE:  	case PERF_TYPE_RAW: +		/* The CPU measurement counter facility does not have overflow +		 * interrupts to do sampling.  Sampling must be provided by +		 * external means, for example, by timers. +		 */ +		if (is_sampling_event(event)) +			return -ENOENT;  		err = __hw_perf_event_init(event);  		break;  	default:  |