提交 0580b53f 编写于 作者: D David S. Miller

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: NDavid S. Miller <davem@davemloft.net>
...@@ -24,8 +24,6 @@ ...@@ -24,8 +24,6 @@
#include "cn23xx_pf_regs.h" #include "cn23xx_pf_regs.h"
#define LIO_CMD_WAIT_TM 100
/* Register address and configuration for a CN23XX devices. /* Register address and configuration for a CN23XX devices.
* If device specific changes need to be made then add a struct to include * If device specific changes need to be made then add a struct to include
* device specific fields as shown in the commented section * device specific fields as shown in the commented section
......
...@@ -1544,14 +1544,31 @@ static struct net_device_stats *liquidio_get_stats(struct net_device *netdev) ...@@ -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) 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", nctrl.ncmd.u64 = 0;
netdev->mtu, new_mtu); 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; return 0;
} }
......
...@@ -237,6 +237,8 @@ static inline void add_sg_size(struct octeon_sg_entry *sg_entry, ...@@ -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_ENABLE 0x1
#define OCTNET_CMD_VLAN_FILTER_DISABLE 0x0 #define OCTNET_CMD_VLAN_FILTER_DISABLE 0x0
#define LIO_CMD_WAIT_TM 100
/* RX(packets coming from wire) Checksum verification flags */ /* RX(packets coming from wire) Checksum verification flags */
/* TCP/UDP csum */ /* TCP/UDP csum */
#define CNNIC_L4SUM_VERIFIED 0x1 #define CNNIC_L4SUM_VERIFIED 0x1
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册