[PATCH net 1/2] net: stmmac: Premature loop termination check was ignored

Jochen Henneberg posted 2 patches 2 years, 11 months ago
There is a newer version of this series
[PATCH net 1/2] net: stmmac: Premature loop termination check was ignored
Posted by Jochen Henneberg 2 years, 11 months ago
The premature loop termination check makes sense only in case of the
jump to read_again where the count may have been updated. But
read_again did not include the check.

Fixes: ec222003bd94 ("net: stmmac: Prepare to add Split Header support")
Signed-off-by: Jochen Henneberg <jh@henneberg-systemdesign.com>
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index e4902a7bb61e..ea51c7c93101 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -5221,10 +5221,10 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
 			len = 0;
 		}
 
+read_again:
 		if (count >= limit)
 			break;
 
-read_again:
 		buf1_len = 0;
 		buf2_len = 0;
 		entry = next_entry;
-- 
2.39.2
Re: [PATCH net 1/2] net: stmmac: Premature loop termination check was ignored
Posted by Piotr Raczynski 2 years, 11 months ago
On Tue, Mar 14, 2023 at 01:37:58PM +0100, Jochen Henneberg wrote:
> The premature loop termination check makes sense only in case of the
> jump to read_again where the count may have been updated. But
> read_again did not include the check.

Your commit titles and messages seems identical in both patches, someone
may get confused, maybe you could change commit titles at least?

Or since those are very related one liner fixes, maybe combine them into
one?

Also a question, since you in generally goto backwards here, is it guarded from
an infinite loop (during some corner case scenario maybe)?

Other than that looks fine, thanks.
Reviewed-by: Piotr Raczynski <piotr.raczynski@intel.com>

> 
> Fixes: ec222003bd94 ("net: stmmac: Prepare to add Split Header support")
> Signed-off-by: Jochen Henneberg <jh@henneberg-systemdesign.com>
> ---
>  drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> index e4902a7bb61e..ea51c7c93101 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> @@ -5221,10 +5221,10 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
>  			len = 0;
>  		}
>  
> +read_again:
>  		if (count >= limit)
>  			break;
>  
> -read_again:
>  		buf1_len = 0;
>  		buf2_len = 0;
>  		entry = next_entry;
> -- 
> 2.39.2
>
Re: [PATCH net 1/2] net: stmmac: Premature loop termination check was ignored
Posted by Jochen Henneberg 2 years, 11 months ago
Piotr Raczynski <piotr.raczynski@intel.com> writes:

> On Tue, Mar 14, 2023 at 01:37:58PM +0100, Jochen Henneberg wrote:
>> The premature loop termination check makes sense only in case of the
>> jump to read_again where the count may have been updated. But
>> read_again did not include the check.
>
> Your commit titles and messages seems identical in both patches, someone
> may get confused, maybe you could change commit titles at least?
>
> Or since those are very related one liner fixes, maybe combine them into
> one?

I was told to split them into a series because the fixes apply to
different kernel versions.

>
> Also a question, since you in generally goto backwards here, is it guarded from
> an infinite loop (during some corner case scenario maybe)?

In theory I think this may happen, however, I would consider that to be
a different patch since it addresses a different issue.

>
> Other than that looks fine, thanks.
> Reviewed-by: Piotr Raczynski <piotr.raczynski@intel.com>
>
>> 
>> Fixes: ec222003bd94 ("net: stmmac: Prepare to add Split Header support")
>> Signed-off-by: Jochen Henneberg <jh@henneberg-systemdesign.com>
>> ---
>>  drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
>> index e4902a7bb61e..ea51c7c93101 100644
>> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
>> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
>> @@ -5221,10 +5221,10 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
>>  			len = 0;
>>  		}
>>  
>> +read_again:
>>  		if (count >= limit)
>>  			break;
>>  
>> -read_again:
>>  		buf1_len = 0;
>>  		buf2_len = 0;
>>  		entry = next_entry;
>> -- 
>> 2.39.2
>> 


-- 
Henneberg - Systemdesign
Jochen Henneberg
Loehnfeld 26
21423 Winsen (Luhe)
--
Fon: +49 172 160 14 69
Url: https://www.henneberg-systemdesign.com
Re: [PATCH net 1/2] net: stmmac: Premature loop termination check was ignored
Posted by Piotr Raczynski 2 years, 11 months ago
On Tue, Mar 14, 2023 at 04:01:11PM +0100, Jochen Henneberg wrote:
> 
> Piotr Raczynski <piotr.raczynski@intel.com> writes:
> 
> > On Tue, Mar 14, 2023 at 01:37:58PM +0100, Jochen Henneberg wrote:
> >> The premature loop termination check makes sense only in case of the
> >> jump to read_again where the count may have been updated. But
> >> read_again did not include the check.
> >
> > Your commit titles and messages seems identical in both patches, someone
> > may get confused, maybe you could change commit titles at least?
> >
> > Or since those are very related one liner fixes, maybe combine them into
> > one?
> 
> I was told to split them into a series because the fixes apply to
> different kernel versions.
> 
Makes sense, thanks. However I'd still at least modify title to show
which patch fixes zc path or anything to distinguish them beside commit
sha.
> >
> > Also a question, since you in generally goto backwards here, is it guarded from
> > an infinite loop (during some corner case scenario maybe)?
> 
> In theory I think this may happen, however, I would consider that to be
> a different patch since it addresses a different issue.
> 

