All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] net: bnxt_ptp: fix compilation error
@ 2022-03-28  3:35 Damien Le Moal
  2022-03-28  5:36 ` Michael Chan
  0 siblings, 1 reply; 7+ messages in thread
From: Damien Le Moal @ 2022-03-28  3:35 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski, Paolo Abeni, netdev; +Cc: Pavan Chebbi

The Broadcom bnxt_ptp driver does not compile with GCC 11.2.2 when
CONFIG_WERROR is enabled. The following error is generated:

drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c: In function ‘bnxt_ptp_enable’:
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:400:43: error: array
subscript 255 is above array bounds of ‘struct pps_pin[4]’
[-Werror=array-bounds]
  400 |  ptp->pps_info.pins[pin_id].event = BNXT_PPS_EVENT_EXTERNAL;
      |  ~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:20:
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h:75:24: note: while
referencing ‘pins’
   75 |         struct pps_pin pins[BNXT_MAX_TSIO_PINS];
      |                        ^~~~
cc1: all warnings being treated as errors

This is due to the function ptp_find_pin() returning a pin ID of -1 when
a valid pin is not found and this error never being checked.
Use the TSIO_PIN_VALID() macroin bnxt_ptp_enable() to check the result
of the calls to ptp_find_pin() in bnxt_ptp_enable() to fix this
compilation error.

Fixes: 9e518f25802c ("bnxt_en: 1PPS functions to configure TSIO pins")
Cc: <stable@vger.kernel.org>
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
---
Changes from v1:
* No need to change the TSIO_PIN_VALID() macro as pin_id is an unsigned
  value.

 drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
index a0b321a19361..3c8fccbb9013 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
@@ -390,7 +390,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
 		/* Configure an External PPS IN */
 		pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_EXTTS,
 				      rq->extts.index);
-		if (!on)
+		if (!on || !TSIO_PIN_VALID(pin_id))
 			break;
 		rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_IN);
 		if (rc)
@@ -403,7 +403,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
 		/* Configure a Periodic PPS OUT */
 		pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_PEROUT,
 				      rq->perout.index);
-		if (!on)
+		if (!on || !TSIO_PIN_VALID(pin_id))
 			break;
 
 		rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_OUT);
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] net: bnxt_ptp: fix compilation error
  2022-03-28  3:35 [PATCH v2] net: bnxt_ptp: fix compilation error Damien Le Moal
@ 2022-03-28  5:36 ` Michael Chan
  2022-03-28  5:44   ` Damien Le Moal
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Chan @ 2022-03-28  5:36 UTC (permalink / raw)
  To: Damien Le Moal
  Cc: David S . Miller, Jakub Kicinski, Paolo Abeni, Netdev, Pavan Chebbi

[-- Attachment #1: Type: text/plain, Size: 2997 bytes --]

On Sun, Mar 27, 2022 at 8:35 PM Damien Le Moal
<damien.lemoal@opensource.wdc.com> wrote:
>
> The Broadcom bnxt_ptp driver does not compile with GCC 11.2.2 when
> CONFIG_WERROR is enabled. The following error is generated:
>
> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c: In function ‘bnxt_ptp_enable’:
> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:400:43: error: array
> subscript 255 is above array bounds of ‘struct pps_pin[4]’
> [-Werror=array-bounds]
>   400 |  ptp->pps_info.pins[pin_id].event = BNXT_PPS_EVENT_EXTERNAL;
>       |  ~~~~~~~~~~~~~~~~~~^~~~~~~~
> In file included from drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:20:
> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h:75:24: note: while
> referencing ‘pins’
>    75 |         struct pps_pin pins[BNXT_MAX_TSIO_PINS];
>       |                        ^~~~
> cc1: all warnings being treated as errors
>
> This is due to the function ptp_find_pin() returning a pin ID of -1 when
> a valid pin is not found and this error never being checked.
> Use the TSIO_PIN_VALID() macroin bnxt_ptp_enable() to check the result
> of the calls to ptp_find_pin() in bnxt_ptp_enable() to fix this
> compilation error.
>
> Fixes: 9e518f25802c ("bnxt_en: 1PPS functions to configure TSIO pins")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
> ---
> Changes from v1:
> * No need to change the TSIO_PIN_VALID() macro as pin_id is an unsigned
>   value.
>
>  drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
> index a0b321a19361..3c8fccbb9013 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
> @@ -390,7 +390,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
>                 /* Configure an External PPS IN */
>                 pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_EXTTS,
>                                       rq->extts.index);
> -               if (!on)
> +               if (!on || !TSIO_PIN_VALID(pin_id))

I think we need to return an error if !TSIO_PIN_VALID().  If we just
break, we'll still use pin_id after the switch statement.

>                         break;
>                 rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_IN);
>                 if (rc)
> @@ -403,7 +403,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
>                 /* Configure a Periodic PPS OUT */
>                 pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_PEROUT,
>                                       rq->perout.index);
> -               if (!on)
> +               if (!on || !TSIO_PIN_VALID(pin_id))

Same here.

>                         break;
>
>                 rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_OUT);
> --
> 2.35.1
>

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4209 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] net: bnxt_ptp: fix compilation error
  2022-03-28  5:36 ` Michael Chan
