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:   Sat, 29 Jul 2017 01:24:28 +0200
From:   Andrew Lunn <andrew@...n.ch>
To:     Salil Mehta <salil.mehta@...wei.com>
Cc:     davem@...emloft.net, yisen.zhuang@...wei.com,
        huangdaode@...ilicon.com, lipeng321@...wei.com,
        mehta.salil.lnk@...il.com, netdev@...r.kernel.org,
        linux-kernel@...r.kernel.org, linux-rdma@...r.kernel.org,
        linuxarm@...wei.com
Subject: Re: [PATCH V5 net-next 6/8] net: hns3: Add MDIO support to HNS3
 Ethernet driver for hip08 SoC

> +static void hclge_mac_adjust_link(struct net_device *netdev)
> +{
> +	struct hnae3_handle *h = *((void **)netdev_priv(netdev));
> +	struct hclge_vport *vport = hclge_get_vport(h);
> +	struct hclge_dev *hdev = vport->back;
> +	int duplex, speed;
> +	int ret;
> +
> +	speed = netdev->phydev->speed;
> +	duplex = netdev->phydev->duplex;
> +
> +	ret = hclge_cfg_mac_speed_dup(hdev, speed, duplex);
> +	if (ret)
> +		dev_err(&hdev->pdev->dev, "adjust link fail.\n");

Here and hclge_mac_start_phy() you have a netdev, so you should be
using netdev_err()

> +}
> +
> +int hclge_mac_start_phy(struct hclge_dev *hdev)
> +{
> +	struct net_device *netdev = hdev->vport[0].nic.netdev;
> +	struct phy_device *phydev = hdev->hw.mac.phydev;
> +	int ret;
> +
> +	if (!phydev)
> +		return 0;
> +
> +	ret = phy_connect_direct(netdev, phydev,
> +				 hclge_mac_adjust_link,
> +				 PHY_INTERFACE_MODE_SGMII);
> +	if (ret) {
> +		pr_info("phy_connect_direct err");
> +		return ret;

netdev_err(). checkpatch probably gave you a warning about this?

> +	}
> +
> +	phy_start(phydev);
> +
> +	return 0;
> +}
> +
> +void hclge_mac_stop_phy(struct hclge_dev *hdev)
> +{
> +	struct net_device *netdev = hdev->vport[0].nic.netdev;
> +	struct phy_device *phydev = netdev->phydev;
> +
> +	phy_stop(phydev);
> +	phy_disconnect(phydev);
> +}

In hclge_mac_start_phy() you check for !phydev. Here you
unconditionally use phydev. Seems inconsistent.

	Andrew

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