From: Kevin Traynor <ktraynor@redhat.com> To: Stephen Hemminger <stephen@networkplumber.org> Cc: Suyang Ju <sju@paloaltonetworks.com>, Matan Azrad <matan@mellanox.com>, dpdk stable <stable@dpdk.org> Subject: [dpdk-stable] patch 'net/mlx4: fix crash on info query in secondary process' has been queued to LTS release 18.11.3 Date: Thu, 5 Sep 2019 11:17:47 +0100 Message-ID: <20190905101754.21933-47-ktraynor@redhat.com> (raw) In-Reply-To: <20190905101754.21933-1-ktraynor@redhat.com> Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/2609b07db9d1664b5b885c0b8773b70e1a2d20e2 Thanks. Kevin Traynor --- From 2609b07db9d1664b5b885c0b8773b70e1a2d20e2 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger <stephen@networkplumber.org> Date: Fri, 12 Jul 2019 13:54:24 -0700 Subject: [PATCH] net/mlx4: fix crash on info query in secondary process [ upstream commit 164cad78b040122eac581a905a466bd22e7e66b8 ] mlx4_dev_info_get calls mlx4_get_ifname, but mlx4_get_ifname uses priv->ctx which is not a valid pointer in a secondary process. The fix is to cache the value in primary. In the primary process, get and store the interface index of the device so that secondary process can see it. Bugzilla ID: 320 Fixes: 61cbdd419478 ("net/mlx4: separate device control functions") Reported-by: Suyang Ju <sju@paloaltonetworks.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Matan Azrad <matan@mellanox.com> --- drivers/net/mlx4/mlx4.c | 17 ++++++++--------- drivers/net/mlx4/mlx4.h | 1 + drivers/net/mlx4/mlx4_ethdev.c | 4 +--- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 4bc966d5f..4428edf10 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -521,4 +521,5 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) unsigned int vf; int i; + char ifname[IF_NAMESIZE]; (void)pci_drv; @@ -704,15 +705,13 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) /* Register MAC address. */ priv->mac[0] = mac; -#ifndef NDEBUG - { - char ifname[IF_NAMESIZE]; - if (mlx4_get_ifname(priv, &ifname) == 0) - DEBUG("port %u ifname is \"%s\"", - priv->port, ifname); - else - DEBUG("port %u ifname is unknown", priv->port); + if (mlx4_get_ifname(priv, &ifname) == 0) { + DEBUG("port %u ifname is \"%s\"", + priv->port, ifname); + priv->if_index = if_nametoindex(ifname); + } else { + DEBUG("port %u ifname is unknown", priv->port); } -#endif + /* Get actual MTU if possible. */ mlx4_mtu_get(priv, &priv->mtu); diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h index fc568eb3e..758b7aa43 100644 --- a/drivers/net/mlx4/mlx4.h +++ b/drivers/net/mlx4/mlx4.h @@ -85,4 +85,5 @@ struct mlx4_priv { struct ibv_pd *pd; /**< Protection Domain. */ /* Device properties. */ + unsigned int if_index; /**< Associated network device index */ uint16_t mtu; /**< Configured MTU. */ uint8_t port; /**< Physical port number. */ diff --git a/drivers/net/mlx4/mlx4_ethdev.c b/drivers/net/mlx4/mlx4_ethdev.c index 084b24e49..bd8b6982b 100644 --- a/drivers/net/mlx4/mlx4_ethdev.c +++ b/drivers/net/mlx4/mlx4_ethdev.c @@ -560,5 +560,4 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) struct mlx4_priv *priv = dev->data->dev_private; unsigned int max; - char ifname[IF_NAMESIZE]; /* FIXME: we should ask the device for these values. */ @@ -581,6 +580,5 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) info->rx_offload_capa = (mlx4_get_rx_port_offloads(priv) | info->rx_queue_offload_capa); - if (mlx4_get_ifname(priv, &ifname) == 0) - info->if_index = if_nametoindex(ifname); + info->if_index = priv->if_index; info->hash_key_size = MLX4_RSS_HASH_KEY_SIZE; info->speed_capa = -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.345136230 +0100 +++ 0047-net-mlx4-fix-crash-on-info-query-in-secondary-proces.patch 2019-09-05 10:36:47.554699469 +0100 @@ -1 +1 @@ -From 164cad78b040122eac581a905a466bd22e7e66b8 Mon Sep 17 00:00:00 2001 +From 2609b07db9d1664b5b885c0b8773b70e1a2d20e2 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 164cad78b040122eac581a905a466bd22e7e66b8 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -27 +28 @@ -index d6e5753bf..931e4f4fe 100644 +index 4bc966d5f..4428edf10 100644 @@ -30 +31 @@ -@@ -764,4 +764,5 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) +@@ -521,4 +521,5 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) @@ -36 +37 @@ -@@ -1003,15 +1004,13 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) +@@ -704,15 +705,13 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) @@ -60 +61 @@ -index 9bdbc6d40..982357716 100644 +index fc568eb3e..758b7aa43 100644 @@ -63 +64 @@ -@@ -160,4 +160,5 @@ struct mlx4_priv { +@@ -85,4 +85,5 @@ struct mlx4_priv { @@ -70 +71 @@ -index ceef92162..5d28c0116 100644 +index 084b24e49..bd8b6982b 100644 @@ -73 +74 @@ -@@ -617,5 +617,4 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) +@@ -560,5 +560,4 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) @@ -79 +80 @@ -@@ -638,6 +637,5 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) +@@ -581,6 +580,5 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
next prev parent reply index Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-09-05 10:17 [dpdk-stable] patch 'ethdev: avoid getting uninitialized info for bad port' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'vfio: use contiguous mapping for IOVA as VA mode' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'compress/zlib: fix error handling' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'cryptodev: fix typo in comment' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'security: remove duplicated symbols from map file' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/i40e: fix RSS hash update for X722 VF' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/sfc: fix power of 2 round up when align has smaller type' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/sfc: fix align to power of 2 " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/sfc: unify power of 2 alignment check macro' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/bnxt: fix extended port counter statistics' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/bnxt: reduce verbosity of a message' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/pcap: fix Rx with small buffers' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/pcap: fix Tx return count in error conditions' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/avf: fix endless loop' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/ixgbe: fix RETA size for VF' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'igb_uio: fix build on Linux 5.3 for fall through' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'distributor: fix livelock on flush' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'app/testpmd: fix eth packet dump for small buffers' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'app/testpmd: rename ambiguous VF config variable' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'examples/ip_frag: remove Tx fast free offload flag' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'examples/ptpclient: fix delay request message' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'test: enable installing app with meson' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'test/eal: fix --socket-mem option' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/virtio: fix build' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'examples/l3fwd: fix unaligned memory access on x86' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'eal: fix control thread affinity with --lcores' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'doc: update features supported by mlx' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'usertools: replace unsafe input function' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'devtools: fix building kernel component tags' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'test/flow_classify: fix undefined behavior' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'acl: fix undefined behavior of bit shifts' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'test: remove link to ixgbe/i40e with meson' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'eal: hide internal function' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'bus/pci: remove unused x86 Linux constant' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/dpaa: fix build with 0 headroom' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'bus/fslmc: " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/virtio: " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/ena: fix L4 checksum Tx offload' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'doc: add co-existence consideration for bnx2x' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'doc: add co-existence consideration for qede' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/thunderx: fix crash on detach' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'examples/bpf: fix build' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/ixgbe: fix address of first segment' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/avf: " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/fm10k: " Kevin Traynor 2019-09-05 10:17 ` Kevin Traynor [this message] 2019-09-05 10:17 ` [dpdk-stable] patch 'net/mlx5: fix validation of VLAN PCP item' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/mlx5: fix VLAN inner type matching on DR/DV' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/mlx5: fix link speed info when link is down' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'app/testpmd: fix latency stats deinit on signal' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'net/ixgbe/base: fix product version check' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'eal: increase maximum different hugepage sizes on Arm' " Kevin Traynor 2019-09-05 10:17 ` [dpdk-stable] patch 'usertools: fix input handling in telemetry script' " Kevin Traynor
Reply instructions: You may reply publically to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190905101754.21933-47-ktraynor@redhat.com \ --to=ktraynor@redhat.com \ --cc=matan@mellanox.com \ --cc=sju@paloaltonetworks.com \ --cc=stable@dpdk.org \ --cc=stephen@networkplumber.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
patches for DPDK stable branches Archives are clonable: git clone --mirror http://inbox.dpdk.org/stable/0 stable/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 stable stable/ http://inbox.dpdk.org/stable \ stable@dpdk.org public-inbox-index stable Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.stable AGPL code for this site: git clone https://public-inbox.org/ public-inbox