diff mbox series

[net-next,v2] bonding: uninitialized variable in bond_miimon_inspect()

Message ID Y4SWJlh3ohJ6EPTL@kili (mailing list archive)
State Accepted
Commit e5214f363dabca240446272dac54d404501ad5e5
Delegated to: Netdev Maintainers
Headers show
Series [net-next,v2] bonding: uninitialized variable in bond_miimon_inspect() | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net-next
netdev/fixes_present success Fixes tag not required for -next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 3 this patch: 3
netdev/cc_maintainers success CCed 9 of 9 maintainers
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 3 this patch: 3
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 11 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Dan Carpenter Nov. 28, 2022, 11:06 a.m. UTC
The "ignore_updelay" variable needs to be initialized to false.

Fixes: f8a65ab2f3ff ("bonding: fix link recovery in mode 2 when updelay is nonzero")
Signed-off-by: Dan Carpenter <error27@gmail.com>
---
v2: Re-order so the declarations are in reverse Christmas tree order

Don't forget about:
drivers/net/bonding/bond_main.c:5071 bond_update_slave_arr() warn: missing error code here? 'bond_3ad_get_active_agg_info()' failed. 'ret' = '0'

 drivers/net/bonding/bond_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Pavan Chebbi Nov. 28, 2022, 1:45 p.m. UTC | #1
On Mon, Nov 28, 2022 at 4:36 PM Dan Carpenter <error27@gmail.com> wrote:
>
> The "ignore_updelay" variable needs to be initialized to false.
>
> Fixes: f8a65ab2f3ff ("bonding: fix link recovery in mode 2 when updelay is nonzero")
> Signed-off-by: Dan Carpenter <error27@gmail.com>
> ---
> v2: Re-order so the declarations are in reverse Christmas tree order
>
Thanks,
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>

> Don't forget about:
> drivers/net/bonding/bond_main.c:5071 bond_update_slave_arr() warn: missing error code here? 'bond_3ad_get_active_agg_info()' failed. 'ret' = '0'
>

I think that warning can be ignored, as bond_update_slave_arr() does
consider the return value of bond_3ad_get_active_agg_info() but
chooses to not bubble it up. Though the author of the function is the
best person to answer it, at this point, it looks OK to me. Maybe a
separate patch to address it would help to get the attention of the
author.

