Skip to content

Commit ef0ed88

Browse files
committed
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/[email protected] ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents b8bd8c4 + e3302f9 commit ef0ed88

File tree

10 files changed

+83
-171
lines changed

10 files changed

+83
-171
lines changed

include/net/devlink.h

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1779,12 +1779,6 @@ int devl_resource_register(struct devlink *devlink,
17791779
u64 resource_id,
17801780
u64 parent_resource_id,
17811781
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);
17881782
void devl_resources_unregister(struct devlink *devlink);
17891783
void devlink_resources_unregister(struct devlink *devlink);
17901784
int devl_resource_size_get(struct devlink *devlink,
@@ -1797,15 +1791,8 @@ void devl_resource_occ_get_register(struct devlink *devlink,
17971791
u64 resource_id,
17981792
devlink_resource_occ_get_t *occ_get,
17991793
void *occ_get_priv);
1800-
void devlink_resource_occ_get_register(struct devlink *devlink,
1801-
u64 resource_id,
1802-
devlink_resource_occ_get_t *occ_get,
1803-
void *occ_get_priv);
18041794
void devl_resource_occ_get_unregister(struct devlink *devlink,
18051795
u64 resource_id);
1806-
1807-
void devlink_resource_occ_get_unregister(struct devlink *devlink,
1808-
u64 resource_id);
18091796
int devl_params_register(struct devlink *devlink,
18101797
const struct devlink_param *params,
18111798
size_t params_count);

net/devlink/dev.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -971,14 +971,14 @@ static int devlink_nl_flash_update_fill(struct sk_buff *msg,
971971
nla_put_string(msg, DEVLINK_ATTR_FLASH_UPDATE_COMPONENT,
972972
params->component))
973973
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))
976976
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))
979979
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))
982982
goto nla_put_failure;
983983

984984
out:

net/devlink/devl_internal.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,11 @@ devlink_nl_put_handle(struct sk_buff *msg, struct devlink *devlink)
181181
return 0;
182182
}
183183

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+
184189
int devlink_nl_put_nested_handle(struct sk_buff *msg, struct net *net,
185190
struct devlink *devlink, int attrtype);
186191
int devlink_nl_msg_reply_and_new(struct sk_buff **msg, struct genl_info *info);

net/devlink/dpipe.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -165,18 +165,17 @@ static int devlink_dpipe_table_put(struct sk_buff *skb,
165165
return -EMSGSIZE;
166166

167167
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))
170169
goto nla_put_failure;
171170
if (nla_put_u8(skb, DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED,
172171
table->counters_enabled))
173172
goto nla_put_failure;
174173

175174
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))
180179
goto nla_put_failure;
181180
}
182181
if (devlink_dpipe_matches_put(table, skb))
@@ -403,12 +402,11 @@ static int devlink_dpipe_entry_put(struct sk_buff *skb,
403402
if (!entry_attr)
404403
return -EMSGSIZE;
405404

406-
if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_ENTRY_INDEX, entry->index,
407-
DEVLINK_ATTR_PAD))
405+
if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_ENTRY_INDEX, entry->index))
408406
goto nla_put_failure;
409407
if (entry->counter_valid)
410-
if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_ENTRY_COUNTER,
411-
entry->counter, DEVLINK_ATTR_PAD))
408+
if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_ENTRY_COUNTER,
409+
entry->counter))
412410
goto nla_put_failure;
413411

414412
matches_attr = nla_nest_start_noflag(skb,

net/devlink/health.c

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -287,29 +287,27 @@ devlink_nl_health_reporter_fill(struct sk_buff *msg,
287287
if (nla_put_u8(msg, DEVLINK_ATTR_HEALTH_REPORTER_STATE,
288288
reporter->health_state))
289289
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))
292292
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))
295295
goto reporter_nest_cancel;
296296
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))
300299
goto reporter_nest_cancel;
301300
if (reporter->ops->recover &&
302301
nla_put_u8(msg, DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER,
303302
reporter->auto_recover))
304303
goto reporter_nest_cancel;
305304
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)))
309307
goto reporter_nest_cancel;
310308
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))
313311
goto reporter_nest_cancel;
314312
if (reporter->ops->dump &&
315313
nla_put_u8(msg, DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP,
@@ -963,8 +961,7 @@ devlink_fmsg_item_fill_data(struct devlink_fmsg_item *msg, struct sk_buff *skb)
963961
case NLA_U32:
964962
return nla_put_u32(skb, attrtype, *(u32 *)msg->value);
965963
case NLA_U64:
966-
return nla_put_u64_64bit(skb, attrtype, *(u64 *)msg->value,
967-
DEVLINK_ATTR_PAD);
964+
return devlink_nl_put_u64(skb, attrtype, *(u64 *)msg->value);
968965
case NLA_NUL_STRING:
969966
return nla_put_string(skb, attrtype, (char *)&msg->value);
970967
case NLA_BINARY:

net/devlink/rate.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,12 @@ static int devlink_nl_rate_fill(struct sk_buff *msg,
108108
goto nla_put_failure;
109109
}
110110

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))
113113
goto nla_put_failure;
114114

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))
117117
goto nla_put_failure;
118118

