mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
Merge branch 'devlink-warn-on-resource-id-collision-with-parent_top'
David Yang says:
====================
devlink: Warn on resource ID collision with PARENT_TOP
Filter out the ambiguous case of
enum {
MY_RESOURCE_ID_A, /* == DEVLINK_RESOURCE_ID_PARENT_TOP ! */
MY_RESOURCE_ID_B,
...
};
register(..., MY_RESOURCE_ID_A, DEVLINK_RESOURCE_ID_PARENT_TOP, ...);
register(..., MY_RESOURCE_ID_B, MY_RESOURCE_ID_A, ...);
====================
Link: https://patch.msgid.link/20260611070856.889700-1-mmyangfl@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
4537f472ca
|
|
@ -1225,6 +1225,7 @@ int b53_get_sset_count(struct dsa_switch *ds, int port, int sset)
|
|||
EXPORT_SYMBOL(b53_get_sset_count);
|
||||
|
||||
enum b53_devlink_resource_id {
|
||||
B53_DEVLINK_PARAM_ID_NONE, /* DEVLINK_RESOURCE_ID_PARENT_TOP */
|
||||
B53_DEVLINK_PARAM_ID_VLAN_TABLE,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ static struct phy_device *phydevs[PHY_MAX_ADDR];
|
|||
static struct mdio_device *switch_mdiodev;
|
||||
|
||||
enum dsa_loop_devlink_resource_id {
|
||||
DSA_LOOP_DEVLINK_PARAM_ID_NONE, /* DEVLINK_RESOURCE_ID_PARENT_TOP */
|
||||
DSA_LOOP_DEVLINK_PARAM_ID_VTU,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -311,6 +311,7 @@ struct hellcreek {
|
|||
|
||||
/* Devlink resources */
|
||||
enum hellcreek_devlink_resource_id {
|
||||
HELLCREEK_DEVLINK_PARAM_ID_NONE, /* DEVLINK_RESOURCE_ID_PARENT_TOP */
|
||||
HELLCREEK_DEVLINK_PARAM_ID_VLAN_TABLE,
|
||||
HELLCREEK_DEVLINK_PARAM_ID_FDB_TABLE,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ void mv88e6xxx_teardown_devlink_params(struct dsa_switch *ds)
|
|||
}
|
||||
|
||||
enum mv88e6xxx_devlink_resource_id {
|
||||
MV88E6XXX_RESOURCE_ID_NONE, /* DEVLINK_RESOURCE_ID_PARENT_TOP */
|
||||
MV88E6XXX_RESOURCE_ID_ATU,
|
||||
MV88E6XXX_RESOURCE_ID_ATU_BIN_0,
|
||||
MV88E6XXX_RESOURCE_ID_ATU_BIN_1,
|
||||
|
|
@ -200,7 +201,7 @@ int mv88e6xxx_setup_devlink_resources(struct dsa_switch *ds)
|
|||
err = dsa_devlink_resource_register(ds, "ATU_bin_0",
|
||||
mv88e6xxx_num_macs(chip) / 4,
|
||||
MV88E6XXX_RESOURCE_ID_ATU_BIN_0,
|
||||
MV88E6XXX_RESOURCE_ID_ATU,
|
||||
DEVLINK_RESOURCE_ID_PARENT_TOP,
|
||||
&size_params);
|
||||
if (err)
|
||||
goto out;
|
||||
|
|
@ -208,7 +209,7 @@ int mv88e6xxx_setup_devlink_resources(struct dsa_switch *ds)
|
|||
err = dsa_devlink_resource_register(ds, "ATU_bin_1",
|
||||
mv88e6xxx_num_macs(chip) / 4,
|
||||
MV88E6XXX_RESOURCE_ID_ATU_BIN_1,
|
||||
MV88E6XXX_RESOURCE_ID_ATU,
|
||||
DEVLINK_RESOURCE_ID_PARENT_TOP,
|
||||
&size_params);
|
||||
if (err)
|
||||
goto out;
|
||||
|
|
@ -216,7 +217,7 @@ int mv88e6xxx_setup_devlink_resources(struct dsa_switch *ds)
|
|||
err = dsa_devlink_resource_register(ds, "ATU_bin_2",
|
||||
mv88e6xxx_num_macs(chip) / 4,
|
||||
MV88E6XXX_RESOURCE_ID_ATU_BIN_2,
|
||||
MV88E6XXX_RESOURCE_ID_ATU,
|
||||
DEVLINK_RESOURCE_ID_PARENT_TOP,
|
||||
&size_params);
|
||||
if (err)
|
||||
goto out;
|
||||
|
|
@ -224,7 +225,7 @@ int mv88e6xxx_setup_devlink_resources(struct dsa_switch *ds)
|
|||
err = dsa_devlink_resource_register(ds, "ATU_bin_3",
|
||||
mv88e6xxx_num_macs(chip) / 4,
|
||||
MV88E6XXX_RESOURCE_ID_ATU_BIN_3,
|
||||
MV88E6XXX_RESOURCE_ID_ATU,
|
||||
DEVLINK_RESOURCE_ID_PARENT_TOP,
|
||||
&size_params);
|
||||
if (err)
|
||||
goto out;
|
||||
|
|
|
|||
|
|
@ -486,6 +486,8 @@ __devl_resource_register(struct devlink *devlink,
|
|||
struct list_head *resource_list;
|
||||
bool top_hierarchy;
|
||||
|
||||
WARN_ON(resource_id == DEVLINK_RESOURCE_ID_PARENT_TOP);
|
||||
|
||||
lockdep_assert_held(&devlink->lock);
|
||||
|
||||
top_hierarchy = parent_resource_id == DEVLINK_RESOURCE_ID_PARENT_TOP;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user