mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 01:26:42 +07:00
net: hns3: simplify hclge_cmd_csq_clean
csq is used as a ring buffer, the value of the desc will be replaced in next use. This patch removes the unnecessary memset, and just updates the next_to_clean. Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: Peng Li <lipeng321@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
043fa454f4
commit
1c1270da47
@ -151,31 +151,20 @@ static int hclge_cmd_csq_clean(struct hclge_hw *hw)
|
||||
{
|
||||
struct hclge_dev *hdev = container_of(hw, struct hclge_dev, hw);
|
||||
struct hclge_cmq_ring *csq = &hw->cmq.csq;
|
||||
u16 ntc = csq->next_to_clean;
|
||||
struct hclge_desc *desc;
|
||||
int clean = 0;
|
||||
u32 head;
|
||||
int clean;
|
||||
|
||||
desc = &csq->desc[ntc];
|
||||
head = hclge_read_dev(hw, HCLGE_NIC_CSQ_HEAD_REG);
|
||||
rmb(); /* Make sure head is ready before touch any data */
|
||||
|
||||
if (!is_valid_csq_clean_head(csq, head)) {
|
||||
dev_warn(&hdev->pdev->dev, "wrong head (%d, %d-%d)\n", head,
|
||||
csq->next_to_use, csq->next_to_clean);
|
||||
dev_warn(&hdev->pdev->dev, "wrong cmd head (%d, %d-%d)\n", head,
|
||||
csq->next_to_use, csq->next_to_clean);
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (head != ntc) {
|
||||
memset(desc, 0, sizeof(*desc));
|
||||
ntc++;
|
||||
if (ntc == csq->desc_num)
|
||||
ntc = 0;
|
||||
desc = &csq->desc[ntc];
|
||||
clean++;
|
||||
}
|
||||
csq->next_to_clean = ntc;
|
||||
|
||||
clean = (head - csq->next_to_clean + csq->desc_num) % csq->desc_num;
|
||||
csq->next_to_clean = head;
|
||||
return clean;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user