diff options
| -rw-r--r-- | arch/s390/Kconfig | 1 | ||||
| -rw-r--r-- | arch/s390/kernel/smp.c | 4 | ||||
| -rw-r--r-- | arch/s390/oprofile/init.c | 8 |
3 files changed, 10 insertions, 3 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 90d77bd078f5..c03fef7a9c22 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
| @@ -579,6 +579,7 @@ config S390_GUEST | |||
| 579 | def_bool y | 579 | def_bool y |
| 580 | prompt "s390 guest support for KVM (EXPERIMENTAL)" | 580 | prompt "s390 guest support for KVM (EXPERIMENTAL)" |
| 581 | depends on 64BIT && EXPERIMENTAL | 581 | depends on 64BIT && EXPERIMENTAL |
| 582 | select VIRTUALIZATION | ||
| 582 | select VIRTIO | 583 | select VIRTIO |
| 583 | select VIRTIO_RING | 584 | select VIRTIO_RING |
| 584 | select VIRTIO_CONSOLE | 585 | select VIRTIO_CONSOLE |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 52420d2785b3..1d55c95f617c 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
| @@ -262,7 +262,7 @@ void smp_ctl_set_bit(int cr, int bit) | |||
| 262 | 262 | ||
| 263 | memset(&parms.orvals, 0, sizeof(parms.orvals)); | 263 | memset(&parms.orvals, 0, sizeof(parms.orvals)); |
| 264 | memset(&parms.andvals, 0xff, sizeof(parms.andvals)); | 264 | memset(&parms.andvals, 0xff, sizeof(parms.andvals)); |
| 265 | parms.orvals[cr] = 1 << bit; | 265 | parms.orvals[cr] = 1UL << bit; |
| 266 | on_each_cpu(smp_ctl_bit_callback, &parms, 1); | 266 | on_each_cpu(smp_ctl_bit_callback, &parms, 1); |
| 267 | } | 267 | } |
| 268 | EXPORT_SYMBOL(smp_ctl_set_bit); | 268 | EXPORT_SYMBOL(smp_ctl_set_bit); |
| @@ -276,7 +276,7 @@ void smp_ctl_clear_bit(int cr, int bit) | |||
| 276 | 276 | ||
| 277 | memset(&parms.orvals, 0, sizeof(parms.orvals)); | 277 | memset(&parms.orvals, 0, sizeof(parms.orvals)); |
| 278 | memset(&parms.andvals, 0xff, sizeof(parms.andvals)); | 278 | memset(&parms.andvals, 0xff, sizeof(parms.andvals)); |
| 279 | parms.andvals[cr] = ~(1L << bit); | 279 | parms.andvals[cr] = ~(1UL << bit); |
| 280 | on_each_cpu(smp_ctl_bit_callback, &parms, 1); | 280 | on_each_cpu(smp_ctl_bit_callback, &parms, 1); |
| 281 | } | 281 | } |
| 282 | EXPORT_SYMBOL(smp_ctl_clear_bit); | 282 | EXPORT_SYMBOL(smp_ctl_clear_bit); |
diff --git a/arch/s390/oprofile/init.c b/arch/s390/oprofile/init.c index 5995e9bc72d9..0e358c2cffeb 100644 --- a/arch/s390/oprofile/init.c +++ b/arch/s390/oprofile/init.c | |||
| @@ -25,7 +25,7 @@ extern void s390_backtrace(struct pt_regs * const regs, unsigned int depth); | |||
| 25 | 25 | ||
| 26 | #include "hwsampler.h" | 26 | #include "hwsampler.h" |
| 27 | 27 | ||
| 28 | #define DEFAULT_INTERVAL 4096 | 28 | #define DEFAULT_INTERVAL 4127518 |
| 29 | 29 | ||
| 30 | #define DEFAULT_SDBT_BLOCKS 1 | 30 | #define DEFAULT_SDBT_BLOCKS 1 |
| 31 | #define DEFAULT_SDB_BLOCKS 511 | 31 | #define DEFAULT_SDB_BLOCKS 511 |
| @@ -151,6 +151,12 @@ static int oprofile_hwsampler_init(struct oprofile_operations *ops) | |||
| 151 | if (oprofile_max_interval == 0) | 151 | if (oprofile_max_interval == 0) |
| 152 | return -ENODEV; | 152 | return -ENODEV; |
| 153 | 153 | ||
| 154 | /* The initial value should be sane */ | ||
| 155 | if (oprofile_hw_interval < oprofile_min_interval) | ||
| 156 | oprofile_hw_interval = oprofile_min_interval; | ||
| 157 | if (oprofile_hw_interval > oprofile_max_interval) | ||
| 158 | oprofile_hw_interval = oprofile_max_interval; | ||
| 159 | |||
| 154 | if (oprofile_timer_init(ops)) | 160 | if (oprofile_timer_init(ops)) |
| 155 | return -ENODEV; | 161 | return -ENODEV; |
| 156 | 162 | ||
