/linux/net/devlink/ |
H A D | core.c | 19 static struct devlink *devlinks_xa_get(unsigned long index) in devlinks_xa_get() 21 struct devlink *devlink; in devlinks_xa_get() local 24 devlink = xa_find(&devlinks, &index, index, DEVLINK_REGISTERED); in devlinks_xa_get() 25 if (!devlink || !devlink_try_get(devlink)) in devlinks_xa_get() 26 devlink = NULL; in devlinks_xa_get() 28 return devlink; in devlinks_xa_get() 74 struct devlink *devlink; in devlink_rel_nested_in_notify_work() local 76 devlink = devlinks_xa_get(rel->nested_in.devlink_index); in devlink_rel_nested_in_notify_work() 77 if (!devlink) in devlink_rel_nested_in_notify_work() 79 if (!devl_trylock(devlink)) { in devlink_rel_nested_in_notify_work() [all …]
|
H A D | sb.c | 24 static struct devlink_sb *devlink_sb_get_by_index(struct devlink *devlink, in devlink_sb_get_by_index() argument 29 list_for_each_entry(devlink_sb, &devlink->sb_list, list) { in devlink_sb_get_by_index() 36 static bool devlink_sb_index_exists(struct devlink *devlink, in devlink_sb_index_exists() argument 39 return devlink_sb_get_by_index(devlink, sb_index); in devlink_sb_index_exists() 42 static struct devlink_sb *devlink_sb_get_from_attrs(struct devlink *devlink, in devlink_sb_get_from_attrs() argument 49 devlink_sb = devlink_sb_get_by_index(devlink, sb_index); in devlink_sb_get_from_attrs() 57 static struct devlink_sb *devlink_sb_get_from_info(struct devlink *devlink, in devlink_sb_get_from_info() argument 60 return devlink_sb_get_from_attrs(devlink, info->attrs); in devlink_sb_get_from_info() 167 static int devlink_nl_sb_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_sb_fill() argument 178 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_sb_fill() [all …]
|
H A D | param.c | 150 static int devlink_param_get(struct devlink *devlink, in devlink_param_get() argument 156 return param->get(devlink, param->id, ctx); in devlink_param_get() 159 static int devlink_param_set(struct devlink *devlink, in devlink_param_set() argument 166 return param->set(devlink, param->id, ctx, extack); in devlink_param_set() 238 static int devlink_nl_param_fill(struct sk_buff *msg, struct devlink *devlink, in devlink_nl_param_fill() argument 268 err = devlink_param_get(devlink, param, &ctx); in devlink_nl_param_fill() 280 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_param_fill() 331 static void devlink_param_notify(struct devlink *devlink, in devlink_param_notify() argument 347 if (!devl_is_registered(devlink) || !devlink_nl_notify_need(devlink)) in devlink_param_notify() 353 err = devlink_nl_param_fill(msg, devlink, port_index, param_item, cmd, in devlink_param_notify() [all …]
|
H A D | netlink.c | 134 struct devlink *devlink, int attrtype) in devlink_nl_put_nested_handle() argument 142 if (devlink_nl_put_handle(msg, devlink)) in devlink_nl_put_nested_handle() 146 devl_net = read_pnet_rcu(&devlink->_net); in devlink_nl_put_nested_handle() 180 struct devlink * 184 struct devlink *devlink; in devlink_get_from_attrs_lock() local 195 devlinks_xa_for_each_registered_get(net, index, devlink) { in devlink_get_from_attrs_lock() 196 if (strcmp(devlink->dev->bus->name, busname) == 0 && in devlink_get_from_attrs_lock() 197 strcmp(dev_name(devlink->dev), devname) == 0) { in devlink_get_from_attrs_lock() 198 devl_dev_lock(devlink, dev_lock); in devlink_get_from_attrs_lock() 199 if (devl_is_registered(devlink)) in devlink_get_from_attrs_lock() [all …]
|
H A D | linecard.c | 11 struct devlink *devlink; member 29 devlink_linecard_get_by_index(struct devlink *devlink, in devlink_linecard_get_by_index() argument 34 list_for_each_entry(devlink_linecard, &devlink->linecard_list, list) { in devlink_linecard_get_by_index() 41 static bool devlink_linecard_index_exists(struct devlink *devlink, in devlink_linecard_index_exists() argument 44 return devlink_linecard_get_by_index(devlink, linecard_index); in devlink_linecard_index_exists() 48 devlink_linecard_get_from_attrs(struct devlink *devlink, struct nlattr **attrs) in devlink_linecard_get_from_attrs() argument 54 linecard = devlink_linecard_get_by_index(devlink, linecard_index); in devlink_linecard_get_from_attrs() 63 devlink_linecard_get_from_info(struct devlink *devlink, struct genl_info *info) in devlink_linecard_get_from_info() argument 65 return devlink_linecard_get_from_attrs(devlink, info->attrs); in devlink_linecard_get_from_info() 74 struct devlink *devlink, in devlink_nl_linecard_fill() argument [all …]
|
H A D | port.c | 27 struct devlink_port *devlink_port_get_by_index(struct devlink *devlink, in devlink_port_get_by_index() argument 30 return xa_load(&devlink->ports, port_index); in devlink_port_get_by_index() 33 struct devlink_port *devlink_port_get_from_attrs(struct devlink *devlink, in devlink_port_get_from_attrs() argument 40 devlink_port = devlink_port_get_by_index(devlink, port_index); in devlink_port_get_from_attrs() 48 struct devlink_port *devlink_port_get_from_info(struct devlink *devlink, in devlink_port_get_from_info() argument 51 return devlink_port_get_from_attrs(devlink, info->attrs); in devlink_port_get_from_info() 212 if (devlink_nl_put_handle(msg, devlink_port->devlink)) in devlink_nl_port_handle_fill() 221 struct devlink *devlink = devlink_port->devlink; in devlink_nl_port_handle_size() local 223 return nla_total_size(strlen(devlink->dev->bus->name) + 1) /* DEVLINK_ATTR_BUS_NAME */ in devlink_nl_port_handle_size() 224 + nla_total_size(strlen(dev_name(devlink->dev)) + 1) /* DEVLINK_ATTR_DEV_NAME */ in devlink_nl_port_handle_size() [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/ |
H A D | devlink.c | 14 static int mlx5_devlink_flash_update(struct devlink *devlink, in mlx5_devlink_flash_update() argument 18 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_flash_update() 41 mlx5_devlink_info_get(struct devlink *devlink, struct devlink_info_req *req, in mlx5_devlink_info_get() argument 44 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_info_get() 84 static int mlx5_devlink_reload_fw_activate(struct devlink *devlink, struct netlink_ext_ack *extack) in mlx5_devlink_reload_fw_activate() argument 86 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_reload_fw_activate() 115 static int mlx5_devlink_trigger_fw_live_patch(struct devlink *devlink, in mlx5_devlink_trigger_fw_live_patch() argument 118 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_trigger_fw_live_patch() 134 static int mlx5_devlink_reload_down(struct devlink *devlink, bool netns_change, in mlx5_devlink_reload_down() argument 139 struct mlx5_core_dev *dev = devlink_priv(devlink); in mlx5_devlink_reload_down() [all …]
|
H A D | devlink.h | 49 int mlx5_devlink_traps_register(struct devlink *devlink); 50 void mlx5_devlink_traps_unregister(struct devlink *devlink); 52 struct devlink *mlx5_devlink_alloc(struct device *dev); 53 void mlx5_devlink_free(struct devlink *devlink); 54 int mlx5_devlink_params_register(struct devlink *devlink); 55 void mlx5_devlink_params_unregister(struct devlink *devlink);
|
/linux/include/trace/events/ |
H A D | devlink.h | 5 #define TRACE_SYSTEM devlink 11 #include <net/devlink.h> 15 * Tracepoint for devlink hardware message: 18 TP_PROTO(const struct devlink *devlink, bool incoming, 21 TP_ARGS(devlink, incoming, type, buf, len), 24 __string(bus_name, devlink_to_dev(devlink)->bus->name) 25 __string(dev_name, dev_name(devlink_to_dev(devlink))) 26 __string(driver_name, devlink_to_dev(devlink)->driver->name) 50 * Tracepoint for devlink hardwar 222 trace_devlink_hwmsg(const struct devlink * devlink,bool incoming,unsigned long type,const u8 * buf,size_t len) trace_devlink_hwmsg() argument 228 trace_devlink_hwerr(const struct devlink * devlink,int err,const char * msg) trace_devlink_hwerr() argument [all...] |
/linux/drivers/net/netdevsim/ |
H A D | dev.c | 78 nsim_dev_take_snapshot(struct devlink *devlink, in nsim_dev_take_snapshot() argument 101 struct devlink *devlink; in nsim_dev_take_snapshot_write() local 106 devlink = priv_to_devlink(nsim_dev); in nsim_dev_take_snapshot_write() 108 err = nsim_dev_take_snapshot(devlink, NULL, NULL, &dummy_data); in nsim_dev_take_snapshot_write() 112 err = devlink_region_snapshot_id_get(devlink, &id); in nsim_dev_take_snapshot_write() 120 devlink_region_snapshot_id_put(devlink, id); in nsim_dev_take_snapshot_write() 429 static int nsim_dev_resources_register(struct devlink *devlink) in nsim_dev_resources_register() argument 439 err = devl_resource_register(devlink, "IPv4", (u64)-1, in nsim_dev_resources_register() 448 err = devl_resource_register(devlink, "fib", (u64)-1, in nsim_dev_resources_register() 456 err = devl_resource_register(devlink, "fib-rules", (u64)-1, in nsim_dev_resources_register() [all …]
|
/linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/ |
H A D | hclge_devlink.c | 8 static int hclge_devlink_scc_info_get(struct devlink *devlink, in hclge_devlink_scc_info_get() argument 11 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_scc_info_get() 36 static int hclge_devlink_info_get(struct devlink *devlink, in hclge_devlink_info_get() argument 41 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_info_get() 65 ret = hclge_devlink_scc_info_get(devlink, req); in hclge_devlink_info_get() 70 static int hclge_devlink_reload_down(struct devlink *devlink, bool netns_change, in hclge_devlink_reload_down() argument 75 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_reload_down() 104 static int hclge_devlink_reload_up(struct devlink *devlink, in hclge_devlink_reload_up() argument 110 struct hclge_devlink_priv *priv = devlink_priv(devlink); in hclge_devlink_reload_up() 144 struct devlink *devlink; in hclge_devlink_init() local [all …]
|
/linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/ |
H A D | hclgevf_devlink.c | 8 static int hclgevf_devlink_info_get(struct devlink *devlink, in hclgevf_devlink_info_get() argument 13 struct hclgevf_devlink_priv *priv = devlink_priv(devlink); in hclgevf_devlink_info_get() 32 static int hclgevf_devlink_reload_down(struct devlink *devlink, in hclgevf_devlink_reload_down() argument 38 struct hclgevf_devlink_priv *priv = devlink_priv(devlink); in hclgevf_devlink_reload_down() 67 static int hclgevf_devlink_reload_up(struct devlink *devlink, in hclgevf_devlink_reload_up() argument 73 struct hclgevf_devlink_priv *priv = devlink_priv(devlink); in hclgevf_devlink_reload_up() 107 struct devlink *devlink; in hclgevf_devlink_init() local 109 devlink = in hclgevf_devlink_init() 112 if (!devlink) in hclgevf_devlink_init() 115 priv = devlink_priv(devlink); in hclgevf_devlink_init() [all …]
|
/linux/tools/testing/selftests/net/forwarding/ |
H A D | devlink_lib.sh | 11 DEVLINK_DEV=$(devlink port show "${NETIFS[p1]:-$NETIF_NO_CABLE}" -j \ 14 echo "SKIP: ${NETIFS[p1]} has no devlink device registered for it" 18 echo "SKIP: devlink device's bus is not PCI" 25 devlink dev show $DEVLINK_DEV &> /dev/null 27 echo "SKIP: devlink device \"$DEVLINK_DEV\" not found" 35 devlink help 2>&1 | grep resource &> /dev/null 37 echo "SKIP: iproute2 too old, missing devlink resource support" 41 devlink help 2>&1 | grep trap &> /dev/null 43 echo "SKIP: iproute2 too old, missing devlink trap support" 47 devlink de [all...] |
/linux/Documentation/networking/devlink/ |
H A D | index.rst | 4 devlink is an API to expose device information and resources not directly 13 in devlink core, but don't allow registration of most sub-objects once 14 the main devlink object is itself registered. The newer ``devl_*`` APIs assume 15 the devlink instance lock is already held. Drivers can take the instance 16 lock by calling ``devl_lock()``. It is also held all callbacks of devlink 19 Drivers are encouraged to use the devlink instance lock for their own needs. 21 Drivers need to be cautious when taking devlink instance lock and 29 devlink instances created underneath. In that case, drivers should make 33 lock of both nested and parent instances at the same time, devlink 39 - ``devl_nested_devlink_set()`` - called to setup devlink -> nested [all …]
|
H A D | iosm.rst | 4 iosm devlink support 7 This document describes the devlink features implemented by the ``iosm`` 35 ``devlink-flash`` interface. 62 has to be passed to the driver using the devlink param command. 65 need to set the erase_full_flash parameter using devlink param command. 71 image using devlink flash command. 73 $ devlink dev flash pci/0000:02:00.0 file <PSI_RAM_File_name> 78 $ devlink dev param set pci/0000:02:00.0 name erase_full_flash value true cmode runtime 82 $ devlink dev flash pci/0000:02:00.0 file <EBL_File_name> 89 $ devlink dev flash pci/0000:02:00.0 file <Secure_bin_file_name> [all …]
|
/linux/tools/testing/selftests/drivers/net/netdevsim/ |
H A D | devlink.sh | 29 busywait "$timeout" wait_for_devlink devlink dev 43 devlink dev flash $DL_HANDLE file $DUMMYFILE 46 devlink dev flash $DL_HANDLE file $DUMMYFILE component fw.mgmt 49 devlink dev flash $DL_HANDLE file $DUMMYFILE overwrite settings 55 devlink dev flash $DL_HANDLE file $DUMMYFILE overwrite settings 58 devlink dev flash $DL_HANDLE file $DUMMYFILE overwrite identifiers 64 devlink dev flash $DL_HANDLE file $DUMMYFILE overwrite identifiers overwrite settings 70 devlink dev flash $DL_HANDLE file $DUMMYFILE 89 devlink dev param set $DL_HANDLE name $name cmode driverinit value $value 128 devlink dev reload $DL_HANDLE [all …]
|
/linux/drivers/net/ethernet/qlogic/qed/ |
H A D | qed_devlink.c | 22 int qed_report_fatal_error(struct devlink *devlink, enum qed_hw_err_type err_type) in qed_report_fatal_error() argument 24 struct qed_devlink *qdl = devlink_priv(devlink); in qed_report_fatal_error() 98 void qed_fw_reporters_create(struct devlink *devlink) in qed_fw_reporters_create() argument 100 struct qed_devlink *dl = devlink_priv(devlink); in qed_fw_reporters_create() 102 dl->fw_reporter = devlink_health_reporter_create(devlink, &qed_fw_fatal_reporter_ops, in qed_fw_reporters_create() 111 void qed_fw_reporters_destroy(struct devlink *devlink) in qed_fw_reporters_destroy() argument 113 struct qed_devlink *dl = devlink_priv(devlink); in qed_fw_reporters_destroy() 122 static int qed_dl_param_get(struct devlink *dl, u32 id, in qed_dl_param_get() 134 static int qed_dl_param_set(struct devlink *dl, u32 id, in qed_dl_param_set() 154 static int qed_devlink_info_get(struct devlink *devlink, in qed_devlink_info_get() argument [all …]
|
/linux/drivers/net/ethernet/mellanox/mlx5/core/en/ |
H A D | devlink.c | 14 struct devlink *devlink; in mlx5e_create_devlink() local 17 devlink = devlink_alloc_ns(&mlx5e_devlink_ops, sizeof(*mlx5e_dev), in mlx5e_create_devlink() 19 if (!devlink) in mlx5e_create_devlink() 22 err = devl_nested_devlink_set(priv_to_devlink(mdev), devlink); in mlx5e_create_devlink() 24 devlink_free(devlink); in mlx5e_create_devlink() 28 devlink_register(devlink); in mlx5e_create_devlink() 29 return devlink_priv(devlink); in mlx5e_create_devlink() 34 struct devlink *devlink = priv_to_devlink(mlx5e_dev); in mlx5e_destroy_devlink() local 36 devlink_unregister(devlink); in mlx5e_destroy_devlink() 37 devlink_free(devlink); in mlx5e_destroy_devlink() [all …]
|
/linux/drivers/net/ethernet/intel/ice/devlink/ |
H A D | devlink.c | 271 static int ice_devlink_info_get(struct devlink *devlink, in ice_devlink_info_get() argument 275 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_info_get() 470 ice_devlink_reload_down(struct devlink *devlink, bool netns_change, in ice_devlink_reload_down() argument 475 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_reload_down() 611 static int ice_devlink_tx_sched_layers_get(struct devlink *devlink, u32 id, in ice_devlink_tx_sched_layers_get() argument 614 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_tx_sched_layers_get() 633 static int ice_devlink_tx_sched_layers_set(struct devlink *devlink, u32 id, in ice_devlink_tx_sched_layers_set() argument 637 struct ice_pf *pf = devlink_priv(devlink); in ice_devlink_tx_sched_layers_set() 665 static int ice_devlink_tx_sched_layers_validate(struct devlink *devlink, u32 id, in ice_devlink_tx_sched_layers_validate() argument 686 struct devlink *devlink; in ice_tear_down_devlink_rate_tree() local [all …]
|
/linux/drivers/net/ethernet/mellanox/mlxsw/ |
H A D | core_linecard_dev.c | 100 static int mlxsw_linecard_dev_devlink_info_get(struct devlink *devlink, in mlxsw_linecard_dev_devlink_info_get() argument 104 struct mlxsw_linecard_dev *linecard_dev = devlink_priv(devlink); in mlxsw_linecard_dev_devlink_info_get() 111 mlxsw_linecard_dev_devlink_flash_update(struct devlink *devlink, in mlxsw_linecard_dev_devlink_flash_update() argument 115 struct mlxsw_linecard_dev *linecard_dev = devlink_priv(devlink); in mlxsw_linecard_dev_devlink_flash_update() 118 return mlxsw_linecard_flash_update(devlink, linecard, in mlxsw_linecard_dev_devlink_flash_update() 134 struct devlink *devlink; in mlxsw_linecard_bdev_probe() local 137 devlink = devlink_alloc(&mlxsw_linecard_dev_devlink_ops, in mlxsw_linecard_bdev_probe() 139 if (!devlink) in mlxsw_linecard_bdev_probe() 141 linecard_dev = devlink_priv(devlink); in mlxsw_linecard_bdev_probe() 145 err = devlink_linecard_nested_dl_set(linecard->devlink_linecard, devlink); in mlxsw_linecard_bdev_probe() [all …]
|
/linux/drivers/net/wwan/iosm/ |
H A D | iosm_ipc_coredump.c | 18 int ipc_coredump_collect(struct iosm_devlink *devlink, u8 **data, int entry, in ipc_coredump_collect() argument 29 remaining = devlink->cd_file_info[entry].actual_size; in ipc_coredump_collect() 30 ret = ipc_devlink_send_cmd(devlink, rpsi_cmd_coredump_get, entry); in ipc_coredump_collect() 32 dev_err(devlink->dev, "Send coredump_get cmd failed"); in ipc_coredump_collect() 38 ret = ipc_imem_sys_devlink_read(devlink, data_ptr + i, in ipc_coredump_collect() 41 dev_err(devlink->dev, "CD data read failed"); in ipc_coredump_collect() 64 int ipc_coredump_get_list(struct iosm_devlink *devlink, u16 cmd) in ipc_coredump_get_list() argument 78 ret = ipc_devlink_send_cmd(devlink, cmd, MAX_CD_LIST_SIZE); in ipc_coredump_get_list() 80 dev_err(devlink->dev, "rpsi_cmd_coredump_start failed"); in ipc_coredump_get_list() 84 ret = ipc_imem_sys_devlink_read(devlink, (u8 *)cd_table, in ipc_coredump_get_list() [all …]
|
/linux/drivers/net/ethernet/netronome/nfp/ |
H A D | nfp_devlink.c | 64 nfp_devlink_port_split(struct devlink *devlink, struct devlink_port *port, in nfp_devlink_port_split() argument 67 struct nfp_pf *pf = devlink_priv(devlink); in nfp_devlink_port_split() 92 nfp_devlink_port_unsplit(struct devlink *devlink, struct devlink_port *port, in nfp_devlink_port_unsplit() argument 95 struct nfp_pf *pf = devlink_priv(devlink); in nfp_devlink_port_unsplit() 120 nfp_devlink_sb_pool_get(struct devlink *devlink, unsigned int sb_index, in nfp_devlink_sb_pool_get() argument 123 struct nfp_pf *pf = devlink_priv(devlink); in nfp_devlink_sb_pool_get() 129 nfp_devlink_sb_pool_set(struct devlink *devlink, unsigned int sb_index, in nfp_devlink_sb_pool_set() argument 134 struct nfp_pf *pf = devlink_priv(devlink); in nfp_devlink_sb_pool_set() 140 static int nfp_devlink_eswitch_mode_get(struct devlink *devlink, u16 *mode) in nfp_devlink_eswitch_mode_get() argument 142 struct nfp_pf *pf = devlink_priv(devlink); in nfp_devlink_eswitch_mode_get() [all …]
|
/linux/drivers/net/ethernet/fungible/funeth/ |
H A D | funeth_devlink.c | 9 struct devlink *fun_devlink_alloc(struct device *dev) in fun_devlink_alloc() 14 void fun_devlink_free(struct devlink *devlink) in fun_devlink_free() argument 16 devlink_free(devlink); in fun_devlink_free() 19 void fun_devlink_register(struct devlink *devlink) in fun_devlink_register() argument 21 devlink_register(devlink); in fun_devlink_register() 24 void fun_devlink_unregister(struct devlink *devlink) in fun_devlink_unregister() argument 26 devlink_unregister(devlink); in fun_devlink_unregister()
|
/linux/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/ |
H A D | switchdev.rst | 21 $ devlink dev eswitch set pci/0000:06:00.0 mode switchdev 48 Subfunction which are spawned over the E-switch are created only with devlink 57 $ devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 11 58 $ devlink port function set pci/0000:08:00.0/32768 hw_addr 00:00:00:00:00:11 state active 62 $ devlink dev param set auxiliary/mlx5_core.sf.1 name enable_eth value true cmode driverinit 64 - Now, in order to fully probe the SF, use devlink reload:: 66 $ devlink dev reload auxiliary/mlx5_core.sf.1 68 …ETH,rdma and vdpa (vnet) auxiliary devices devlink params (see :ref:`Documentation/networking/devl… 70 mlx5 supports subfunction management using devlink port (see :ref:`Documentation/networking/devlink… 100 | devlink | | tc tool | | user | [all …]
|
/linux/drivers/net/ethernet/meta/fbnic/ |
H A D | fbnic_devlink.c | 63 static int fbnic_devlink_info_get(struct devlink *devlink, in fbnic_devlink_info_get() argument 67 struct fbnic_dev *fbd = devlink_priv(devlink); in fbnic_devlink_info_get() 118 struct devlink *devlink = priv_to_devlink(fbd); in fbnic_devlink_free() local 120 devlink_free(devlink); in fbnic_devlink_free() 126 struct devlink *devlink; in fbnic_devlink_alloc() local 129 devlink = devlink_alloc(&fbnic_devlink_ops, sizeof(struct fbnic_dev), in fbnic_devlink_alloc() 131 if (!devlink) in fbnic_devlink_alloc() 134 fbd = devlink_priv(devlink); in fbnic_devlink_alloc() 153 struct devlink *devlink = priv_to_devlink(fbd); in fbnic_devlink_register() local 155 devlink_register(devlink); in fbnic_devlink_register() [all …]
|