@ 2022-03-28  5:44   ` Damien Le Moal
  2022-03-28  6:10     ` Pavan Chebbi
  2022-03-28 12:46     ` Andrew Lunn
  0 siblings, 2 replies; 7+ messages in thread
From: Damien Le Moal @ 2022-03-28  5:44 UTC (permalink / raw)
  To: Michael Chan
  Cc: David S . Miller, Jakub Kicinski, Paolo Abeni, Netdev, Pavan Chebbi

On 3/28/22 14:36, Michael Chan wrote:
> On Sun, Mar 27, 2022 at 8:35 PM Damien Le Moal
> <damien.lemoal@opensource.wdc.com> wrote:
>>
>> The Broadcom bnxt_ptp driver does not compile with GCC 11.2.2 when
>> CONFIG_WERROR is enabled. The following error is generated:
>>
>> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c: In function ‘bnxt_ptp_enable’:
>> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:400:43: error: array
>> subscript 255 is above array bounds of ‘struct pps_pin[4]’
>> [-Werror=array-bounds]
>>   400 |  ptp->pps_info.pins[pin_id].event = BNXT_PPS_EVENT_EXTERNAL;
>>       |  ~~~~~~~~~~~~~~~~~~^~~~~~~~
>> In file included from drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:20:
>> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h:75:24: note: while
>> referencing ‘pins’
>>    75 |         struct pps_pin pins[BNXT_MAX_TSIO_PINS];
>>       |                        ^~~~
>> cc1: all warnings being treated as errors
>>
>> This is due to the function ptp_find_pin() returning a pin ID of -1 when
>> a valid pin is not found and this error never being checked.
>> Use the TSIO_PIN_VALID() macroin bnxt_ptp_enable() to check the result
>> of the calls to ptp_find_pin() in bnxt_ptp_enable() to fix this
>> compilation error.
>>
>> Fixes: 9e518f25802c ("bnxt_en: 1PPS functions to configure TSIO pins")
>> Cc: <stable@vger.kernel.org>
>> Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
>> ---
>> Changes from v1:
>> * No need to change the TSIO_PIN_VALID() macro as pin_id is an unsigned
>>   value.
>>
>>  drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
>> index a0b321a19361..3c8fccbb9013 100644
>> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
>> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
>> @@ -390,7 +390,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
>>                 /* Configure an External PPS IN */
>>                 pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_EXTTS,
>>                                       rq->extts.index);
>> -               if (!on)
>> +               if (!on || !TSIO_PIN_VALID(pin_id))
> 
> I think we need to return an error if !TSIO_PIN_VALID().  If we just
> break, we'll still use pin_id after the switch statement.
> 
>>                         break;
>>                 rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_IN);
>>                 if (rc)
>> @@ -403,7 +403,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
>>                 /* Configure a Periodic PPS OUT */
>>                 pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_PEROUT,
>>                                       rq->perout.index);
>> -               if (!on)
>> +               if (!on || !TSIO_PIN_VALID(pin_id))
> 
> Same here.

The call to bnxt_ptp_cfg_pin() after the swith will return -ENOTSUPP for
invalid pin IDs. So I did not feel like adding more changes was necessary.

We can return an error if you insist, but what should it be ? -EINVAL ?
-ENODEV ? -ENOTSUPP ? Given that bnxt_ptp_cfg_pin() return -ENOTSUPP, we
could use that code.

> 
>>                         break;
>>
>>                 rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_OUT);
>> --
>> 2.35.1
>>


-- 
Damien Le Moal
Western Digital Research

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] net: bnxt_ptp: fix compilation error
  2022-03-28  5:44   ` Damien Le Moal
