qla3xxx: Ensure request/response queue addr writes to the registers
Subsystems (3)
PATCH 1/1 qla3xxx: Ensure request/response queue addr writes to the registers
Before use the request and response queue addr, make sure it has wrote to the registers.
--- drivers/net/ethernet/qlogic/qla3xxx.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
drivers/net/ethernet/qlogic/qla3xxx.c +7 -2
@@ -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,
Signature · 1 line
1.7.11.7
Quoted 37 lines
From: Joe Jin [mailto:[email protected]]
Sent: Sunday, October 21, 2012 5:41 PM
To: Jitendra Kalsaria; Ron Mercer; Dept-Eng Linux Driver; David Miller; Andrew Morton
Cc: netdev; linux-kernel; Greg Marsden
Subject: [PATCH] qla3xxx: Ensure request/response queue addr writes to the registersBefore use the request and response queue addr, make sure it has wrote to the registers.
Signed-off-by Joe Jin <[email protected]>Cc Jitendra Kalsaria <[email protected]>Cc Ron Mercer <[email protected]>---
drivers/net/ethernet/qlogic/qla3xxx.c| 9 +++++++--1 file changed, 7 insertions(+), 2 deletions(-)drivers/net/ethernet/qlogic/qla3xxx.c +7
-0@@ -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,
drivers/net/ethernet/qlogic/qla3xxx.c static int ql_alloc_net_req_rsp_queues(struct ql3_adapter *qdev) · line 2548
Quoted 8 lines
drivers/net/ethernet/qlogic/qla3xxx.c +0
-2@@ -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,
Signature · 1 line
1.7.11.7
From: Joe Jin <[email protected]>
Date: Mon, 22 Oct 2012 08:40:36 +0800
Quoted 4 lines
Before use the request and response queue addr, make sure it has wrote to the registers.
Signed-off-by Joe Jin <[email protected]>
Applied.