119119
if (nla_put_u32(msg, DEVLINK_ATTR_RATE_TX_PRIORITY,

net/devlink/region.c

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ static int devlink_nl_region_snapshot_id_put(struct sk_buff *msg,
7777

7878
snap_attr = nla_nest_start_noflag(msg, DEVLINK_ATTR_REGION_SNAPSHOT);
7979
if (!snap_attr)
80-
return -EINVAL;
80+
return -EMSGSIZE;
8181

8282
err = nla_put_u32(msg, DEVLINK_ATTR_REGION_SNAPSHOT_ID, snapshot->id);
8383
if (err)
@@ -102,7 +102,7 @@ static int devlink_nl_region_snapshots_id_put(struct sk_buff *msg,
102102
snapshots_attr = nla_nest_start_noflag(msg,
103103
DEVLINK_ATTR_REGION_SNAPSHOTS);
104104
if (!snapshots_attr)
105-
return -EINVAL;
105+
return -EMSGSIZE;
106106

107107
list_for_each_entry(snapshot, &region->snapshot_list, list) {
108108
err = devlink_nl_region_snapshot_id_put(msg, devlink, snapshot);
@@ -145,9 +145,7 @@ static int devlink_nl_region_fill(struct sk_buff *msg, struct devlink *devlink,
145145
if (err)
146146
goto nla_put_failure;
147147

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);
151149
if (err)
152150
goto nla_put_failure;
153151

@@ -210,8 +208,8 @@ devlink_nl_region_notify_build(struct devlink_region *region,
210208
if (err)
211209
goto out_cancel_msg;
212210
} else {
213-
err = nla_put_u64_64bit(msg, DEVLINK_ATTR_REGION_SIZE,
214-
region->size, DEVLINK_ATTR_PAD);
211+
err = devlink_nl_put_u64(msg, DEVLINK_ATTR_REGION_SIZE,
212+
region->size);
215213
if (err)
216214
goto out_cancel_msg;
217215
}
@@ -773,8 +771,7 @@ static int devlink_nl_cmd_region_read_chunk_fill(struct sk_buff *msg,
773771
if (err)
774772
goto nla_put_failure;
775773

776-
err = nla_put_u64_64bit(msg, DEVLINK_ATTR_REGION_CHUNK_ADDR, addr,
777-
DEVLINK_ATTR_PAD);
774+
err = devlink_nl_put_u64(msg, DEVLINK_ATTR_REGION_CHUNK_ADDR, addr);
778775
if (err)
779776
goto nla_put_failure;
780777

net/devlink/resource.c

Lines changed: 13 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,12 @@ devlink_resource_size_params_put(struct devlink_resource *resource,
141141
struct devlink_resource_size_params *size_params;
142142

143143
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) ||
150150
nla_put_u8(skb, DEVLINK_ATTR_RESOURCE_UNIT, size_params->unit))
151151
return -EMSGSIZE;
152152
return 0;
@@ -157,9 +157,8 @@ static int devlink_resource_occ_put(struct devlink_resource *resource,
157157
{
158158
if (!resource->occ_get)
159159
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));
163162
}
164163

165164
static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb,
@@ -174,14 +173,12 @@ static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb,
174173
return -EMSGSIZE;
175174

176175
if (nla_put_string(skb, DEVLINK_ATTR_RESOURCE_NAME, resource->name) ||
177-
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE, resource->size,
178-
DEVLINK_ATTR_PAD) ||
179-
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_ID, resource->id,
180-
DEVLINK_ATTR_PAD))
176+
devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE, resource->size) ||
177+
devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_ID, resource->id))
181178
goto nla_put_failure;
182179
if (resource->size != resource->size_new &&
183-
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_NEW,
184-
resource->size_new, DEVLINK_ATTR_PAD))
180+
devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE_NEW,
181+
resource->size_new))
185182
goto nla_put_failure;
186183
if (devlink_resource_occ_put(resource, skb))
187184
goto nla_put_failure;
@@ -348,7 +345,7 @@ int devl_resource_register(struct devlink *devlink,
348345

349346
resource = devlink_resource_find(devlink, NULL, resource_id);
350347
if (resource)
351-
return -EINVAL;
348+
return -EEXIST;
352349

353350
resource = kzalloc(sizeof(*resource), GFP_KERNEL);
354351
if (!resource)
@@ -384,39 +381,6 @@ int devl_resource_register(struct devlink *devlink,
384381
}
385382
EXPORT_SYMBOL_GPL(devl_resource_register);
386383

387-
/**
388-
* devlink_resource_register - devlink resource register
389-
*
390-
* @devlink: devlink
391-
* @resource_name: resource's name
392-
* @resource_size: resource's size
393-
* @resource_id: resource's id
394-
* @parent_resource_id: resource's parent id
395-
* @size_params: size parameters
396-
*
397-
* Generic resources should reuse the same names across drivers.
398-
* Please see the generic resources list at:
399-
* Documentation/networking/devlink/devlink-resource.rst
400-
*
401-
* Context: Takes and release devlink->lock <mutex>.
402-
*/
403-
int devlink_resource_register(struct devlink *devlink,
404-
const char *resource_name,
405-
u64 resource_size,
406-
u64 resource_id,
407-
u64 parent_resource_id,
408-
const struct devlink_resource_size_params *size_params)
409-
{
410-
int err;
411-
412-
devl_lock(devlink);
413-
err = devl_resource_register(devlink, resource_name, resource_size,
414-
resource_id, parent_resource_id, size_params);
415-
devl_unlock(devlink);
416-
return err;
417-
}
418-
EXPORT_SYMBOL_GPL(devlink_resource_register);
419-
420384
static void devlink_resource_unregister(struct devlink *devlink,
421385
struct devlink_resource *resource)
422386
{
@@ -516,28 +480,6 @@ void devl_resource_occ_get_register(struct devlink *devlink,
516480
}
517481
EXPORT_SYMBOL_GPL(devl_resource_occ_get_register);
518482

519-
/**
520-
* devlink_resource_occ_get_register - register occupancy getter
521-
*
522-
* @devlink: devlink
523-
* @resource_id: resource id
524-
* @occ_get: occupancy getter callback
525-
* @occ_get_priv: occupancy getter callback priv
526-
*
527-
* Context: Takes and release devlink->lock <mutex>.
528-
*/
529-
void devlink_resource_occ_get_register(struct devlink *devlink,
530-
u64 resource_id,
531-
devlink_resource_occ_get_t *occ_get,
532-
void *occ_get_priv)
533-
{
534-
devl_lock(devlink);
535-
devl_resource_occ_get_register(devlink, resource_id,
536-
occ_get, occ_get_priv);
537-
devl_unlock(devlink);
538-
}
539-
EXPORT_SYMBOL_GPL(devlink_resource_occ_get_register);
540-
541483
/**
542484
* devl_resource_occ_get_unregister - unregister occupancy getter
543485
*
@@ -560,20 +502,3 @@ void devl_resource_occ_get_unregister(struct devlink *devlink,
560502
resource->occ_get_priv = NULL;
561503
}
562504
EXPORT_SYMBOL_GPL(devl_resource_occ_get_unregister);
563-
564-
/**
565-
* devlink_resource_occ_get_unregister - unregister occupancy getter
566-
*
567-
* @devlink: devlink
568-
* @resource_id: resource id
569-
*
570-
* Context: Takes and release devlink->lock <mutex>.
571-
*/
572-
void devlink_resource_occ_get_unregister(struct devlink *devlink,
573-
u64 resource_id)
574-
{
575-
devl_lock(devlink);
576-
devl_resource_occ_get_unregister(devlink, resource_id);
577-
devl_unlock(devlink);
578-
}
579-
EXPORT_SYMBOL_GPL(devlink_resource_occ_get_unregister);

0 commit comments

Comments
 (0)