Skip to content

Commit

Permalink
[S390] oprofile: fix min/max interval query checks
Browse files Browse the repository at this point in the history
oprofile_min_interval and oprofile_max_interval are unsigned, checking
for negative values doesn't work. Change hwsampler_query_min_interval
and hwsampler_query_max_interval to return an unsigned long and
check for a zero value instead.

Reported-by: Nicolas Kaiser <nikai@nikai.net>
Acked-by: Robert Richter <robert.richter@amd.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  • Loading branch information
Martin Schwidefsky authored and Martin Schwidefsky committed May 10, 2011
1 parent 83ace27 commit 3d8dcb3
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 18 deletions.
14 changes: 4 additions & 10 deletions arch/s390/oprofile/hwsampler.c
Original file line number Diff line number Diff line change
Expand Up @@ -1021,20 +1021,14 @@ int hwsampler_deallocate()
return rc;
}

long hwsampler_query_min_interval(void)
unsigned long hwsampler_query_min_interval(void)
{
if (min_sampler_rate)
return min_sampler_rate;
else
return -EINVAL;
return min_sampler_rate;
}

long hwsampler_query_max_interval(void)
unsigned long hwsampler_query_max_interval(void)
{
if (max_sampler_rate)
return max_sampler_rate;
else
return -EINVAL;
return max_sampler_rate;
}

unsigned long hwsampler_get_sample_overflow_count(unsigned int cpu)
Expand Down
4 changes: 2 additions & 2 deletions arch/s390/oprofile/hwsampler.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,8 @@ int hwsampler_setup(void);
int hwsampler_shutdown(void);
int hwsampler_allocate(unsigned long sdbt, unsigned long sdb);
int hwsampler_deallocate(void);
long hwsampler_query_min_interval(void);
long hwsampler_query_max_interval(void);
unsigned long hwsampler_query_min_interval(void);
unsigned long hwsampler_query_max_interval(void);
int hwsampler_start_all(unsigned long interval);
int hwsampler_stop_all(void);
int hwsampler_deactivate(unsigned int cpu);
Expand Down
8 changes: 2 additions & 6 deletions arch/s390/oprofile/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,11 @@ static int oprofile_hwsampler_init(struct oprofile_operations *ops)
* create hwsampler files only if hwsampler_setup() succeeds.
*/
oprofile_min_interval = hwsampler_query_min_interval();
if (oprofile_min_interval < 0) {
oprofile_min_interval = 0;
if (oprofile_min_interval == 0)
return -ENODEV;
}
oprofile_max_interval = hwsampler_query_max_interval();
if (oprofile_max_interval < 0) {
oprofile_max_interval = 0;
if (oprofile_max_interval == 0)
return -ENODEV;
}

if (oprofile_timer_init(ops))
return -ENODEV;
Expand Down

0 comments on commit 3d8dcb3

Please sign in to comment.