Message ID | 20180921180451.18711-1-natechancellor@gmail.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | RDS: IB: Use DEFINE_PER_CPU_SHARED_ALIGNED for rds_ib_stats | expand |
On 9/21/2018 11:04 AM, Nathan Chancellor wrote: > Clang warns when two declarations' section attributes don't match. > > net/rds/ib_stats.c:40:1: warning: section does not match previous > declaration [-Wsection] > DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats); > ^ > ./include/linux/percpu-defs.h:142:2: note: expanded from macro > 'DEFINE_PER_CPU_SHARED_ALIGNED' > DEFINE_PER_CPU_SECTION(type, name, > PER_CPU_SHARED_ALIGNED_SECTION) \ > ^ > ./include/linux/percpu-defs.h:93:9: note: expanded from macro > 'DEFINE_PER_CPU_SECTION' > extern __PCPU_ATTRS(sec) __typeof__(type) name; > \ > ^ > ./include/linux/percpu-defs.h:49:26: note: expanded from macro > '__PCPU_ATTRS' > __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) > \ > ^ > net/rds/ib.h:446:1: note: previous attribute is here > DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats); > ^ > ./include/linux/percpu-defs.h:111:2: note: expanded from macro > 'DECLARE_PER_CPU' > DECLARE_PER_CPU_SECTION(type, name, "") > ^ > ./include/linux/percpu-defs.h:87:9: note: expanded from macro > 'DECLARE_PER_CPU_SECTION' > extern __PCPU_ATTRS(sec) __typeof__(type) name > ^ > ./include/linux/percpu-defs.h:49:26: note: expanded from macro > '__PCPU_ATTRS' > __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) > \ > ^ > 1 warning generated. > > The initial definition was added in commit ec16227e1414 ("RDS/IB: > Infiniband transport") and the cache aligned definition was added in > commit e6babe4cc4ce ("RDS/IB: Stats and sysctls") right after. The > definition probably should have been updated in net/rds/ib.h, which is > what this patch does. > > Link: https://github.com/ClangBuiltLinux/linux/issues/114 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> > --- Looks fine. Thanks !! Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
On Fri, Sep 21, 2018 at 11:04:51AM -0700, Nathan Chancellor wrote: > Clang warns when two declarations' section attributes don't match. > > net/rds/ib_stats.c:40:1: warning: section does not match previous > declaration [-Wsection] > DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats); > ^ > ./include/linux/percpu-defs.h:142:2: note: expanded from macro > 'DEFINE_PER_CPU_SHARED_ALIGNED' > DEFINE_PER_CPU_SECTION(type, name, > PER_CPU_SHARED_ALIGNED_SECTION) \ > ^ > ./include/linux/percpu-defs.h:93:9: note: expanded from macro > 'DEFINE_PER_CPU_SECTION' > extern __PCPU_ATTRS(sec) __typeof__(type) name; > \ > ^ > ./include/linux/percpu-defs.h:49:26: note: expanded from macro > '__PCPU_ATTRS' > __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) > \ > ^ > net/rds/ib.h:446:1: note: previous attribute is here > DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats); > ^ > ./include/linux/percpu-defs.h:111:2: note: expanded from macro > 'DECLARE_PER_CPU' > DECLARE_PER_CPU_SECTION(type, name, "") > ^ > ./include/linux/percpu-defs.h:87:9: note: expanded from macro > 'DECLARE_PER_CPU_SECTION' > extern __PCPU_ATTRS(sec) __typeof__(type) name > ^ > ./include/linux/percpu-defs.h:49:26: note: expanded from macro > '__PCPU_ATTRS' > __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) > \ > ^ > 1 warning generated. > > The initial definition was added in commit ec16227e1414 ("RDS/IB: > Infiniband transport") and the cache aligned definition was added in > commit e6babe4cc4ce ("RDS/IB: Stats and sysctls") right after. The > definition probably should have been updated in net/rds/ib.h, which is > what this patch does. > > Link: https://github.com/ClangBuiltLinux/linux/issues/114 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> > --- > net/rds/ib.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/rds/ib.h b/net/rds/ib.h > index 73427ff439f9..fd483760c910 100644 > --- a/net/rds/ib.h > +++ b/net/rds/ib.h > @@ -443,7 +443,7 @@ int rds_ib_send_grab_credits(struct rds_ib_connection *ic, u32 wanted, > int rds_ib_xmit_atomic(struct rds_connection *conn, struct rm_atomic_op *op); > > /* ib_stats.c */ > -DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats); > +DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats); I have sent a v2 because this should be DECLARE_PER_CPU_SHARED_ALIGNED, not DEFINE (thanks to 0day for catching it). I will make sure the '--in-reply-to' option in the future. Nathan > #define rds_ib_stats_inc(member) rds_stats_inc_which(rds_ib_stats, member) > #define rds_ib_stats_add(member, count) \ > rds_stats_add_which(rds_ib_stats, member, count) > -- > 2.19.0 >
From: Nathan Chancellor <natechancellor@gmail.com> Date: Sat, 22 Sep 2018 23:44:45 -0700 > I have sent a v2 because this should be DECLARE_PER_CPU_SHARED_ALIGNED, > not DEFINE (thanks to 0day for catching it). Your first version was already applied to the networking GIT tree, so you will need to submit a relative fixup with a proper "Fixes: " tag.
From: David Miller <davem@davemloft.net> Date: Sun, 23 Sep 2018 12:19:27 -0700 (PDT) > From: Nathan Chancellor <natechancellor@gmail.com> > Date: Sat, 22 Sep 2018 23:44:45 -0700 > >> I have sent a v2 because this should be DECLARE_PER_CPU_SHARED_ALIGNED, >> not DEFINE (thanks to 0day for catching it). > > Your first version was already applied to the networking GIT tree, so > you will need to submit a relative fixup with a proper "Fixes: " tag. Nevermind, I took care of it myself. ==================== From 16fdf8ba98391650ce4bc4f3f71629d8a413bc21 Mon Sep 17 00:00:00 2001 From: "David S. Miller" <davem@davemloft.net> Date: Sun, 23 Sep 2018 12:25:15 -0700 Subject: [PATCH] rds: Fix build regression. Use DECLARE_* not DEFINE_* Fixes: 8360ed6745df ("RDS: IB: Use DEFINE_PER_CPU_SHARED_ALIGNED for rds_ib_stats") Signed-off-by: David S. Miller <davem@davemloft.net> --- net/rds/ib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/rds/ib.h b/net/rds/ib.h index fd483760c910..71ff356ee702 100644 --- a/net/rds/ib.h +++ b/net/rds/ib.h @@ -443,7 +443,7 @@ int rds_ib_send_grab_credits(struct rds_ib_connection *ic, u32 wanted, int rds_ib_xmit_atomic(struct rds_connection *conn, struct rm_atomic_op *op); /* ib_stats.c */ -DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats); +DECLARE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats); #define rds_ib_stats_inc(member) rds_stats_inc_which(rds_ib_stats, member) #define rds_ib_stats_add(member, count) \ rds_stats_add_which(rds_ib_stats, member, count)
On Sun, Sep 23, 2018 at 12:19:27PM -0700, David Miller wrote: > From: Nathan Chancellor <natechancellor@gmail.com> > Date: Sat, 22 Sep 2018 23:44:45 -0700 > > > I have sent a v2 because this should be DECLARE_PER_CPU_SHARED_ALIGNED, > > not DEFINE (thanks to 0day for catching it). > > Your first version was already applied to the networking GIT tree, so > you will need to submit a relative fixup with a proper "Fixes: " tag. Hi David, My apologies, I didn't receive an email saying my patch was applied so I didn't think to check your tree. I'll be better about this in the future. Thank you for fixing this up yourself and all your patience, sorry for all the noise! Nathan
diff --git a/net/rds/ib.h b/net/rds/ib.h index 73427ff439f9..fd483760c910 100644 --- a/net/rds/ib.h +++ b/net/rds/ib.h @@ -443,7 +443,7 @@ int rds_ib_send_grab_credits(struct rds_ib_connection *ic, u32 wanted, int rds_ib_xmit_atomic(struct rds_connection *conn, struct rm_atomic_op *op); /* ib_stats.c */ -DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats); +DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats); #define rds_ib_stats_inc(member) rds_stats_inc_which(rds_ib_stats, member) #define rds_ib_stats_add(member, count) \ rds_stats_add_which(rds_ib_stats, member, count)
Clang warns when two declarations' section attributes don't match. net/rds/ib_stats.c:40:1: warning: section does not match previous declaration [-Wsection] DEFINE_PER_CPU_SHARED_ALIGNED(struct rds_ib_statistics, rds_ib_stats); ^ ./include/linux/percpu-defs.h:142:2: note: expanded from macro 'DEFINE_PER_CPU_SHARED_ALIGNED' DEFINE_PER_CPU_SECTION(type, name, PER_CPU_SHARED_ALIGNED_SECTION) \ ^ ./include/linux/percpu-defs.h:93:9: note: expanded from macro 'DEFINE_PER_CPU_SECTION' extern __PCPU_ATTRS(sec) __typeof__(type) name; \ ^ ./include/linux/percpu-defs.h:49:26: note: expanded from macro '__PCPU_ATTRS' __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) \ ^ net/rds/ib.h:446:1: note: previous attribute is here DECLARE_PER_CPU(struct rds_ib_statistics, rds_ib_stats); ^ ./include/linux/percpu-defs.h:111:2: note: expanded from macro 'DECLARE_PER_CPU' DECLARE_PER_CPU_SECTION(type, name, "") ^ ./include/linux/percpu-defs.h:87:9: note: expanded from macro 'DECLARE_PER_CPU_SECTION' extern __PCPU_ATTRS(sec) __typeof__(type) name ^ ./include/linux/percpu-defs.h:49:26: note: expanded from macro '__PCPU_ATTRS' __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) \ ^ 1 warning generated. The initial definition was added in commit ec16227e1414 ("RDS/IB: Infiniband transport") and the cache aligned definition was added in commit e6babe4cc4ce ("RDS/IB: Stats and sysctls") right after. The definition probably should have been updated in net/rds/ib.h, which is what this patch does. Link: https://github.com/ClangBuiltLinux/linux/issues/114 Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> --- net/rds/ib.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)