Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0580b53f authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'liquidio-VF-driver-will-notify-NIC-firmware-of-MTU-change'



Veerasenareddy Burru says:

====================
liquidio: VF driver will notify NIC firmware of MTU change

Make VF driver notify NIC firmware of MTU change.  Firmware needs this
information for MTU propagation and enforcement.

The first patch in this series moves a macro definition to a proper place
to prevent a build error in the second patch which has the code that sends
the notification.

Change Log:
  V1 -> V2
    * Add "From:" line to patch #1 and #2 to give credit to the author.
    * In patch #2, order local variable declarations from longest to
      shortest line.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 7d47e9a2 ee5b1fac
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -24,8 +24,6 @@

#include "cn23xx_pf_regs.h"

#define LIO_CMD_WAIT_TM 100

/* Register address and configuration for a CN23XX devices.
 * If device specific changes need to be made then add a struct to include
 * device specific fields as shown in the commented section
+22 −5
Original line number Diff line number Diff line
@@ -1544,14 +1544,31 @@ static struct net_device_stats *liquidio_get_stats(struct net_device *netdev)
 */
static int liquidio_change_mtu(struct net_device *netdev, int new_mtu)
{
	struct lio *lio = GET_LIO(netdev);
	struct octnic_ctrl_pkt nctrl;
	struct octeon_device *oct;
	struct lio *lio;
	int ret = 0;

	lio->mtu = new_mtu;
	lio = GET_LIO(netdev);
	oct = lio->oct_dev;

	memset(&nctrl, 0, sizeof(struct octnic_ctrl_pkt));

	netif_info(lio, probe, lio->netdev, "MTU Changed from %d to %d\n",
		   netdev->mtu, new_mtu);
	nctrl.ncmd.u64 = 0;
	nctrl.ncmd.s.cmd = OCTNET_CMD_CHANGE_MTU;
	nctrl.ncmd.s.param1 = new_mtu;
	nctrl.iq_no = lio->linfo.txpciq[0].s.q_no;
	nctrl.wait_time = LIO_CMD_WAIT_TM;
	nctrl.netpndev = (u64)netdev;
	nctrl.cb_fn = liquidio_link_ctrl_cmd_completion;

	ret = octnet_send_nic_ctrl_pkt(lio->oct_dev, &nctrl);
	if (ret < 0) {
		dev_err(&oct->pci_dev->dev, "Failed to set MTU\n");
		return -EIO;
	}

	netdev->mtu = new_mtu;
	lio->mtu = new_mtu;

	return 0;
}
+2 −0
Original line number Diff line number Diff line
@@ -237,6 +237,8 @@ static inline void add_sg_size(struct octeon_sg_entry *sg_entry,
#define   OCTNET_CMD_VLAN_FILTER_ENABLE 0x1
#define   OCTNET_CMD_VLAN_FILTER_DISABLE 0x0

#define   LIO_CMD_WAIT_TM 100

/* RX(packets coming from wire) Checksum verification flags */
/* TCP/UDP csum */
#define   CNNIC_L4SUM_VERIFIED             0x1