Commit 6d268910 authored by David S. Miller's avatar David S. Miller

Merge branch 'hns3-a-few-code-improvements'

Peng Li says:

====================
net: hns3: a few code improvements

This patchset fixes a few code stylistic issues from
concentrated review, no functional changes introduced.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 16c0cd07 ab68059e
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
*/ */
#include <linux/list.h> #include <linux/list.h>
#include <linux/slab.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include "hnae3.h" #include "hnae3.h"
...@@ -95,7 +94,7 @@ static int hnae3_match_n_instantiate(struct hnae3_client *client, ...@@ -95,7 +94,7 @@ static int hnae3_match_n_instantiate(struct hnae3_client *client,
ret = ae_dev->ops->init_client_instance(client, ae_dev); ret = ae_dev->ops->init_client_instance(client, ae_dev);
if (ret) { if (ret) {
dev_err(&ae_dev->pdev->dev, dev_err(&ae_dev->pdev->dev,
"fail to instantiate client\n"); "fail to instantiate client, ret = %d\n", ret);
return ret; return ret;
} }
...@@ -135,7 +134,8 @@ int hnae3_register_client(struct hnae3_client *client) ...@@ -135,7 +134,8 @@ int hnae3_register_client(struct hnae3_client *client)
ret = hnae3_match_n_instantiate(client, ae_dev, true); ret = hnae3_match_n_instantiate(client, ae_dev, true);
if (ret) if (ret)
dev_err(&ae_dev->pdev->dev, dev_err(&ae_dev->pdev->dev,
"match and instantiation failed for port\n"); "match and instantiation failed for port, ret = %d\n",
ret);
} }
exit: exit:
...@@ -185,7 +185,8 @@ void hnae3_register_ae_algo(struct hnae3_ae_algo *ae_algo) ...@@ -185,7 +185,8 @@ void hnae3_register_ae_algo(struct hnae3_ae_algo *ae_algo)
ae_dev->ops = ae_algo->ops; ae_dev->ops = ae_algo->ops;
ret = ae_algo->ops->init_ae_dev(ae_dev); ret = ae_algo->ops->init_ae_dev(ae_dev);
if (ret) { if (ret) {
dev_err(&ae_dev->pdev->dev, "init ae_dev error.\n"); dev_err(&ae_dev->pdev->dev,
"init ae_dev error, ret = %d\n", ret);
continue; continue;
} }
...@@ -198,7 +199,8 @@ void hnae3_register_ae_algo(struct hnae3_ae_algo *ae_algo) ...@@ -198,7 +199,8 @@ void hnae3_register_ae_algo(struct hnae3_ae_algo *ae_algo)
ret = hnae3_match_n_instantiate(client, ae_dev, true); ret = hnae3_match_n_instantiate(client, ae_dev, true);
if (ret) if (ret)
dev_err(&ae_dev->pdev->dev, dev_err(&ae_dev->pdev->dev,
"match and instantiation failed\n"); "match and instantiation failed, ret = %d\n",
ret);
} }
} }
...@@ -271,7 +273,8 @@ void hnae3_register_ae_dev(struct hnae3_ae_dev *ae_dev) ...@@ -271,7 +273,8 @@ void hnae3_register_ae_dev(struct hnae3_ae_dev *ae_dev)
/* ae_dev init should set flag */ /* ae_dev init should set flag */
ret = ae_dev->ops->init_ae_dev(ae_dev); ret = ae_dev->ops->init_ae_dev(ae_dev);
if (ret) { if (ret) {
dev_err(&ae_dev->pdev->dev, "init ae_dev error\n"); dev_err(&ae_dev->pdev->dev,
"init ae_dev error, ret = %d\n", ret);
goto out_err; goto out_err;
} }
...@@ -286,7 +289,8 @@ void hnae3_register_ae_dev(struct hnae3_ae_dev *ae_dev) ...@@ -286,7 +289,8 @@ void hnae3_register_ae_dev(struct hnae3_ae_dev *ae_dev)
ret = hnae3_match_n_instantiate(client, ae_dev, true); ret = hnae3_match_n_instantiate(client, ae_dev, true);
if (ret) if (ret)
dev_err(&ae_dev->pdev->dev, dev_err(&ae_dev->pdev->dev,
"match and instantiation failed\n"); "match and instantiation failed, ret = %d\n",
ret);
} }
out_err: out_err:
......
...@@ -1917,7 +1917,7 @@ bool hns3_clean_tx_ring(struct hns3_enet_ring *ring, int budget) ...@@ -1917,7 +1917,7 @@ bool hns3_clean_tx_ring(struct hns3_enet_ring *ring, int budget)
if (is_ring_empty(ring) || head == ring->next_to_clean) if (is_ring_empty(ring) || head == ring->next_to_clean)
return true; /* no data to poll */ return true; /* no data to poll */
if (!is_valid_clean_head(ring, head)) { if (unlikely(!is_valid_clean_head(ring, head))) {
netdev_err(netdev, "wrong head (%d, %d-%d)\n", head, netdev_err(netdev, "wrong head (%d, %d-%d)\n", head,
ring->next_to_use, ring->next_to_clean); ring->next_to_use, ring->next_to_clean);
...@@ -2103,11 +2103,11 @@ static void hns3_rx_checksum(struct hns3_enet_ring *ring, struct sk_buff *skb, ...@@ -2103,11 +2103,11 @@ static void hns3_rx_checksum(struct hns3_enet_ring *ring, struct sk_buff *skb,
skb->csum_level = 1; skb->csum_level = 1;
case HNS3_OL4_TYPE_NO_TUN: case HNS3_OL4_TYPE_NO_TUN:
/* Can checksum ipv4 or ipv6 + UDP/TCP/SCTP packets */ /* Can checksum ipv4 or ipv6 + UDP/TCP/SCTP packets */
if (l3_type == HNS3_L3_TYPE_IPV4 || if ((l3_type == HNS3_L3_TYPE_IPV4 ||
(l3_type == HNS3_L3_TYPE_IPV6 && l3_type == HNS3_L3_TYPE_IPV6) &&
(l4_type == HNS3_L4_TYPE_UDP || (l4_type == HNS3_L4_TYPE_UDP ||
l4_type == HNS3_L4_TYPE_TCP || l4_type == HNS3_L4_TYPE_TCP ||
l4_type == HNS3_L4_TYPE_SCTP))) l4_type == HNS3_L4_TYPE_SCTP))
skb->ip_summed = CHECKSUM_UNNECESSARY; skb->ip_summed = CHECKSUM_UNNECESSARY;
break; break;
} }
...@@ -2174,7 +2174,7 @@ static int hns3_handle_rx_bd(struct hns3_enet_ring *ring, ...@@ -2174,7 +2174,7 @@ static int hns3_handle_rx_bd(struct hns3_enet_ring *ring,
bd_base_info = le32_to_cpu(desc->rx.bd_base_info); bd_base_info = le32_to_cpu(desc->rx.bd_base_info);
/* Check valid BD */ /* Check valid BD */
if (!hnae_get_bit(bd_base_info, HNS3_RXD_VLD_B)) if (unlikely(!hnae_get_bit(bd_base_info, HNS3_RXD_VLD_B)))
return -EFAULT; return -EFAULT;
va = (unsigned char *)desc_cb->buf + desc_cb->page_offset; va = (unsigned char *)desc_cb->buf + desc_cb->page_offset;
...@@ -2745,10 +2745,6 @@ static int hns3_nic_uninit_vector_data(struct hns3_nic_priv *priv) ...@@ -2745,10 +2745,6 @@ static int hns3_nic_uninit_vector_data(struct hns3_nic_priv *priv)
if (ret) if (ret)
return ret; return ret;
ret = h->ae_algo->ops->put_vector(h, tqp_vector->vector_irq);
if (ret)
return ret;
hns3_free_vector_ring_chain(tqp_vector, &vector_ring_chain); hns3_free_vector_ring_chain(tqp_vector, &vector_ring_chain);
if (priv->tqp_vector[i].irq_init_flag == HNS3_VECTOR_INITED) { if (priv->tqp_vector[i].irq_init_flag == HNS3_VECTOR_INITED) {
......
...@@ -123,9 +123,9 @@ static void hclge_cmd_config_regs(struct hclge_cmq_ring *ring) ...@@ -123,9 +123,9 @@ static void hclge_cmd_config_regs(struct hclge_cmq_ring *ring)
if (ring->flag == HCLGE_TYPE_CSQ) { if (ring->flag == HCLGE_TYPE_CSQ) {
hclge_write_dev(hw, HCLGE_NIC_CSQ_BASEADDR_L_REG, hclge_write_dev(hw, HCLGE_NIC_CSQ_BASEADDR_L_REG,
(u32)dma); lower_32_bits(dma));
hclge_write_dev(hw, HCLGE_NIC_CSQ_BASEADDR_H_REG, hclge_write_dev(hw, HCLGE_NIC_CSQ_BASEADDR_H_REG,
(u32)((dma >> 31) >> 1)); upper_32_bits(dma));
hclge_write_dev(hw, HCLGE_NIC_CSQ_DEPTH_REG, hclge_write_dev(hw, HCLGE_NIC_CSQ_DEPTH_REG,
(ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S) | (ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S) |
HCLGE_NIC_CMQ_ENABLE); HCLGE_NIC_CMQ_ENABLE);
...@@ -133,9 +133,9 @@ static void hclge_cmd_config_regs(struct hclge_cmq_ring *ring) ...@@ -133,9 +133,9 @@ static void hclge_cmd_config_regs(struct hclge_cmq_ring *ring)
hclge_write_dev(hw, HCLGE_NIC_CSQ_HEAD_REG, 0); hclge_write_dev(hw, HCLGE_NIC_CSQ_HEAD_REG, 0);
} else { } else {
hclge_write_dev(hw, HCLGE_NIC_CRQ_BASEADDR_L_REG, hclge_write_dev(hw, HCLGE_NIC_CRQ_BASEADDR_L_REG,
(u32)dma); lower_32_bits(dma));
hclge_write_dev(hw, HCLGE_NIC_CRQ_BASEADDR_H_REG, hclge_write_dev(hw, HCLGE_NIC_CRQ_BASEADDR_H_REG,
(u32)((dma >> 31) >> 1)); upper_32_bits(dma));
hclge_write_dev(hw, HCLGE_NIC_CRQ_DEPTH_REG, hclge_write_dev(hw, HCLGE_NIC_CRQ_DEPTH_REG,
(ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S) | (ring->desc_num >> HCLGE_NIC_CMQ_DESC_NUM_S) |
HCLGE_NIC_CMQ_ENABLE); HCLGE_NIC_CMQ_ENABLE);
...@@ -152,7 +152,7 @@ static void hclge_cmd_init_regs(struct hclge_hw *hw) ...@@ -152,7 +152,7 @@ static void hclge_cmd_init_regs(struct hclge_hw *hw)
static int hclge_cmd_csq_clean(struct hclge_hw *hw) static int hclge_cmd_csq_clean(struct hclge_hw *hw)
{ {
struct hclge_dev *hdev = (struct hclge_dev *)hw->back; struct hclge_dev *hdev = container_of(hw, struct hclge_dev, hw);
struct hclge_cmq_ring *csq = &hw->cmq.csq; struct hclge_cmq_ring *csq = &hw->cmq.csq;
u16 ntc = csq->next_to_clean; u16 ntc = csq->next_to_clean;
struct hclge_desc *desc; struct hclge_desc *desc;
...@@ -216,7 +216,7 @@ static bool hclge_is_special_opcode(u16 opcode) ...@@ -216,7 +216,7 @@ static bool hclge_is_special_opcode(u16 opcode)
**/ **/
int hclge_cmd_send(struct hclge_hw *hw, struct hclge_desc *desc, int num) int hclge_cmd_send(struct hclge_hw *hw, struct hclge_desc *desc, int num)
{ {
struct hclge_dev *hdev = (struct hclge_dev *)hw->back; struct hclge_dev *hdev = container_of(hw, struct hclge_dev, hw);
struct hclge_desc *desc_to_use; struct hclge_desc *desc_to_use;
bool complete = false; bool complete = false;
u32 timeout = 0; u32 timeout = 0;
......
...@@ -2614,6 +2614,12 @@ static irqreturn_t hclge_misc_irq_handle(int irq, void *data) ...@@ -2614,6 +2614,12 @@ static irqreturn_t hclge_misc_irq_handle(int irq, void *data)
static void hclge_free_vector(struct hclge_dev *hdev, int vector_id) static void hclge_free_vector(struct hclge_dev *hdev, int vector_id)
{ {
if (hdev->vector_status[vector_id] == HCLGE_INVALID_VPORT) {
dev_warn(&hdev->pdev->dev,
"vector(vector_id %d) has been freed.\n", vector_id);
return;
}
hdev->vector_status[vector_id] = HCLGE_INVALID_VPORT; hdev->vector_status[vector_id] = HCLGE_INVALID_VPORT;
hdev->num_msi_left += 1; hdev->num_msi_left += 1;
hdev->num_msi_used -= 1; hdev->num_msi_used -= 1;
...@@ -5531,7 +5537,6 @@ static int hclge_pci_init(struct hclge_dev *hdev) ...@@ -5531,7 +5537,6 @@ static int hclge_pci_init(struct hclge_dev *hdev)
pci_set_master(pdev); pci_set_master(pdev);
hw = &hdev->hw; hw = &hdev->hw;
hw->back = hdev;
hw->io_base = pcim_iomap(pdev, 2, 0); hw->io_base = pcim_iomap(pdev, 2, 0);
if (!hw->io_base) { if (!hw->io_base) {
dev_err(&pdev->dev, "Can't map configuration register space\n"); dev_err(&pdev->dev, "Can't map configuration register space\n");
...@@ -5562,6 +5567,30 @@ static void hclge_pci_uninit(struct hclge_dev *hdev) ...@@ -5562,6 +5567,30 @@ static void hclge_pci_uninit(struct hclge_dev *hdev)
pci_disable_device(pdev); pci_disable_device(pdev);
} }
static void hclge_state_init(struct hclge_dev *hdev)
{
set_bit(HCLGE_STATE_SERVICE_INITED, &hdev->state);
set_bit(HCLGE_STATE_DOWN, &hdev->state);
clear_bit(HCLGE_STATE_RST_SERVICE_SCHED, &hdev->state);
clear_bit(HCLGE_STATE_RST_HANDLING, &hdev->state);
clear_bit(HCLGE_STATE_MBX_SERVICE_SCHED, &hdev->state);
clear_bit(HCLGE_STATE_MBX_HANDLING, &hdev->state);
}
static void hclge_state_uninit(struct hclge_dev *hdev)
{
set_bit(HCLGE_STATE_DOWN, &hdev->state);
if (hdev->service_timer.function)
del_timer_sync(&hdev->service_timer);
if (hdev->service_task.func)
cancel_work_sync(&hdev->service_task);
if (hdev->rst_service_task.func)
cancel_work_sync(&hdev->rst_service_task);
if (hdev->mbx_service_task.func)
cancel_work_sync(&hdev->mbx_service_task);
}
static int hclge_init_ae_dev(struct hnae3_ae_dev *ae_dev) static int hclge_init_ae_dev(struct hnae3_ae_dev *ae_dev)
{ {
struct pci_dev *pdev = ae_dev->pdev; struct pci_dev *pdev = ae_dev->pdev;
...@@ -5702,12 +5731,7 @@ static int hclge_init_ae_dev(struct hnae3_ae_dev *ae_dev) ...@@ -5702,12 +5731,7 @@ static int hclge_init_ae_dev(struct hnae3_ae_dev *ae_dev)
/* Enable MISC vector(vector0) */ /* Enable MISC vector(vector0) */
hclge_enable_vector(&hdev->misc_vector, true); hclge_enable_vector(&hdev->misc_vector, true);
set_bit(HCLGE_STATE_SERVICE_INITED, &hdev->state); hclge_state_init(hdev);
set_bit(HCLGE_STATE_DOWN, &hdev->state);
clear_bit(HCLGE_STATE_RST_SERVICE_SCHED, &hdev->state);
clear_bit(HCLGE_STATE_RST_HANDLING, &hdev->state);
clear_bit(HCLGE_STATE_MBX_SERVICE_SCHED, &hdev->state);
clear_bit(HCLGE_STATE_MBX_HANDLING, &hdev->state);
pr_info("%s driver initialization finished.\n", HCLGE_DRIVER_NAME); pr_info("%s driver initialization finished.\n", HCLGE_DRIVER_NAME);
return 0; return 0;
...@@ -5812,16 +5836,7 @@ static void hclge_uninit_ae_dev(struct hnae3_ae_dev *ae_dev) ...@@ -5812,16 +5836,7 @@ static void hclge_uninit_ae_dev(struct hnae3_ae_dev *ae_dev)
struct hclge_dev *hdev = ae_dev->priv; struct hclge_dev *hdev = ae_dev->priv;
struct hclge_mac *mac = &hdev->hw.mac; struct hclge_mac *mac = &hdev->hw.mac;
set_bit(HCLGE_STATE_DOWN, &hdev->state); hclge_state_uninit(hdev);
if (hdev->service_timer.function)
del_timer_sync(&hdev->service_timer);
if (hdev->service_task.func)
cancel_work_sync(&hdev->service_task);
if (hdev->rst_service_task.func)
cancel_work_sync(&hdev->rst_service_task);
if (hdev->mbx_service_task.func)
cancel_work_sync(&hdev->mbx_service_task);
if (mac->phydev) if (mac->phydev)
mdiobus_unregister(mac->mdio_bus); mdiobus_unregister(mac->mdio_bus);
......
...@@ -190,7 +190,6 @@ struct hclge_hw { ...@@ -190,7 +190,6 @@ struct hclge_hw {
int num_vec; int num_vec;
struct hclge_cmq cmq; struct hclge_cmq cmq;
struct hclge_caps caps; struct hclge_caps caps;
void *back;
}; };
/* TQP stats */ /* TQP stats */
......
...@@ -330,6 +330,12 @@ static int hclgevf_set_handle_info(struct hclgevf_dev *hdev) ...@@ -330,6 +330,12 @@ static int hclgevf_set_handle_info(struct hclgevf_dev *hdev)
static void hclgevf_free_vector(struct hclgevf_dev *hdev, int vector_id) static void hclgevf_free_vector(struct hclgevf_dev *hdev, int vector_id)
{ {
if (hdev->vector_status[vector_id] == HCLGEVF_INVALID_VPORT) {
dev_warn(&hdev->pdev->dev,
"vector(vector_id %d) has been freed.\n", vector_id);
return;
}
hdev->vector_status[vector_id] = HCLGEVF_INVALID_VPORT; hdev->vector_status[vector_id] = HCLGEVF_INVALID_VPORT;
hdev->num_msi_left += 1; hdev->num_msi_left += 1;
hdev->num_msi_used -= 1; hdev->num_msi_used -= 1;
...@@ -547,24 +553,18 @@ static int hclgevf_get_tc_size(struct hnae3_handle *handle) ...@@ -547,24 +553,18 @@ static int hclgevf_get_tc_size(struct hnae3_handle *handle)
} }
static int hclgevf_bind_ring_to_vector(struct hnae3_handle *handle, bool en, static int hclgevf_bind_ring_to_vector(struct hnae3_handle *handle, bool en,
int vector, int vector_id,
struct hnae3_ring_chain_node *ring_chain) struct hnae3_ring_chain_node *ring_chain)
{ {
struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle); struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
struct hnae3_ring_chain_node *node; struct hnae3_ring_chain_node *node;
struct hclge_mbx_vf_to_pf_cmd *req; struct hclge_mbx_vf_to_pf_cmd *req;
struct hclgevf_desc desc; struct hclgevf_desc desc;
int i = 0, vector_id; int i = 0;
int status; int status;
u8 type; u8 type;
req = (struct hclge_mbx_vf_to_pf_cmd *)desc.data; req = (struct hclge_mbx_vf_to_pf_cmd *)desc.data;
vector_id = hclgevf_get_vector_index(hdev, vector);
if (vector_id < 0) {
dev_err(&handle->pdev->dev,
"Get vector index fail. ret =%d\n", vector_id);
return vector_id;
}
for (node = ring_chain; node; node = node->next) { for (node = ring_chain; node; node = node->next) {
int idx_offset = HCLGE_MBX_RING_MAP_BASIC_MSG_NUM + int idx_offset = HCLGE_MBX_RING_MAP_BASIC_MSG_NUM +
...@@ -617,7 +617,17 @@ static int hclgevf_bind_ring_to_vector(struct hnae3_handle *handle, bool en, ...@@ -617,7 +617,17 @@ static int hclgevf_bind_ring_to_vector(struct hnae3_handle *handle, bool en,
static int hclgevf_map_ring_to_vector(struct hnae3_handle *handle, int vector, static int hclgevf_map_ring_to_vector(struct hnae3_handle *handle, int vector,
struct hnae3_ring_chain_node *ring_chain) struct hnae3_ring_chain_node *ring_chain)
{ {
return hclgevf_bind_ring_to_vector(handle, true, vector, ring_chain); struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
int vector_id;
vector_id = hclgevf_get_vector_index(hdev, vector);
if (vector_id < 0) {
dev_err(&handle->pdev->dev,
"Get vector index fail. ret =%d\n", vector_id);
return vector_id;
}
return hclgevf_bind_ring_to_vector(handle, true, vector_id, ring_chain);
} }
static int hclgevf_unmap_ring_from_vector( static int hclgevf_unmap_ring_from_vector(
...@@ -635,7 +645,7 @@ static int hclgevf_unmap_ring_from_vector( ...@@ -635,7 +645,7 @@ static int hclgevf_unmap_ring_from_vector(
return vector_id; return vector_id;
} }
ret = hclgevf_bind_ring_to_vector(handle, false, vector, ring_chain); ret = hclgevf_bind_ring_to_vector(handle, false, vector_id, ring_chain);
if (ret) if (ret)
dev_err(&handle->pdev->dev, dev_err(&handle->pdev->dev,
"Unmap ring from vector fail. vector=%d, ret =%d\n", "Unmap ring from vector fail. vector=%d, ret =%d\n",
...@@ -1582,9 +1592,10 @@ static void hclgevf_misc_irq_uninit(struct hclgevf_dev *hdev) ...@@ -1582,9 +1592,10 @@ static void hclgevf_misc_irq_uninit(struct hclgevf_dev *hdev)
hclgevf_free_vector(hdev, 0); hclgevf_free_vector(hdev, 0);
} }
static int hclgevf_init_instance(struct hclgevf_dev *hdev, static int hclgevf_init_client_instance(struct hnae3_client *client,
struct hnae3_client *client) struct hnae3_ae_dev *ae_dev)
{ {
struct hclgevf_dev *hdev = ae_dev->priv;
int ret; int ret;
switch (client->type) { switch (client->type) {
...@@ -1635,9 +1646,11 @@ static int hclgevf_init_instance(struct hclgevf_dev *hdev, ...@@ -1635,9 +1646,11 @@ static int hclgevf_init_instance(struct hclgevf_dev *hdev,
return 0; return 0;
} }
static void hclgevf_uninit_instance(struct hclgevf_dev *hdev, static void hclgevf_uninit_client_instance(struct hnae3_client *client,
struct hnae3_client *client) struct hnae3_ae_dev *ae_dev)
{ {
struct hclgevf_dev *hdev = ae_dev->priv;
/* un-init roce, if it exists */ /* un-init roce, if it exists */
if (hdev->roce_client) if (hdev->roce_client)
hdev->roce_client->ops->uninit_instance(&hdev->roce, 0); hdev->roce_client->ops->uninit_instance(&hdev->roce, 0);
...@@ -1648,22 +1661,6 @@ static void hclgevf_uninit_instance(struct hclgevf_dev *hdev, ...@@ -1648,22 +1661,6 @@ static void hclgevf_uninit_instance(struct hclgevf_dev *hdev,
client->ops->uninit_instance(&hdev->nic, 0); client->ops->uninit_instance(&hdev->nic, 0);
} }
static int hclgevf_register_client(struct hnae3_client *client,
struct hnae3_ae_dev *ae_dev)
{
struct hclgevf_dev *hdev = ae_dev->priv;
return hclgevf_init_instance(hdev, client);
}
static void hclgevf_unregister_client(struct hnae3_client *client,
struct hnae3_ae_dev *ae_dev)
{
struct hclgevf_dev *hdev = ae_dev->priv;
hclgevf_uninit_instance(hdev, client);
}
static int hclgevf_pci_init(struct hclgevf_dev *hdev) static int hclgevf_pci_init(struct hclgevf_dev *hdev)
{ {
struct pci_dev *pdev = hdev->pdev; struct pci_dev *pdev = hdev->pdev;
...@@ -1924,8 +1921,8 @@ void hclgevf_update_speed_duplex(struct hclgevf_dev *hdev, u32 speed, ...@@ -1924,8 +1921,8 @@ void hclgevf_update_speed_duplex(struct hclgevf_dev *hdev, u32 speed,
static const struct hnae3_ae_ops hclgevf_ops = { static const struct hnae3_ae_ops hclgevf_ops = {
.init_ae_dev = hclgevf_init_ae_dev, .init_ae_dev = hclgevf_init_ae_dev,
.uninit_ae_dev = hclgevf_uninit_ae_dev, .uninit_ae_dev = hclgevf_uninit_ae_dev,
.init_client_instance = hclgevf_register_client, .init_client_instance = hclgevf_init_client_instance,
.uninit_client_instance = hclgevf_unregister_client, .uninit_client_instance = hclgevf_uninit_client_instance,
.start = hclgevf_ae_start, .start = hclgevf_ae_start,
.stop = hclgevf_ae_stop, .stop = hclgevf_ae_stop,
.map_ring_to_vector = hclgevf_map_ring_to_vector, .map_ring_to_vector = hclgevf_map_ring_to_vector,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment