In pcap pmd, the timestamp mbuf dynamic field is mandatory. When the
pcap pmd is created in a secondary process (this is the case for pdump),
it cannot be registered because this is not allowed from a secondary
process.
To ensure that the field is properly registered, do it from probe()
instead of configure(). Indeed, probe() is first invoked on the primary
process when a device is created in a secondary, this enables
registering dynfield from secondary process.
Bugzilla ID: 571
Fixes: d23d73d088c1 ("net/pcap: switch Rx timestamp to dynamic mbuf field")
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
 static int
 eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
 {
-       int ret;
-
-       ret = rte_mbuf_dyn_rx_timestamp_register(×tamp_dynfield_offset,
-                       ×tamp_rx_dynflag);
-       if (ret != 0) {
-               PMD_LOG(ERR, "Failed to register Rx timestamp field/flag");
-               return -rte_errno;
-       }
-
        return 0;
 }
 
        start_cycles = rte_get_timer_cycles();
        hz = rte_get_timer_hz();
 
+       ret = rte_mbuf_dyn_rx_timestamp_register(×tamp_dynfield_offset,
+                       ×tamp_rx_dynflag);
+       if (ret != 0) {
+               PMD_LOG(ERR, "Failed to register Rx timestamp field/flag");
+               return -1;
+       }
+
        if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
                eth_dev = rte_eth_dev_attach_secondary(name);
                if (!eth_dev) {