@ 2022-03-28  6:10     ` Pavan Chebbi
  2022-03-28  6:19       ` Damien Le Moal
  2022-03-28 12:46     ` Andrew Lunn
  1 sibling, 1 reply; 7+ messages in thread
From: Pavan Chebbi @ 2022-03-28  6:10 UTC (permalink / raw)
  To: Damien Le Moal
  Cc: Michael Chan, David S . Miller, Jakub Kicinski, Paolo Abeni, Netdev

[-- Attachment #1: Type: text/plain, Size: 4000 bytes --]

On Mon, Mar 28, 2022 at 11:14 AM Damien Le Moal
<damien.lemoal@opensource.wdc.com> wrote:
>
> On 3/28/22 14:36, Michael Chan wrote:
> > On Sun, Mar 27, 2022 at 8:35 PM Damien Le Moal
> > <damien.lemoal@opensource.wdc.com> wrote:
> >>
> >> The Broadcom bnxt_ptp driver does not compile with GCC 11.2.2 when
> >> CONFIG_WERROR is enabled. The following error is generated:
> >>
> >> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c: In function ‘bnxt_ptp_enable’:
> >> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:400:43: error: array
> >> subscript 255 is above array bounds of ‘struct pps_pin[4]’
> >> [-Werror=array-bounds]
> >>   400 |  ptp->pps_info.pins[pin_id].event = BNXT_PPS_EVENT_EXTERNAL;
> >>       |  ~~~~~~~~~~~~~~~~~~^~~~~~~~
> >> In file included from drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:20:
> >> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h:75:24: note: while
> >> referencing ‘pins’
> >>    75 |         struct pps_pin pins[BNXT_MAX_TSIO_PINS];
> >>       |                        ^~~~
> >> cc1: all warnings being treated as errors
> >>
> >> This is due to the function ptp_find_pin() returning a pin ID of -1 when
> >> a valid pin is not found and this error never being checked.
> >> Use the TSIO_PIN_VALID() macroin bnxt_ptp_enable() to check the result
> >> of the calls to ptp_find_pin() in bnxt_ptp_enable() to fix this
> >> compilation error.
> >>
> >> Fixes: 9e518f25802c ("bnxt_en: 1PPS functions to configure TSIO pins")
> >> Cc: <stable@vger.kernel.org>
> >> Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
> >> ---
> >> Changes from v1:
> >> * No need to change the TSIO_PIN_VALID() macro as pin_id is an unsigned
> >>   value.
> >>
> >>  drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
> >> index a0b321a19361..3c8fccbb9013 100644
> >> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
> >> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
> >> @@ -390,7 +390,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
> >>                 /* Configure an External PPS IN */
> >>                 pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_EXTTS,
> >>                                       rq->extts.index);
> >> -               if (!on)
> >> +               if (!on || !TSIO_PIN_VALID(pin_id))
> >
> > I think we need to return an error if !TSIO_PIN_VALID().  If we just
> > break, we'll still use pin_id after the switch statement.
> >
> >>                         break;
> >>                 rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_IN);
> >>                 if (rc)
> >> @@ -403,7 +403,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
> >>                 /* Configure a Periodic PPS OUT */
> >>                 pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_PEROUT,
> >>                                       rq->perout.index);
> >> -               if (!on)
> >> +               if (!on || !TSIO_PIN_VALID(pin_id))
> >
> > Same here.
>
> The call to bnxt_ptp_cfg_pin() after the swith will return -ENOTSUPP for
> invalid pin IDs. So I did not feel like adding more changes was necessary.
>
> We can return an error if you insist, but what should it be ? -EINVAL ?
> -ENODEV ? -ENOTSUPP ? Given that bnxt_ptp_cfg_pin() return -ENOTSUPP, we
> could use that code.

Would it not be better if we add a check only to validate the
ptp_find_pin is not returning -1
explicitly? TSIO_PIN_VALID validates just the MAX side. So I think
adding a check for -1 only
is valid and won't duplicate the code inside the two functions.

>
> >
> >>                         break;
> >>
> >>                 rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_OUT);
> >> --
> >> 2.35.1
> >>
>
>
> --
> Damien Le Moal
> Western Digital Research

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4209 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] net: bnxt_ptp: fix compilation error
  2022-03-28  6:10     ` Pavan Chebbi
