2023-07-10 07:12:49

by Su Hui

[permalink] [raw]
Subject: [PATCH net-next v2 03/10] net: ppp: Remove unnecessary (void*) conversions

From: wuych <[email protected]>

Pointer variables of void * type do not require type cast.

Signed-off-by: wuych <[email protected]>
---
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;

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



2023-07-11 18:39:33

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH net-next v2 03/10] net: ppp: Remove unnecessary (void*) conversions

On Mon, Jul 10, 2023 at 02:40:27PM +0800, Su Hui wrote:
> From: wuych <[email protected]>
>
> Pointer variables of void * type do not require type cast.
>
> Signed-off-by: wuych <[email protected]>
> ---
> 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.

--
pw-bot: changes-requested


2023-07-12 02:24:07

by Wu Yunchuan

[permalink] [raw]
Subject: Re: [PATCH net-next v2 03/10] net: ppp: Remove unnecessary (void*) conversions

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/[email protected]/
[2]
https://lore.kernel.org/all/[email protected]/
>

2023-07-13 09:08:38

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH net-next v2 03/10] net: ppp: Remove unnecessary (void*) conversions

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.

2023-07-14 09:28:14

by Guillaume Nault

[permalink] [raw]
Subject: Re: [PATCH net-next v2 03/10] net: ppp: Remove unnecessary (void*) conversions

On Mon, Jul 10, 2023 at 02:40:27PM +0800, Su Hui wrote:
> From: wuych <[email protected]>
>
> Pointer variables of void * type do not require type cast.
>
> Signed-off-by: wuych <[email protected]>
> ---
> drivers/net/ppp/pppoe.c | 4 ++--
> drivers/net/ppp/pptp.c | 4 ++--
> 2 files changed, 4 insertions(+), 4 deletions(-)

Reviewed-by: Guillaume Nault <[email protected]>

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
>
>


2023-07-17 01:44:37

by Wu Yunchuan

[permalink] [raw]
Subject: Re: [PATCH net-next v2 03/10] net: ppp: Remove unnecessary (void*) conversions

On 2023/7/14 17:07, Guillaume Nault wrote:
> On Mon, Jul 10, 2023 at 02:40:27PM +0800, Su Hui wrote:
>> From: wuych <[email protected]>
>>
>> Pointer variables of void * type do not require type cast.
>>
>> Signed-off-by: wuych <[email protected]>
>> ---
>> drivers/net/ppp/pppoe.c | 4 ++--
>> drivers/net/ppp/pptp.c | 4 ++--
>> 2 files changed, 4 insertions(+), 4 deletions(-)
> Reviewed-by: Guillaume Nault <[email protected]>
>
> 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
>>
>>

2023-07-17 13:51:43

by Guillaume Nault

[permalink] [raw]
Subject: Re: [PATCH net-next v2 03/10] net: ppp: Remove unnecessary (void*) conversions

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 <[email protected]>
> > >
> > > Pointer variables of void * type do not require type cast.
> > >
> > > Signed-off-by: wuych <[email protected]>
> > > ---
> > > drivers/net/ppp/pppoe.c | 4 ++--
> > > drivers/net/ppp/pptp.c | 4 ++--
> > > 2 files changed, 4 insertions(+), 4 deletions(-)
> > Reviewed-by: Guillaume Nault <[email protected]>
> >
> > 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
> > >
> > >
>