patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] [PATCH 17.11] net/fm10k: fix segment fault at calling fm10k_stats_get()
@ 2019-06-15 12:39 Lu Qiuwen
  0 siblings, 0 replies; 4+ messages in thread
From: Lu Qiuwen @ 2019-06-15 12:39 UTC (permalink / raw)
  To: stable; +Cc: luqiuwen

[PATCH] net/fm10k: fix segment fault at calling fm10k_stats_get() from secondary process.

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

* Re: [dpdk-stable] [PATCH 17.11] net/fm10k: fix segment fault at calling fm10k_stats_get()
  2019-07-23  1:12 ` Yongseok Koh
@ 2019-07-23  3:01   ` Wang, Xiao W
  0 siblings, 0 replies; 4+ messages in thread
From: Wang, Xiao W @ 2019-07-23  3:01 UTC (permalink / raw)
  To: Yongseok Koh, Lu Qiuwen, Zhang, Qi Z; +Cc: dpdk stable

Hi Qiuwen,

> -----Original Message-----
> From: Yongseok Koh [mailto:yskoh@mellanox.com]
> Sent: Tuesday, July 23, 2019 9:13 AM
> To: Lu Qiuwen <luqiuwen@iie.ac.cn>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> Wang, Xiao W <xiao.w.wang@intel.com>
> Cc: dpdk stable <stable@dpdk.org>
> Subject: Re: [dpdk-stable] [PATCH 17.11] net/fm10k: fix segment fault at
> calling fm10k_stats_get()
> 
> Hi,
> 
> Copying maintainers of fm10k for their review.
> I'll merge it as soon as it is acked.
> 
> 
> Thanks,
> Yongseok
> 
> > On Jun 15, 2019, at 5:43 AM, Lu Qiuwen <luqiuwen@iie.ac.cn> wrote:
> >
> > From 01ca235ebb510d68efe37a81b434c07bd335fc61 Mon Sep 17 00:00:00
> 2001
> > From: Lu Qiuwen <luqiuwen@iie.ac.cn>
> > Date: Sat, 15 Jun 2019 14:28:01 +0800
> > Subject: [PATCH] net/fm10k: fix segment fault at calling fm10k_stats_get()
> > from secondary process.
> >
> > The function pointers in fm10k_stats_get() which setup from primary
> process, when secondary process call these function pointers, a segment
> fault will happend.
> >
> > Signed-off-by: Lu Qiuwen <luqiuwen@iie.ac.cn>
> > ---
> > drivers/net/fm10k/base/fm10k_api.c | 20 ++++++++++++++++----
> > drivers/net/fm10k/base/fm10k_pf.c  |  4 ++--
> > drivers/net/fm10k/base/fm10k_pf.h  |  8 ++++++++
> > drivers/net/fm10k/base/fm10k_vf.c  |  4 ++--
> > drivers/net/fm10k/base/fm10k_vf.h  |  6 ++++++
> > 5 files changed, 34 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/net/fm10k/base/fm10k_api.c
> b/drivers/net/fm10k/base/fm10k_api.c
> > index c49d20dfb..e7b2fe710 100644
> > --- a/drivers/net/fm10k/base/fm10k_api.c
> > +++ b/drivers/net/fm10k/base/fm10k_api.c
> > @@ -234,8 +234,14 @@ s32 fm10k_read_mac_addr(struct fm10k_hw *hw)
> >  * */
> > void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats
> *stats)
> > {
> > -	if (hw->mac.ops.update_hw_stats)
> > -		hw->mac.ops.update_hw_stats(hw, stats);
> > +	switch (hw->mac.type) {
> > +	case fm10k_mac_pf:
> > +		return fm10k_update_hw_stats_pf(hw, stats);
> > +	case fm10k_mac_vf:
> > +		return fm10k_update_hw_stats_vf(hw, stats);
> > +	default:
> > +		break;
> > +	}
> > }
> >
> > /**
> > @@ -246,8 +252,14 @@ void fm10k_update_hw_stats(struct fm10k_hw
> *hw, struct fm10k_hw_stats *stats)
> >  * */
> > void fm10k_rebind_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats
> *stats)
> > {
> > -	if (hw->mac.ops.rebind_hw_stats)
> > -		hw->mac.ops.rebind_hw_stats(hw, stats);
> > +	switch (hw->mac.type) {
> > +	case fm10k_mac_pf:
> > +		return fm10k_rebind_hw_stats_pf(hw, stats);
> > +	case fm10k_mac_vf:
> > +		return fm10k_rebind_hw_stats_vf(hw, stats);
> > +	default:
> > +		break;
> > +	}
> > }
> >
> > /**
> > diff --git a/drivers/net/fm10k/base/fm10k_pf.c
> b/drivers/net/fm10k/base/fm10k_pf.c
> > index db5f4912f..f5b6a9e2e 100644
> > --- a/drivers/net/fm10k/base/fm10k_pf.c
> > +++ b/drivers/net/fm10k/base/fm10k_pf.c
> > @@ -1511,7 +1511,7 @@ const struct fm10k_msg_data
> fm10k_iov_msg_data_pf[] = {
> >  *  This function collects and aggregates global and per queue hardware
> >  *  statistics.
> >  **/
> > -STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
> > +void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
> > 				     struct fm10k_hw_stats *stats)
> > {
> > 	u32 timeout, ur, ca, um, xec, vlan_drop, loopback_drop,
> nodesc_drop;
> > @@ -1584,7 +1584,7 @@ STATIC void fm10k_update_hw_stats_pf(struct
> fm10k_hw *hw,
> >  *  This function resets the base for global and per queue hardware
> >  *  statistics.
> >  **/
> > -STATIC void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
> > +void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
> > 				     struct fm10k_hw_stats *stats)
> > {
> > 	DEBUGFUNC("fm10k_rebind_hw_stats_pf");
> > diff --git a/drivers/net/fm10k/base/fm10k_pf.h
> b/drivers/net/fm10k/base/fm10k_pf.h
> > index ca125c273..207942788 100644
> > --- a/drivers/net/fm10k/base/fm10k_pf.h
> > +++ b/drivers/net/fm10k/base/fm10k_pf.h
> > @@ -184,4 +184,12 @@ extern const struct fm10k_msg_data
> fm10k_iov_msg_data_pf[];
> > #endif
> >
> > s32 fm10k_init_ops_pf(struct fm10k_hw *hw);
> > +
> > +void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
> > +				     struct fm10k_hw_stats *stats);
> > +
> > +void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
> > +				     struct fm10k_hw_stats *stats);
> > +
> > +

