@@ -11192,36 +11192,31 @@ void devlink_param_value_changed(struct devlink *devlink, u32 param_id)
11192
11192
EXPORT_SYMBOL_GPL (devlink_param_value_changed );
11193
11193
11194
11194
/**
11195
- * devlink_region_create - create a new address region
11195
+ * devl_region_create - create a new address region
11196
11196
*
11197
- * @devlink: devlink
11198
- * @ops: region operations and name
11199
- * @region_max_snapshots: Maximum supported number of snapshots for region
11200
- * @region_size: size of region
11197
+ * @devlink: devlink
11198
+ * @ops: region operations and name
11199
+ * @region_max_snapshots: Maximum supported number of snapshots for region
11200
+ * @region_size: size of region
11201
11201
*/
11202
- struct devlink_region *
11203
- devlink_region_create ( struct devlink * devlink ,
11204
- const struct devlink_region_ops * ops ,
11205
- u32 region_max_snapshots , u64 region_size )
11202
+ struct devlink_region * devl_region_create ( struct devlink * devlink ,
11203
+ const struct devlink_region_ops * ops ,
11204
+ u32 region_max_snapshots ,
11205
+ u64 region_size )
11206
11206
{
11207
11207
struct devlink_region * region ;
11208
- int err = 0 ;
11208
+
11209
+ devl_assert_locked (devlink );
11209
11210
11210
11211
if (WARN_ON (!ops ) || WARN_ON (!ops -> destructor ))
11211
11212
return ERR_PTR (- EINVAL );
11212
11213
11213
- devl_lock (devlink );
11214
-
11215
- if (devlink_region_get_by_name (devlink , ops -> name )) {
11216
- err = - EEXIST ;
11217
- goto unlock ;
11218
- }
11214
+ if (devlink_region_get_by_name (devlink , ops -> name ))
11215
+ return ERR_PTR (- EEXIST );
11219
11216
11220
11217
region = kzalloc (sizeof (* region ), GFP_KERNEL );
11221
- if (!region ) {
11222
- err = - ENOMEM ;
11223
- goto unlock ;
11224
- }
11218
+ if (!region )
11219
+ return ERR_PTR (- ENOMEM );
11225
11220
11226
11221
region -> devlink = devlink ;
11227
11222
region -> max_snapshots = region_max_snapshots ;
@@ -11231,12 +11226,32 @@ devlink_region_create(struct devlink *devlink,
11231
11226
list_add_tail (& region -> list , & devlink -> region_list );
11232
11227
devlink_nl_region_notify (region , NULL , DEVLINK_CMD_REGION_NEW );
11233
11228
11234
- devl_unlock (devlink );
11235
11229
return region ;
11230
+ }
11231
+ EXPORT_SYMBOL_GPL (devl_region_create );
11236
11232
11237
- unlock :
11233
+ /**
11234
+ * devlink_region_create - create a new address region
11235
+ *
11236
+ * @devlink: devlink
11237
+ * @ops: region operations and name
11238
+ * @region_max_snapshots: Maximum supported number of snapshots for region
11239
+ * @region_size: size of region
11240
+ *
11241
+ * Context: Takes and release devlink->lock <mutex>.
11242
+ */
11243
+ struct devlink_region *
11244
+ devlink_region_create (struct devlink * devlink ,
11245
+ const struct devlink_region_ops * ops ,
11246
+ u32 region_max_snapshots , u64 region_size )
11247
+ {
11248
+ struct devlink_region * region ;
11249
+
11250
+ devl_lock (devlink );
11251
+ region = devl_region_create (devlink , ops , region_max_snapshots ,
11252
+ region_size );
11238
11253
devl_unlock (devlink );
11239
- return ERR_PTR ( err ) ;
11254
+ return region ;
11240
11255
}
11241
11256
EXPORT_SYMBOL_GPL (devlink_region_create );
11242
11257
@@ -11247,6 +11262,8 @@ EXPORT_SYMBOL_GPL(devlink_region_create);
11247
11262
* @ops: region operations and name
11248
11263
* @region_max_snapshots: Maximum supported number of snapshots for region
11249
11264
* @region_size: size of region
11265
+ *
11266
+ * Context: Takes and release devlink->lock <mutex>.
11250
11267
*/
11251
11268
struct devlink_region *
11252
11269
devlink_port_region_create (struct devlink_port * port ,
@@ -11292,16 +11309,16 @@ devlink_port_region_create(struct devlink_port *port,
11292
11309
EXPORT_SYMBOL_GPL (devlink_port_region_create );
11293
11310
11294
11311
/**
11295
- * devlink_region_destroy - destroy address region
11312
+ * devl_region_destroy - destroy address region
11296
11313
*
11297
- * @region: devlink region to destroy
11314
+ * @region: devlink region to destroy
11298
11315
*/
11299
- void devlink_region_destroy (struct devlink_region * region )
11316
+ void devl_region_destroy (struct devlink_region * region )
11300
11317
{
11301
11318
struct devlink * devlink = region -> devlink ;
11302
11319
struct devlink_snapshot * snapshot , * ts ;
11303
11320
11304
- devl_lock (devlink );
11321
+ devl_assert_locked (devlink );
11305
11322
11306
11323
/* Free all snapshots of region */
11307
11324
list_for_each_entry_safe (snapshot , ts , & region -> snapshot_list , list )
@@ -11310,9 +11327,25 @@ void devlink_region_destroy(struct devlink_region *region)
11310
11327
list_del (& region -> list );
11311
11328
11312
11329
devlink_nl_region_notify (region , NULL , DEVLINK_CMD_REGION_DEL );
11313
- devl_unlock (devlink );
11314
11330
kfree (region );
11315
11331
}
11332
+ EXPORT_SYMBOL_GPL (devl_region_destroy );
11333
+
11334
+ /**
11335
+ * devlink_region_destroy - destroy address region
11336
+ *
11337
+ * @region: devlink region to destroy
11338
+ *
11339
+ * Context: Takes and release devlink->lock <mutex>.
11340
+ */
11341
+ void devlink_region_destroy (struct devlink_region * region )
11342
+ {
11343
+ struct devlink * devlink = region -> devlink ;
11344
+
11345
+ devl_lock (devlink );
11346
+ devl_region_destroy (region );
11347
+ devl_unlock (devlink );
11348
+ }
11316
11349
EXPORT_SYMBOL_GPL (devlink_region_destroy );
11317
11350
11318
11351
/**
0 commit comments