aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/brocade/bna/bna_types.h
diff options
context:
space:
mode:
authorRasesh Mody <rmody@brocade.com>2013-12-17 17:07:33 -0800
committerDavid S. Miller <davem@davemloft.net>2013-12-18 00:30:33 -0500
commit20b298f5319194b9cbbc4d5cc5c20ff296aafd70 (patch)
tree09ecb3d8a1d0d0fe7d1cef5c130e6b3ffbdafbe6 /drivers/net/ethernet/brocade/bna/bna_types.h
parentbna: Set Get IOC fw State (diff)
downloadlinux-dev-20b298f5319194b9cbbc4d5cc5c20ff296aafd70.tar.xz
linux-dev-20b298f5319194b9cbbc4d5cc5c20ff296aafd70.zip
bna: Fix Filter Add Del
Change Details: - bna_rx_mcast_listset() API first looks at free_q only and not at other pending Qs rendering it non-deterministic of giving an upper limit. Modify bna_rx_mcast_listset() implementation to not use only half of the limit. - Allocate and initialize queue for deleting - Segregate the adding and deleting process by using separate queues. - The filter framework in bna does not let adding addresses to its max capacity due to asynchronous operations involved. Provide a synchronous option to set a given list. Signed-off-by: Rasesh Mody <rmody@brocade.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--drivers/net/ethernet/brocade/bna/bna_types.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/brocade/bna/bna_types.h b/drivers/net/ethernet/brocade/bna/bna_types.h
index dc50f7836b6d..acedac2ae1c5 100644
--- a/drivers/net/ethernet/brocade/bna/bna_types.h
+++ b/drivers/net/ethernet/brocade/bna/bna_types.h
@@ -866,8 +866,9 @@ struct bna_rx_mod {
/* CAM */
struct bna_ucam_mod {
- struct bna_mac *ucmac; /* BFI_MAX_UCMAC entries */
+ struct bna_mac *ucmac; /* num_ucmac * 2 entries */
struct list_head free_q;
+ struct list_head del_q;
struct bna *bna;
};
@@ -880,9 +881,10 @@ struct bna_mcam_handle {
};
struct bna_mcam_mod {
- struct bna_mac *mcmac; /* BFI_MAX_MCMAC entries */
- struct bna_mcam_handle *mchandle; /* BFI_MAX_MCMAC entries */
+ struct bna_mac *mcmac; /* num_mcmac * 2 entries */
+ struct bna_mcam_handle *mchandle; /* num_mcmac entries */
struct list_head free_q;
+ struct list_head del_q;
struct list_head free_handle_q;
struct bna *bna;