net: devlink: region: Pass the region ops to the snapshot function
Pass the region to be snapshotted to the function performing the snapshot. This allows one function to operate on numerous regions. v4: Add missing kerneldoc for ICE Signed-off-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e14e05e71d
commit
d4602a9f47
|
@ -401,6 +401,7 @@ void ice_devlink_destroy_port(struct ice_pf *pf)
|
|||
/**
|
||||
* ice_devlink_nvm_snapshot - Capture a snapshot of the Shadow RAM contents
|
||||
* @devlink: the devlink instance
|
||||
* @ops: the devlink region being snapshotted
|
||||
* @extack: extended ACK response structure
|
||||
* @data: on exit points to snapshot data buffer
|
||||
*
|
||||
|
@ -413,6 +414,7 @@ void ice_devlink_destroy_port(struct ice_pf *pf)
|
|||
* error code on failure.
|
||||
*/
|
||||
static int ice_devlink_nvm_snapshot(struct devlink *devlink,
|
||||
const struct devlink_region_ops *ops,
|
||||
struct netlink_ext_ack *extack, u8 **data)
|
||||
{
|
||||
struct ice_pf *pf = devlink_priv(devlink);
|
||||
|
@ -456,6 +458,7 @@ static int ice_devlink_nvm_snapshot(struct devlink *devlink,
|
|||
/**
|
||||
* ice_devlink_devcaps_snapshot - Capture snapshot of device capabilities
|
||||
* @devlink: the devlink instance
|
||||
* @ops: the devlink region being snapshotted
|
||||
* @extack: extended ACK response structure
|
||||
* @data: on exit points to snapshot data buffer
|
||||
*
|
||||
|
@ -468,6 +471,7 @@ static int ice_devlink_nvm_snapshot(struct devlink *devlink,
|
|||
*/
|
||||
static int
|
||||
ice_devlink_devcaps_snapshot(struct devlink *devlink,
|
||||
const struct devlink_region_ops *ops,
|
||||
struct netlink_ext_ack *extack, u8 **data)
|
||||
{
|
||||
struct ice_pf *pf = devlink_priv(devlink);
|
||||
|
|
|
@ -40,7 +40,9 @@ static struct dentry *nsim_dev_ddir;
|
|||
#define NSIM_DEV_DUMMY_REGION_SIZE (1024 * 32)
|
||||
|
||||
static int
|
||||
nsim_dev_take_snapshot(struct devlink *devlink, struct netlink_ext_ack *extack,
|
||||
nsim_dev_take_snapshot(struct devlink *devlink,
|
||||
const struct devlink_region_ops *ops,
|
||||
struct netlink_ext_ack *extack,
|
||||
u8 **data)
|
||||
{
|
||||
void *dummy_data;
|
||||
|
@ -68,7 +70,7 @@ static ssize_t nsim_dev_take_snapshot_write(struct file *file,
|
|||
|
||||
devlink = priv_to_devlink(nsim_dev);
|
||||
|
||||
err = nsim_dev_take_snapshot(devlink, NULL, &dummy_data);
|
||||
err = nsim_dev_take_snapshot(devlink, NULL, NULL, &dummy_data);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
|
|
|
@ -566,7 +566,9 @@ struct devlink_info_req;
|
|||
struct devlink_region_ops {
|
||||
const char *name;
|
||||
void (*destructor)(const void *data);
|
||||
int (*snapshot)(struct devlink *devlink, struct netlink_ext_ack *extack,
|
||||
int (*snapshot)(struct devlink *devlink,
|
||||
const struct devlink_region_ops *ops,
|
||||
struct netlink_ext_ack *extack,
|
||||
u8 **data);
|
||||
void *priv;
|
||||
};
|
||||
|
|
|
@ -4347,7 +4347,7 @@ devlink_nl_cmd_region_new(struct sk_buff *skb, struct genl_info *info)
|
|||
}
|
||||
}
|
||||
|
||||
err = region->ops->snapshot(devlink, info->extack, &data);
|
||||
err = region->ops->snapshot(devlink, region->ops, info->extack, &data);
|
||||
if (err)
|
||||
goto err_snapshot_capture;
|
||||
|
||||
|
|
Loading…
Reference in New Issue