@ 2022-03-28  6:19       ` Damien Le Moal
  0 siblings, 0 replies; 7+ messages in thread
From: Damien Le Moal @ 2022-03-28  6:19 UTC (permalink / raw)
  To: Pavan Chebbi
  Cc: Michael Chan, David S . Miller, Jakub Kicinski, Paolo Abeni, Netdev

On 3/28/22 15:10, Pavan Chebbi wrote:
> On Mon, Mar 28, 2022 at 11:14 AM Damien Le Moal
> <damien.lemoal@opensource.wdc.com> wrote:
>>
>> On 3/28/22 14:36, Michael Chan wrote:
>>> On Sun, Mar 27, 2022 at 8:35 PM Damien Le Moal
>>> <damien.lemoal@opensource.wdc.com> wrote:
>>>>
>>>> The Broadcom bnxt_ptp driver does not compile with GCC 11.2.2 when
>>>> CONFIG_WERROR is enabled. The following error is generated:
>>>>
>>>> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c: In function ‘bnxt_ptp_enable’:
>>>> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:400:43: error: array
>>>> subscript 255 is above array bounds of ‘struct pps_pin[4]’
>>>> [-Werror=array-bounds]
>>>>   400 |  ptp->pps_info.pins[pin_id].event = BNXT_PPS_EVENT_EXTERNAL;
>>>>       |  ~~~~~~~~~~~~~~~~~~^~~~~~~~
>>>> In file included from drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:20:
>>>> drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h:75:24: note: while
>>>> referencing ‘pins’
>>>>    75 |         struct pps_pin pins[BNXT_MAX_TSIO_PINS];
>>>>       |                        ^~~~
>>>> cc1: all warnings being treated as errors
>>>>
>>>> This is due to the function ptp_find_pin() returning a pin ID of -1 when
>>>> a valid pin is not found and this error never being checked.
>>>> Use the TSIO_PIN_VALID() macroin bnxt_ptp_enable() to check the result
>>>> of the calls to ptp_find_pin() in bnxt_ptp_enable() to fix this
>>>> compilation error.
>>>>
>>>> Fixes: 9e518f25802c ("bnxt_en: 1PPS functions to configure TSIO pins")
>>>> Cc: <stable@vger.kernel.org>
>>>> Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
>>>> ---
>>>> Changes from v1:
>>>> * No need to change the TSIO_PIN_VALID() macro as pin_id is an unsigned
>>>>   value.
>>>>
>>>>  drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 4 ++--
>>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
>>>> index a0b321a19361..3c8fccbb9013 100644
>>>> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
>>>> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
>>>> @@ -390,7 +390,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
>>>>                 /* Configure an External PPS IN */
>>>>                 pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_EXTTS,
>>>>                                       rq->extts.index);
>>>> -               if (!on)
>>>> +               if (!on || !TSIO_PIN_VALID(pin_id))
>>>
>>> I think we need to return an error if !TSIO_PIN_VALID().  If we just
>>> break, we'll still use pin_id after the switch statement.
>>>
>>>>                         break;
>>>>                 rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_IN);
>>>>                 if (rc)
>>>> @@ -403,7 +403,7 @@ static int bnxt_ptp_enable(struct ptp_clock_info *ptp_info,
>>>>                 /* Configure a Periodic PPS OUT */
>>>>                 pin_id = ptp_find_pin(ptp->ptp_clock, PTP_PF_PEROUT,
>>>>                                       rq->perout.index);
>>>> -               if (!on)
>>>> +               if (!on || !TSIO_PIN_VALID(pin_id))
>>>
>>> Same here.
>>
>> The call to bnxt_ptp_cfg_pin() after the swith will return -ENOTSUPP for
>> invalid pin IDs. So I did not feel like adding more changes was necessary.
>>
>> We can return an error if you insist, but what should it be ? -EINVAL ?
>> -ENODEV ? -ENOTSUPP ? Given that bnxt_ptp_cfg_pin() return -ENOTSUPP, we
>> could use that code.
> 
> Would it not be better if we add a check only to validate the
> ptp_find_pin is not returning -1
> explicitly? TSIO_PIN_VALID validates just the MAX side. So I think
> adding a check for -1 only
> is valid and won't duplicate the code inside the two functions.

I did that in v1, but pin_id is unsigned (u8). So changing
TSIO_PIN_VALID() to check for "pin >= 0" is a bit silly in this case.
But looking at other drivers using ptp_find_pin(), many do check the
return value first...

Sending a v3 with that check added.

> 
>>
>>>
>>>>                         break;
>>>>
>>>>                 rc = bnxt_ptp_cfg_pin(bp, pin_id, BNXT_PPS_PIN_PPS_OUT);
>>>> --
>>>> 2.35.1
>>>>
>>
>>
>> --
>> Damien Le Moal
>> Western Digital Research


-- 
Damien Le Moal
Western Digital Research

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] net: bnxt_ptp: fix compilation error
  2022-03-28  5:44   ` Damien Le Moal
  2022-03-28  6:10     ` Pavan Chebbi
@ 2022-03-28 12:46     ` Andrew Lunn
  2022-03-28 20:20       ` Damien Le Moal
  1 sibling, 1 reply; 7+ messages in thread
From: Andrew Lunn @ 2022-03-28 12:46 UTC (permalink / raw)
  To: Damien Le Moal
  Cc: Michael Chan, David S . Miller, Jakub Kicinski, Paolo Abeni,
	Netdev, Pavan Chebbi

> The call to bnxt_ptp_cfg_pin() after the swith will return -ENOTSUPP for
> invalid pin IDs. So I did not feel like adding more changes was necessary.
> 
> We can return an error if you insist, but what should it be ? -EINVAL ?
> -ENODEV ? -ENOTSUPP ? Given that bnxt_ptp_cfg_pin() return -ENOTSUPP, we
> could use that code.

https://elixir.bootlin.com/linux/v5.17.1/source/include/linux/errno.h#L23

ENOTSUPP is an NFS only error code. It should not be used anywhere
else. EOPNOTSUPP is the generic error that should be used. However,
don't replace an ENOTSUPP with an EOPNOTSUPP without considering ABI.

    Andrew

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] net: bnxt_ptp: fix compilation error
  2022-03-28 12:46     ` Andrew Lunn
