Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'devlink-minor-cleanup'

Przemek Kitszel says:

====================
devlink: minor cleanup

(Patch 1, 2) Add one helper shortcut to put u64 values into skb.
(Patch 3, 4) Minor cleanup for error codes.
(Patch 5, 6, 7) Remove some devlink_resource_*() usage and functions
itself via replacing devlink_* variants by devl_* ones.

v2: fix metadata (cc list, target tree) - Jiri; rebase; tags collected

v1: https://lore.kernel.org/20241018102009.10124-1-przemyslaw.kitszel@intel.com
====================

Link: https://patch.msgid.link/20241023131248.27192-1-przemyslaw.kitszel@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+83 -171
-13
include/net/devlink.h
··· 1779 1779 u64 resource_id, 1780 1780 u64 parent_resource_id, 1781 1781 const struct devlink_resource_size_params *size_params); 1782 - int devlink_resource_register(struct devlink *devlink, 1783 - const char *resource_name, 1784 - u64 resource_size, 1785 - u64 resource_id, 1786 - u64 parent_resource_id, 1787 - const struct devlink_resource_size_params *size_params); 1788 1782 void devl_resources_unregister(struct devlink *devlink); 1789 1783 void devlink_resources_unregister(struct devlink *devlink); 1790 1784 int devl_resource_size_get(struct devlink *devlink, ··· 1791 1797 u64 resource_id, 1792 1798 devlink_resource_occ_get_t *occ_get, 1793 1799 void *occ_get_priv); 1794 - void devlink_resource_occ_get_register(struct devlink *devlink, 1795 - u64 resource_id, 1796 - devlink_resource_occ_get_t *occ_get, 1797 - void *occ_get_priv); 1798 1800 void devl_resource_occ_get_unregister(struct devlink *devlink, 1799 1801 u64 resource_id); 1800 - 1801 - void devlink_resource_occ_get_unregister(struct devlink *devlink, 1802 - u64 resource_id); 1803 1802 int devl_params_register(struct devlink *devlink, 1804 1803 const struct devlink_param *params, 1805 1804 size_t params_count);
+6 -6
net/devlink/dev.c
··· 971 971 nla_put_string(msg, DEVLINK_ATTR_FLASH_UPDATE_COMPONENT, 972 972 params->component)) 973 973 goto nla_put_failure; 974 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE, 975 - params->done, DEVLINK_ATTR_PAD)) 974 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE, 975 + params->done)) 976 976 goto nla_put_failure; 977 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL, 978 - params->total, DEVLINK_ATTR_PAD)) 977 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL, 978 + params->total)) 979 979 goto nla_put_failure; 980 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT, 981 - params->timeout, DEVLINK_ATTR_PAD)) 980 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT, 981 + params->timeout)) 982 982 goto nla_put_failure; 983 983 984 984 out:
+5
net/devlink/devl_internal.h
··· 181 181 return 0; 182 182 } 183 183 184 + static inline int devlink_nl_put_u64(struct sk_buff *msg, int attrtype, u64 val) 185 + { 186 + return nla_put_u64_64bit(msg, attrtype, val, DEVLINK_ATTR_PAD); 187 + } 188 + 184 189 int devlink_nl_put_nested_handle(struct sk_buff *msg, struct net *net, 185 190 struct devlink *devlink, int attrtype); 186 191 int devlink_nl_msg_reply_and_new(struct sk_buff **msg, struct genl_info *info);
+8 -10
net/devlink/dpipe.c
··· 165 165 return -EMSGSIZE; 166 166 167 167 if (nla_put_string(skb, DEVLINK_ATTR_DPIPE_TABLE_NAME, table->name) || 168 - nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_SIZE, table_size, 169 - DEVLINK_ATTR_PAD)) 168 + devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_TABLE_SIZE, table_size)) 170 169 goto nla_put_failure; 171 170 if (nla_put_u8(skb, DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED, 172 171 table->counters_enabled)) 173 172 goto nla_put_failure; 174 173 175 174 if (table->resource_valid) { 176 - if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID, 177 - table->resource_id, DEVLINK_ATTR_PAD) || 178 - nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS, 179 - table->resource_units, DEVLINK_ATTR_PAD)) 175 + if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID, 176 + table->resource_id) || 177 + devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS, 178 + table->resource_units)) 180 179 goto nla_put_failure; 181 180 } 182 181 if (devlink_dpipe_matches_put(table, skb)) ··· 402 403 if (!entry_attr) 403 404 return -EMSGSIZE; 404 405 405 - if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_ENTRY_INDEX, entry->index, 406 - DEVLINK_ATTR_PAD)) 406 + if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_ENTRY_INDEX, entry->index)) 407 407 goto nla_put_failure; 408 408 if (entry->counter_valid) 409 - if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_ENTRY_COUNTER, 410 - entry->counter, DEVLINK_ATTR_PAD)) 409 + if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_ENTRY_COUNTER, 410 + entry->counter)) 411 411 goto nla_put_failure; 412 412 413 413 matches_attr = nla_nest_start_noflag(skb,
+11 -14
net/devlink/health.c
··· 287 287 if (nla_put_u8(msg, DEVLINK_ATTR_HEALTH_REPORTER_STATE, 288 288 reporter->health_state)) 289 289 goto reporter_nest_cancel; 290 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT, 291 - reporter->error_count, DEVLINK_ATTR_PAD)) 290 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT, 291 + reporter->error_count)) 292 292 goto reporter_nest_cancel; 293 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT, 294 - reporter->recovery_count, DEVLINK_ATTR_PAD)) 293 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT, 294 + reporter->recovery_count)) 295 295 goto reporter_nest_cancel; 296 296 if (reporter->ops->recover && 297 - nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD, 298 - reporter->graceful_period, 299 - DEVLINK_ATTR_PAD)) 297 + devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD, 298 + reporter->graceful_period)) 300 299 goto reporter_nest_cancel; 301 300 if (reporter->ops->recover && 302 301 nla_put_u8(msg, DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER, 303 302 reporter->auto_recover)) 304 303 goto reporter_nest_cancel; 305 304 if (reporter->dump_fmsg && 306 - nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS, 307 - jiffies_to_msecs(reporter->dump_ts), 308 - DEVLINK_ATTR_PAD)) 305 + devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS, 306 + jiffies_to_msecs(reporter->dump_ts))) 309 307 goto reporter_nest_cancel; 310 308 if (reporter->dump_fmsg && 311 - nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS, 312 - reporter->dump_real_ts, DEVLINK_ATTR_PAD)) 309 + devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS, 310 + reporter->dump_real_ts)) 313 311 goto reporter_nest_cancel; 314 312 if (reporter->ops->dump && 315 313 nla_put_u8(msg, DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP, ··· 961 963 case NLA_U32: 962 964 return nla_put_u32(skb, attrtype, *(u32 *)msg->value); 963 965 case NLA_U64: 964 - return nla_put_u64_64bit(skb, attrtype, *(u64 *)msg->value, 965 - DEVLINK_ATTR_PAD); 966 + return devlink_nl_put_u64(skb, attrtype, *(u64 *)msg->value); 966 967 case NLA_NUL_STRING: 967 968 return nla_put_string(skb, attrtype, (char *)&msg->value); 968 969 case NLA_BINARY:
+4 -4
net/devlink/rate.c
··· 108 108 goto nla_put_failure; 109 109 } 110 110 111 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_RATE_TX_SHARE, 112 - devlink_rate->tx_share, DEVLINK_ATTR_PAD)) 111 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_RATE_TX_SHARE, 112 + devlink_rate->tx_share)) 113 113 goto nla_put_failure; 114 114 115 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_RATE_TX_MAX, 116 - devlink_rate->tx_max, DEVLINK_ATTR_PAD)) 115 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_RATE_TX_MAX, 116 + devlink_rate->tx_max)) 117 117 goto nla_put_failure; 118 118 119 119 if (nla_put_u32(msg, DEVLINK_ATTR_RATE_TX_PRIORITY,
+6 -9
net/devlink/region.c
··· 77 77 78 78 snap_attr = nla_nest_start_noflag(msg, DEVLINK_ATTR_REGION_SNAPSHOT); 79 79 if (!snap_attr) 80 - return -EINVAL; 80 + return -EMSGSIZE; 81 81 82 82 err = nla_put_u32(msg, DEVLINK_ATTR_REGION_SNAPSHOT_ID, snapshot->id); 83 83 if (err) ··· 102 102 snapshots_attr = nla_nest_start_noflag(msg, 103 103 DEVLINK_ATTR_REGION_SNAPSHOTS); 104 104 if (!snapshots_attr) 105 - return -EINVAL; 105 + return -EMSGSIZE; 106 106 107 107 list_for_each_entry(snapshot, &region->snapshot_list, list) { 108 108 err = devlink_nl_region_snapshot_id_put(msg, devlink, snapshot); ··· 145 145 if (err) 146 146 goto nla_put_failure; 147 147 148 - err = nla_put_u64_64bit(msg, DEVLINK_ATTR_REGION_SIZE, 149 - region->size, 150 - DEVLINK_ATTR_PAD); 148 + err = devlink_nl_put_u64(msg, DEVLINK_ATTR_REGION_SIZE, region->size); 151 149 if (err) 152 150 goto nla_put_failure; 153 151 ··· 208 210 if (err) 209 211 goto out_cancel_msg; 210 212 } else { 211 - err = nla_put_u64_64bit(msg, DEVLINK_ATTR_REGION_SIZE, 212 - region->size, DEVLINK_ATTR_PAD); 213 + err = devlink_nl_put_u64(msg, DEVLINK_ATTR_REGION_SIZE, 214 + region->size); 213 215 if (err) 214 216 goto out_cancel_msg; 215 217 } ··· 771 773 if (err) 772 774 goto nla_put_failure; 773 775 774 - err = nla_put_u64_64bit(msg, DEVLINK_ATTR_REGION_CHUNK_ADDR, addr, 775 - DEVLINK_ATTR_PAD); 776 + err = devlink_nl_put_u64(msg, DEVLINK_ATTR_REGION_CHUNK_ADDR, addr); 776 777 if (err) 777 778 goto nla_put_failure; 778 779
+13 -88
net/devlink/resource.c
··· 141 141 struct devlink_resource_size_params *size_params; 142 142 143 143 size_params = &resource->size_params; 144 - if (nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_GRAN, 145 - size_params->size_granularity, DEVLINK_ATTR_PAD) || 146 - nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MAX, 147 - size_params->size_max, DEVLINK_ATTR_PAD) || 148 - nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MIN, 149 - size_params->size_min, DEVLINK_ATTR_PAD) || 144 + if (devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE_GRAN, 145 + size_params->size_granularity) || 146 + devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE_MAX, 147 + size_params->size_max) || 148 + devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE_MIN, 149 + size_params->size_min) || 150 150 nla_put_u8(skb, DEVLINK_ATTR_RESOURCE_UNIT, size_params->unit)) 151 151 return -EMSGSIZE; 152 152 return 0; ··· 157 157 { 158 158 if (!resource->occ_get) 159 159 return 0; 160 - return nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_OCC, 161 - resource->occ_get(resource->occ_get_priv), 162 - DEVLINK_ATTR_PAD); 160 + return devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_OCC, 161 + resource->occ_get(resource->occ_get_priv)); 163 162 } 164 163 165 164 static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb, ··· 173 174 return -EMSGSIZE; 174 175 175 176 if (nla_put_string(skb, DEVLINK_ATTR_RESOURCE_NAME, resource->name) || 176 - nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE, resource->size, 177 - DEVLINK_ATTR_PAD) || 178 - nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_ID, resource->id, 179 - DEVLINK_ATTR_PAD)) 177 + devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE, resource->size) || 178 + devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_ID, resource->id)) 180 179 goto nla_put_failure; 181 180 if (resource->size != resource->size_new && 182 - nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_NEW, 183 - resource->size_new, DEVLINK_ATTR_PAD)) 181 + devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE_NEW, 182 + resource->size_new)) 184 183 goto nla_put_failure; 185 184 if (devlink_resource_occ_put(resource, skb)) 186 185 goto nla_put_failure; ··· 345 348 346 349 resource = devlink_resource_find(devlink, NULL, resource_id); 347 350 if (resource) 348 - return -EINVAL; 351 + return -EEXIST; 349 352 350 353 resource = kzalloc(sizeof(*resource), GFP_KERNEL); 351 354 if (!resource) ··· 380 383 return 0; 381 384 } 382 385 EXPORT_SYMBOL_GPL(devl_resource_register); 383 - 384 - /** 385 - * devlink_resource_register - devlink resource register 386 - * 387 - * @devlink: devlink 388 - * @resource_name: resource's name 389 - * @resource_size: resource's size 390 - * @resource_id: resource's id 391 - * @parent_resource_id: resource's parent id 392 - * @size_params: size parameters 393 - * 394 - * Generic resources should reuse the same names across drivers. 395 - * Please see the generic resources list at: 396 - * Documentation/networking/devlink/devlink-resource.rst 397 - * 398 - * Context: Takes and release devlink->lock <mutex>. 399 - */ 400 - int devlink_resource_register(struct devlink *devlink, 401 - const char *resource_name, 402 - u64 resource_size, 403 - u64 resource_id, 404 - u64 parent_resource_id, 405 - const struct devlink_resource_size_params *size_params) 406 - { 407 - int err; 408 - 409 - devl_lock(devlink); 410 - err = devl_resource_register(devlink, resource_name, resource_size, 411 - resource_id, parent_resource_id, size_params); 412 - devl_unlock(devlink); 413 - return err; 414 - } 415 - EXPORT_SYMBOL_GPL(devlink_resource_register); 416 386 417 387 static void devlink_resource_unregister(struct devlink *devlink, 418 388 struct devlink_resource *resource) ··· 481 517 EXPORT_SYMBOL_GPL(devl_resource_occ_get_register); 482 518 483 519 /** 484 - * devlink_resource_occ_get_register - register occupancy getter 485 - * 486 - * @devlink: devlink 487 - * @resource_id: resource id 488 - * @occ_get: occupancy getter callback 489 - * @occ_get_priv: occupancy getter callback priv 490 - * 491 - * Context: Takes and release devlink->lock <mutex>. 492 - */ 493 - void devlink_resource_occ_get_register(struct devlink *devlink, 494 - u64 resource_id, 495 - devlink_resource_occ_get_t *occ_get, 496 - void *occ_get_priv) 497 - { 498 - devl_lock(devlink); 499 - devl_resource_occ_get_register(devlink, resource_id, 500 - occ_get, occ_get_priv); 501 - devl_unlock(devlink); 502 - } 503 - EXPORT_SYMBOL_GPL(devlink_resource_occ_get_register); 504 - 505 - /** 506 520 * devl_resource_occ_get_unregister - unregister occupancy getter 507 521 * 508 522 * @devlink: devlink ··· 502 560 resource->occ_get_priv = NULL; 503 561 } 504 562 EXPORT_SYMBOL_GPL(devl_resource_occ_get_unregister); 505 - 506 - /** 507 - * devlink_resource_occ_get_unregister - unregister occupancy getter 508 - * 509 - * @devlink: devlink 510 - * @resource_id: resource id 511 - * 512 - * Context: Takes and release devlink->lock <mutex>. 513 - */ 514 - void devlink_resource_occ_get_unregister(struct devlink *devlink, 515 - u64 resource_id) 516 - { 517 - devl_lock(devlink); 518 - devl_resource_occ_get_unregister(devlink, resource_id); 519 - devl_unlock(devlink); 520 - } 521 - EXPORT_SYMBOL_GPL(devlink_resource_occ_get_unregister);
+14 -20
net/devlink/trap.c
··· 189 189 if (!attr) 190 190 return -EMSGSIZE; 191 191 192 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_PACKETS, 193 - u64_stats_read(&stats.rx_packets), 194 - DEVLINK_ATTR_PAD)) 192 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_PACKETS, 193 + u64_stats_read(&stats.rx_packets))) 195 194 goto nla_put_failure; 196 195 197 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_BYTES, 198 - u64_stats_read(&stats.rx_bytes), 199 - DEVLINK_ATTR_PAD)) 196 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_BYTES, 197 + u64_stats_read(&stats.rx_bytes))) 200 198 goto nla_put_failure; 201 199 202 200 nla_nest_end(msg, attr); ··· 229 231 return -EMSGSIZE; 230 232 231 233 if (devlink->ops->trap_drop_counter_get && 232 - nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_DROPPED, drops, 233 - DEVLINK_ATTR_PAD)) 234 + devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_DROPPED, drops)) 234 235 goto nla_put_failure; 235 236 236 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_PACKETS, 237 - u64_stats_read(&stats.rx_packets), 238 - DEVLINK_ATTR_PAD)) 237 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_PACKETS, 238 + u64_stats_read(&stats.rx_packets))) 239 239 goto nla_put_failure; 240 240 241 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_BYTES, 242 - u64_stats_read(&stats.rx_bytes), 243 - DEVLINK_ATTR_PAD)) 241 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_BYTES, 242 + u64_stats_read(&stats.rx_bytes))) 244 243 goto nla_put_failure; 245 244 246 245 nla_nest_end(msg, attr); ··· 745 750 if (!attr) 746 751 return -EMSGSIZE; 747 752 748 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_DROPPED, drops, 749 - DEVLINK_ATTR_PAD)) 753 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_DROPPED, drops)) 750 754 goto nla_put_failure; 751 755 752 756 nla_nest_end(msg, attr); ··· 777 783 policer_item->policer->id)) 778 784 goto nla_put_failure; 779 785 780 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_TRAP_POLICER_RATE, 781 - policer_item->rate, DEVLINK_ATTR_PAD)) 786 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_TRAP_POLICER_RATE, 787 + policer_item->rate)) 782 788 goto nla_put_failure; 783 789 784 - if (nla_put_u64_64bit(msg, DEVLINK_ATTR_TRAP_POLICER_BURST, 785 - policer_item->burst, DEVLINK_ATTR_PAD)) 790 + if (devlink_nl_put_u64(msg, DEVLINK_ATTR_TRAP_POLICER_BURST, 791 + policer_item->burst)) 786 792 goto nla_put_failure; 787 793 788 794 err = devlink_trap_policer_stats_put(msg, devlink,
+16 -7
net/dsa/devlink.c
··· 229 229 u64 parent_resource_id, 230 230 const struct devlink_resource_size_params *size_params) 231 231 { 232 - return devlink_resource_register(ds->devlink, resource_name, 233 - resource_size, resource_id, 234 - parent_resource_id, 235 - size_params); 232 + int ret; 233 + 234 + devl_lock(ds->devlink); 235 + ret = devl_resource_register(ds->devlink, resource_name, resource_size, 236 + resource_id, parent_resource_id, 237 + size_params); 238 + devl_unlock(ds->devlink); 239 + 240 + return ret; 236 241 } 237 242 EXPORT_SYMBOL_GPL(dsa_devlink_resource_register); 238 243 ··· 252 247 devlink_resource_occ_get_t *occ_get, 253 248 void *occ_get_priv) 254 249 { 255 - return devlink_resource_occ_get_register(ds->devlink, resource_id, 256 - occ_get, occ_get_priv); 250 + devl_lock(ds->devlink); 251 + devl_resource_occ_get_register(ds->devlink, resource_id, occ_get, 252 + occ_get_priv); 253 + devl_unlock(ds->devlink); 257 254 } 258 255 EXPORT_SYMBOL_GPL(dsa_devlink_resource_occ_get_register); 259 256 260 257 void dsa_devlink_resource_occ_get_unregister(struct dsa_switch *ds, 261 258 u64 resource_id) 262 259 { 263 - devlink_resource_occ_get_unregister(ds->devlink, resource_id); 260 + devl_lock(ds->devlink); 261 + devl_resource_occ_get_unregister(ds->devlink, resource_id); 262 + devl_unlock(ds->devlink); 264 263 } 265 264 EXPORT_SYMBOL_GPL(dsa_devlink_resource_occ_get_unregister); 266 265