lkml.org 
[lkml]   [2019]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] trace: events: fix error directive in argument list
    On Tue, 26 Mar 2019 01:23:03 +0530
    Hariprasad Kelam <hariprasad.kelam@gmail.com> wrote:

    > This patch fixes below spare errors.
    >
    > Sparse error:
    > make C=2 CF=-D__CHECK_ENDIAN__ M=net/core
    > ./include/trace/events/neigh.h:73:1: error: directive in argument list
    > ./include/trace/events/neigh.h:78:1: error: directive in argument list
    > ./include/trace/events/neigh.h:150:1: error: directive in argument list
    > ./include/trace/events/neigh.h:155:1: error: directive in argument list
    >

    I have nothing really against these patches, but why is the current
    code considered wrong?

    Note, TRACE_EVENTS() are "special macros". They hold structure
    definitions and full code inside the argument list. There should be no
    reason that this is causing a warning.

    Perhaps we should blacklist the include/trace directory from sparse
    checking for these types of "errors".

    -- Steve


    > Changes below two lines to signle line to avoid sparse error
    > #if IS_ENABLED(CONFIG_IPV6)
    > if (n->tbl->family == AF_INET6) {
    > to if (IS_ENABLED(CONFIG_IPV6) && n->tbl->family == AF_INET6)
    >
    > and removes reassigning pin6 pointer when IPV6 is enabled
    >
    > Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
    > ---
    > include/trace/events/neigh.h | 19 +++++--------------
    > 1 file changed, 5 insertions(+), 14 deletions(-)
    >
    > diff --git a/include/trace/events/neigh.h b/include/trace/events/neigh.h
    > index 0bdb085..6e310ea 100644
    > --- a/include/trace/events/neigh.h
    > +++ b/include/trace/events/neigh.h
    > @@ -70,15 +70,11 @@ TRACE_EVENT(neigh_update,
    > else
    > *p32 = 0;
    >
    > -#if IS_ENABLED(CONFIG_IPV6)
    > - if (n->tbl->family == AF_INET6) {
    > - pin6 = (struct in6_addr *)__entry->primary_key6;
    > + if (IS_ENABLED(CONFIG_IPV6) && n->tbl->family == AF_INET6)
    > *pin6 = *(struct in6_addr *)n->primary_key;
    > - } else
    > -#endif
    > - {
    > + else
    > ipv6_addr_set_v4mapped(*p32, pin6);
    > - }
    > +
    > __entry->confirmed = n->confirmed;
    > __entry->updated = n->updated;
    > __entry->used = n->used;
    > @@ -147,15 +143,10 @@ DECLARE_EVENT_CLASS(neigh__update,
    > else
    > *p32 = 0;
    >
    > -#if IS_ENABLED(CONFIG_IPV6)
    > - if (n->tbl->family == AF_INET6) {
    > - pin6 = (struct in6_addr *)__entry->primary_key6;
    > + if (IS_ENABLED(CONFIG_IPV6) && n->tbl->family == AF_INET6)
    > *pin6 = *(struct in6_addr *)n->primary_key;
    > - } else
    > -#endif
    > - {
    > + else
    > ipv6_addr_set_v4mapped(*p32, pin6);
    > - }
    >
    > __entry->confirmed = n->confirmed;
    > __entry->updated = n->updated;

    \
     
     \ /
      Last update: 2019-03-27 16:55    [W:4.807 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site