diff options
Diffstat (limited to 'drivers/net/ethernet/cisco/enic/enic_pp.h')
-rw-r--r-- | drivers/net/ethernet/cisco/enic/enic_pp.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/net/ethernet/cisco/enic/enic_pp.h b/drivers/net/ethernet/cisco/enic/enic_pp.h index 699e365a944d..a09ff392c1c6 100644 --- a/drivers/net/ethernet/cisco/enic/enic_pp.h +++ b/drivers/net/ethernet/cisco/enic/enic_pp.h @@ -19,9 +19,18 @@ #ifndef _ENIC_PP_H_ #define _ENIC_PP_H_ -int enic_process_set_pp_request(struct enic *enic, +#define ENIC_PP_BY_INDEX(enic, vf, pp, err) \ + do { \ + if (enic_is_valid_pp_vf(enic, vf, err)) \ + pp = (vf == PORT_SELF_VF) ? enic->pp : enic->pp + vf; \ + else \ + pp = NULL; \ + } while (0) + +int enic_process_set_pp_request(struct enic *enic, int vf, struct enic_port_profile *prev_pp, int *restore_pp); -int enic_process_get_pp_request(struct enic *enic, int request, - u16 *response); +int enic_process_get_pp_request(struct enic *enic, int vf, + int request, u16 *response); +int enic_is_valid_pp_vf(struct enic *enic, int vf, int *err); #endif /* _ENIC_PP_H_ */ |