mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 21:15:53 +02:00
net: dsa: mv88e6xxx: Constify struct devlink_region_ops and struct mv88e6xxx_region
'struct devlink_region_ops' and 'struct mv88e6xxx_region' are not modified in this driver. Constifying these structures moves some data to a read-only section, so increases overall security, especially when the structure holds some function pointers. On a x86_64, with allmodconfig, as an example: Before: ====== text data bss dec hex filename 18076 6496 64 24636 603c drivers/net/dsa/mv88e6xxx/devlink.o After: ===== text data bss dec hex filename 18652 5920 64 24636 603c drivers/net/dsa/mv88e6xxx/devlink.o Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/46040062161dda211580002f950a6d60433243dc.1751200453.git.christophe.jaillet@wanadoo.fr Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
fad9cf2165
commit
ff2d4cfdaf
|
|
@ -647,7 +647,7 @@ static struct mv88e6xxx_region_priv mv88e6xxx_region_global1_priv = {
|
|||
.id = MV88E6XXX_REGION_GLOBAL1,
|
||||
};
|
||||
|
||||
static struct devlink_region_ops mv88e6xxx_region_global1_ops = {
|
||||
static const struct devlink_region_ops mv88e6xxx_region_global1_ops = {
|
||||
.name = "global1",
|
||||
.snapshot = mv88e6xxx_region_global_snapshot,
|
||||
.destructor = kfree,
|
||||
|
|
@ -658,32 +658,32 @@ static struct mv88e6xxx_region_priv mv88e6xxx_region_global2_priv = {
|
|||
.id = MV88E6XXX_REGION_GLOBAL2,
|
||||
};
|
||||
|
||||
static struct devlink_region_ops mv88e6xxx_region_global2_ops = {
|
||||
static const struct devlink_region_ops mv88e6xxx_region_global2_ops = {
|
||||
.name = "global2",
|
||||
.snapshot = mv88e6xxx_region_global_snapshot,
|
||||
.destructor = kfree,
|
||||
.priv = &mv88e6xxx_region_global2_priv,
|
||||
};
|
||||
|
||||
static struct devlink_region_ops mv88e6xxx_region_atu_ops = {
|
||||
static const struct devlink_region_ops mv88e6xxx_region_atu_ops = {
|
||||
.name = "atu",
|
||||
.snapshot = mv88e6xxx_region_atu_snapshot,
|
||||
.destructor = kfree,
|
||||
};
|
||||
|
||||
static struct devlink_region_ops mv88e6xxx_region_vtu_ops = {
|
||||
static const struct devlink_region_ops mv88e6xxx_region_vtu_ops = {
|
||||
.name = "vtu",
|
||||
.snapshot = mv88e6xxx_region_vtu_snapshot,
|
||||
.destructor = kfree,
|
||||
};
|
||||
|
||||
static struct devlink_region_ops mv88e6xxx_region_stu_ops = {
|
||||
static const struct devlink_region_ops mv88e6xxx_region_stu_ops = {
|
||||
.name = "stu",
|
||||
.snapshot = mv88e6xxx_region_stu_snapshot,
|
||||
.destructor = kfree,
|
||||
};
|
||||
|
||||
static struct devlink_region_ops mv88e6xxx_region_pvt_ops = {
|
||||
static const struct devlink_region_ops mv88e6xxx_region_pvt_ops = {
|
||||
.name = "pvt",
|
||||
.snapshot = mv88e6xxx_region_pvt_snapshot,
|
||||
.destructor = kfree,
|
||||
|
|
@ -696,13 +696,13 @@ static const struct devlink_port_region_ops mv88e6xxx_region_port_ops = {
|
|||
};
|
||||
|
||||
struct mv88e6xxx_region {
|
||||
struct devlink_region_ops *ops;
|
||||
const struct devlink_region_ops *ops;
|
||||
u64 size;
|
||||
|
||||
bool (*cond)(struct mv88e6xxx_chip *chip);
|
||||
};
|
||||
|
||||
static struct mv88e6xxx_region mv88e6xxx_regions[] = {
|
||||
static const struct mv88e6xxx_region mv88e6xxx_regions[] = {
|
||||
[MV88E6XXX_REGION_GLOBAL1] = {
|
||||
.ops = &mv88e6xxx_region_global1_ops,
|
||||
.size = 32 * sizeof(u16)
|
||||
|
|
@ -768,7 +768,7 @@ int mv88e6xxx_setup_devlink_regions_global(struct dsa_switch *ds)
|
|||
{
|
||||
bool (*cond)(struct mv88e6xxx_chip *chip);
|
||||
struct mv88e6xxx_chip *chip = ds->priv;
|
||||
struct devlink_region_ops *ops;
|
||||
const struct devlink_region_ops *ops;
|
||||
struct devlink_region *region;
|
||||
u64 size;
|
||||
int i, j;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user