[dpdk-dev] net/af_packet: initialize link interrupt callback queue

Message ID 1481997835-23288-1-git-send-email-3chas3@gmail.com (mailing list archive)
State Rejected, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel compilation success Compilation OK

Commit Message

Chas Williams Dec. 17, 2016, 6:03 p.m. UTC
  This patch initializes the eth_dev->link_intr_cbs queue which is
used when af_packet is passed into rte_eth_ev_callback_register().

Fixes: 4dc294158cac ("ethdev: support optional Rx and Tx callbacks")

Signed-off-by: Chas Williams <3chas3@gmail.com>
---
 drivers/net/af_packet/rte_eth_af_packet.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Stephen Hemminger Dec. 17, 2016, 11:32 p.m. UTC | #1
On Sat, 17 Dec 2016 13:03:55 -0500
Chas Williams <3chas3@gmail.com> wrote:

> This patch initializes the eth_dev->link_intr_cbs queue which is
> used when af_packet is passed into rte_eth_ev_callback_register().
> 
> Fixes: 4dc294158cac ("ethdev: support optional Rx and Tx callbacks")
> 
> Signed-off-by: Chas Williams <3chas3@gmail.com>
> ---
>  drivers/net/af_packet/rte_eth_af_packet.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
> index a1e13ff..ea5070a 100644
> --- a/drivers/net/af_packet/rte_eth_af_packet.c
> +++ b/drivers/net/af_packet/rte_eth_af_packet.c
> @@ -708,6 +708,7 @@ rte_pmd_init_internals(const char *name,
>  	(*eth_dev)->data->drv_name = pmd_af_packet_drv.driver.name;
>  	(*eth_dev)->data->kdrv = RTE_KDRV_NONE;
>  	(*eth_dev)->data->numa_node = numa_node;
> +	TAILQ_INIT(&((*eth_dev)->link_intr_cbs));

This code really needs to have a local variable for eth_dev and not deref
a pointer in every statement.
  
Ferruh Yigit Dec. 20, 2016, 2:20 p.m. UTC | #2
On 12/17/2016 6:03 PM, Chas Williams wrote:
> This patch initializes the eth_dev->link_intr_cbs queue which is
> used when af_packet is passed into rte_eth_ev_callback_register().

Why do you want to register callback to af_packet PMD, it won't be
calling them?

> 
> Fixes: 4dc294158cac ("ethdev: support optional Rx and Tx callbacks")
> 
> Signed-off-by: Chas Williams <3chas3@gmail.com>

Please cc the maintainers...

CC: John W. Linville <linville@tuxdriver.com>

> ---
>  drivers/net/af_packet/rte_eth_af_packet.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
> index a1e13ff..ea5070a 100644
> --- a/drivers/net/af_packet/rte_eth_af_packet.c
> +++ b/drivers/net/af_packet/rte_eth_af_packet.c
> @@ -708,6 +708,7 @@ rte_pmd_init_internals(const char *name,
>  	(*eth_dev)->data->drv_name = pmd_af_packet_drv.driver.name;
>  	(*eth_dev)->data->kdrv = RTE_KDRV_NONE;
>  	(*eth_dev)->data->numa_node = numa_node;
> +	TAILQ_INIT(&((*eth_dev)->link_intr_cbs));
>  
>  	return 0;
>  
>
  
Chas Williams Dec. 20, 2016, 8:57 p.m. UTC | #3
On Tue, 2016-12-20 at 14:20 +0000, Ferruh Yigit wrote:
> On 12/17/2016 6:03 PM, Chas Williams wrote:
> > This patch initializes the eth_dev->link_intr_cbs queue which is
> > used when af_packet is passed into rte_eth_ev_callback_register().
> 
> Why do you want to register callback to af_packet PMD, it won't be
> calling them?

Because I have a some other code that basically treats all the PMD's
the same way.  Do I really need to write an exception for that code
that says "if this is driver such and such don't call this API routine?"

> > 
> > Fixes: 4dc294158cac ("ethdev: support optional Rx and Tx callbacks")
> > 
> > Signed-off-by: Chas Williams <3chas3@gmail.com>
> 
> Please cc the maintainers...

OK

> 
> CC: John W. Linville <linville@tuxdriver.com>
> 
> > ---
> >  drivers/net/af_packet/rte_eth_af_packet.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
> > index a1e13ff..ea5070a 100644
> > --- a/drivers/net/af_packet/rte_eth_af_packet.c
> > +++ b/drivers/net/af_packet/rte_eth_af_packet.c
> > @@ -708,6 +708,7 @@ rte_pmd_init_internals(const char *name,
> >  	(*eth_dev)->data->drv_name = pmd_af_packet_drv.driver.name;
> >  	(*eth_dev)->data->kdrv = RTE_KDRV_NONE;
> >  	(*eth_dev)->data->numa_node = numa_node;
> > +	TAILQ_INIT(&((*eth_dev)->link_intr_cbs));
> >  
> >  	return 0;
> >  
> > 
> 
>
  
Ferruh Yigit Dec. 21, 2016, 3:26 p.m. UTC | #4
On 12/20/2016 8:57 PM, Chas Williams wrote:
> On Tue, 2016-12-20 at 14:20 +0000, Ferruh Yigit wrote:
>> On 12/17/2016 6:03 PM, Chas Williams wrote:
>>> This patch initializes the eth_dev->link_intr_cbs queue which is
>>> used when af_packet is passed into rte_eth_ev_callback_register().
>>
>> Why do you want to register callback to af_packet PMD, it won't be
>> calling them?
> 
> Because I have a some other code that basically treats all the PMD's
> the same way.  Do I really need to write an exception for that code
> that says "if this is driver such and such don't call this API routine?"

No, you shouldn't.
Thanks for the clarification.

> 
>>>
>>> Fixes: 4dc294158cac ("ethdev: support optional Rx and Tx callbacks")
>>>
>>> Signed-off-by: Chas Williams <3chas3@gmail.com>
>>
>> Please cc the maintainers...
> 
> OK
> 
>>
>> CC: John W. Linville <linville@tuxdriver.com>
>>
>>> ---
>>>  drivers/net/af_packet/rte_eth_af_packet.c | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
>>> index a1e13ff..ea5070a 100644
>>> --- a/drivers/net/af_packet/rte_eth_af_packet.c
>>> +++ b/drivers/net/af_packet/rte_eth_af_packet.c
>>> @@ -708,6 +708,7 @@ rte_pmd_init_internals(const char *name,
>>>  	(*eth_dev)->data->drv_name = pmd_af_packet_drv.driver.name;
>>>  	(*eth_dev)->data->kdrv = RTE_KDRV_NONE;
>>>  	(*eth_dev)->data->numa_node = numa_node;
>>> +	TAILQ_INIT(&((*eth_dev)->link_intr_cbs));
>>>  
>>>  	return 0;
>>>  
>>>
>>
>>
  
Ferruh Yigit Dec. 21, 2016, 3:30 p.m. UTC | #5
On 12/17/2016 6:03 PM, Chas Williams wrote:
> This patch initializes the eth_dev->link_intr_cbs queue which is
> used when af_packet is passed into rte_eth_ev_callback_register().
> 
> Fixes: 4dc294158cac ("ethdev: support optional Rx and Tx callbacks")
> 
> Signed-off-by: Chas Williams <3chas3@gmail.com>

Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
  
Ferruh Yigit Dec. 21, 2016, 4:50 p.m. UTC | #6
On 12/21/2016 3:30 PM, Ferruh Yigit wrote:
> On 12/17/2016 6:03 PM, Chas Williams wrote:
>> This patch initializes the eth_dev->link_intr_cbs queue which is
>> used when af_packet is passed into rte_eth_ev_callback_register().
>>
>> Fixes: 4dc294158cac ("ethdev: support optional Rx and Tx callbacks")
>>
>> Signed-off-by: Chas Williams <3chas3@gmail.com>
> 
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> 

The commit that just applied solves the issue that this patch targets:

http://dpdk.org/browse/dpdk/commit/?id=75aca7997e57b017

I am updating this patch as rejected.

Thanks,
ferruh
  

Patch

diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
index a1e13ff..ea5070a 100644
--- a/drivers/net/af_packet/rte_eth_af_packet.c
+++ b/drivers/net/af_packet/rte_eth_af_packet.c
@@ -708,6 +708,7 @@  rte_pmd_init_internals(const char *name,
 	(*eth_dev)->data->drv_name = pmd_af_packet_drv.driver.name;
 	(*eth_dev)->data->kdrv = RTE_KDRV_NONE;
 	(*eth_dev)->data->numa_node = numa_node;
+	TAILQ_INIT(&((*eth_dev)->link_intr_cbs));
 
 	return 0;