net: hns3: optimization for CMDQ uninitialization
When uninitializing CMDQ, HCLGE_STATE_CMD_DISABLE will be set up firstly, then the driver does not send command anymore. So, hclge_free_cmd_desc can be called without holding ring->lock. hclge_destroy_cmd_queue() and hclge_destroy_queue() are unnecessary now, so removes them, the VF driver has implemented currently. BTW, the VF driver should set up HCLGEVF_STATE_CMD_DISABLE as well in the hclgevf_cmd_uninit(), just likes what the PF driver does. Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
31c92cceca
commit
a3374d7d33
@ -479,19 +479,6 @@ static void hclge_cmd_uninit_regs(struct hclge_hw *hw)
|
||||
hclge_write_dev(hw, HCLGE_NIC_CRQ_TAIL_REG, 0);
|
||||
}
|
||||
|
||||
static void hclge_destroy_queue(struct hclge_cmq_ring *ring)
|
||||
{
|
||||
spin_lock(&ring->lock);
|
||||
hclge_free_cmd_desc(ring);
|
||||
spin_unlock(&ring->lock);
|
||||
}
|
||||
|
||||
static void hclge_destroy_cmd_queue(struct hclge_hw *hw)
|
||||
{
|
||||
hclge_destroy_queue(&hw->cmq.csq);
|
||||
hclge_destroy_queue(&hw->cmq.crq);
|
||||
}
|
||||
|
||||
void hclge_cmd_uninit(struct hclge_dev *hdev)
|
||||
{
|
||||
spin_lock_bh(&hdev->hw.cmq.csq.lock);
|
||||
@ -501,5 +488,6 @@ void hclge_cmd_uninit(struct hclge_dev *hdev)
|
||||
spin_unlock(&hdev->hw.cmq.crq.lock);
|
||||
spin_unlock_bh(&hdev->hw.cmq.csq.lock);
|
||||
|
||||
hclge_destroy_cmd_queue(&hdev->hw);
|
||||
hclge_free_cmd_desc(&hdev->hw.cmq.csq);
|
||||
hclge_free_cmd_desc(&hdev->hw.cmq.crq);
|
||||
}
|
||||
|
@ -443,7 +443,7 @@ void hclgevf_cmd_uninit(struct hclgevf_dev *hdev)
|
||||
{
|
||||
spin_lock_bh(&hdev->hw.cmq.csq.lock);
|
||||
spin_lock(&hdev->hw.cmq.crq.lock);
|
||||
clear_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state);
|
||||
set_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state);
|
||||
hclgevf_cmd_uninit_regs(&hdev->hw);
|
||||
spin_unlock(&hdev->hw.cmq.crq.lock);
|
||||
spin_unlock_bh(&hdev->hw.cmq.csq.lock);
|
||||
|
Loading…
Reference in New Issue
Block a user