diff options
Diffstat (limited to 'drivers/net/ethernet/qlogic/qla3xxx.c')
| -rw-r--r-- | drivers/net/ethernet/qlogic/qla3xxx.c | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c index df09b1cb742..6407d0d77e8 100644 --- a/drivers/net/ethernet/qlogic/qla3xxx.c +++ b/drivers/net/ethernet/qlogic/qla3xxx.c @@ -2525,6 +2525,13 @@ static int ql_alloc_net_req_rsp_queues(struct ql3_adapter *qdev)  	qdev->req_q_size =  	    (u32) (NUM_REQ_Q_ENTRIES * sizeof(struct ob_mac_iocb_req)); +	qdev->rsp_q_size = NUM_RSP_Q_ENTRIES * sizeof(struct net_rsp_iocb); + +	/* The barrier is required to ensure request and response queue +	 * addr writes to the registers. +	 */ +	wmb(); +  	qdev->req_q_virt_addr =  	    pci_alloc_consistent(qdev->pdev,  				 (size_t) qdev->req_q_size, @@ -2536,8 +2543,6 @@ static int ql_alloc_net_req_rsp_queues(struct ql3_adapter *qdev)  		return -ENOMEM;  	} -	qdev->rsp_q_size = NUM_RSP_Q_ENTRIES * sizeof(struct net_rsp_iocb); -  	qdev->rsp_q_virt_addr =  	    pci_alloc_consistent(qdev->pdev,  				 (size_t) qdev->rsp_q_size,  |