Message ID | 20230710064027.173298-1-suhui@nfschina.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Remove unnecessary (void*) conversions | expand |
On Mon, Jul 10, 2023 at 02:40:27PM +0800, Su Hui wrote: > From: wuych <yunchuan@nfschina.com> > > Pointer variables of void * type do not require type cast. > > Signed-off-by: wuych <yunchuan@nfschina.com> > --- > drivers/net/ppp/pppoe.c | 4 ++-- > drivers/net/ppp/pptp.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c > index 3b79c603b936..ba8b6bd8233c 100644 > --- a/drivers/net/ppp/pppoe.c > +++ b/drivers/net/ppp/pppoe.c > @@ -968,7 +968,7 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) > ***********************************************************************/ > static int pppoe_xmit(struct ppp_channel *chan, struct sk_buff *skb) > { > - struct sock *sk = (struct sock *)chan->private; > + struct sock *sk = chan->private; > return __pppoe_xmit(sk, skb); > } > > @@ -976,7 +976,7 @@ static int pppoe_fill_forward_path(struct net_device_path_ctx *ctx, > struct net_device_path *path, > const struct ppp_channel *chan) > { > - struct sock *sk = (struct sock *)chan->private; > + struct sock *sk = chan->private; > struct pppox_sock *po = pppox_sk(sk); > struct net_device *dev = po->pppoe_dev; Hi, Please don't break reverse xmas tree ordering - longest line to shortest - of local variable declarations in Networking code.
On 2023/7/12 01:50, Simon Horman wrote: >> - struct sock *sk = (struct sock *)chan->private; >> + struct sock *sk = chan->private; >> struct pppox_sock *po = pppox_sk(sk); >> struct net_device *dev = po->pppoe_dev; > Hi, > > Please don't break reverse xmas tree ordering - longest line to shortest - > of local variable declarations in Networking code. Hi, This can't be reversed because it depends on the first declaration. Should I change it like this? - struct sock *sk = (struct sock *)chan->private; - struct pppox_sock *po = pppox_sk(sk); + struct pppox_sock *po = pppox_sk(chan->private); struct net_device *dev = po->pppoe_dev; + struct sock *sk = chan->private; But this seems to be bad. As the advice of Andrew[1] and Dan[2]: " When dealing with existing broken reverse Christmas tree, please don't make it worse with a change. But actually fixing it should be in a different patch. We want patches to be obviously correct. By removing the cast and moving variables around, it is less obvious it is correct, than having two patches. " Wu Yunchuan [1] https://lore.kernel.org/all/23e98085-8f07-4ee2-8487-8e3b439b69f4@lunn.ch/ [2] https://lore.kernel.org/all/45519aec-6ec8-49e5-b5b2-1b52d336288c@kadam.mountain/ >
On Wed, Jul 12, 2023 at 09:44:40AM +0800, yunchuan wrote: > On 2023/7/12 01:50, Simon Horman wrote: > > > - struct sock *sk = (struct sock *)chan->private; > > > + struct sock *sk = chan->private; > > > struct pppox_sock *po = pppox_sk(sk); > > > struct net_device *dev = po->pppoe_dev; > > Hi, > > > > Please don't break reverse xmas tree ordering - longest line to shortest - > > of local variable declarations in Networking code. > > Hi, > > This can't be reversed because it depends on the first declaration. > Should I change it like this? > > - struct sock *sk = (struct sock *)chan->private; > - struct pppox_sock *po = pppox_sk(sk); > + struct pppox_sock *po = pppox_sk(chan->private); > struct net_device *dev = po->pppoe_dev; > + struct sock *sk = chan->private; > > But this seems to be bad. As the advice of Andrew[1] and Dan[2]: > > " > > When dealing with existing broken reverse Christmas tree, please don't > make it worse with a change. But actually fixing it should be in a > different patch. > > We want patches to be obviously correct. By removing the cast and > moving variables around, it is less obvious it is correct, than having > two patches. > > " Thanks, I agree this is a good approach.
On Mon, Jul 10, 2023 at 02:40:27PM +0800, Su Hui wrote: > From: wuych <yunchuan@nfschina.com> > > Pointer variables of void * type do not require type cast. > > Signed-off-by: wuych <yunchuan@nfschina.com> > --- > drivers/net/ppp/pppoe.c | 4 ++-- > drivers/net/ppp/pptp.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) Reviewed-by: Guillaume Nault <gnault@redhat.com> While there, you might want to also remove the useless casts in net/l2tp/l2tp_ppp.c and net/atm/pppoatm.c. > diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c > index 3b79c603b936..ba8b6bd8233c 100644 > --- a/drivers/net/ppp/pppoe.c > +++ b/drivers/net/ppp/pppoe.c > @@ -968,7 +968,7 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) > ***********************************************************************/ > static int pppoe_xmit(struct ppp_channel *chan, struct sk_buff *skb) > { > - struct sock *sk = (struct sock *)chan->private; > + struct sock *sk = chan->private; > return __pppoe_xmit(sk, skb); > } > > @@ -976,7 +976,7 @@ static int pppoe_fill_forward_path(struct net_device_path_ctx *ctx, > struct net_device_path *path, > const struct ppp_channel *chan) > { > - struct sock *sk = (struct sock *)chan->private; > + struct sock *sk = chan->private; > struct pppox_sock *po = pppox_sk(sk); > struct net_device *dev = po->pppoe_dev; > > diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c > index 32183f24e63f..6b3d3df99549 100644 > --- a/drivers/net/ppp/pptp.c > +++ b/drivers/net/ppp/pptp.c > @@ -148,7 +148,7 @@ static struct rtable *pptp_route_output(struct pppox_sock *po, > > static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb) > { > - struct sock *sk = (struct sock *) chan->private; > + struct sock *sk = chan->private; > struct pppox_sock *po = pppox_sk(sk); > struct net *net = sock_net(sk); > struct pptp_opt *opt = &po->proto.pptp; > @@ -575,7 +575,7 @@ static int pptp_create(struct net *net, struct socket *sock, int kern) > static int pptp_ppp_ioctl(struct ppp_channel *chan, unsigned int cmd, > unsigned long arg) > { > - struct sock *sk = (struct sock *) chan->private; > + struct sock *sk = chan->private; > struct pppox_sock *po = pppox_sk(sk); > struct pptp_opt *opt = &po->proto.pptp; > void __user *argp = (void __user *)arg; > -- > 2.30.2 > >
On 2023/7/14 17:07, Guillaume Nault wrote: > On Mon, Jul 10, 2023 at 02:40:27PM +0800, Su Hui wrote: >> From: wuych <yunchuan@nfschina.com> >> >> Pointer variables of void * type do not require type cast. >> >> Signed-off-by: wuych <yunchuan@nfschina.com> >> --- >> drivers/net/ppp/pppoe.c | 4 ++-- >> drivers/net/ppp/pptp.c | 4 ++-- >> 2 files changed, 4 insertions(+), 4 deletions(-) > Reviewed-by: Guillaume Nault <gnault@redhat.com> > > While there, you might want to also remove the useless casts in > net/l2tp/l2tp_ppp.c and net/atm/pppoatm.c. Hi, Thanks four your reminder! There are about 20 useless casts in net. I will remove all of them. Wu Yunchuan >> diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c >> index 3b79c603b936..ba8b6bd8233c 100644 >> --- a/drivers/net/ppp/pppoe.c >> +++ b/drivers/net/ppp/pppoe.c >> @@ -968,7 +968,7 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) >> ***********************************************************************/ >> static int pppoe_xmit(struct ppp_channel *chan, struct sk_buff *skb) >> { >> - struct sock *sk = (struct sock *)chan->private; >> + struct sock *sk = chan->private; >> return __pppoe_xmit(sk, skb); >> } >> >> @@ -976,7 +976,7 @@ static int pppoe_fill_forward_path(struct net_device_path_ctx *ctx, >> struct net_device_path *path, >> const struct ppp_channel *chan) >> { >> - struct sock *sk = (struct sock *)chan->private; >> + struct sock *sk = chan->private; >> struct pppox_sock *po = pppox_sk(sk); >> struct net_device *dev = po->pppoe_dev; >> >> diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c >> index 32183f24e63f..6b3d3df99549 100644 >> --- a/drivers/net/ppp/pptp.c >> +++ b/drivers/net/ppp/pptp.c >> @@ -148,7 +148,7 @@ static struct rtable *pptp_route_output(struct pppox_sock *po, >> >> static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb) >> { >> - struct sock *sk = (struct sock *) chan->private; >> + struct sock *sk = chan->private; >> struct pppox_sock *po = pppox_sk(sk); >> struct net *net = sock_net(sk); >> struct pptp_opt *opt = &po->proto.pptp; >> @@ -575,7 +575,7 @@ static int pptp_create(struct net *net, struct socket *sock, int kern) >> static int pptp_ppp_ioctl(struct ppp_channel *chan, unsigned int cmd, >> unsigned long arg) >> { >> - struct sock *sk = (struct sock *) chan->private; >> + struct sock *sk = chan->private; >> struct pppox_sock *po = pppox_sk(sk); >> struct pptp_opt *opt = &po->proto.pptp; >> void __user *argp = (void __user *)arg; >> -- >> 2.30.2 >> >>
On Mon, Jul 17, 2023 at 09:33:30AM +0800, yunchuan wrote: > On 2023/7/14 17:07, Guillaume Nault wrote: > > On Mon, Jul 10, 2023 at 02:40:27PM +0800, Su Hui wrote: > > > From: wuych <yunchuan@nfschina.com> > > > > > > Pointer variables of void * type do not require type cast. > > > > > > Signed-off-by: wuych <yunchuan@nfschina.com> > > > --- > > > drivers/net/ppp/pppoe.c | 4 ++-- > > > drivers/net/ppp/pptp.c | 4 ++-- > > > 2 files changed, 4 insertions(+), 4 deletions(-) > > Reviewed-by: Guillaume Nault <gnault@redhat.com> > > > > While there, you might want to also remove the useless casts in > > net/l2tp/l2tp_ppp.c and net/atm/pppoatm.c. > > Hi, > > Thanks four your reminder! There are about 20 useless casts in net. > I will remove all of them. I was specifically pointing at l2tp_ppp.c and pppoatm.c because they convert the same kind of variable (chan->private) and cound be sqashed into this commit. But if you prefer to handle these separately, that's obviously fine too. > Wu Yunchuan > > > > diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c > > > index 3b79c603b936..ba8b6bd8233c 100644 > > > --- a/drivers/net/ppp/pppoe.c > > > +++ b/drivers/net/ppp/pppoe.c > > > @@ -968,7 +968,7 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) > > > ***********************************************************************/ > > > static int pppoe_xmit(struct ppp_channel *chan, struct sk_buff *skb) > > > { > > > - struct sock *sk = (struct sock *)chan->private; > > > + struct sock *sk = chan->private; > > > return __pppoe_xmit(sk, skb); > > > } > > > @@ -976,7 +976,7 @@ static int pppoe_fill_forward_path(struct net_device_path_ctx *ctx, > > > struct net_device_path *path, > > > const struct ppp_channel *chan) > > > { > > > - struct sock *sk = (struct sock *)chan->private; > > > + struct sock *sk = chan->private; > > > struct pppox_sock *po = pppox_sk(sk); > > > struct net_device *dev = po->pppoe_dev; > > > diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c > > > index 32183f24e63f..6b3d3df99549 100644 > > > --- a/drivers/net/ppp/pptp.c > > > +++ b/drivers/net/ppp/pptp.c > > > @@ -148,7 +148,7 @@ static struct rtable *pptp_route_output(struct pppox_sock *po, > > > static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb) > > > { > > > - struct sock *sk = (struct sock *) chan->private; > > > + struct sock *sk = chan->private; > > > struct pppox_sock *po = pppox_sk(sk); > > > struct net *net = sock_net(sk); > > > struct pptp_opt *opt = &po->proto.pptp; > > > @@ -575,7 +575,7 @@ static int pptp_create(struct net *net, struct socket *sock, int kern) > > > static int pptp_ppp_ioctl(struct ppp_channel *chan, unsigned int cmd, > > > unsigned long arg) > > > { > > > - struct sock *sk = (struct sock *) chan->private; > > > + struct sock *sk = chan->private; > > > struct pppox_sock *po = pppox_sk(sk); > > > struct pptp_opt *opt = &po->proto.pptp; > > > void __user *argp = (void __user *)arg; > > > -- > > > 2.30.2 > > > > > > >
diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index 3b79c603b936..ba8b6bd8233c 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -968,7 +968,7 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) ***********************************************************************/ static int pppoe_xmit(struct ppp_channel *chan, struct sk_buff *skb) { - struct sock *sk = (struct sock *)chan->private; + struct sock *sk = chan->private; return __pppoe_xmit(sk, skb); } @@ -976,7 +976,7 @@ static int pppoe_fill_forward_path(struct net_device_path_ctx *ctx, struct net_device_path *path, const struct ppp_channel *chan) { - struct sock *sk = (struct sock *)chan->private; + struct sock *sk = chan->private; struct pppox_sock *po = pppox_sk(sk); struct net_device *dev = po->pppoe_dev; diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c index 32183f24e63f..6b3d3df99549 100644 --- a/drivers/net/ppp/pptp.c +++ b/drivers/net/ppp/pptp.c @@ -148,7 +148,7 @@ static struct rtable *pptp_route_output(struct pppox_sock *po, static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb) { - struct sock *sk = (struct sock *) chan->private; + struct sock *sk = chan->private; struct pppox_sock *po = pppox_sk(sk); struct net *net = sock_net(sk); struct pptp_opt *opt = &po->proto.pptp; @@ -575,7 +575,7 @@ static int pptp_create(struct net *net, struct socket *sock, int kern) static int pptp_ppp_ioctl(struct ppp_channel *chan, unsigned int cmd, unsigned long arg) { - struct sock *sk = (struct sock *) chan->private; + struct sock *sk = chan->private; struct pppox_sock *po = pppox_sk(sk); struct pptp_opt *opt = &po->proto.pptp; void __user *argp = (void __user *)arg;