devlink: Replace devlink_port_attrs_set parameters with a struct
Currently, devlink_port_attrs_set accepts a long list of parameters, that most of them are devlink port's attributes. Use the devlink_port_attrs struct to replace the relevant parameters. Signed-off-by: Danielle Ratson <danieller@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
46737a1949
commit
71ad8d55f8
@@ -7510,9 +7510,7 @@ void devlink_port_type_clear(struct devlink_port *devlink_port)
|
||||
EXPORT_SYMBOL_GPL(devlink_port_type_clear);
|
||||
|
||||
static int __devlink_port_attrs_set(struct devlink_port *devlink_port,
|
||||
enum devlink_port_flavour flavour,
|
||||
const unsigned char *switch_id,
|
||||
unsigned char switch_id_len)
|
||||
enum devlink_port_flavour flavour)
|
||||
{
|
||||
struct devlink_port_attrs *attrs = &devlink_port->attrs;
|
||||
|
||||
@@ -7520,12 +7518,10 @@ static int __devlink_port_attrs_set(struct devlink_port *devlink_port,
|
||||
return -EEXIST;
|
||||
devlink_port->attrs_set = true;
|
||||
attrs->flavour = flavour;
|
||||
if (switch_id) {
|
||||
if (attrs->switch_id.id_len) {
|
||||
devlink_port->switch_port = true;
|
||||
if (WARN_ON(switch_id_len > MAX_PHYS_ITEM_ID_LEN))
|
||||
switch_id_len = MAX_PHYS_ITEM_ID_LEN;
|
||||
memcpy(attrs->switch_id.id, switch_id, switch_id_len);
|
||||
attrs->switch_id.id_len = switch_id_len;
|
||||
if (WARN_ON(attrs->switch_id.id_len > MAX_PHYS_ITEM_ID_LEN))
|
||||
attrs->switch_id.id_len = MAX_PHYS_ITEM_ID_LEN;
|
||||
} else {
|
||||
devlink_port->switch_port = false;
|
||||
}
|
||||
@@ -7536,33 +7532,17 @@ static int __devlink_port_attrs_set(struct devlink_port *devlink_port,
|
||||
* devlink_port_attrs_set - Set port attributes
|
||||
*
|
||||
* @devlink_port: devlink port
|
||||
* @flavour: flavour of the port
|
||||
* @port_number: number of the port that is facing user, for example
|
||||
* the front panel port number
|
||||
* @split: indicates if this is split port
|
||||
* @split_subport_number: if the port is split, this is the number
|
||||
* of subport.
|
||||
* @switch_id: if the port is part of switch, this is buffer with ID,
|
||||
* otwerwise this is NULL
|
||||
* @switch_id_len: length of the switch_id buffer
|
||||
* @attrs: devlink port attrs
|
||||
*/
|
||||
void devlink_port_attrs_set(struct devlink_port *devlink_port,
|
||||
enum devlink_port_flavour flavour,
|
||||
u32 port_number, bool split,
|
||||
u32 split_subport_number,
|
||||
const unsigned char *switch_id,
|
||||
unsigned char switch_id_len)
|
||||
struct devlink_port_attrs *attrs)
|
||||
{
|
||||
struct devlink_port_attrs *attrs = &devlink_port->attrs;
|
||||
int ret;
|
||||
|
||||
ret = __devlink_port_attrs_set(devlink_port, flavour,
|
||||
switch_id, switch_id_len);
|
||||
devlink_port->attrs = *attrs;
|
||||
ret = __devlink_port_attrs_set(devlink_port, attrs->flavour);
|
||||
if (ret)
|
||||
return;
|
||||
attrs->split = split;
|
||||
attrs->phys.port_number = port_number;
|
||||
attrs->phys.split_subport_number = split_subport_number;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devlink_port_attrs_set);
|
||||
|
||||
@@ -7571,20 +7551,14 @@ EXPORT_SYMBOL_GPL(devlink_port_attrs_set);
|
||||
*
|
||||
* @devlink_port: devlink port
|
||||
* @pf: associated PF for the devlink port instance
|
||||
* @switch_id: if the port is part of switch, this is buffer with ID,
|
||||
* otherwise this is NULL
|
||||
* @switch_id_len: length of the switch_id buffer
|
||||
*/
|
||||
void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port,
|
||||
const unsigned char *switch_id,
|
||||
unsigned char switch_id_len, u16 pf)
|
||||
void devlink_port_attrs_pci_pf_set(struct devlink_port *devlink_port, u16 pf)
|
||||
{
|
||||
struct devlink_port_attrs *attrs = &devlink_port->attrs;
|
||||
int ret;
|
||||
|
||||
ret = __devlink_port_attrs_set(devlink_port,
|
||||
DEVLINK_PORT_FLAVOUR_PCI_PF,
|
||||
switch_id, switch_id_len);
|
||||
DEVLINK_PORT_FLAVOUR_PCI_PF);
|
||||
if (ret)
|
||||
return;
|
||||
|
||||
@@ -7598,21 +7572,15 @@ EXPORT_SYMBOL_GPL(devlink_port_attrs_pci_pf_set);
|
||||
* @devlink_port: devlink port
|
||||
* @pf: associated PF for the devlink port instance
|
||||
* @vf: associated VF of a PF for the devlink port instance
|
||||
* @switch_id: if the port is part of switch, this is buffer with ID,
|
||||
* otherwise this is NULL
|
||||
* @switch_id_len: length of the switch_id buffer
|
||||
*/
|
||||
void devlink_port_attrs_pci_vf_set(struct devlink_port *devlink_port,
|
||||
const unsigned char *switch_id,
|
||||
unsigned char switch_id_len,
|
||||
u16 pf, u16 vf)
|
||||
{
|
||||
struct devlink_port_attrs *attrs = &devlink_port->attrs;
|
||||
int ret;
|
||||
|
||||
ret = __devlink_port_attrs_set(devlink_port,
|
||||
DEVLINK_PORT_FLAVOUR_PCI_VF,
|
||||
switch_id, switch_id_len);
|
||||
DEVLINK_PORT_FLAVOUR_PCI_VF);
|
||||
if (ret)
|
||||
return;
|
||||
attrs->pci_vf.pf = pf;
|
||||
|
Reference in New Issue
Block a user