Loading arch/x86/lib/usercopy.c +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n) void *map; int ret; if (__range_not_ok(from, n, TASK_SIZE) == 0) if (__range_not_ok(from, n, TASK_SIZE)) return len; do { Loading kernel/events/core.c +7 −3 Original line number Diff line number Diff line Loading @@ -253,9 +253,9 @@ perf_cgroup_match(struct perf_event *event) return !event->cgrp || event->cgrp == cpuctx->cgrp; } static inline void perf_get_cgroup(struct perf_event *event) static inline bool perf_tryget_cgroup(struct perf_event *event) { css_get(&event->cgrp->css); return css_tryget(&event->cgrp->css); } static inline void perf_put_cgroup(struct perf_event *event) Loading Loading @@ -484,7 +484,11 @@ static inline int perf_cgroup_connect(int fd, struct perf_event *event, event->cgrp = cgrp; /* must be done before we fput() the file */ perf_get_cgroup(event); if (!perf_tryget_cgroup(event)) { event->cgrp = NULL; ret = -ENOENT; goto out; } /* * all events in a group must monitor Loading kernel/trace/trace.c +1 −1 Original line number Diff line number Diff line Loading @@ -371,7 +371,7 @@ EXPORT_SYMBOL_GPL(tracing_on); void tracing_off(void) { if (global_trace.buffer) ring_buffer_record_on(global_trace.buffer); ring_buffer_record_off(global_trace.buffer); /* * This flag is only looked at when buffers haven't been * allocated yet. We don't really care about the race Loading kernel/watchdog.c +18 −1 Original line number Diff line number Diff line Loading @@ -372,6 +372,13 @@ static int watchdog(void *unused) #ifdef CONFIG_HARDLOCKUP_DETECTOR /* * People like the simple clean cpu node info on boot. * Reduce the watchdog noise by only printing messages * that are different from what cpu0 displayed. */ static unsigned long cpu0_err; static int watchdog_nmi_enable(int cpu) { struct perf_event_attr *wd_attr; Loading @@ -390,11 +397,21 @@ static int watchdog_nmi_enable(int cpu) /* Try to register using hardware perf events */ event = perf_event_create_kernel_counter(wd_attr, cpu, NULL, watchdog_overflow_callback, NULL); /* save cpu0 error for future comparision */ if (cpu == 0 && IS_ERR(event)) cpu0_err = PTR_ERR(event); if (!IS_ERR(event)) { pr_info("enabled, takes one hw-pmu counter.\n"); /* only print for cpu0 or different than cpu0 */ if (cpu == 0 || cpu0_err) pr_info("enabled on all CPUs, permanently consumes one hw-PMU counter.\n"); goto out_save; } /* skip displaying the same error again */ if (cpu > 0 && (PTR_ERR(event) == cpu0_err)) return PTR_ERR(event); /* vary the KERN level based on the returned errno */ if (PTR_ERR(event) == -EOPNOTSUPP) Loading tools/perf/builtin-stat.c +7 −1 Original line number Diff line number Diff line Loading @@ -1179,6 +1179,12 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used) fprintf(stderr, "cannot use both --output and --log-fd\n"); usage_with_options(stat_usage, options); } if (output_fd < 0) { fprintf(stderr, "argument to --log-fd must be a > 0\n"); usage_with_options(stat_usage, options); } if (!output) { struct timespec tm; mode = append_file ? "a" : "w"; Loading @@ -1190,7 +1196,7 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used) } clock_gettime(CLOCK_REALTIME, &tm); fprintf(output, "# started on %s\n", ctime(&tm.tv_sec)); } else if (output_fd != 2) { } else if (output_fd > 0) { mode = append_file ? "a" : "w"; output = fdopen(output_fd, mode); if (!output) { Loading Loading
arch/x86/lib/usercopy.c +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ copy_from_user_nmi(void *to, const void __user *from, unsigned long n) void *map; int ret; if (__range_not_ok(from, n, TASK_SIZE) == 0) if (__range_not_ok(from, n, TASK_SIZE)) return len; do { Loading
kernel/events/core.c +7 −3 Original line number Diff line number Diff line Loading @@ -253,9 +253,9 @@ perf_cgroup_match(struct perf_event *event) return !event->cgrp || event->cgrp == cpuctx->cgrp; } static inline void perf_get_cgroup(struct perf_event *event) static inline bool perf_tryget_cgroup(struct perf_event *event) { css_get(&event->cgrp->css); return css_tryget(&event->cgrp->css); } static inline void perf_put_cgroup(struct perf_event *event) Loading Loading @@ -484,7 +484,11 @@ static inline int perf_cgroup_connect(int fd, struct perf_event *event, event->cgrp = cgrp; /* must be done before we fput() the file */ perf_get_cgroup(event); if (!perf_tryget_cgroup(event)) { event->cgrp = NULL; ret = -ENOENT; goto out; } /* * all events in a group must monitor Loading
kernel/trace/trace.c +1 −1 Original line number Diff line number Diff line Loading @@ -371,7 +371,7 @@ EXPORT_SYMBOL_GPL(tracing_on); void tracing_off(void) { if (global_trace.buffer) ring_buffer_record_on(global_trace.buffer); ring_buffer_record_off(global_trace.buffer); /* * This flag is only looked at when buffers haven't been * allocated yet. We don't really care about the race Loading
kernel/watchdog.c +18 −1 Original line number Diff line number Diff line Loading @@ -372,6 +372,13 @@ static int watchdog(void *unused) #ifdef CONFIG_HARDLOCKUP_DETECTOR /* * People like the simple clean cpu node info on boot. * Reduce the watchdog noise by only printing messages * that are different from what cpu0 displayed. */ static unsigned long cpu0_err; static int watchdog_nmi_enable(int cpu) { struct perf_event_attr *wd_attr; Loading @@ -390,11 +397,21 @@ static int watchdog_nmi_enable(int cpu) /* Try to register using hardware perf events */ event = perf_event_create_kernel_counter(wd_attr, cpu, NULL, watchdog_overflow_callback, NULL); /* save cpu0 error for future comparision */ if (cpu == 0 && IS_ERR(event)) cpu0_err = PTR_ERR(event); if (!IS_ERR(event)) { pr_info("enabled, takes one hw-pmu counter.\n"); /* only print for cpu0 or different than cpu0 */ if (cpu == 0 || cpu0_err) pr_info("enabled on all CPUs, permanently consumes one hw-PMU counter.\n"); goto out_save; } /* skip displaying the same error again */ if (cpu > 0 && (PTR_ERR(event) == cpu0_err)) return PTR_ERR(event); /* vary the KERN level based on the returned errno */ if (PTR_ERR(event) == -EOPNOTSUPP) Loading
tools/perf/builtin-stat.c +7 −1 Original line number Diff line number Diff line Loading @@ -1179,6 +1179,12 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used) fprintf(stderr, "cannot use both --output and --log-fd\n"); usage_with_options(stat_usage, options); } if (output_fd < 0) { fprintf(stderr, "argument to --log-fd must be a > 0\n"); usage_with_options(stat_usage, options); } if (!output) { struct timespec tm; mode = append_file ? "a" : "w"; Loading @@ -1190,7 +1196,7 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used) } clock_gettime(CLOCK_REALTIME, &tm); fprintf(output, "# started on %s\n", ctime(&tm.tv_sec)); } else if (output_fd != 2) { } else if (output_fd > 0) { mode = append_file ? "a" : "w"; output = fdopen(output_fd, mode); if (!output) { Loading