* [PATCH net] inet_diag: fix inet_diag_msg_attrs_fill() for net_cls cgroup @ 2023-05-08 3:32 Patryk Sondej 2023-05-08 6:17 ` Leon Romanovsky 0 siblings, 1 reply; 5+ messages in thread From: Patryk Sondej @ 2023-05-08 3:32 UTC (permalink / raw) To: netdev; +Cc: Patryk Sondej This commit fixes inet_diag_msg_attrs_fill() function in the ipv4/inet_diag.c file. The problem was that the function was using CONFIG_SOCK_CGROUP_DATA to check for the net_cls cgroup. However, the net_cls cgroup is defined by CONFIG_CGROUP_NET_CLASSID instead. Therefore, this commit updates the #ifdef statement to CONFIG_CGROUP_NET_CLASSID, and uses the sock_cgroup_classid() function to retrieve the classid from the socket cgroup. This change ensures that the function correctly retrieves the classid for the net_cls cgroup and fixes any issues related to the use of the function in this context. Signed-off-by: Patryk Sondej <patryk.sondej@gmail.com> --- net/ipv4/inet_diag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c index b812eb36f0e3..7017f88911a6 100644 --- a/net/ipv4/inet_diag.c +++ b/net/ipv4/inet_diag.c @@ -157,7 +157,7 @@ int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb, ext & (1 << (INET_DIAG_TCLASS - 1))) { u32 classid = 0; -#ifdef CONFIG_SOCK_CGROUP_DATA +#ifdef CONFIG_CGROUP_NET_CLASSID classid = sock_cgroup_classid(&sk->sk_cgrp_data); #endif /* Fallback to socket priority if class id isn't set. -- 2.37.1 (Apple Git-137.1) ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH net] inet_diag: fix inet_diag_msg_attrs_fill() for net_cls cgroup 2023-05-08 3:32 [PATCH net] inet_diag: fix inet_diag_msg_attrs_fill() for net_cls cgroup Patryk Sondej @ 2023-05-08 6:17 ` Leon Romanovsky 2023-05-08 16:21 ` Kuniyuki Iwashima 0 siblings, 1 reply; 5+ messages in thread From: Leon Romanovsky @ 2023-05-08 6:17 UTC (permalink / raw) To: Patryk Sondej; +Cc: netdev On Mon, May 08, 2023 at 05:32:33AM +0200, Patryk Sondej wrote: > This commit fixes inet_diag_msg_attrs_fill() function in the ipv4/inet_diag.c file. > The problem was that the function was using CONFIG_SOCK_CGROUP_DATA to check for the net_cls cgroup. > However, the net_cls cgroup is defined by CONFIG_CGROUP_NET_CLASSID instead. > > Therefore, this commit updates the #ifdef statement to CONFIG_CGROUP_NET_CLASSID, > and uses the sock_cgroup_classid() function to retrieve the classid from the socket cgroup. > > This change ensures that the function correctly retrieves the classid for the net_cls cgroup > and fixes any issues related to the use of the function in this context. > Please add Fixes line here. > Signed-off-by: Patryk Sondej <patryk.sondej@gmail.com> > --- > net/ipv4/inet_diag.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c > index b812eb36f0e3..7017f88911a6 100644 > --- a/net/ipv4/inet_diag.c > +++ b/net/ipv4/inet_diag.c > @@ -157,7 +157,7 @@ int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb, > ext & (1 << (INET_DIAG_TCLASS - 1))) { > u32 classid = 0; > > -#ifdef CONFIG_SOCK_CGROUP_DATA > +#ifdef CONFIG_CGROUP_NET_CLASSID This ifdef should be deleted as sock_cgroup_classid() already has right ifdef. 809 static inline u32 sock_cgroup_classid(const struct sock_cgroup_data *skcd) 810 { 811 #ifdef CONFIG_CGROUP_NET_CLASSID 812 return READ_ONCE(skcd->classid); 813 #else 814 return 0; 815 #endif 816 } 817 > classid = sock_cgroup_classid(&sk->sk_cgrp_data); > #endif > /* Fallback to socket priority if class id isn't set. > -- > 2.37.1 (Apple Git-137.1) > > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] inet_diag: fix inet_diag_msg_attrs_fill() for net_cls cgroup 2023-05-08 6:17 ` Leon Romanovsky @ 2023-05-08 16:21 ` Kuniyuki Iwashima 2023-05-09 7:48 ` Leon Romanovsky 0 siblings, 1 reply; 5+ messages in thread From: Kuniyuki Iwashima @ 2023-05-08 16:21 UTC (permalink / raw) To: leon; +Cc: netdev, patryk.sondej From: Leon Romanovsky <leon@kernel.org> Date: Mon, 8 May 2023 09:17:49 +0300 > On Mon, May 08, 2023 at 05:32:33AM +0200, Patryk Sondej wrote: > > This commit fixes inet_diag_msg_attrs_fill() function in the ipv4/inet_diag.c file. > > The problem was that the function was using CONFIG_SOCK_CGROUP_DATA to check for the net_cls cgroup. > > However, the net_cls cgroup is defined by CONFIG_CGROUP_NET_CLASSID instead. > > > > Therefore, this commit updates the #ifdef statement to CONFIG_CGROUP_NET_CLASSID, > > and uses the sock_cgroup_classid() function to retrieve the classid from the socket cgroup. > > > > This change ensures that the function correctly retrieves the classid for the net_cls cgroup > > and fixes any issues related to the use of the function in this context. > > > > Please add Fixes line here. > > > Signed-off-by: Patryk Sondej <patryk.sondej@gmail.com> > > --- > > net/ipv4/inet_diag.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c > > index b812eb36f0e3..7017f88911a6 100644 > > --- a/net/ipv4/inet_diag.c > > +++ b/net/ipv4/inet_diag.c > > @@ -157,7 +157,7 @@ int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb, > > ext & (1 << (INET_DIAG_TCLASS - 1))) { > > u32 classid = 0; > > > > -#ifdef CONFIG_SOCK_CGROUP_DATA > > +#ifdef CONFIG_CGROUP_NET_CLASSID > > This ifdef should be deleted as sock_cgroup_classid() already has right ifdef. sock_cgroup_classid() is defined under #ifdef CONFIG_SOCK_CGROUP_DATA, so removing this guard will cause an error at compile time if we disable CONFIG_SOCK_CGROUP_DATA. I think we can keep the old #ifdef as is for consistensy with another CONFIG_SOCK_CGROUP_DATA use just below for sock_cgroup_ptr() in inet_diag_msg_attrs_fill(). If we enable CONFIG_SOCK_CGROUP_DATA without CONFIG_CGROUP_NET_CLASSID, I guess gcc will optimize it and remove the zero assignment. > > 809 static inline u32 sock_cgroup_classid(const struct sock_cgroup_data *skcd) > 810 { > 811 #ifdef CONFIG_CGROUP_NET_CLASSID > 812 return READ_ONCE(skcd->classid); > 813 #else > 814 return 0; > 815 #endif > 816 } > 817 > > > > classid = sock_cgroup_classid(&sk->sk_cgrp_data); > > #endif > > /* Fallback to socket priority if class id isn't set. > > -- > > 2.37.1 (Apple Git-137.1) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] inet_diag: fix inet_diag_msg_attrs_fill() for net_cls cgroup 2023-05-08 16:21 ` Kuniyuki Iwashima @ 2023-05-09 7:48 ` Leon Romanovsky 2023-05-09 7:51 ` Leon Romanovsky 0 siblings, 1 reply; 5+ messages in thread From: Leon Romanovsky @ 2023-05-09 7:48 UTC (permalink / raw) To: Kuniyuki Iwashima; +Cc: netdev, patryk.sondej On Mon, May 08, 2023 at 09:21:26AM -0700, Kuniyuki Iwashima wrote: > From: Leon Romanovsky <leon@kernel.org> > Date: Mon, 8 May 2023 09:17:49 +0300 > > On Mon, May 08, 2023 at 05:32:33AM +0200, Patryk Sondej wrote: > > > This commit fixes inet_diag_msg_attrs_fill() function in the ipv4/inet_diag.c file. > > > The problem was that the function was using CONFIG_SOCK_CGROUP_DATA to check for the net_cls cgroup. > > > However, the net_cls cgroup is defined by CONFIG_CGROUP_NET_CLASSID instead. > > > > > > Therefore, this commit updates the #ifdef statement to CONFIG_CGROUP_NET_CLASSID, > > > and uses the sock_cgroup_classid() function to retrieve the classid from the socket cgroup. > > > > > > This change ensures that the function correctly retrieves the classid for the net_cls cgroup > > > and fixes any issues related to the use of the function in this context. > > > > > > > Please add Fixes line here. > > > > > Signed-off-by: Patryk Sondej <patryk.sondej@gmail.com> > > > --- > > > net/ipv4/inet_diag.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c > > > index b812eb36f0e3..7017f88911a6 100644 > > > --- a/net/ipv4/inet_diag.c > > > +++ b/net/ipv4/inet_diag.c > > > @@ -157,7 +157,7 @@ int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb, > > > ext & (1 << (INET_DIAG_TCLASS - 1))) { > > > u32 classid = 0; > > > > > > -#ifdef CONFIG_SOCK_CGROUP_DATA > > > +#ifdef CONFIG_CGROUP_NET_CLASSID > > > > This ifdef should be deleted as sock_cgroup_classid() already has right ifdef. > > sock_cgroup_classid() is defined under #ifdef CONFIG_SOCK_CGROUP_DATA, Not in my kernel tree, where do you see it? https://elixir.bootlin.com/linux/v6.4-rc1/source/include/linux/cgroup-defs.h#L809 include/linux/cgroup-defs.h 809 static inline u32 sock_cgroup_classid(const struct sock_cgroup_data *skcd) 810 { 811 #ifdef CONFIG_CGROUP_NET_CLASSID 812 return READ_ONCE(skcd->classid); 813 #else 814 return 0; 815 #endif 816 } Thanks ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] inet_diag: fix inet_diag_msg_attrs_fill() for net_cls cgroup 2023-05-09 7:48 ` Leon Romanovsky @ 2023-05-09 7:51 ` Leon Romanovsky 0 siblings, 0 replies; 5+ messages in thread From: Leon Romanovsky @ 2023-05-09 7:51 UTC (permalink / raw) To: Kuniyuki Iwashima; +Cc: netdev, patryk.sondej On Tue, May 09, 2023 at 10:48:29AM +0300, Leon Romanovsky wrote: > On Mon, May 08, 2023 at 09:21:26AM -0700, Kuniyuki Iwashima wrote: > > From: Leon Romanovsky <leon@kernel.org> > > Date: Mon, 8 May 2023 09:17:49 +0300 > > > On Mon, May 08, 2023 at 05:32:33AM +0200, Patryk Sondej wrote: > > > > This commit fixes inet_diag_msg_attrs_fill() function in the ipv4/inet_diag.c file. > > > > The problem was that the function was using CONFIG_SOCK_CGROUP_DATA to check for the net_cls cgroup. > > > > However, the net_cls cgroup is defined by CONFIG_CGROUP_NET_CLASSID instead. > > > > > > > > Therefore, this commit updates the #ifdef statement to CONFIG_CGROUP_NET_CLASSID, > > > > and uses the sock_cgroup_classid() function to retrieve the classid from the socket cgroup. > > > > > > > > This change ensures that the function correctly retrieves the classid for the net_cls cgroup > > > > and fixes any issues related to the use of the function in this context. > > > > > > > > > > Please add Fixes line here. > > > > > > > Signed-off-by: Patryk Sondej <patryk.sondej@gmail.com> > > > > --- > > > > net/ipv4/inet_diag.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c > > > > index b812eb36f0e3..7017f88911a6 100644 > > > > --- a/net/ipv4/inet_diag.c > > > > +++ b/net/ipv4/inet_diag.c > > > > @@ -157,7 +157,7 @@ int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb, > > > > ext & (1 << (INET_DIAG_TCLASS - 1))) { > > > > u32 classid = 0; > > > > > > > > -#ifdef CONFIG_SOCK_CGROUP_DATA > > > > +#ifdef CONFIG_CGROUP_NET_CLASSID > > > > > > This ifdef should be deleted as sock_cgroup_classid() already has right ifdef. > > > > sock_cgroup_classid() is defined under #ifdef CONFIG_SOCK_CGROUP_DATA, > > Not in my kernel tree, where do you see it? Ohh, I'm sorry, I found it. Yes, I agree with you this patch is not needed at the end. Thanks ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-05-09 7:51 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-05-08 3:32 [PATCH net] inet_diag: fix inet_diag_msg_attrs_fill() for net_cls cgroup Patryk Sondej 2023-05-08 6:17 ` Leon Romanovsky 2023-05-08 16:21 ` Kuniyuki Iwashima 2023-05-09 7:48 ` Leon Romanovsky 2023-05-09 7:51 ` Leon Romanovsky
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).