2023-10-03 11:06:16

by Sai Krishna Gajula

[permalink] [raw]
Subject: [net PATCH v2] octeontx2-af: Fix hardware timestamping for VFs

From: Subbaraya Sundeep <[email protected]>

Currently for VFs, mailbox returns ENODEV error when hardware timestamping
enable is requested. This patch fixes this issue. Modified this patch to
return EPERM error for the PF/VFs which are not attached to CGX/RPM.

Fixes: 421572175ba5 ("octeontx2-af: Support to enable/disable HW timestamping")
Signed-off-by: Subbaraya Sundeep <[email protected]>
Signed-off-by: Sunil Kovvuri Goutham <[email protected]>
Signed-off-by: Sai Krishna <[email protected]>
---
drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
index f2b1edf1bb43..f464640e188b 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
@@ -756,12 +756,11 @@ static int rvu_cgx_ptp_rx_cfg(struct rvu *rvu, u16 pcifunc, bool enable)
if (!is_mac_feature_supported(rvu, pf, RVU_LMAC_FEAT_PTP))
return 0;

- /* This msg is expected only from PFs that are mapped to CGX LMACs,
+ /* This msg is expected only from PF/VFs that are mapped to CGX/RPM LMACs,
* if received from other PF/VF simply ACK, nothing to do.
*/
- if ((pcifunc & RVU_PFVF_FUNC_MASK) ||
- !is_pf_cgxmapped(rvu, pf))
- return -ENODEV;
+ if (!is_pf_cgxmapped(rvu, rvu_get_pf(pcifunc)))
+ return -EPERM;

rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_id, &lmac_id);
cgxd = rvu_cgx_pdata(cgx_id, rvu);
--
2.25.1


2023-10-07 14:53:45

by Simon Horman

[permalink] [raw]
Subject: Re: [net PATCH v2] octeontx2-af: Fix hardware timestamping for VFs

On Tue, Oct 03, 2023 at 04:35:04PM +0530, Sai Krishna wrote:
> From: Subbaraya Sundeep <[email protected]>
>
> Currently for VFs, mailbox returns ENODEV error when hardware timestamping
> enable is requested. This patch fixes this issue. Modified this patch to
> return EPERM error for the PF/VFs which are not attached to CGX/RPM.
>
> Fixes: 421572175ba5 ("octeontx2-af: Support to enable/disable HW timestamping")
> Signed-off-by: Subbaraya Sundeep <[email protected]>
> Signed-off-by: Sunil Kovvuri Goutham <[email protected]>
> Signed-off-by: Sai Krishna <[email protected]>
> ---
> drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
> index f2b1edf1bb43..f464640e188b 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
> +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
> @@ -756,12 +756,11 @@ static int rvu_cgx_ptp_rx_cfg(struct rvu *rvu, u16 pcifunc, bool enable)
> if (!is_mac_feature_supported(rvu, pf, RVU_LMAC_FEAT_PTP))
> return 0;
>
> - /* This msg is expected only from PFs that are mapped to CGX LMACs,
> + /* This msg is expected only from PF/VFs that are mapped to CGX/RPM LMACs,
> * if received from other PF/VF simply ACK, nothing to do.
> */
> - if ((pcifunc & RVU_PFVF_FUNC_MASK) ||
> - !is_pf_cgxmapped(rvu, pf))
> - return -ENODEV;
> + if (!is_pf_cgxmapped(rvu, rvu_get_pf(pcifunc)))

Hi Sai,

I'm not clear on why this change substitutes pf for rvu_get_pf(pcifunc),
as futher above in this function pf is set to the return value of
rvu_get_pf(pcifunc).

> + return -EPERM;
>
> rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_id, &lmac_id);
> cgxd = rvu_cgx_pdata(cgx_id, rvu);
> --
> 2.25.1
>
>

2023-10-11 05:02:29

by Subbaraya Sundeep Bhatta

[permalink] [raw]
Subject: RE: [EXT] Re: [net PATCH v2] octeontx2-af: Fix hardware timestamping for VFs

Hi Simon,

>-----Original Message-----
>From: Simon Horman <[email protected]>
>Sent: Saturday, October 7, 2023 8:22 PM
>To: Sai Krishna Gajula <[email protected]>
>Cc: [email protected]; [email protected]; [email protected];
>[email protected]; [email protected]; [email protected];
>Sunil Kovvuri Goutham <[email protected]>; Geethasowjanya Akula
><[email protected]>; [email protected]; Linu Cherian
><[email protected]>; Jerin Jacob Kollanukkaran <[email protected]>;
>Hariprasad Kelam <[email protected]>; Subbaraya Sundeep Bhatta
><[email protected]>
>Subject: [EXT] Re: [net PATCH v2] octeontx2-af: Fix hardware timestamping for
>VFs
>On Tue, Oct 03, 2023 at 04:35:04PM +0530, Sai Krishna wrote:
>> From: Subbaraya Sundeep <[email protected]>
>>
>> Currently for VFs, mailbox returns ENODEV error when hardware timestamping
>> enable is requested. This patch fixes this issue. Modified this patch to
>> return EPERM error for the PF/VFs which are not attached to CGX/RPM.
>>
>> Fixes: 421572175ba5 ("octeontx2-af: Support to enable/disable HW
>timestamping")
>> Signed-off-by: Subbaraya Sundeep <[email protected]>
>> Signed-off-by: Sunil Kovvuri Goutham <[email protected]>
>> Signed-off-by: Sai Krishna <[email protected]>
>> ---
>> drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c | 7 +++----
>> 1 file changed, 3 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
>b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
>> index f2b1edf1bb43..f464640e188b 100644
>> --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
>> +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
>> @@ -756,12 +756,11 @@ static int rvu_cgx_ptp_rx_cfg(struct rvu *rvu, u16
>pcifunc, bool enable)
>> if (!is_mac_feature_supported(rvu, pf, RVU_LMAC_FEAT_PTP))
>> return 0;
>>
>> - /* This msg is expected only from PFs that are mapped to CGX LMACs,
>> + /* This msg is expected only from PF/VFs that are mapped to CGX/RPM
>LMACs,
>> * if received from other PF/VF simply ACK, nothing to do.
>> */
>> - if ((pcifunc & RVU_PFVF_FUNC_MASK) ||
>> - !is_pf_cgxmapped(rvu, pf))
>> - return -ENODEV;
>> + if (!is_pf_cgxmapped(rvu, rvu_get_pf(pcifunc)))
>
>Hi Sai,
>
>I'm not clear on why this change substitutes pf for rvu_get_pf(pcifunc),
>as futher above in this function pf is set to the return value of
>rvu_get_pf(pcifunc).
>
Good catch. No need of rvu_get_pf(pcifunc) again. We will change and send v3.
Thanks for the review.

Sundeep

>> + return -EPERM;
>>
>> rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_id, &lmac_id);
>> cgxd = rvu_cgx_pdata(cgx_id, rvu);
>> --
>> 2.25.1
>>
>>