lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 12 Oct 2022 17:25:21 +0800
From:   shaozhengchao <shaozhengchao@...wei.com>
To:     Cai Huoqing <cai.huoqing@...ux.dev>, <leonro@...dia.com>
CC:     caihuoqing <caihuoqing@...du.com>,
        "David S. Miller" <davem@...emloft.net>,
        Eric Dumazet <edumazet@...gle.com>,
        Jakub Kicinski <kuba@...nel.org>,
        Paolo Abeni <pabeni@...hat.com>,
        Qiao Ma <mqaio@...ux.alibaba.com>,
        Christophe JAILLET <christophe.jaillet@...adoo.fr>,
        "Gustavo A. R. Silva" <gustavoars@...nel.org>,
        <netdev@...r.kernel.org>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] net: hinic: Update the range of MTU from 256 to 9600



On 2022/10/12 16:29, Cai Huoqing wrote:
> From: caihuoqing <caihuoqing@...du.com>
> 
> Hinic hardware only support MTU from 256 to 9600, so set
> the max_mtu and min_mtu.
> 
> And not need to add the validity judgment when set mtu,
> because the judgment is made in net/core: dev_validate_mtu
> 
> Signed-off-by: caihuoqing <caihuoqing@...du.com>
> ---
>   drivers/net/ethernet/huawei/hinic/hinic_dev.h  |  3 +++
>   drivers/net/ethernet/huawei/hinic/hinic_main.c |  3 ++-
>   drivers/net/ethernet/huawei/hinic/hinic_port.c | 17 +----------------
>   3 files changed, 6 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/net/ethernet/huawei/hinic/hinic_dev.h b/drivers/net/ethernet/huawei/hinic/hinic_dev.h
> index a4fbf44f944c..2bbc94c0a9c1 100644
> --- a/drivers/net/ethernet/huawei/hinic/hinic_dev.h
> +++ b/drivers/net/ethernet/huawei/hinic/hinic_dev.h
> @@ -22,6 +22,9 @@
>   
>   #define LP_PKT_CNT		64
>   
> +#define HINIC_MAX_MTU_SIZE		9600
> +#define HINIC_MIN_MTU_SIZE		256
> +
>   enum hinic_flags {
>   	HINIC_LINK_UP = BIT(0),
>   	HINIC_INTF_UP = BIT(1),
> diff --git a/drivers/net/ethernet/huawei/hinic/hinic_main.c b/drivers/net/ethernet/huawei/hinic/hinic_main.c
> index c23ee2ddbce3..41e52f775aae 100644
> --- a/drivers/net/ethernet/huawei/hinic/hinic_main.c
> +++ b/drivers/net/ethernet/huawei/hinic/hinic_main.c
> @@ -1189,7 +1189,8 @@ static int nic_dev_init(struct pci_dev *pdev)
>   	else
>   		netdev->netdev_ops = &hinicvf_netdev_ops;
>   
> -	netdev->max_mtu = ETH_MAX_MTU;
> +	netdev->max_mtu = HINIC_MAX_MTU_SIZE;
> +	netdev->min_mtu = HINIC_MIN_MTU_SIZE;
>   
>   	nic_dev = netdev_priv(netdev);
>   	nic_dev->netdev = netdev;
> diff --git a/drivers/net/ethernet/huawei/hinic/hinic_port.c b/drivers/net/ethernet/huawei/hinic/hinic_port.c
> index 28ae6f1201a8..0a39c3dffa9a 100644
> --- a/drivers/net/ethernet/huawei/hinic/hinic_port.c
> +++ b/drivers/net/ethernet/huawei/hinic/hinic_port.c
> @@ -17,9 +17,6 @@
>   #include "hinic_port.h"
>   #include "hinic_dev.h"
>   
> -#define HINIC_MIN_MTU_SIZE              256
> -#define HINIC_MAX_JUMBO_FRAME_SIZE      15872
> -
>   enum mac_op {
>   	MAC_DEL,
>   	MAC_SET,
> @@ -147,24 +144,12 @@ int hinic_port_get_mac(struct hinic_dev *nic_dev, u8 *addr)
>    **/
>   int hinic_port_set_mtu(struct hinic_dev *nic_dev, int new_mtu)
>   {
> -	struct net_device *netdev = nic_dev->netdev;
>   	struct hinic_hwdev *hwdev = nic_dev->hwdev;
>   	struct hinic_port_mtu_cmd port_mtu_cmd;
>   	struct hinic_hwif *hwif = hwdev->hwif;
>   	u16 out_size = sizeof(port_mtu_cmd);
>   	struct pci_dev *pdev = hwif->pdev;
> -	int err, max_frame;
> -
> -	if (new_mtu < HINIC_MIN_MTU_SIZE) {
> -		netif_err(nic_dev, drv, netdev, "mtu < MIN MTU size");
> -		return -EINVAL;
> -	}
> -
> -	max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN;
> -	if (max_frame > HINIC_MAX_JUMBO_FRAME_SIZE) {
> -		netif_err(nic_dev, drv, netdev, "mtu > MAX MTU size");
> -		return -EINVAL;
> -	}
> +	int err;
>   
>   	port_mtu_cmd.func_idx = HINIC_HWIF_FUNC_IDX(hwif);
>   	port_mtu_cmd.mtu = new_mtu;

Hi Cai:
	You cannot change the maximum supported jumbo frame size.
Because as far as I know, this is not compatible with the older
firmware version. If you change the maximum MTU, the maximum length
of packets received by the port will be affected with older fw. So
donot change it.

Zhengchao Shao

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