static inline struct devlink *netdev_to_devlink(struct net_device *dev)
 {
-#if IS_ENABLED(CONFIG_NET_DEVLINK)
        if (dev->netdev_ops->ndo_get_devlink)
                return dev->netdev_ops->ndo_get_devlink(dev);
-#endif
        return NULL;
 }
 
 struct ib_device;
 
-#if IS_ENABLED(CONFIG_NET_DEVLINK)
-
 struct devlink *devlink_alloc(const struct devlink_ops *ops, size_t priv_size);
 int devlink_register(struct devlink *devlink, struct device *dev);
 void devlink_unregister(struct devlink *devlink);
 devlink_health_reporter_state_update(struct devlink_health_reporter *reporter,
                                     enum devlink_health_reporter_state state);
 
+#if IS_ENABLED(CONFIG_NET_DEVLINK)
+
 void devlink_compat_running_version(struct net_device *dev,
                                    char *buf, size_t len);
 int devlink_compat_flash_update(struct net_device *dev, const char *file_name);
 
 #else
 
-static inline struct devlink *devlink_alloc(const struct devlink_ops *ops,
-                                           size_t priv_size)
-{
-       return kzalloc(sizeof(struct devlink) + priv_size, GFP_KERNEL);
-}
-
-static inline int devlink_register(struct devlink *devlink, struct device *dev)
-{
-       return 0;
-}
-
-static inline void devlink_unregister(struct devlink *devlink)
-{
-}
-
-static inline void devlink_params_publish(struct devlink *devlink)
-{
-}
-
-static inline void devlink_params_unpublish(struct devlink *devlink)
-{
-}
-
-static inline void devlink_free(struct devlink *devlink)
-{
-       kfree(devlink);
-}
-
-static inline int devlink_port_register(struct devlink *devlink,
-                                       struct devlink_port *devlink_port,
-                                       unsigned int port_index)
-{
-       return 0;
-}
-
-static inline void devlink_port_unregister(struct devlink_port *devlink_port)
-{
-}
-
-static inline void devlink_port_type_eth_set(struct devlink_port *devlink_port,
-                                            struct net_device *netdev)
-{
-}
-
-static inline void devlink_port_type_ib_set(struct devlink_port *devlink_port,
-                                           struct ib_device *ibdev)
-{
-}
-
-static inline void devlink_port_type_clear(struct devlink_port *devlink_port)
-{
-}
-
-static inline void devlink_port_attrs_set(struct devlink_port *devlink_port,
-                                         enum devlink_port_flavour flavour,
-                                         u32 port_number, bool split,
-                                         u32 split_subport_number)
-{
-}
-
-static inline int
-devlink_port_get_phys_port_name(struct devlink_port *devlink_port,
-                               char *name, size_t len)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int devlink_sb_register(struct devlink *devlink,
-                                     unsigned int sb_index, u32 size,
-                                     u16 ingress_pools_count,
-                                     u16 egress_pools_count,
-                                     u16 ingress_tc_count,
-                                     u16 egress_tc_count)
-{
-       return 0;
-}
-
-static inline void devlink_sb_unregister(struct devlink *devlink,
-                                        unsigned int sb_index)
-{
-}
-
-static inline int
-devlink_dpipe_table_register(struct devlink *devlink,
-                            const char *table_name,
-                            struct devlink_dpipe_table_ops *table_ops,
-                            void *priv, bool counter_control_extern)
-{
-       return 0;
-}
-
-static inline void devlink_dpipe_table_unregister(struct devlink *devlink,
-                                                 const char *table_name)
-{
-}
-
-static inline int devlink_dpipe_headers_register(struct devlink *devlink,
-                                                struct devlink_dpipe_headers *
-                                                dpipe_headers)
-{
-       return 0;
-}
-
-static inline void devlink_dpipe_headers_unregister(struct devlink *devlink)
-{
-}
-
-static inline bool devlink_dpipe_table_counter_enabled(struct devlink *devlink,
-                                                      const char *table_name)
-{
-       return false;
-}
-
-static inline int
-devlink_dpipe_entry_ctx_prepare(struct devlink_dpipe_dump_ctx *dump_ctx)
-{
-       return 0;
-}
-
-static inline int
-devlink_dpipe_entry_ctx_append(struct devlink_dpipe_dump_ctx *dump_ctx,
-                              struct devlink_dpipe_entry *entry)
-{
-       return 0;
-}
-
-static inline int
-devlink_dpipe_entry_ctx_close(struct devlink_dpipe_dump_ctx *dump_ctx)
-{
-       return 0;
-}
-
-static inline void
-devlink_dpipe_entry_clear(struct devlink_dpipe_entry *entry)
-{
-}
-
-static inline int
-devlink_dpipe_action_put(struct sk_buff *skb,
-                        struct devlink_dpipe_action *action)
-{
-       return 0;
-}
-
-static inline int
-devlink_dpipe_match_put(struct sk_buff *skb,
-                       struct devlink_dpipe_match *match)
-{
-       return 0;
-}
-
-static inline int
-devlink_resource_register(struct devlink *devlink,
-                         const char *resource_name,
-                         u64 resource_size,
-                         u64 resource_id,
-                         u64 parent_resource_id,
-                         const struct devlink_resource_size_params *size_params)
-{
-       return 0;
-}
-
-static inline void
-devlink_resources_unregister(struct devlink *devlink,
-                            struct devlink_resource *resource)
-{
-}
-
-static inline int
-devlink_resource_size_get(struct devlink *devlink, u64 resource_id,
-                         u64 *p_resource_size)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-devlink_dpipe_table_resource_set(struct devlink *devlink,
-                                const char *table_name, u64 resource_id,
-                                u64 resource_units)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline void
-devlink_resource_occ_get_register(struct devlink *devlink,
-                                 u64 resource_id,
-                                 devlink_resource_occ_get_t *occ_get,
-                                 void *occ_get_priv)
-{
-}
-
-static inline void
-devlink_resource_occ_get_unregister(struct devlink *devlink,
-                                   u64 resource_id)
-{
-}
-
-static inline int
-devlink_params_register(struct devlink *devlink,
-                       const struct devlink_param *params,
-                       size_t params_count)
-{
-       return 0;
-}
-
-static inline void
-devlink_params_unregister(struct devlink *devlink,
-                         const struct devlink_param *params,
-                         size_t params_count)
-{
-
-}
-
-static inline int
-devlink_port_params_register(struct devlink_port *devlink_port,
-                            const struct devlink_param *params,
-                            size_t params_count)
-{
-       return 0;
-}
-
-static inline void
-devlink_port_params_unregister(struct devlink_port *devlink_port,
-                              const struct devlink_param *params,
-                              size_t params_count)
-{
-}
-
-static inline int
-devlink_param_driverinit_value_get(struct devlink *devlink, u32 param_id,
-                                  union devlink_param_value *init_val)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-devlink_param_driverinit_value_set(struct devlink *devlink, u32 param_id,
-                                  union devlink_param_value init_val)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-devlink_port_param_driverinit_value_get(struct devlink_port *devlink_port,
-                                       u32 param_id,
-                                       union devlink_param_value *init_val)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-devlink_port_param_driverinit_value_set(struct devlink_port *devlink_port,
-                                       u32 param_id,
-                                       union devlink_param_value init_val)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline void
-devlink_param_value_changed(struct devlink *devlink, u32 param_id)
-{
-}
-
-static inline void
-devlink_port_param_value_changed(struct devlink_port *devlink_port,
-                                u32 param_id)
-{
-}
-
-static inline void
-devlink_param_value_str_fill(union devlink_param_value *dst_val,
-                            const char *src)
-{
-}
-
-static inline struct devlink_region *
-devlink_region_create(struct devlink *devlink,
-                     const char *region_name,
-                     u32 region_max_snapshots,
-                     u64 region_size)
-{
-       return NULL;
-}
-
-static inline void
-devlink_region_destroy(struct devlink_region *region)
-{
-}
-
-static inline u32
-devlink_region_shapshot_id_get(struct devlink *devlink)
-{
-       return 0;
-}
-
-static inline int
-devlink_region_snapshot_create(struct devlink_region *region, u64 data_len,
-                              u8 *data, u32 snapshot_id,
-                              devlink_snapshot_data_dest_t *data_destructor)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_driver_name_put(struct devlink_info_req *req, const char *name)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_serial_number_put(struct devlink_info_req *req, const char *sn)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_version_fixed_put(struct devlink_info_req *req,
-                              const char *version_name,
-                              const char *version_value)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_version_stored_put(struct devlink_info_req *req,
-                               const char *version_name,
-                               const char *version_value)
-{
-       return 0;
-}
-
-static inline int
-devlink_info_version_running_put(struct devlink_info_req *req,
-                                const char *version_name,
-                                const char *version_value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_obj_nest_start(struct devlink_fmsg *fmsg)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_obj_nest_end(struct devlink_fmsg *fmsg)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_pair_nest_start(struct devlink_fmsg *fmsg, const char *name)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_pair_nest_end(struct devlink_fmsg *fmsg)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_arr_pair_nest_start(struct devlink_fmsg *fmsg,
-                                const char *name)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_arr_pair_nest_end(struct devlink_fmsg *fmsg)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_bool_put(struct devlink_fmsg *fmsg, bool value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u8_put(struct devlink_fmsg *fmsg, u8 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u32_put(struct devlink_fmsg *fmsg, u32 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u64_put(struct devlink_fmsg *fmsg, u64 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_string_put(struct devlink_fmsg *fmsg, const char *value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_binary_put(struct devlink_fmsg *fmsg, const void *value,
-                       u16 value_len)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_bool_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                          bool value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u8_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                        u8 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u32_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                         u32 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_u64_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                         u64 value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_string_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                            const char *value)
-{
-       return 0;
-}
-
-static inline int
-devlink_fmsg_binary_pair_put(struct devlink_fmsg *fmsg, const char *name,
-                            const void *value, u16 value_len)
-{
-       return 0;
-}
-
-static inline struct devlink_health_reporter *
-devlink_health_reporter_create(struct devlink *devlink,
-                              const struct devlink_health_reporter_ops *ops,
-                              u64 graceful_period, bool auto_recover,
-                              void *priv)
-{
-       return NULL;
-}
-
-static inline void
-devlink_health_reporter_destroy(struct devlink_health_reporter *reporter)
-{
-}
-
-static inline void *
-devlink_health_reporter_priv(struct devlink_health_reporter *reporter)
-{
-       return NULL;
-}
-
-static inline int
-devlink_health_report(struct devlink_health_reporter *reporter,
-                     const char *msg, void *priv_ctx)
-{
-       return 0;
-}
-
-static inline void
-devlink_health_reporter_state_update(struct devlink_health_reporter *reporter,
-                                    enum devlink_health_reporter_state state)
-{
-}
-
 static inline void
 devlink_compat_running_version(struct net_device *dev, char *buf, size_t len)
 {
 {
        return -EOPNOTSUPP;
 }
+
 #endif
 
 #endif /* _NET_DEVLINK_H_ */