]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
can: dev: turn can_set_static_ctrlmode() into a non-inline function
authorVincent Mailhol <mailhol@kernel.org>
Tue, 23 Sep 2025 06:37:09 +0000 (15:37 +0900)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 23 Sep 2025 08:04:58 +0000 (10:04 +0200)
can_set_static_ctrlmode() is declared as a static inline. But it is
only called in the probe function of the devices and so does not
really benefit from any kind of optimization.

Transform it into a "normal" function by moving it to

  drivers/net/can/dev/dev.c

Signed-off-by: Vincent Mailhol <mailhol@kernel.org>
Link: https://patch.msgid.link/20250923-can-fix-mtu-v3-2-581bde113f52@kernel.org
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/dev/dev.c
include/linux/can/dev.h

index 99b78cbb225253d0da61f62174567b36f3e77cad..02bfed37cc93d02eb8ccf587fdcb38d93667c1a3 100644 (file)
@@ -347,6 +347,27 @@ int can_change_mtu(struct net_device *dev, int new_mtu)
 }
 EXPORT_SYMBOL_GPL(can_change_mtu);
 
+/* helper to define static CAN controller features at device creation time */
+int can_set_static_ctrlmode(struct net_device *dev, u32 static_mode)
+{
+       struct can_priv *priv = netdev_priv(dev);
+
+       /* alloc_candev() succeeded => netdev_priv() is valid at this point */
+       if (priv->ctrlmode_supported & static_mode) {
+               netdev_warn(dev,
+                           "Controller features can not be supported and static at the same time\n");
+               return -EINVAL;
+       }
+       priv->ctrlmode = static_mode;
+
+       /* override MTU which was set by default in can_setup()? */
+       if (static_mode & CAN_CTRLMODE_FD)
+               dev->mtu = CANFD_MTU;
+
+       return 0;
+}
+EXPORT_SYMBOL_GPL(can_set_static_ctrlmode);
+
 /* generic implementation of netdev_ops::ndo_eth_ioctl for CAN devices
  * supporting hardware timestamps
  */
index 9a92cbe5b2cb7ccdfca3121718856d096e9ecfa6..5dc58360c2d74a1711d4e02d28fe52ae20b146e0 100644 (file)
@@ -125,27 +125,6 @@ static inline s32 can_get_relative_tdco(const struct can_priv *priv)
        return (s32)priv->fd.tdc.tdco - sample_point_in_tc;
 }
 
-/* helper to define static CAN controller features at device creation time */
-static inline int __must_check can_set_static_ctrlmode(struct net_device *dev,
-                                                      u32 static_mode)
-{
-       struct can_priv *priv = netdev_priv(dev);
-
-       /* alloc_candev() succeeded => netdev_priv() is valid at this point */
-       if (priv->ctrlmode_supported & static_mode) {
-               netdev_warn(dev,
-                           "Controller features can not be supported and static at the same time\n");
-               return -EINVAL;
-       }
-       priv->ctrlmode = static_mode;
-
-       /* override MTU which was set by default in can_setup()? */
-       if (static_mode & CAN_CTRLMODE_FD)
-               dev->mtu = CANFD_MTU;
-
-       return 0;
-}
-
 static inline u32 can_get_static_ctrlmode(struct can_priv *priv)
 {
        return priv->ctrlmode & ~priv->ctrlmode_supported;
@@ -188,6 +167,8 @@ struct can_priv *safe_candev_priv(struct net_device *dev);
 int open_candev(struct net_device *dev);
 void close_candev(struct net_device *dev);
 int can_change_mtu(struct net_device *dev, int new_mtu);
+int __must_check can_set_static_ctrlmode(struct net_device *dev,
+                                        u32 static_mode);
 int can_eth_ioctl_hwts(struct net_device *netdev, struct ifreq *ifr, int cmd);
 int can_ethtool_op_get_ts_info_hwts(struct net_device *dev,
                                    struct kernel_ethtool_ts_info *info);