selftests: timers: rtcpie: restore previous PIE rate
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 19 Apr 2018 12:50:28 +0000 (14:50 +0200)
committerShuah Khan (Samsung OSG) <shuah@kernel.org>
Wed, 30 May 2018 21:21:51 +0000 (15:21 -0600)
After the test ends, restore the PIE rate to its previous value to be less
disruptive.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
tools/testing/selftests/timers/rtcpie.c

index ea98b1f6ac170de69b57a32a2a90de8c5e00e2ea..47b5bad1b3933343548579fce9e06650c09186ce 100644 (file)
@@ -28,7 +28,7 @@ static const char default_rtc[] = "/dev/rtc0";
 int main(int argc, char **argv)
 {
        int i, fd, retval, irqcount = 0;
-       unsigned long tmp, data;
+       unsigned long tmp, data, old_pie_rate;
        const char *rtc = default_rtc;
        struct timeval start, end, diff;
 
@@ -51,7 +51,7 @@ int main(int argc, char **argv)
        }
 
        /* Read periodic IRQ rate */
-       retval = ioctl(fd, RTC_IRQP_READ, &tmp);
+       retval = ioctl(fd, RTC_IRQP_READ, &old_pie_rate);
        if (retval == -1) {
                /* not all RTCs support periodic IRQs */
                if (errno == EINVAL) {
@@ -61,7 +61,7 @@ int main(int argc, char **argv)
                perror("RTC_IRQP_READ ioctl");
                exit(errno);
        }
-       fprintf(stderr, "\nPeriodic IRQ rate is %ldHz.\n", tmp);
+       fprintf(stderr, "\nPeriodic IRQ rate is %ldHz.\n", old_pie_rate);
 
        fprintf(stderr, "Counting 20 interrupts at:");
        fflush(stderr);
@@ -124,6 +124,8 @@ int main(int argc, char **argv)
        }
 
 done:
+       ioctl(fd, RTC_IRQP_SET, old_pie_rate);
+
        fprintf(stderr, "\n\n\t\t\t *** Test complete ***\n");
 
        close(fd);