From: Yisen Zhuang <Yisen.Zhuang@huawei.com>
To: <davem@davemloft.net>
Cc: <yankejian@huawei.com>, <huangdaode@hisilicon.com>,
<salil.mehta@huawei.com>, <lisheng011@huawei.com>,
<lipeng321@huawei.com>, <liguozhu@huawei.com>, <arnd@arndb.de>,
<sergei.shtylyov@cogentembedded.com>, <xieqianqian@huawei.com>,
<andrew@lunn.ch>, <ivecera@redhat.com>, <netdev@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <linuxarm@huawei.com>
Subject: [PATCH V2 net 08/10] net: hns: fix the bug about mtu setting
Date: Tue, 22 Mar 2016 16:06:29 +0800 [thread overview]
Message-ID: <1458633991-64313-9-git-send-email-Yisen.Zhuang@huawei.com> (raw)
In-Reply-To: <1458633991-64313-1-git-send-email-Yisen.Zhuang@huawei.com>
From: Kejian Yan <yankejian@huawei.com>
In chip V1, the maximum mtu value is 9600. But in chip V2, it is 9728.
And it is always configurates as 9600 before this patch.
Signed-off-by: Kejian Yan <yankejian@huawei.com>
Signed-off-by: Yisen Zhuang <Yisen.Zhuang@huawei.com>
---
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 4 +++-
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h | 1 +
drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c | 3 +++
drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.h | 2 ++
4 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
index 138737d..50237fb 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
@@ -467,8 +467,10 @@ int hns_mac_set_mtu(struct hns_mac_cb *mac_cb, u32 new_mtu)
struct mac_driver *drv = hns_mac_get_drv(mac_cb);
u32 buf_size = mac_cb->dsaf_dev->buf_size;
u32 new_frm = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
+ u32 max_frm = AE_IS_VER1(mac_cb->dsaf_dev->dsaf_ver) ?
+ MAC_MAX_MTU : MAC_MAX_MTU_V2;
- if ((new_mtu < MAC_MIN_MTU) || (new_frm > MAC_MAX_MTU) ||
+ if ((new_mtu < MAC_MIN_MTU) || (new_frm > max_frm) ||
(new_frm > HNS_RCB_RING_MAX_BD_PER_PKT * buf_size))
return -EINVAL;
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
index 0f60968..7b47701 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.h
@@ -26,6 +26,7 @@ struct dsaf_device;
#define MAC_DEFAULT_MTU (ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN + ETH_DATA_LEN)
#define MAC_MAX_MTU 9600
+#define MAC_MAX_MTU_V2 9728
#define MAC_MIN_MTU 68
#define MAC_DEFAULT_PAUSE_TIME 0xff
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
index 06422c2..5b7ae5f 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
@@ -343,6 +343,9 @@ static void hns_ppe_init_hw(struct hns_ppe_cb *ppe_cb)
if (!AE_IS_VER1(dsaf_dev->dsaf_ver)) {
hns_ppe_set_vlan_strip(ppe_cb, 0);
+ dsaf_write_dev(ppe_cb, PPE_CFG_MAX_FRAME_LEN_REG,
+ HNS_PPEV2_MAX_FRAME_LEN);
+
/* set default RSS key in h/w */
hns_ppe_set_rss_key(ppe_cb, ppe_cb->rss_key);
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.h b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.h
index 0f5cb69..e9c0ec2 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.h
@@ -30,6 +30,8 @@
#define HNS_PPEV2_RSS_KEY_SIZE 40 /* in bytes or 320 bits */
#define HNS_PPEV2_RSS_KEY_NUM (HNS_PPEV2_RSS_KEY_SIZE / sizeof(u32))
+#define HNS_PPEV2_MAX_FRAME_LEN 0X980
+
enum ppe_qid_mode {
PPE_QID_MODE0 = 0, /* fixed queue id mode */
PPE_QID_MODE1, /* switch:128VM non switch:6Port/4VM/4TC */
--
1.9.1
next prev parent reply other threads:[~2016-03-22 7:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-22 8:06 [PATCH V2 net 00/10] net: hns: bugs fixed for hns Yisen Zhuang
2016-03-22 8:06 ` [PATCH V2 net 01/10] net: hns: bug fix about ping6 Yisen Zhuang
2016-03-22 8:06 ` [PATCH V2 net 02/10] net: hns: fixed portid bug in sending manage pkt Yisen Zhuang
2016-03-22 8:06 ` [PATCH V2 net 03/10] net: hns: add uc match for debug ports Yisen Zhuang
2016-03-22 8:06 ` [PATCH V2 net 04/10] net: hns: fixed the bug about GMACs mac setting Yisen Zhuang
2016-03-22 8:06 ` [PATCH V2 net 05/10] net: hns: set xge statistic reg as read only Yisen Zhuang
2016-03-22 8:06 ` [PATCH V2 net 06/10] net: hns: fix return value of the function about rss Yisen Zhuang
2016-03-22 8:06 ` [PATCH V2 net 07/10] net: hns: fixes a bug of RSS Yisen Zhuang
2016-03-22 8:06 ` Yisen Zhuang [this message]
2016-03-22 8:06 ` [PATCH V2 net 09/10] net: hns: adds limitation for debug port mtu Yisen Zhuang
2016-03-22 8:06 ` [PATCH V2 net 10/10] net: hns: bug fix about the overflow of mss Yisen Zhuang
2016-03-22 19:50 ` [PATCH V2 net 00/10] net: hns: bugs fixed for hns David Miller
Reply instructions:
You may reply publicly 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=1458633991-64313-9-git-send-email-Yisen.Zhuang@huawei.com \
--to=yisen.zhuang@huawei.com \
--cc=andrew@lunn.ch \
--cc=arnd@arndb.de \
--cc=davem@davemloft.net \
--cc=huangdaode@hisilicon.com \
--cc=ivecera@redhat.com \
--cc=liguozhu@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=lipeng321@huawei.com \
--cc=lisheng011@huawei.com \
--cc=netdev@vger.kernel.org \
--cc=salil.mehta@huawei.com \
--cc=sergei.shtylyov@cogentembedded.com \
--cc=xieqianqian@huawei.com \
--cc=yankejian@huawei.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®