> Date: Fri, 24 Apr 2020 12:19:32 +0200 > From: Martin Pieuchot <m...@openbsd.org> > > On 15/04/20(Wed) 17:04, Martin Pieuchot wrote: > > On 15/04/20(Wed) 09:26, Martin Pieuchot wrote: > > > jca@ is currently building kernels with "-Wno-error=uninitialized" and > > > reported a warning in ART in SP builds: > > > > > > /usr/src/sys/net/art.c:256:10: warning: variable 'ndsr' is uninitialized > > > when used here [-Wuninitialized] > > > dsr = ndsr; > > > ^~~~ > > > /usr/src/sys/net/art.c:221:2: note: variable 'ndsr' is declared here > > > struct srp_ref dsr, ndsr; > > > ^ > > > warning generated. > > > > > > With a single CPU there's no need to save a reference and srp_leave() > > > just does nothing. In other words the warning above is harmless. > > > > > > The diff below prevents the false positive by turning srp_enter() into > > > a static inline function, I find that nicer rather than clutter the code > > > with #ifdef. > > > > Now without typo, spotted by jca@ thanks! > > Any consensus about such warnings? Any ok or should I drop the diff?
Not my code, but I'd say that is an acceptable fix. > > Index: sys/srp.h > > =================================================================== > > RCS file: /cvs/src/sys/sys/srp.h,v > > retrieving revision 1.14 > > diff -u -p -r1.14 srp.h > > --- sys/srp.h 31 Mar 2019 14:03:40 -0000 1.14 > > +++ sys/srp.h 15 Apr 2020 15:03:00 -0000 > > @@ -96,11 +96,17 @@ void *srp_enter(struct srp_ref *, struc > > void *srp_follow(struct srp_ref *, struct srp *); > > void srp_leave(struct srp_ref *); > > #else /* MULTIPROCESSOR */ > > + > > +static inline void * > > +srp_enter(struct srp_ref *sr, struct srp *srp) > > +{ > > + return (srp->ref); > > +} > > + > > #define srp_swap(_srp, _v) srp_swap_locked((_srp), (_v)) > > #define srp_update(_gc, _srp, _v) srp_update_locked((_gc), (_srp), (_v)) > > #define srp_finalize(_v, _wchan) ((void)0) > > -#define srp_enter(_sr, _srp) ((_srp)->ref) > > -#define srp_follow(_sr, _srp) ((_srp)->ref) > > +#define srp_follow(_sr, _srp) srp_enter(_sr, _srp) > > #define srp_leave(_sr) do { } while (0) > > #endif /* MULTIPROCESSOR */ > > > > > >