Message ID | 20230621060827.151564-2-sunliming@kylinos.cn (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | tracing/user_events: Fix incorrect return value for | expand |
On Wed, Jun 21, 2023 at 02:08:24PM +0800, sunliming wrote: > The writing operation return the count of writes regardless of whether events > are enabled or disabled. Switch it to return 0 to indicates that the event > is disabled. > > Signed-off-by: sunliming <sunliming@kylinos.cn> This looks good to me. Acked-by: Beau Belgrave <beaub@linux.microsoft.com> Thanks! > --- > kernel/trace/trace_events_user.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c > index 1ac5ba5685ed..c085ff829a58 100644 > --- a/kernel/trace/trace_events_user.c > +++ b/kernel/trace/trace_events_user.c > @@ -1957,7 +1957,8 @@ static ssize_t user_events_write_core(struct file *file, struct iov_iter *i) > > if (unlikely(faulted)) > return -EFAULT; > - } > + } else > + return 0; > > return ret; > } > -- > 2.25.1
On Wed, 21 Jun 2023 14:08:24 +0800 sunliming <sunliming@kylinos.cn> wrote: > The writing operation return the count of writes regardless of whether events > are enabled or disabled. Switch it to return 0 to indicates that the event > is disabled. > > Signed-off-by: sunliming <sunliming@kylinos.cn> > --- > kernel/trace/trace_events_user.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c > index 1ac5ba5685ed..c085ff829a58 100644 > --- a/kernel/trace/trace_events_user.c > +++ b/kernel/trace/trace_events_user.c > @@ -1957,7 +1957,8 @@ static ssize_t user_events_write_core(struct file *file, struct iov_iter *i) > > if (unlikely(faulted)) > return -EFAULT; > - } > + } else > + return 0; > sunliming, If you missed the conversation about the pull request with Linus, he pointed out (correctly) that we were mistaken to tell you to return zero. It should return an error if the ring buffer is disabled. But instead of returning -EFAULT, let's follow the behavior of trace_marker and return -EBADF. This way user space has a better idea why it failed. Care to send another update? Thanks! -- Steve > return ret; > }
diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c index 1ac5ba5685ed..c085ff829a58 100644 --- a/kernel/trace/trace_events_user.c +++ b/kernel/trace/trace_events_user.c @@ -1957,7 +1957,8 @@ static ssize_t user_events_write_core(struct file *file, struct iov_iter *i) if (unlikely(faulted)) return -EFAULT; - } + } else + return 0; return ret; }
The writing operation return the count of writes regardless of whether events are enabled or disabled. Switch it to return 0 to indicates that the event is disabled. Signed-off-by: sunliming <sunliming@kylinos.cn> --- kernel/trace/trace_events_user.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)