devlink: Avoid overwriting port attributes of registered port
Subsystems (2)
PATCH 1/1 devlink: Avoid overwriting port attributes of registered port
Cited commit in fixes tag overwrites the port attributes for the registered port.
Avoid such error by checking registered flag before setting attributes.
--- net/core/devlink.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
net/core/devlink.c +6 -2
@@ -8254,8 +8254,6 @@ static int __devlink_port_attrs_set(struct devlink_port *devlink_port, {struct devlink_port_attrs *attrs = &devlink_port->attrs; -if (WARN_ON (devlink_port->registered)) -return -EEXIST ; devlink_port->attrs_set = true; attrs->flavour = flavour;if (attrs->switch_id.id_len) {
@@ -8279,6 +8277,8 @@ void devlink_port_attrs_set(struct devlink_port *devlink_port, {int ret; +if (WARN_ON (devlink_port->registered)) +return ; devlink_port->attrs = *attrs; ret =__devlink_port_attrs_set (devlink_port, attrs->flavour);if (ret)
@@ -8301,6 +8301,8 @@ void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u32 controstruct devlink_port_attrs *attrs = &devlink_port->attrs;int ret; +if (WARN_ON (devlink_port->registered)) +return ; ret =__devlink_port_attrs_set (devlink_port,DEVLINK_PORT_FLAVOUR_PCI_PF );if (ret)
@@ -8326,6 +8328,8 @@ void devlink_port_attrs_pci_vf_set(struct devlink_port *devlink_port, u32 controstruct devlink_port_attrs *attrs = &devlink_port->attrs;int ret; +if (WARN_ON (devlink_port->registered)) +return ; ret =__devlink_port_attrs_set (devlink_port,DEVLINK_PORT_FLAVOUR_PCI_VF );if (ret)
Signature · 1 line
2.26.2
Jakub Kicinski
maintainerQuoted 2 lines · On Tue, 10 Nov 2020 20:52:58 +0200 Parav Pandit wrote:
Cited commit in fixes tag overwrites the port attributes for the registered port.
Seems like you forgot the fixes tag you're referring to.
Quoted 4 lines
Avoid such error by checking registered flag before setting attributes.
Signed-off-by Parav Pandit <[email protected]>Reviewed-by Jiri Pirko <[email protected]>
DKIM-Signature: v a
PATCH RESEND 1/1 devlink: Avoid overwriting port attributes of registered port
In reply to Parav PanditCited commit in fixes tag overwrites the port attributes for the registered port.
Avoid such error by checking registered flag before setting attributes.
--- net/core/devlink.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
net/core/devlink.c +6 -2
@@ -8254,8 +8254,6 @@ static int __devlink_port_attrs_set(struct devlink_port *devlink_port, {struct devlink_port_attrs *attrs = &devlink_port->attrs; -if (WARN_ON (devlink_port->registered)) -return -EEXIST ; devlink_port->attrs_set = true; attrs->flavour = flavour;if (attrs->switch_id.id_len) {
@@ -8279,6 +8277,8 @@ void devlink_port_attrs_set(struct devlink_port *devlink_port, {int ret; +if (WARN_ON (devlink_port->registered)) +return ; devlink_port->attrs = *attrs; ret =__devlink_port_attrs_set (devlink_port, attrs->flavour);if (ret)
@@ -8301,6 +8301,8 @@ void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u32 controstruct devlink_port_attrs *attrs = &devlink_port->attrs;int ret; +if (WARN_ON (devlink_port->registered)) +return ; ret =__devlink_port_attrs_set (devlink_port,DEVLINK_PORT_FLAVOUR_PCI_PF );if (ret)
@@ -8326,6 +8328,8 @@ void devlink_port_attrs_pci_vf_set(struct devlink_port *devlink_port, u32 controstruct devlink_port_attrs *attrs = &devlink_port->attrs;int ret; +if (WARN_ON (devlink_port->registered)) +return ; ret =__devlink_port_attrs_set (devlink_port,DEVLINK_PORT_FLAVOUR_PCI_VF );if (ret)
Signature · 1 line
2.26.2
Quoted 8 lines · On Wed, 11 Nov 2020 05:47:44 +0200 Parav Pandit wrote:
Cited commit in fixes tag overwrites the port attributes for the registered port.
Avoid such error by checking registered flag before setting attributes.
Fixes 71ad8d55f8e5 ("devlink: Replace devlink_port_attrs_set parameters with a struct")Signed-off-by Parav Pandit <[email protected]>Reviewed-by Jiri Pirko <[email protected]>
Applied, thanks!