Skip to content

Commit 43c07ad

Browse files
Rasesh Modydavem330
authored andcommitted
bna: Enahncement to Identify Default IOC Function
User should not be allowed to delete base function of eth port. Add a new field to the bfa ioc attributes structure to indicate if the given ioc is default function on the port or not. Signed-off-by: Rasesh Mody <rmody@brocade.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent f489a4b commit 43c07ad

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

drivers/net/ethernet/brocade/bna/bfa_defs.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ struct bfa_ioc_attr {
164164
u8 port_mode; /*!< enum bfa_mode */
165165
u8 cap_bm; /*!< capability */
166166
u8 port_mode_cfg; /*!< enum bfa_mode */
167-
u8 rsvd[4]; /*!< 64bit align */
167+
u8 def_fn; /*!< 1 if default fn */
168+
u8 rsvd[3]; /*!< 64bit align */
168169
};
169170

170171
/* Adapter capability mask definition */

drivers/net/ethernet/brocade/bna/bfa_ioc.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2371,7 +2371,7 @@ bfa_nw_ioc_get_attr(struct bfa_ioc *ioc, struct bfa_ioc_attr *ioc_attr)
23712371
memset((void *)ioc_attr, 0, sizeof(struct bfa_ioc_attr));
23722372

23732373
ioc_attr->state = bfa_ioc_get_state(ioc);
2374-
ioc_attr->port_id = ioc->port_id;
2374+
ioc_attr->port_id = bfa_ioc_portid(ioc);
23752375
ioc_attr->port_mode = ioc->port_mode;
23762376

23772377
ioc_attr->port_mode_cfg = ioc->port_mode_cfg;
@@ -2381,8 +2381,9 @@ bfa_nw_ioc_get_attr(struct bfa_ioc *ioc, struct bfa_ioc_attr *ioc_attr)
23812381

23822382
bfa_ioc_get_adapter_attr(ioc, &ioc_attr->adapter_attr);
23832383

2384-
ioc_attr->pci_attr.device_id = ioc->pcidev.device_id;
2385-
ioc_attr->pci_attr.pcifn = ioc->pcidev.pci_func;
2384+
ioc_attr->pci_attr.device_id = bfa_ioc_devid(ioc);
2385+
ioc_attr->pci_attr.pcifn = bfa_ioc_pcifn(ioc);
2386+
ioc_attr->def_fn = bfa_ioc_is_default(ioc);
23862387
bfa_ioc_get_pci_chip_rev(ioc, ioc_attr->pci_attr.chip_rev);
23872388
}
23882389

drivers/net/ethernet/brocade/bna/bfa_ioc.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ struct bfa_ioc_hwif {
222222
#define bfa_ioc_bar0(__ioc) ((__ioc)->pcidev.pci_bar_kva)
223223
#define bfa_ioc_portid(__ioc) ((__ioc)->port_id)
224224
#define bfa_ioc_asic_gen(__ioc) ((__ioc)->asic_gen)
225+
#define bfa_ioc_is_default(__ioc) \
226+
(bfa_ioc_pcifn(__ioc) == bfa_ioc_portid(__ioc))
225227
#define bfa_ioc_fetch_stats(__ioc, __stats) \
226228
(((__stats)->drv_stats) = (__ioc)->stats)
227229
#define bfa_ioc_clr_stats(__ioc) \

0 commit comments

Comments
 (0)