浏览代码

bna: use container_of to resolve bufdesc_ex from bufdesc

Use container_of instead of casting first structure member.

Compiled but untested.

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: David S. Miller <davem@davemloft.net>
Fabian Frederick 11 年之前
父节点
当前提交
17b6f24448
共有 2 个文件被更改,包括 8 次插入5 次删除
  1. 6 3
      drivers/net/ethernet/brocade/bna/bna_enet.c
  2. 2 2
      drivers/net/ethernet/brocade/bna/bna_tx_rx.c

+ 6 - 3
drivers/net/ethernet/brocade/bna/bna_enet.c

@@ -107,7 +107,8 @@ bna_bfi_ethport_admin_rsp(struct bna_ethport *ethport,
 {
 {
 	struct bfi_enet_enable_req *admin_req =
 	struct bfi_enet_enable_req *admin_req =
 		&ethport->bfi_enet_cmd.admin_req;
 		&ethport->bfi_enet_cmd.admin_req;
-	struct bfi_enet_rsp *rsp = (struct bfi_enet_rsp *)msghdr;
+	struct bfi_enet_rsp *rsp =
+		container_of(msghdr, struct bfi_enet_rsp, mh);
 
 
 	switch (admin_req->enable) {
 	switch (admin_req->enable) {
 	case BNA_STATUS_T_ENABLED:
 	case BNA_STATUS_T_ENABLED:
@@ -133,7 +134,8 @@ bna_bfi_ethport_lpbk_rsp(struct bna_ethport *ethport,
 {
 {
 	struct bfi_enet_diag_lb_req *diag_lb_req =
 	struct bfi_enet_diag_lb_req *diag_lb_req =
 		&ethport->bfi_enet_cmd.lpbk_req;
 		&ethport->bfi_enet_cmd.lpbk_req;
-	struct bfi_enet_rsp *rsp = (struct bfi_enet_rsp *)msghdr;
+	struct bfi_enet_rsp *rsp =
+		container_of(msghdr, struct bfi_enet_rsp, mh);
 
 
 	switch (diag_lb_req->enable) {
 	switch (diag_lb_req->enable) {
 	case BNA_STATUS_T_ENABLED:
 	case BNA_STATUS_T_ENABLED:
@@ -161,7 +163,8 @@ static void
 bna_bfi_attr_get_rsp(struct bna_ioceth *ioceth,
 bna_bfi_attr_get_rsp(struct bna_ioceth *ioceth,
 			struct bfi_msgq_mhdr *msghdr)
 			struct bfi_msgq_mhdr *msghdr)
 {
 {
-	struct bfi_enet_attr_rsp *rsp = (struct bfi_enet_attr_rsp *)msghdr;
+	struct bfi_enet_attr_rsp *rsp =
+		container_of(msghdr, struct bfi_enet_attr_rsp, mh);
 
 
 	/**
 	/**
 	 * Store only if not set earlier, since BNAD can override the HW
 	 * Store only if not set earlier, since BNAD can override the HW

+ 2 - 2
drivers/net/ethernet/brocade/bna/bna_tx_rx.c

@@ -715,7 +715,7 @@ bna_bfi_rxf_ucast_set_rsp(struct bna_rxf *rxf,
 			struct bfi_msgq_mhdr *msghdr)
 			struct bfi_msgq_mhdr *msghdr)
 {
 {
 	struct bfi_enet_rsp *rsp =
 	struct bfi_enet_rsp *rsp =
-		(struct bfi_enet_rsp *)msghdr;
+		container_of(msghdr, struct bfi_enet_rsp, mh);
 
 
 	if (rsp->error) {
 	if (rsp->error) {
 		/* Clear ucast from cache */
 		/* Clear ucast from cache */
@@ -732,7 +732,7 @@ bna_bfi_rxf_mcast_add_rsp(struct bna_rxf *rxf,
 	struct bfi_enet_mcast_add_req *req =
 	struct bfi_enet_mcast_add_req *req =
 		&rxf->bfi_enet_cmd.mcast_add_req;
 		&rxf->bfi_enet_cmd.mcast_add_req;
 	struct bfi_enet_mcast_add_rsp *rsp =
 	struct bfi_enet_mcast_add_rsp *rsp =
-		(struct bfi_enet_mcast_add_rsp *)msghdr;
+		container_of(msghdr, struct bfi_enet_mcast_add_rsp, mh);
 
 
 	bna_rxf_mchandle_attach(rxf, (u8 *)&req->mac_addr,
 	bna_rxf_mchandle_attach(rxf, (u8 *)&req->mac_addr,
 		ntohs(rsp->handle));
 		ntohs(rsp->handle));