diff options
author | Yunsheng Lin <linyunsheng@huawei.com> | 2018-11-18 03:19:13 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-17 21:57:29 -0800 |
commit | 818f167587f402aedcf406ba57d0caff739dcad8 (patch) | |
tree | 33351e1c75a44ea5c272c7e0d5fa1511c4570c29 /drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | |
parent | a6d818e31d08bae09c417e579c4a39cf3d6dde2e (diff) |
net: hns3: Add mtu setting support for vf
The patch adds mtu setting support for vf, currently
vf and pf share the same hardware mtu setting. Mtu set
by vf must be less than or equal to pf' mtu, and mtu
set by pf must be greater than or equal to vf' mtu.
Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c')
-rw-r--r-- | drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c index b64f4424837d..e16a730a5f54 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c @@ -401,6 +401,18 @@ static void hclge_vf_keep_alive(struct hclge_vport *vport, vport->last_active_jiffies = jiffies; } +static int hclge_set_vf_mtu(struct hclge_vport *vport, + struct hclge_mbx_vf_to_pf_cmd *mbx_req) +{ + int ret; + u32 mtu; + + memcpy(&mtu, &mbx_req->msg[2], sizeof(mtu)); + ret = hclge_set_vport_mtu(vport, mtu); + + return hclge_gen_resp_to_vf(vport, mbx_req, ret, NULL, 0); +} + static bool hclge_cmd_crq_empty(struct hclge_hw *hw) { u32 tail = hclge_read_dev(hw, HCLGE_NIC_CRQ_TAIL_REG); @@ -515,6 +527,12 @@ void hclge_mbx_handler(struct hclge_dev *hdev) case HCLGE_MBX_KEEP_ALIVE: hclge_vf_keep_alive(vport, req); break; + case HCLGE_MBX_SET_MTU: + ret = hclge_set_vf_mtu(vport, req); + if (ret) + dev_err(&hdev->pdev->dev, + "VF fail(%d) to set mtu\n", ret); + break; default: dev_err(&hdev->pdev->dev, "un-supported mailbox message, code = %d\n", |