Above 2 empty lines should be removed. Do not introduce extra empty line.

> > #endif /* _FM10K_PF_H */
> > diff --git a/drivers/net/fm10k/base/fm10k_vf.c
> b/drivers/net/fm10k/base/fm10k_vf.c
> > index bd449773a..2f4b5f5d2 100644
> > --- a/drivers/net/fm10k/base/fm10k_vf.c
> > +++ b/drivers/net/fm10k/base/fm10k_vf.c
> > @@ -526,7 +526,7 @@ const struct fm10k_tlv_attr fm10k_1588_msg_attr[]
> = {
> >  *
> >  *  This function collects and aggregates per queue hardware statistics.
> >  **/
> > -STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
> > +void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
> > 				     struct fm10k_hw_stats *stats)
> > {
> > 	DEBUGFUNC("fm10k_update_hw_stats_vf");
> > @@ -541,7 +541,7 @@ STATIC void fm10k_update_hw_stats_vf(struct
> fm10k_hw *hw,
> >  *
> >  *  This function resets the base for queue hardware statistics.
> >  **/
> > -STATIC void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
> > +void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
> > 				     struct fm10k_hw_stats *stats)
> > {
> > 	DEBUGFUNC("fm10k_rebind_hw_stats_vf");
> > diff --git a/drivers/net/fm10k/base/fm10k_vf.h
> b/drivers/net/fm10k/base/fm10k_vf.h
> > index 116c56fcc..e433e8a94 100644
> > --- a/drivers/net/fm10k/base/fm10k_vf.h
> > +++ b/drivers/net/fm10k/base/fm10k_vf.h
> > @@ -89,4 +89,10 @@ extern const struct fm10k_tlv_attr
> fm10k_1588_msg_attr[];
> > 	FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_1588,
> fm10k_1588_msg_attr, func)
> >
> > s32 fm10k_init_ops_vf(struct fm10k_hw *hw);
> > +
> > +void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
> > +				     struct fm10k_hw_stats *stats);
> > +void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
> > +				     struct fm10k_hw_stats *stats);
> > +

Idem.

> > #endif /* _FM10K_VF_H */
> > --
> > 2.20.1.windows.1
> >
> >

I agree with what this patch fixes, ideally the "ops" basically should not be included in the shared data. Anyway, this patch is a quick fix. Besides, this patch should also go to dev@dpdk.org. Please address above minor issues and make a new version.

