On 11/14/2018 7:56 PM, Qi Zhang wrote:
> Private vdev was the way previously, when pdump developed, now with shared
> device mode on virtual devices, pcap data path in secondary is not working.
> 
> When secondary adds a virtual device, related data transferred to primary
> and primary creates the device and shares device back with secondary.
> When pcap device created in primary, pcap handlers (pointers) are process
> local and they are not valid for secondary process. This breaks secondary.
> 
> So we can't directly share the pcap handlers, but need to create a new set
> of handlers for secondary, that's what we done in this patch.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com>
> Signed-off-by: Qi Zhang <qi.z.zh...@intel.com>

<...>

> @@ -1155,16 +1157,18 @@ pmd_pcap_probe(struct rte_vdev_device *dev)
>                       PMD_LOG(ERR, "Failed to probe %s", name);
>                       return -1;
>               }
> -             /* TODO: request info from primary to set up Rx and Tx */
> -             eth_dev->dev_ops = &ops;
> -             eth_dev->device = &dev->device;
> -             rte_eth_dev_probing_finish(eth_dev);
> -             return 0;
> -     }
>  
> -     kvlist = rte_kvargs_parse(rte_vdev_device_args(dev), valid_arguments);
> -     if (kvlist == NULL)
> -             return -1;
> +             internal = eth_dev->data->dev_private;
> +
> +             kvlist = rte_kvargs_parse(internal->devargs, valid_arguments);
> +             if (kvlist == NULL)
> +                     return -1;

Copying devargs to internal->devargs seems missing, it is still needed right?

Reply via email to