@ 2022-03-28 20:20       ` Damien Le Moal
  0 siblings, 0 replies; 7+ messages in thread
From: Damien Le Moal @ 2022-03-28 20:20 UTC (permalink / raw)
  To: Andrew Lunn
  Cc: Michael Chan, David S . Miller, Jakub Kicinski, Paolo Abeni,
	Netdev, Pavan Chebbi

On 3/28/22 21:46, Andrew Lunn wrote:
>> The call to bnxt_ptp_cfg_pin() after the swith will return -ENOTSUPP for
>> invalid pin IDs. So I did not feel like adding more changes was necessary.
>>
>> We can return an error if you insist, but what should it be ? -EINVAL ?
>> -ENODEV ? -ENOTSUPP ? Given that bnxt_ptp_cfg_pin() return -ENOTSUPP, we
>> could use that code.
> 
> https://elixir.bootlin.com/linux/v5.17.1/source/include/linux/errno.h#L23
> 
> ENOTSUPP is an NFS only error code. It should not be used anywhere
> else. EOPNOTSUPP is the generic error that should be used. However,
> don't replace an ENOTSUPP with an EOPNOTSUPP without considering ABI.

Typo... the current error for invalid pin IDs is EOPNOTSUPP, not ENOTSUPP.
So I reused EOPNOTSUPP in the patch.

> 
>     Andrew


-- 
Damien Le Moal
Western Digital Research

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-03-28 20:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-28  3:35 [PATCH v2] net: bnxt_ptp: fix compilation error Damien Le Moal
2022-03-28  5:36 ` Michael Chan
2022-03-28  5:44   ` Damien Le Moal
2022-03-28  6:10     ` Pavan Chebbi
2022-03-28  6:19       ` Damien Le Moal
2022-03-28 12:46     ` Andrew Lunn
2022-03-28 20:20       ` Damien Le Moal

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.