Thanks,
Xiao


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

* Re: [dpdk-stable] [PATCH 17.11] net/fm10k: fix segment fault at calling fm10k_stats_get()
  2019-06-15 12:43 Lu Qiuwen
@ 2019-07-23  1:12 ` Yongseok Koh
  2019-07-23  3:01   ` Wang, Xiao W
  0 siblings, 1 reply; 4+ messages in thread
From: Yongseok Koh @ 2019-07-23  1:12 UTC (permalink / raw)
  To: Lu Qiuwen, Zhang, Qi Z, xiao.w.wang; +Cc: dpdk stable

Hi,

Copying maintainers of fm10k for their review.
I'll merge it as soon as it is acked.


Thanks,
Yongseok

> On Jun 15, 2019, at 5:43 AM, Lu Qiuwen <luqiuwen@iie.ac.cn> wrote:
> 
> From 01ca235ebb510d68efe37a81b434c07bd335fc61 Mon Sep 17 00:00:00 2001
> From: Lu Qiuwen <luqiuwen@iie.ac.cn>
> Date: Sat, 15 Jun 2019 14:28:01 +0800
> Subject: [PATCH] net/fm10k: fix segment fault at calling fm10k_stats_get()
> from secondary process.
> 
> The function pointers in fm10k_stats_get() which setup from primary process, when secondary process call these function pointers, a segment fault will happend.
> 
> Signed-off-by: Lu Qiuwen <luqiuwen@iie.ac.cn>
> ---
> drivers/net/fm10k/base/fm10k_api.c | 20 ++++++++++++++++----
> drivers/net/fm10k/base/fm10k_pf.c  |  4 ++--
> drivers/net/fm10k/base/fm10k_pf.h  |  8 ++++++++
> drivers/net/fm10k/base/fm10k_vf.c  |  4 ++--
> drivers/net/fm10k/base/fm10k_vf.h  |  6 ++++++
> 5 files changed, 34 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/fm10k/base/fm10k_api.c b/drivers/net/fm10k/base/fm10k_api.c
> index c49d20dfb..e7b2fe710 100644
> --- a/drivers/net/fm10k/base/fm10k_api.c
> +++ b/drivers/net/fm10k/base/fm10k_api.c
> @@ -234,8 +234,14 @@ s32 fm10k_read_mac_addr(struct fm10k_hw *hw)
>  * */
> void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
> {
> -	if (hw->mac.ops.update_hw_stats)
> -		hw->mac.ops.update_hw_stats(hw, stats);
> +	switch (hw->mac.type) {
> +	case fm10k_mac_pf:
> +		return fm10k_update_hw_stats_pf(hw, stats);
> +	case fm10k_mac_vf:
> +		return fm10k_update_hw_stats_vf(hw, stats);
> +	default:
> +		break;
> +	}
> }
> 
> /**
> @@ -246,8 +252,14 @@ void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
>  * */
> void fm10k_rebind_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
> {
> -	if (hw->mac.ops.rebind_hw_stats)
> -		hw->mac.ops.rebind_hw_stats(hw, stats);
> +	switch (hw->mac.type) {
> +	case fm10k_mac_pf:
> +		return fm10k_rebind_hw_stats_pf(hw, stats);
> +	case fm10k_mac_vf:
> +		return fm10k_rebind_hw_stats_vf(hw, stats);
> +	default:
> +		break;
> +	}
> }
> 
> /**
> diff --git a/drivers/net/fm10k/base/fm10k_pf.c b/drivers/net/fm10k/base/fm10k_pf.c
> index db5f4912f..f5b6a9e2e 100644
> --- a/drivers/net/fm10k/base/fm10k_pf.c
> +++ b/drivers/net/fm10k/base/fm10k_pf.c
> @@ -1511,7 +1511,7 @@ const struct fm10k_msg_data fm10k_iov_msg_data_pf[] = {
>  *  This function collects and aggregates global and per queue hardware
>  *  statistics.
>  **/
> -STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
> +void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
> 				     struct fm10k_hw_stats *stats)
> {
> 	u32 timeout, ur, ca, um, xec, vlan_drop, loopback_drop, nodesc_drop;
> @@ -1584,7 +1584,7 @@ STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
>  *  This function resets the base for global and per queue hardware
>  *  statistics.
>  **/
> -STATIC void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
> +void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
> 				     struct fm10k_hw_stats *stats)
> {
> 	DEBUGFUNC("fm10k_rebind_hw_stats_pf");
> diff --git a/drivers/net/fm10k/base/fm10k_pf.h b/drivers/net/fm10k/base/fm10k_pf.h
> index ca125c273..207942788 100644
> --- a/drivers/net/fm10k/base/fm10k_pf.h
> +++ b/drivers/net/fm10k/base/fm10k_pf.h
> @@ -184,4 +184,12 @@ extern const struct fm10k_msg_data fm10k_iov_msg_data_pf[];
> #endif
> 
> s32 fm10k_init_ops_pf(struct fm10k_hw *hw);
> +
> +void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
> +				     struct fm10k_hw_stats *stats);
> +
> +void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
> +				     struct fm10k_hw_stats *stats);
> +
> +
> #endif /* _FM10K_PF_H */
> diff --git a/drivers/net/fm10k/base/fm10k_vf.c b/drivers/net/fm10k/base/fm10k_vf.c
> index bd449773a..2f4b5f5d2 100644
> --- a/drivers/net/fm10k/base/fm10k_vf.c
> +++ b/drivers/net/fm10k/base/fm10k_vf.c
> @@ -526,7 +526,7 @@ const struct fm10k_tlv_attr fm10k_1588_msg_attr[] = {
>  *
>  *  This function collects and aggregates per queue hardware statistics.
>  **/
> -STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
> +void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
> 				     struct fm10k_hw_stats *stats)
> {
> 	DEBUGFUNC("fm10k_update_hw_stats_vf");
> @@ -541,7 +541,7 @@ STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
>  *
>  *  This function resets the base for queue hardware statistics.
>  **/
> -STATIC void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
> +void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
> 				     struct fm10k_hw_stats *stats)
> {
> 	DEBUGFUNC("fm10k_rebind_hw_stats_vf");
> diff --git a/drivers/net/fm10k/base/fm10k_vf.h b/drivers/net/fm10k/base/fm10k_vf.h
> index 116c56fcc..e433e8a94 100644
> --- a/drivers/net/fm10k/base/fm10k_vf.h
> +++ b/drivers/net/fm10k/base/fm10k_vf.h
> @@ -89,4 +89,10 @@ extern const struct fm10k_tlv_attr fm10k_1588_msg_attr[];
> 	FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_1588, fm10k_1588_msg_attr, func)
> 
> s32 fm10k_init_ops_vf(struct fm10k_hw *hw);
> +
> +void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
> +				     struct fm10k_hw_stats *stats);
> +void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
> +				     struct fm10k_hw_stats *stats);
> +
> #endif /* _FM10K_VF_H */
> -- 
> 2.20.1.windows.1
> 
> 


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