>  drivers/net/bonding/bond_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
> index c87481033995..e01bb0412f1c 100644
> --- a/drivers/net/bonding/bond_main.c
> +++ b/drivers/net/bonding/bond_main.c
> @@ -2524,10 +2524,10 @@ static int bond_slave_info_query(struct net_device *bond_dev, struct ifslave *in
>  /* called with rcu_read_lock() */
>  static int bond_miimon_inspect(struct bonding *bond)
>  {
> +       bool ignore_updelay = false;
>         int link_state, commit = 0;
>         struct list_head *iter;
>         struct slave *slave;
> -       bool ignore_updelay;
>
>         if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) {
>                 ignore_updelay = !rcu_dereference(bond->curr_active_slave);
> --
> 2.35.1
>
Dan Carpenter Nov. 28, 2022, 2:36 p.m. UTC | #2
On Mon, Nov 28, 2022 at 07:15:39PM +0530, Pavan Chebbi wrote:
> On Mon, Nov 28, 2022 at 4:36 PM Dan Carpenter <error27@gmail.com> wrote:
> >
> > The "ignore_updelay" variable needs to be initialized to false.
> >
> > Fixes: f8a65ab2f3ff ("bonding: fix link recovery in mode 2 when updelay is nonzero")
> > Signed-off-by: Dan Carpenter <error27@gmail.com>
> > ---
> > v2: Re-order so the declarations are in reverse Christmas tree order
> >
> Thanks,
> Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
> 
> > Don't forget about:
> > drivers/net/bonding/bond_main.c:5071 bond_update_slave_arr() warn: missing error code here? 'bond_3ad_get_active_agg_info()' failed. 'ret' = '0'
> >
> 
> I think that warning can be ignored, as bond_update_slave_arr() does
> consider the return value of bond_3ad_get_active_agg_info() but
> chooses to not bubble it up. Though the author of the function is the
> best person to answer it, at this point, it looks OK to me. Maybe a
> separate patch to address it would help to get the attention of the
> author.

Heh...  That's slightly vague.

You're wrong to say that none of the callers care about the error code.
It is checked in bond_slave_arr_handler().

regards,
dan carpenter
Dan Carpenter Nov. 28, 2022, 2:40 p.m. UTC | #3
On Mon, Nov 28, 2022 at 05:36:41PM +0300, Dan Carpenter wrote:
> On Mon, Nov 28, 2022 at 07:15:39PM +0530, Pavan Chebbi wrote:
> > On Mon, Nov 28, 2022 at 4:36 PM Dan Carpenter <error27@gmail.com> wrote:
> > >
> > > The "ignore_updelay" variable needs to be initialized to false.
> > >
> > > Fixes: f8a65ab2f3ff ("bonding: fix link recovery in mode 2 when updelay is nonzero")
> > > Signed-off-by: Dan Carpenter <error27@gmail.com>
> > > ---
> > > v2: Re-order so the declarations are in reverse Christmas tree order
> > >
> > Thanks,
> > Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
> > 
> > > Don't forget about:
> > > drivers/net/bonding/bond_main.c:5071 bond_update_slave_arr() warn: missing error code here? 'bond_3ad_get_active_agg_info()' failed. 'ret' = '0'
> > >
> > 
> > I think that warning can be ignored, as bond_update_slave_arr() does
> > consider the return value of bond_3ad_get_active_agg_info() but
> > chooses to not bubble it up. Though the author of the function is the
> > best person to answer it, at this point, it looks OK to me. Maybe a
> > separate patch to address it would help to get the attention of the
> > author.
> 
> Heh...  That's slightly vague.
> 
> You're wrong to say that none of the callers care about the error code.
> It is checked in bond_slave_arr_handler().

If you don't know that's fine also...  All the maintainers are CC'd.  If
they really care they can take a look otherwise there are so many other
obvious bugs to care about and this is very minor.

regards,
dan carpenter
Pavan Chebbi Nov. 28, 2022, 3:05 p.m. UTC | #4
On Mon, Nov 28, 2022 at 8:10 PM Dan Carpenter <error27@gmail.com> wrote:
>
> On Mon, Nov 28, 2022 at 05:36:41PM +0300, Dan Carpenter wrote:
> > On Mon, Nov 28, 2022 at 07:15:39PM +0530, Pavan Chebbi wrote:
> > > On Mon, Nov 28, 2022 at 4:36 PM Dan Carpenter <error27@gmail.com> wrote:
> > > >
> > > > The "ignore_updelay" variable needs to be initialized to false.
> > > >
> > > > Fixes: f8a65ab2f3ff ("bonding: fix link recovery in mode 2 when updelay is nonzero")
> > > > Signed-off-by: Dan Carpenter <error27@gmail.com>
> > > > ---
> > > > v2: Re-order so the declarations are in reverse Christmas tree order
> > > >
> > > Thanks,
> > > Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
> > >
> > > > Don't forget about:
> > > > drivers/net/bonding/bond_main.c:5071 bond_update_slave_arr() warn: missing error code here? 'bond_3ad_get_active_agg_info()' failed. 'ret' = '0'
> > > >
> > >
> > > I think that warning can be ignored, as bond_update_slave_arr() does
> > > consider the return value of bond_3ad_get_active_agg_info() but
> > > chooses to not bubble it up. Though the author of the function is the
> > > best person to answer it, at this point, it looks OK to me. Maybe a
> > > separate patch to address it would help to get the attention of the
> > > author.
> >
> > Heh...  That's slightly vague.
> >
> > You're wrong to say that none of the callers care about the error code.
> > It is checked in bond_slave_arr_handler().
>
> If you don't know that's fine also...  All the maintainers are CC'd.  If
> they really care they can take a look otherwise there are so many other
> obvious bugs to care about and this is very minor.
>

No, I did not say nobody cares about the error code. I just said that
bond_update_slave_arr() does care about
bond_3ad_get_active_agg_info()'s return value, takes appropriate
action and returns success to its caller. I think this is the scope
and context of the warning message.
To me this looks OK, but again, the maintainer/author is the best judge.

> regards,
> dan carpenter
>
Jay Vosburgh Nov. 28, 2022, 6:30 p.m. UTC | #5
Dan Carpenter <error27@gmail.com> wrote:

>The "ignore_updelay" variable needs to be initialized to false.
>
>Fixes: f8a65ab2f3ff ("bonding: fix link recovery in mode 2 when updelay is nonzero")
>Signed-off-by: Dan Carpenter <error27@gmail.com>

Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>

>---
>v2: Re-order so the declarations are in reverse Christmas tree order
>
>Don't forget about:
>drivers/net/bonding/bond_main.c:5071 bond_update_slave_arr() warn: missing error code here? 'bond_3ad_get_active_agg_info()' failed. 'ret' = '0'

	The code around the cited line is correct.  A -1 return from
bond_3ad_get_active_agg_info is not indicative of an error in the sense
that something has failed, but indicates that there is no active
aggregator.  The code correctly returns 0 from bond_update_slave_arr, as
returning non-zero would cause bond_slave_arr_handler to loop, retrying
the call to bond_update_slave_arr (via workqueue).

	-J

> drivers/net/bonding/bond_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
>index c87481033995..e01bb0412f1c 100644
>--- a/drivers/net/bonding/bond_main.c
>+++ b/drivers/net/bonding/bond_main.c
>@@ -2524,10 +2524,10 @@ static int bond_slave_info_query(struct net_device *bond_dev, struct ifslave *in
> /* called with rcu_read_lock() */
> static int bond_miimon_inspect(struct bonding *bond)
> {
>+	bool ignore_updelay = false;
> 	int link_state, commit = 0;
> 	struct list_head *iter;
> 	struct slave *slave;
>-	bool ignore_updelay;
> 
> 	if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) {
> 		ignore_updelay = !rcu_dereference(bond->curr_active_slave);
>-- 
>2.35.1
>

---
	-Jay Vosburgh, jay.vosburgh@canonical.com
Dan Carpenter Nov. 29, 2022, 12:51 p.m. UTC | #6
On Mon, Nov 28, 2022 at 10:30:15AM -0800, Jay Vosburgh wrote:
> Dan Carpenter <error27@gmail.com> wrote:
> 
> >The "ignore_updelay" variable needs to be initialized to false.
> >
> >Fixes: f8a65ab2f3ff ("bonding: fix link recovery in mode 2 when updelay is nonzero")
> >Signed-off-by: Dan Carpenter <error27@gmail.com>
> 
> Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>
> 
> >---
> >v2: Re-order so the declarations are in reverse Christmas tree order
> >
> >Don't forget about:
> >drivers/net/bonding/bond_main.c:5071 bond_update_slave_arr() warn: missing error code here? 'bond_3ad_get_active_agg_info()' failed. 'ret' = '0'
> 
> 	The code around the cited line is correct.  A -1 return from
> bond_3ad_get_active_agg_info is not indicative of an error in the sense
> that something has failed, but indicates that there is no active
> aggregator.  The code correctly returns 0 from bond_update_slave_arr, as
> returning non-zero would cause bond_slave_arr_handler to loop, retrying
> the call to bond_update_slave_arr (via workqueue).
> 

Awesome, thanks for taking a look at this.

regards,
dan carpenter
patchwork-bot+netdevbpf@kernel.org Dec. 1, 2022, 10:20 a.m. UTC | #7
Hello:

This patch was applied to netdev/net-next.git (master)
by Paolo Abeni <pabeni@redhat.com>:

On Mon, 28 Nov 2022 14:06:14 +0300 you wrote:
> The "ignore_updelay" variable needs to be initialized to false.
> 
> Fixes: f8a65ab2f3ff ("bonding: fix link recovery in mode 2 when updelay is nonzero")
> Signed-off-by: Dan Carpenter <error27@gmail.com>
> ---
> v2: Re-order so the declarations are in reverse Christmas tree order
> 
> [...]

Here is the summary with links:
  - [net-next,v2] bonding: uninitialized variable in bond_miimon_inspect()
    https://git.kernel.org/netdev/net-next/c/e5214f363dab

You are awesome, thank you!
diff mbox series

Patch

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index c87481033995..e01bb0412f1c 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2524,10 +2524,10 @@  static int bond_slave_info_query(struct net_device *bond_dev, struct ifslave *in
 /* called with rcu_read_lock() */
 static int bond_miimon_inspect(struct bonding *bond)
 {
+	bool ignore_updelay = false;
 	int link_state, commit = 0;
 	struct list_head *iter;
 	struct slave *slave;
-	bool ignore_updelay;
 
 	if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) {
 		ignore_updelay = !rcu_dereference(bond->curr_active_slave);