* [PATCH net-next] net: aquantia: fix error handling in aq_nic_init
@ 2019-10-28 6:56 Gustavo A. R. Silva
2019-10-28 10:53 ` [EXT] " Igor Russkikh
0 siblings, 1 reply; 3+ messages in thread
From: Gustavo A. R. Silva @ 2019-10-28 6:56 UTC (permalink / raw)
To: Igor Russkikh, David S. Miller, Dmitry Bezrukov, Nikita Danilov,
Andrew Lunn
Cc: netdev, linux-kernel, Gustavo A. R. Silva
Fix currenty ignored returned error by properly error checking
aq_phy_init().
Addresses-Coverity-ID: 1487376 ("Unused value")
Fixes: dbcd6806af42 ("net: aquantia: add support for Phy access")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
index 433adc099e44..1914aa0a19d0 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
@@ -341,7 +341,8 @@ int aq_nic_init(struct aq_nic_s *self)
if (self->aq_nic_cfg.aq_hw_caps->media_type == AQ_HW_MEDIA_TYPE_TP) {
self->aq_hw->phy_id = HW_ATL_PHY_ID_MAX;
- err = aq_phy_init(self->aq_hw);
+ if (!aq_phy_init(self->aq_hw))
+ goto err_exit;
}
for (i = 0U, aq_vec = self->aq_vec[0];
--
2.23.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [EXT] [PATCH net-next] net: aquantia: fix error handling in aq_nic_init
2019-10-28 6:56 [PATCH net-next] net: aquantia: fix error handling in aq_nic_init Gustavo A. R. Silva
@ 2019-10-28 10:53 ` Igor Russkikh
2019-10-28 12:00 ` Gustavo A. R. Silva
0 siblings, 1 reply; 3+ messages in thread
From: Igor Russkikh @ 2019-10-28 10:53 UTC (permalink / raw)
To: Gustavo A. R. Silva, Igor Russkikh, David S. Miller,
Dmitry Bezrukov, Nikita Danilov, Andrew Lunn
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
> Fix currenty ignored returned error by properly error checking
> aq_phy_init().
>
> Addresses-Coverity-ID: 1487376 ("Unused value")
> Fixes: dbcd6806af42 ("net: aquantia: add support for Phy access")
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
> index 433adc099e44..1914aa0a19d0 100644
> --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
> +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
> @@ -341,7 +341,8 @@ int aq_nic_init(struct aq_nic_s *self)
>
> if (self->aq_nic_cfg.aq_hw_caps->media_type == AQ_HW_MEDIA_TYPE_TP) {
> self->aq_hw->phy_id = HW_ATL_PHY_ID_MAX;
> - err = aq_phy_init(self->aq_hw);
> + if (!aq_phy_init(self->aq_hw))
> + goto err_exit;
> }
>
> for (i = 0U, aq_vec = self->aq_vec[0];
>
Hi Gustavo,
I'd say the intention here was to ignore the error, as driver may still live if
something unexpected happened on Phy access path.
Notice in the above fix you leave `err` as zero but do error path return -
that'll break the datapath.
I'd prefer to fix this with simple
(void)aq_phy_init(self->aq_hw);
--
Regards,
Igor
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [EXT] [PATCH net-next] net: aquantia: fix error handling in aq_nic_init
2019-10-28 10:53 ` [EXT] " Igor Russkikh
@ 2019-10-28 12:00 ` Gustavo A. R. Silva
0 siblings, 0 replies; 3+ messages in thread
From: Gustavo A. R. Silva @ 2019-10-28 12:00 UTC (permalink / raw)
To: Igor Russkikh, Igor Russkikh, David S. Miller, Dmitry Bezrukov,
Nikita Danilov, Andrew Lunn
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
On 10/28/19 05:53, Igor Russkikh wrote:
>
>> Fix currenty ignored returned error by properly error checking
>> aq_phy_init().
>>
>> Addresses-Coverity-ID: 1487376 ("Unused value")
>> Fixes: dbcd6806af42 ("net: aquantia: add support for Phy access")
>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>> ---
>> drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
>> index 433adc099e44..1914aa0a19d0 100644
>> --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
>> +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
>> @@ -341,7 +341,8 @@ int aq_nic_init(struct aq_nic_s *self)
>>
>> if (self->aq_nic_cfg.aq_hw_caps->media_type == AQ_HW_MEDIA_TYPE_TP) {
>> self->aq_hw->phy_id = HW_ATL_PHY_ID_MAX;
>> - err = aq_phy_init(self->aq_hw);
>> + if (!aq_phy_init(self->aq_hw))
>> + goto err_exit;
>> }
>>
>> for (i = 0U, aq_vec = self->aq_vec[0];
>>
>
> Hi Gustavo,
>
Hi!
> I'd say the intention here was to ignore the error, as driver may still live if
> something unexpected happened on Phy access path.
>
I see. Please, see my comments below...
> Notice in the above fix you leave `err` as zero but do error path return -
> that'll break the datapath.
>
You're right. I totally missed that.
> I'd prefer to fix this with simple
>
> (void)aq_phy_init(self->aq_hw);
>
Yep. This is much better. Otherwise, both static analyzers and developers
get confused. :p
Something even better is to add both a cast and a comment explaining why
the return value is not being checked in this case (as you do above).
Thanks
--
Gustavo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-10-28 12:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-28 6:56 [PATCH net-next] net: aquantia: fix error handling in aq_nic_init Gustavo A. R. Silva
2019-10-28 10:53 ` [EXT] " Igor Russkikh
2019-10-28 12:00 ` Gustavo A. R. Silva
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.