* [dpdk-stable] [PATCH 17.11] net/fm10k: fix segment fault at calling fm10k_stats_get()
@ 2019-06-15 12:43 Lu Qiuwen
  2019-07-23  1:12 ` Yongseok Koh
  0 siblings, 1 reply; 4+ messages in thread
From: Lu Qiuwen @ 2019-06-15 12:43 UTC (permalink / raw)
  To: stable; +Cc: luqiuwen

From 01ca235ebb510d68efe37a81b434c07bd335fc61 Mon Sep 17 00:00:00 2001
From: Lu Qiuwen <luqiuwen@iie.ac.cn>
Date: Sat, 15 Jun 2019 14:28:01 +0800
Subject: [PATCH] net/fm10k: fix segment fault at calling fm10k_stats_get()
 from secondary process.

The function pointers in fm10k_stats_get() which setup from primary process, when secondary process call these function pointers, a segment fault will happend.

Signed-off-by: Lu Qiuwen <luqiuwen@iie.ac.cn>
---
 drivers/net/fm10k/base/fm10k_api.c | 20 ++++++++++++++++----
 drivers/net/fm10k/base/fm10k_pf.c  |  4 ++--
 drivers/net/fm10k/base/fm10k_pf.h  |  8 ++++++++
 drivers/net/fm10k/base/fm10k_vf.c  |  4 ++--
 drivers/net/fm10k/base/fm10k_vf.h  |  6 ++++++
 5 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/drivers/net/fm10k/base/fm10k_api.c b/drivers/net/fm10k/base/fm10k_api.c
index c49d20dfb..e7b2fe710 100644
--- a/drivers/net/fm10k/base/fm10k_api.c
+++ b/drivers/net/fm10k/base/fm10k_api.c
@@ -234,8 +234,14 @@ s32 fm10k_read_mac_addr(struct fm10k_hw *hw)
  * */
 void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
 {
-	if (hw->mac.ops.update_hw_stats)
-		hw->mac.ops.update_hw_stats(hw, stats);
+	switch (hw->mac.type) {
+	case fm10k_mac_pf:
+		return fm10k_update_hw_stats_pf(hw, stats);
+	case fm10k_mac_vf:
+		return fm10k_update_hw_stats_vf(hw, stats);
+	default:
+		break;
+	}
 }
 
 /**
@@ -246,8 +252,14 @@ void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
  * */
 void fm10k_rebind_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
 {
-	if (hw->mac.ops.rebind_hw_stats)
-		hw->mac.ops.rebind_hw_stats(hw, stats);
+	switch (hw->mac.type) {
+	case fm10k_mac_pf:
+		return fm10k_rebind_hw_stats_pf(hw, stats);
+	case fm10k_mac_vf:
+		return fm10k_rebind_hw_stats_vf(hw, stats);
+	default:
+		break;
+	}
 }
 
 /**
diff --git a/drivers/net/fm10k/base/fm10k_pf.c b/drivers/net/fm10k/base/fm10k_pf.c
index db5f4912f..f5b6a9e2e 100644
--- a/drivers/net/fm10k/base/fm10k_pf.c
+++ b/drivers/net/fm10k/base/fm10k_pf.c
@@ -1511,7 +1511,7 @@ const struct fm10k_msg_data fm10k_iov_msg_data_pf[] = {
  *  This function collects and aggregates global and per queue hardware
  *  statistics.
  **/
-STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
+void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	u32 timeout, ur, ca, um, xec, vlan_drop, loopback_drop, nodesc_drop;
@@ -1584,7 +1584,7 @@ STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
  *  This function resets the base for global and per queue hardware
  *  statistics.
  **/
-STATIC void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
+void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	DEBUGFUNC("fm10k_rebind_hw_stats_pf");
diff --git a/drivers/net/fm10k/base/fm10k_pf.h b/drivers/net/fm10k/base/fm10k_pf.h
index ca125c273..207942788 100644
--- a/drivers/net/fm10k/base/fm10k_pf.h
+++ b/drivers/net/fm10k/base/fm10k_pf.h
@@ -184,4 +184,12 @@ extern const struct fm10k_msg_data fm10k_iov_msg_data_pf[];
 #endif
 
 s32 fm10k_init_ops_pf(struct fm10k_hw *hw);
+
+void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
+
+void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
+
+
 #endif /* _FM10K_PF_H */
diff --git a/drivers/net/fm10k/base/fm10k_vf.c b/drivers/net/fm10k/base/fm10k_vf.c
index bd449773a..2f4b5f5d2 100644
--- a/drivers/net/fm10k/base/fm10k_vf.c
+++ b/drivers/net/fm10k/base/fm10k_vf.c
@@ -526,7 +526,7 @@ const struct fm10k_tlv_attr fm10k_1588_msg_attr[] = {
  *
  *  This function collects and aggregates per queue hardware statistics.
  **/
-STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
+void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	DEBUGFUNC("fm10k_update_hw_stats_vf");
@@ -541,7 +541,7 @@ STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
  *
  *  This function resets the base for queue hardware statistics.
  **/
-STATIC void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
+void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	DEBUGFUNC("fm10k_rebind_hw_stats_vf");
diff --git a/drivers/net/fm10k/base/fm10k_vf.h b/drivers/net/fm10k/base/fm10k_vf.h
index 116c56fcc..e433e8a94 100644
--- a/drivers/net/fm10k/base/fm10k_vf.h
+++ b/drivers/net/fm10k/base/fm10k_vf.h
@@ -89,4 +89,10 @@ extern const struct fm10k_tlv_attr fm10k_1588_msg_attr[];
 	FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_1588, fm10k_1588_msg_attr, func)
 
 s32 fm10k_init_ops_vf(struct fm10k_hw *hw);
+
+void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
+void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
+
 #endif /* _FM10K_VF_H */
-- 
2.20.1.windows.1



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

end of thread, other threads:[~2019-07-23  3:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-15 12:39 [dpdk-stable] [PATCH 17.11] net/fm10k: fix segment fault at calling fm10k_stats_get() Lu Qiuwen
2019-06-15 12:43 Lu Qiuwen
2019-07-23  1:12 ` Yongseok Koh
2019-07-23  3:01   ` Wang, Xiao W

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).