Right, it just caught my attention, probably just make sense to check
it.
> >
> > Other than that looks fine, thanks.
> > Reviewed-by: Piotr Raczynski <piotr.raczynski@intel.com>
> >
> >> 
> >> Fixes: ec222003bd94 ("net: stmmac: Prepare to add Split Header support")
> >> Signed-off-by: Jochen Henneberg <jh@henneberg-systemdesign.com>
> >> ---
> >>  drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >> 
> >> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> >> index e4902a7bb61e..ea51c7c93101 100644
> >> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> >> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> >> @@ -5221,10 +5221,10 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
> >>  			len = 0;
> >>  		}
> >>  
> >> +read_again:
> >>  		if (count >= limit)
> >>  			break;
> >>  
> >> -read_again:
> >>  		buf1_len = 0;
> >>  		buf2_len = 0;
> >>  		entry = next_entry;
> >> -- 
> >> 2.39.2
> >> 
> 
> 
> -- 
> Henneberg - Systemdesign
> Jochen Henneberg
> Loehnfeld 26
> 21423 Winsen (Luhe)
> --
> Fon: +49 172 160 14 69
> Url: https://www.henneberg-systemdesign.com
Re: [PATCH net 1/2] net: stmmac: Premature loop termination check was ignored
Posted by Jochen Henneberg 2 years, 11 months ago
Piotr Raczynski <piotr.raczynski@intel.com> writes:

> On Tue, Mar 14, 2023 at 04:01:11PM +0100, Jochen Henneberg wrote:
>> 
>> Piotr Raczynski <piotr.raczynski@intel.com> writes:
>> 
>> > On Tue, Mar 14, 2023 at 01:37:58PM +0100, Jochen Henneberg wrote:
>> >> The premature loop termination check makes sense only in case of the
>> >> jump to read_again where the count may have been updated. But
>> >> read_again did not include the check.
>> >
>> > Your commit titles and messages seems identical in both patches, someone
>> > may get confused, maybe you could change commit titles at least?
>> >
>> > Or since those are very related one liner fixes, maybe combine them into
>> > one?
>> 
>> I was told to split them into a series because the fixes apply to
>> different kernel versions.
>> 
> Makes sense, thanks. However I'd still at least modify title to show
> which patch fixes zc path or anything to distinguish them beside commit
> sha.

Will do.

>> >
>> > Also a question, since you in generally goto backwards here, is it guarded from
>> > an infinite loop (during some corner case scenario maybe)?
>> 
>> In theory I think this may happen, however, I would consider that to be
>> a different patch since it addresses a different issue.
>> 
>
> Right, it just caught my attention, probably just make sense to check
> it.

I will take a look. Really, from code readability the driver is in a bad
shape, comments do not match code, bool and int are mixed for flags and
bool parameters are set with int values, DMA memory barriers are set
inconsistently and many more. This makes it hard to be sure what things
really do and follow code paths. I will try to check this issue and
provide a fix if necessary.

Btw., shall I copy your Reviewed-by and the reviewed-by from previous
patches into the new series or do you set the tag again on the V2
series?

>> >
>> > Other than that looks fine, thanks.
>> > Reviewed-by: Piotr Raczynski <piotr.raczynski@intel.com>
>> >
>> >> 
>> >> Fixes: ec222003bd94 ("net: stmmac: Prepare to add Split Header support")
>> >> Signed-off-by: Jochen Henneberg <jh@henneberg-systemdesign.com>
>> >> ---
>> >>  drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
>> >>  1 file changed, 1 insertion(+), 1 deletion(-)
>> >> 
>> >> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
>> >> index e4902a7bb61e..ea51c7c93101 100644
>> >> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
>> >> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
>> >> @@ -5221,10 +5221,10 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit, u32 queue)
>> >>  			len = 0;
>> >>  		}
>> >>  
>> >> +read_again:
>> >>  		if (count >= limit)
>> >>  			break;
>> >>  
>> >> -read_again:
>> >>  		buf1_len = 0;
>> >>  		buf2_len = 0;
>> >>  		entry = next_entry;
>> >> -- 
>> >> 2.39.2
>> >> 
>> 
>> 
>> -- 
>> Henneberg - Systemdesign
>> Jochen Henneberg
>> Loehnfeld 26
>> 21423 Winsen (Luhe)
>> --
>> Fon: +49 172 160 14 69
>> Url: https://www.henneberg-systemdesign.com


-- 
Henneberg - Systemdesign
Jochen Henneberg
Loehnfeld 26
21423 Winsen (Luhe)
--
Fon: +49 172 160 14 69
Url: https://www.henneberg-systemdesign.com