]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
staging: fsl-dpaa2/eth: Remove Rx frame size check
authorIoana Radulescu <ruxandra.radulescu@nxp.com>
Mon, 9 Jul 2018 15:01:11 +0000 (10:01 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 10 Jul 2018 10:32:35 +0000 (12:32 +0200)
Most Ethernet drivers don't enforce the MTU value as upper limit
for ingress frames. We too support receiving frames larger than
MTU, so allow that.

Remove our ndo_change_mtu implementation, letting the default
stack implementation handle things. Also, set the max frame length
allowed by hardware only once at probe time, with the largest
possible value.

Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c

index 24e069c574b0226605224a864cd414178a001ca7..4ae2371940bc992ff501d7cbb26013e4c30f5206 100644 (file)
@@ -1243,25 +1243,6 @@ static void dpaa2_eth_get_stats(struct net_device *net_dev,
        }
 }
 
-static int dpaa2_eth_change_mtu(struct net_device *net_dev, int mtu)
-{
-       struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
-       int err;
-
-       /* Set the maximum Rx frame length to match the transmit side;
-        * account for L2 headers when computing the MFL
-        */
-       err = dpni_set_max_frame_length(priv->mc_io, 0, priv->mc_token,
-                                       (u16)DPAA2_ETH_L2_MAX_FRM(mtu));
-       if (err) {
-               netdev_err(net_dev, "dpni_set_max_frame_length() failed\n");
-               return err;
-       }
-
-       net_dev->mtu = mtu;
-       return 0;
-}
-
 /* Copy mac unicast addresses from @net_dev to @priv.
  * Its sole purpose is to make dpaa2_eth_set_rx_mode() more readable.
  */
@@ -1469,7 +1450,6 @@ static const struct net_device_ops dpaa2_eth_ops = {
        .ndo_init = dpaa2_eth_init,
        .ndo_set_mac_address = dpaa2_eth_set_addr,
        .ndo_get_stats64 = dpaa2_eth_get_stats,
-       .ndo_change_mtu = dpaa2_eth_change_mtu,
        .ndo_set_rx_mode = dpaa2_eth_set_rx_mode,
        .ndo_set_features = dpaa2_eth_set_features,
        .ndo_do_ioctl = dpaa2_eth_ioctl,
@@ -2385,6 +2365,12 @@ static int netdev_init(struct net_device *net_dev)
 
        /* Set MTU upper limit; lower limit is 68B (default value) */
        net_dev->max_mtu = DPAA2_ETH_MAX_MTU;
+       err = dpni_set_max_frame_length(priv->mc_io, 0, priv->mc_token,
+                                       (u16)DPAA2_ETH_MFL);
+       if (err) {
+               dev_err(dev, "dpni_set_max_frame_length() failed\n");
+               return err;
+       }
 
        /* Set actual number of queues in the net device */
        num_queues = dpaa2_eth_queue_count(priv);