RE: [EXTERNAL] [PATCH net-next v03 1/1] hinic3: module initialization and tx/rx logic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> >+static void hinic3_link_status_change(struct net_device *netdev, bool
> >link_status_up)
> >+{
> >+	struct hinic3_nic_dev *nic_dev =3D netdev_priv(netdev);
> >+
> >+	if (!HINIC3_CHANNEL_RES_VALID(nic_dev))
> >+		return;
> >+
> >+	if (link_status_up) {
> >+		if (netif_carrier_ok(netdev))
> >+			return;
> >+
> >+		nic_dev->link_status_up =3D true;
> >+		netif_carrier_on(netdev);

> [Suman] don't we need to call netif_tx_start_all_queues as well?=20

No, netif_tx_start/stop_all_queues should be called in ndo_open/close.
Carrier status change event does not start/stop tx queues.

> >+		netdev_dbg(netdev, "Link is up\n");
> >+	} else {
> >+		if (!netif_carrier_ok(netdev))
> >+			return;
> >+
> >+		nic_dev->link_status_up =3D false;
> >+		netif_carrier_off(netdev);

> [Suman] don't we need to call netif_tx_stop_all_queues as well?

Same.

> >+		netdev_dbg(netdev, "Link is down\n");
> >+	}
> >+}
> >+




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux