mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
	akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
	Alex Iannicelli <alex.iannicelli@emulex.com>,
	James Smart <james.smart@emulex.com>,
	James Bottomley <JBottomley@Parallels.com>
Subject: [196/244] [SCSI] lpfc 8.3.25: Adapter Interface fixes and changes
Date: Wed, 28 Sep 2011 15:02:40 -0700	[thread overview]
Message-ID: <20110928220146.012784312@clark.kroah.org> (raw)
In-Reply-To: <20110928220225.GA27128@kroah.com>

3.0-stable review patch.  If anyone has any objections, please let us know.

------------------

From: James Smart <james.smart@emulex.com>

commit 7851fe2c7f294d0beccf4c3d6af52e8247b89f00 upstream.

Adapter Interface fixes and changes

- Modify the macro field from lpfc_init_vpi_vpi to lpfc_init_vfi_vpi
- Add the new CQE_CODE_RECEIVE_V1 CQE Code, add code in the driver to handle
  the new Code the same as the CQE_CODE_RECEIVE code except that there are
  two new checks for this code that will cause the driver to use the new V1
  macros for rq_id and fcf_id.
- Fix a bug in lpfc_prep_seq() where the size out of the first CQE was
  ONLY being used, even though multiple dmabufs make up the sequence,
  each have their own CQE with potentially different sizes.
- Fix bug in lpfc_bsg_ct_unsol_event() where the ulpContext and ulpWord[3]
  fields of the XMIT_SEQUENCE64_CX IOCB were being calculated incorrectly.
- Do physical to logical translation before indexing into the active
  XRI array.
- Populate physical vpi in the iocb data structure.
- Put the current accumulated total in each IOCB in the chain as we are
  walking thru then. The last IOCB in the chain should have the total
  length of the sequence.

Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com>
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/scsi/lpfc/lpfc.h      |    3 -
 drivers/scsi/lpfc/lpfc_bsg.c  |   15 +++----
 drivers/scsi/lpfc/lpfc_crtn.h |    1 
 drivers/scsi/lpfc/lpfc_els.c  |   70 +++++++++++++++++++++++----------
 drivers/scsi/lpfc/lpfc_hw.h   |    7 ++-
 drivers/scsi/lpfc/lpfc_hw4.h  |    9 +++-
 drivers/scsi/lpfc/lpfc_mbox.c |    2 
 drivers/scsi/lpfc/lpfc_sli.c  |   88 +++++++++++++++++++++++++++---------------
 8 files changed, 133 insertions(+), 62 deletions(-)

--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
@@ -470,9 +470,10 @@ enum intr_type_t {
 struct unsol_rcv_ct_ctx {
 	uint32_t ctxt_id;
 	uint32_t SID;
-	uint32_t oxid;
 	uint32_t flags;
 #define UNSOL_VALID	0x00000001
+	uint16_t oxid;
+	uint16_t rxid;
 };
 
 #define LPFC_USER_LINK_SPEED_AUTO	0	/* auto select (default)*/
--- a/drivers/scsi/lpfc/lpfc_bsg.c
+++ b/drivers/scsi/lpfc/lpfc_bsg.c
@@ -960,8 +960,10 @@ lpfc_bsg_ct_unsol_event(struct lpfc_hba
 						    evt_dat->immed_dat].oxid,
 						phba->ct_ctx[
 						    evt_dat->immed_dat].SID);
+			phba->ct_ctx[evt_dat->immed_dat].rxid =
+				piocbq->iocb.ulpContext;
 			phba->ct_ctx[evt_dat->immed_dat].oxid =
-						piocbq->iocb.ulpContext;
+				piocbq->iocb.unsli3.rcvsli3.ox_id;
 			phba->ct_ctx[evt_dat->immed_dat].SID =
 				piocbq->iocb.un.rcvels.remoteID;
 			phba->ct_ctx[evt_dat->immed_dat].flags = UNSOL_VALID;
@@ -1312,7 +1314,8 @@ lpfc_issue_ct_rsp(struct lpfc_hba *phba,
 			rc = IOCB_ERROR;
 			goto issue_ct_rsp_exit;
 		}
-		icmd->ulpContext = phba->ct_ctx[tag].oxid;
+		icmd->ulpContext = phba->ct_ctx[tag].rxid;
+		icmd->unsli3.rcvsli3.ox_id = phba->ct_ctx[tag].oxid;
 		ndlp = lpfc_findnode_did(phba->pport, phba->ct_ctx[tag].SID);
 		if (!ndlp) {
 			lpfc_printf_log(phba, KERN_WARNING, LOG_ELS,
@@ -1337,9 +1340,7 @@ lpfc_issue_ct_rsp(struct lpfc_hba *phba,
 			goto issue_ct_rsp_exit;
 		}
 
-		icmd->un.ulpWord[3] = ndlp->nlp_rpi;
-		if (phba->sli_rev == LPFC_SLI_REV4)
-			icmd->ulpContext =
+		icmd->un.ulpWord[3] =
 				phba->sli4_hba.rpi_ids[ndlp->nlp_rpi];
 
 		/* The exchange is done, mark the entry as invalid */
@@ -1351,8 +1352,8 @@ lpfc_issue_ct_rsp(struct lpfc_hba *phba,
 
 	/* Xmit CT response on exchange <xid> */
 	lpfc_printf_log(phba, KERN_INFO, LOG_ELS,
-			"2722 Xmit CT response on exchange x%x Data: x%x x%x\n",
-			icmd->ulpContext, icmd->ulpIoTag, phba->link_state);
+		"2722 Xmit CT response on exchange x%x Data: x%x x%x x%x\n",
+		icmd->ulpContext, icmd->ulpIoTag, tag, phba->link_state);
 
 	ctiocb->iocb_cmpl = NULL;
 	ctiocb->iocb_flag |= LPFC_IO_LIBDFC;
--- a/drivers/scsi/lpfc/lpfc_crtn.h
+++ b/drivers/scsi/lpfc/lpfc_crtn.h
@@ -432,6 +432,7 @@ void lpfc_handle_rrq_active(struct lpfc_
 int lpfc_send_rrq(struct lpfc_hba *, struct lpfc_node_rrq *);
 int lpfc_set_rrq_active(struct lpfc_hba *, struct lpfc_nodelist *,
 	uint16_t, uint16_t, uint16_t);
+uint16_t lpfc_sli4_xri_inrange(struct lpfc_hba *, uint16_t);
 void lpfc_cleanup_wt_rrqs(struct lpfc_hba *);
 void lpfc_cleanup_vports_rrqs(struct lpfc_vport *, struct lpfc_nodelist *);
 struct lpfc_node_rrq *lpfc_get_active_rrq(struct lpfc_vport *, uint16_t,
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -3656,7 +3656,8 @@ lpfc_els_rsp_acc(struct lpfc_vport *vpor
 		}
 
 		icmd = &elsiocb->iocb;
-		icmd->ulpContext = oldcmd->ulpContext;	/* Xri */
+		icmd->ulpContext = oldcmd->ulpContext;	/* Xri / rx_id */
+		icmd->unsli3.rcvsli3.ox_id = oldcmd->unsli3.rcvsli3.ox_id;
 		pcmd = (((struct lpfc_dmabuf *) elsiocb->context2)->virt);
 		*((uint32_t *) (pcmd)) = ELS_CMD_ACC;
 		pcmd += sizeof(uint32_t);
@@ -3673,7 +3674,8 @@ lpfc_els_rsp_acc(struct lpfc_vport *vpor
 			return 1;
 
 		icmd = &elsiocb->iocb;
-		icmd->ulpContext = oldcmd->ulpContext;	/* Xri */
+		icmd->ulpContext = oldcmd->ulpContext;	/* Xri / rx_id */
+		icmd->unsli3.rcvsli3.ox_id = oldcmd->unsli3.rcvsli3.ox_id;
 		pcmd = (((struct lpfc_dmabuf *) elsiocb->context2)->virt);
 
 		if (mbox)
@@ -3695,7 +3697,8 @@ lpfc_els_rsp_acc(struct lpfc_vport *vpor
 			return 1;
 
 		icmd = &elsiocb->iocb;
-		icmd->ulpContext = oldcmd->ulpContext; /* Xri */
+		icmd->ulpContext = oldcmd->ulpContext;	/* Xri / rx_id */
+		icmd->unsli3.rcvsli3.ox_id = oldcmd->unsli3.rcvsli3.ox_id;
 		pcmd = (((struct lpfc_dmabuf *) elsiocb->context2)->virt);
 
 		memcpy(pcmd, ((struct lpfc_dmabuf *) oldiocb->context2)->virt,
@@ -3781,7 +3784,8 @@ lpfc_els_rsp_reject(struct lpfc_vport *v
 
 	icmd = &elsiocb->iocb;
 	oldcmd = &oldiocb->iocb;
-	icmd->ulpContext = oldcmd->ulpContext;	/* Xri */
+	icmd->ulpContext = oldcmd->ulpContext;	/* Xri / rx_id */
+	icmd->unsli3.rcvsli3.ox_id = oldcmd->unsli3.rcvsli3.ox_id;
 	pcmd = (uint8_t *) (((struct lpfc_dmabuf *) elsiocb->context2)->virt);
 
 	*((uint32_t *) (pcmd)) = ELS_CMD_LS_RJT;
@@ -3853,7 +3857,8 @@ lpfc_els_rsp_adisc_acc(struct lpfc_vport
 
 	icmd = &elsiocb->iocb;
 	oldcmd = &oldiocb->iocb;
-	icmd->ulpContext = oldcmd->ulpContext;	/* Xri */
+	icmd->ulpContext = oldcmd->ulpContext;	/* Xri / rx_id */
+	icmd->unsli3.rcvsli3.ox_id = oldcmd->unsli3.rcvsli3.ox_id;
 
 	/* Xmit ADISC ACC response tag <ulpIoTag> */
 	lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
@@ -3931,7 +3936,9 @@ lpfc_els_rsp_prli_acc(struct lpfc_vport
 
 	icmd = &elsiocb->iocb;
 	oldcmd = &oldiocb->iocb;
-	icmd->ulpContext = oldcmd->ulpContext;	/* Xri */
+	icmd->ulpContext = oldcmd->ulpContext;	/* Xri / rx_id */
+	icmd->unsli3.rcvsli3.ox_id = oldcmd->unsli3.rcvsli3.ox_id;
+
 	/* Xmit PRLI ACC response tag <ulpIoTag> */
 	lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
 			 "0131 Xmit PRLI ACC response tag x%x xri x%x, "
@@ -4035,7 +4042,9 @@ lpfc_els_rsp_rnid_acc(struct lpfc_vport
 
 	icmd = &elsiocb->iocb;
 	oldcmd = &oldiocb->iocb;
-	icmd->ulpContext = oldcmd->ulpContext;	/* Xri */
+	icmd->ulpContext = oldcmd->ulpContext;	/* Xri / rx_id */
+	icmd->unsli3.rcvsli3.ox_id = oldcmd->unsli3.rcvsli3.ox_id;
+
 	/* Xmit RNID ACC response tag <ulpIoTag> */
 	lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
 			 "0132 Xmit RNID ACC response tag x%x xri x%x\n",
@@ -4163,7 +4172,9 @@ lpfc_els_rsp_echo_acc(struct lpfc_vport
 	if (!elsiocb)
 		return 1;
 
-	elsiocb->iocb.ulpContext = oldiocb->iocb.ulpContext;	/* Xri */
+	elsiocb->iocb.ulpContext = oldiocb->iocb.ulpContext;  /* Xri / rx_id */
+	elsiocb->iocb.unsli3.rcvsli3.ox_id = oldiocb->iocb.unsli3.rcvsli3.ox_id;
+
 	/* Xmit ECHO ACC response tag <ulpIoTag> */
 	lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
 			 "2876 Xmit ECHO ACC response tag x%x xri x%x\n",
@@ -5054,13 +5065,15 @@ lpfc_els_rsp_rls_acc(struct lpfc_hba *ph
 	uint8_t *pcmd;
 	struct lpfc_iocbq *elsiocb;
 	struct lpfc_nodelist *ndlp;
-	uint16_t xri;
+	uint16_t oxid;
+	uint16_t rxid;
 	uint32_t cmdsize;
 
 	mb = &pmb->u.mb;
 
 	ndlp = (struct lpfc_nodelist *) pmb->context2;
-	xri = (uint16_t) ((unsigned long)(pmb->context1));
+	rxid = (uint16_t) ((unsigned long)(pmb->context1) & 0xffff);
+	oxid = (uint16_t) (((unsigned long)(pmb->context1) >> 16) & 0xffff);
 	pmb->context1 = NULL;
 	pmb->context2 = NULL;
 
@@ -5082,7 +5095,8 @@ lpfc_els_rsp_rls_acc(struct lpfc_hba *ph
 		return;
 
 	icmd = &elsiocb->iocb;
-	icmd->ulpContext = xri;
+	icmd->ulpContext = rxid;
+	icmd->unsli3.rcvsli3.ox_id = oxid;
 
 	pcmd = (uint8_t *) (((struct lpfc_dmabuf *) elsiocb->context2)->virt);
 	*((uint32_t *) (pcmd)) = ELS_CMD_ACC;
@@ -5137,13 +5151,16 @@ lpfc_els_rsp_rps_acc(struct lpfc_hba *ph
 	uint8_t *pcmd;
 	struct lpfc_iocbq *elsiocb;
 	struct lpfc_nodelist *ndlp;
-	uint16_t xri, status;
+	uint16_t status;
+	uint16_t oxid;
+	uint16_t rxid;
 	uint32_t cmdsize;
 
 	mb = &pmb->u.mb;
 
 	ndlp = (struct lpfc_nodelist *) pmb->context2;
-	xri = (uint16_t) ((unsigned long)(pmb->context1));
+	rxid = (uint16_t) ((unsigned long)(pmb->context1) & 0xffff);
+	oxid = (uint16_t) (((unsigned long)(pmb->context1) >> 16) & 0xffff);
 	pmb->context1 = NULL;
 	pmb->context2 = NULL;
 
@@ -5165,7 +5182,8 @@ lpfc_els_rsp_rps_acc(struct lpfc_hba *ph
 		return;
 
 	icmd = &elsiocb->iocb;
-	icmd->ulpContext = xri;
+	icmd->ulpContext = rxid;
+	icmd->unsli3.rcvsli3.ox_id = oxid;
 
 	pcmd = (uint8_t *) (((struct lpfc_dmabuf *) elsiocb->context2)->virt);
 	*((uint32_t *) (pcmd)) = ELS_CMD_ACC;
@@ -5238,8 +5256,9 @@ lpfc_els_rcv_rls(struct lpfc_vport *vpor
 	mbox = mempool_alloc(phba->mbox_mem_pool, GFP_ATOMIC);
 	if (mbox) {
 		lpfc_read_lnk_stat(phba, mbox);
-		mbox->context1 =
-		    (void *)((unsigned long) cmdiocb->iocb.ulpContext);
+		mbox->context1 = (void *)((unsigned long)
+			((cmdiocb->iocb.unsli3.rcvsli3.ox_id << 16) |
+			cmdiocb->iocb.ulpContext)); /* rx_id */
 		mbox->context2 = lpfc_nlp_get(ndlp);
 		mbox->vport = vport;
 		mbox->mbox_cmpl = lpfc_els_rsp_rls_acc;
@@ -5314,7 +5333,8 @@ lpfc_els_rcv_rtv(struct lpfc_vport *vpor
 	pcmd += sizeof(uint32_t); /* Skip past command */
 
 	/* use the command's xri in the response */
-	elsiocb->iocb.ulpContext = cmdiocb->iocb.ulpContext;
+	elsiocb->iocb.ulpContext = cmdiocb->iocb.ulpContext;  /* Xri / rx_id */
+	elsiocb->iocb.unsli3.rcvsli3.ox_id = cmdiocb->iocb.unsli3.rcvsli3.ox_id;
 
 	rtv_rsp = (struct RTV_RSP *)pcmd;
 
@@ -5399,8 +5419,9 @@ lpfc_els_rcv_rps(struct lpfc_vport *vpor
 		mbox = mempool_alloc(phba->mbox_mem_pool, GFP_ATOMIC);
 		if (mbox) {
 			lpfc_read_lnk_stat(phba, mbox);
-			mbox->context1 =
-			    (void *)((unsigned long) cmdiocb->iocb.ulpContext);
+			mbox->context1 = (void *)((unsigned long)
+				((cmdiocb->iocb.unsli3.rcvsli3.ox_id << 16) |
+				cmdiocb->iocb.ulpContext)); /* rx_id */
 			mbox->context2 = lpfc_nlp_get(ndlp);
 			mbox->vport = vport;
 			mbox->mbox_cmpl = lpfc_els_rsp_rps_acc;
@@ -5554,7 +5575,8 @@ lpfc_els_rsp_rpl_acc(struct lpfc_vport *
 
 	icmd = &elsiocb->iocb;
 	oldcmd = &oldiocb->iocb;
-	icmd->ulpContext = oldcmd->ulpContext;	/* Xri */
+	icmd->ulpContext = oldcmd->ulpContext;	/* Xri / rx_id */
+	icmd->unsli3.rcvsli3.ox_id = oldcmd->unsli3.rcvsli3.ox_id;
 
 	pcmd = (((struct lpfc_dmabuf *) elsiocb->context2)->virt);
 	*((uint32_t *) (pcmd)) = ELS_CMD_ACC;
@@ -7787,6 +7809,7 @@ lpfc_sli4_els_xri_aborted(struct lpfc_hb
 {
 	uint16_t xri = bf_get(lpfc_wcqe_xa_xri, axri);
 	uint16_t rxid = bf_get(lpfc_wcqe_xa_remote_xid, axri);
+	uint16_t lxri = 0;
 
 	struct lpfc_sglq *sglq_entry = NULL, *sglq_next = NULL;
 	unsigned long iflag = 0;
@@ -7815,7 +7838,12 @@ lpfc_sli4_els_xri_aborted(struct lpfc_hb
 		}
 	}
 	spin_unlock(&phba->sli4_hba.abts_sgl_list_lock);
-	sglq_entry = __lpfc_get_active_sglq(phba, xri);
+	lxri = lpfc_sli4_xri_inrange(phba, xri);
+	if (lxri == NO_XRI) {
+		spin_unlock_irqrestore(&phba->hbalock, iflag);
+		return;
+	}
+	sglq_entry = __lpfc_get_active_sglq(phba, lxri);
 	if (!sglq_entry || (sglq_entry->sli4_xritag != xri)) {
 		spin_unlock_irqrestore(&phba->hbalock, iflag);
 		return;
--- a/drivers/scsi/lpfc/lpfc_hw.h
+++ b/drivers/scsi/lpfc/lpfc_hw.h
@@ -3470,11 +3470,16 @@ typedef struct {
    or CMD_IOCB_RCV_SEQ64_CX (0xB5) */
 
 struct rcv_sli3 {
-	uint32_t word8Rsvd;
 #ifdef __BIG_ENDIAN_BITFIELD
+	uint16_t ox_id;
+	uint16_t seq_cnt;
+
 	uint16_t vpi;
 	uint16_t word9Rsvd;
 #else  /*  __LITTLE_ENDIAN */
+	uint16_t seq_cnt;
+	uint16_t ox_id;
+
 	uint16_t word9Rsvd;
 	uint16_t vpi;
 #endif
--- a/drivers/scsi/lpfc/lpfc_hw4.h
+++ b/drivers/scsi/lpfc/lpfc_hw4.h
@@ -330,6 +330,7 @@ struct lpfc_cqe {
 #define CQE_CODE_RELEASE_WQE		0x2
 #define CQE_CODE_RECEIVE		0x4
 #define CQE_CODE_XRI_ABORTED		0x5
+#define CQE_CODE_RECEIVE_V1		0x9
 
 /* completion queue entry for wqe completions */
 struct lpfc_wcqe_complete {
@@ -433,7 +434,10 @@ struct lpfc_rcqe {
 #define FC_STATUS_RQ_BUF_LEN_EXCEEDED 	0x11 /* payload truncated */
 #define FC_STATUS_INSUFF_BUF_NEED_BUF 	0x12 /* Insufficient buffers */
 #define FC_STATUS_INSUFF_BUF_FRM_DISC 	0x13 /* Frame Discard */
-	uint32_t reserved1;
+	uint32_t word1;
+#define lpfc_rcqe_fcf_id_v1_SHIFT	0
+#define lpfc_rcqe_fcf_id_v1_MASK	0x0000003F
+#define lpfc_rcqe_fcf_id_v1_WORD	word1
 	uint32_t word2;
 #define lpfc_rcqe_length_SHIFT		16
 #define lpfc_rcqe_length_MASK		0x0000FFFF
@@ -444,6 +448,9 @@ struct lpfc_rcqe {
 #define lpfc_rcqe_fcf_id_SHIFT		0
 #define lpfc_rcqe_fcf_id_MASK		0x0000003F
 #define lpfc_rcqe_fcf_id_WORD		word2
+#define lpfc_rcqe_rq_id_v1_SHIFT	0
+#define lpfc_rcqe_rq_id_v1_MASK		0x0000FFFF
+#define lpfc_rcqe_rq_id_v1_WORD		word2
 	uint32_t word3;
 #define lpfc_rcqe_valid_SHIFT		lpfc_cqe_valid_SHIFT
 #define lpfc_rcqe_valid_MASK		lpfc_cqe_valid_MASK
--- a/drivers/scsi/lpfc/lpfc_mbox.c
+++ b/drivers/scsi/lpfc/lpfc_mbox.c
@@ -2031,7 +2031,7 @@ lpfc_init_vfi(struct lpfcMboxq *mbox, st
 	bf_set(lpfc_init_vfi_vp, init_vfi, 1);
 	bf_set(lpfc_init_vfi_vfi, init_vfi,
 	       vport->phba->sli4_hba.vfi_ids[vport->vfi]);
-	bf_set(lpfc_init_vpi_vpi, init_vfi,
+	bf_set(lpfc_init_vfi_vpi, init_vfi,
 	       vport->phba->vpi_ids[vport->vpi]);
 	bf_set(lpfc_init_vfi_fcfi, init_vfi,
 	       vport->phba->fcf.fcfi);
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -560,7 +560,7 @@ __lpfc_set_rrq_active(struct lpfc_hba *p
 	rrq = mempool_alloc(phba->rrq_pool, GFP_KERNEL);
 	if (rrq) {
 		rrq->send_rrq = send_rrq;
-		rrq->xritag = phba->sli4_hba.xri_ids[xritag];
+		rrq->xritag = xritag;
 		rrq->rrq_stop_time = jiffies + HZ * (phba->fc_ratov + 1);
 		rrq->ndlp = ndlp;
 		rrq->nlp_DID = ndlp->nlp_DID;
@@ -2452,7 +2452,8 @@ lpfc_sli_process_unsol_iocb(struct lpfc_
 
 		/* search continue save q for same XRI */
 		list_for_each_entry(iocbq, &pring->iocb_continue_saveq, clist) {
-			if (iocbq->iocb.ulpContext == saveq->iocb.ulpContext) {
+			if (iocbq->iocb.unsli3.rcvsli3.ox_id ==
+				saveq->iocb.unsli3.rcvsli3.ox_id) {
 				list_add_tail(&saveq->list, &iocbq->list);
 				found = 1;
 				break;
@@ -3355,6 +3356,7 @@ lpfc_sli_handle_slow_ring_event_s4(struc
 							   irspiocbq);
 			break;
 		case CQE_CODE_RECEIVE:
+		case CQE_CODE_RECEIVE_V1:
 			dmabuf = container_of(cq_event, struct hbq_dmabuf,
 					      cq_event);
 			lpfc_sli4_handle_received_buffer(phba, dmabuf);
@@ -7318,12 +7320,12 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		bf_set(wqe_qosd, &wqe->els_req.wqe_com, 1);
 		bf_set(wqe_lenloc, &wqe->els_req.wqe_com, LPFC_WQE_LENLOC_NONE);
 		bf_set(wqe_ebde_cnt, &wqe->els_req.wqe_com, 0);
-	break;
+		break;
 	case CMD_XMIT_SEQUENCE64_CX:
 		bf_set(wqe_ctxt_tag, &wqe->xmit_sequence.wqe_com,
 		       iocbq->iocb.un.ulpWord[3]);
 		bf_set(wqe_rcvoxid, &wqe->xmit_sequence.wqe_com,
-		       iocbq->iocb.ulpContext);
+		       iocbq->iocb.unsli3.rcvsli3.ox_id);
 		/* The entire sequence is transmitted for this IOCB */
 		xmit_len = total_len;
 		cmnd = CMD_XMIT_SEQUENCE64_CR;
@@ -7341,7 +7343,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		bf_set(wqe_ebde_cnt, &wqe->xmit_sequence.wqe_com, 0);
 		wqe->xmit_sequence.xmit_len = xmit_len;
 		command_type = OTHER_COMMAND;
-	break;
+		break;
 	case CMD_XMIT_BCAST64_CN:
 		/* word3 iocb=iotag32 wqe=seq_payload_len */
 		wqe->xmit_bcast64.seq_payload_len = xmit_len;
@@ -7355,7 +7357,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		bf_set(wqe_lenloc, &wqe->xmit_bcast64.wqe_com,
 		       LPFC_WQE_LENLOC_WORD3);
 		bf_set(wqe_ebde_cnt, &wqe->xmit_bcast64.wqe_com, 0);
-	break;
+		break;
 	case CMD_FCP_IWRITE64_CR:
 		command_type = FCP_COMMAND_DATA_OUT;
 		/* word3 iocb=iotag wqe=payload_offset_len */
@@ -7375,7 +7377,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		       LPFC_WQE_LENLOC_WORD4);
 		bf_set(wqe_ebde_cnt, &wqe->fcp_iwrite.wqe_com, 0);
 		bf_set(wqe_pu, &wqe->fcp_iwrite.wqe_com, iocbq->iocb.ulpPU);
-	break;
+		break;
 	case CMD_FCP_IREAD64_CR:
 		/* word3 iocb=iotag wqe=payload_offset_len */
 		/* Add the FCP_CMD and FCP_RSP sizes to get the offset */
@@ -7394,7 +7396,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		       LPFC_WQE_LENLOC_WORD4);
 		bf_set(wqe_ebde_cnt, &wqe->fcp_iread.wqe_com, 0);
 		bf_set(wqe_pu, &wqe->fcp_iread.wqe_com, iocbq->iocb.ulpPU);
-	break;
+		break;
 	case CMD_FCP_ICMND64_CR:
 		/* word3 iocb=IO_TAG wqe=reserved */
 		wqe->fcp_icmd.rsrvd3 = 0;
@@ -7407,7 +7409,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		bf_set(wqe_lenloc, &wqe->fcp_icmd.wqe_com,
 		       LPFC_WQE_LENLOC_NONE);
 		bf_set(wqe_ebde_cnt, &wqe->fcp_icmd.wqe_com, 0);
-	break;
+		break;
 	case CMD_GEN_REQUEST64_CR:
 		/* For this command calculate the xmit length of the
 		 * request bde.
@@ -7442,7 +7444,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		bf_set(wqe_lenloc, &wqe->gen_req.wqe_com, LPFC_WQE_LENLOC_NONE);
 		bf_set(wqe_ebde_cnt, &wqe->gen_req.wqe_com, 0);
 		command_type = OTHER_COMMAND;
-	break;
+		break;
 	case CMD_XMIT_ELS_RSP64_CX:
 		ndlp = (struct lpfc_nodelist *)iocbq->context1;
 		/* words0-2 BDE memcpy */
@@ -7457,7 +7459,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		       ((iocbq->iocb.ulpCt_h << 1) | iocbq->iocb.ulpCt_l));
 		bf_set(wqe_pu, &wqe->xmit_els_rsp.wqe_com, iocbq->iocb.ulpPU);
 		bf_set(wqe_rcvoxid, &wqe->xmit_els_rsp.wqe_com,
-		       iocbq->iocb.ulpContext);
+		       iocbq->iocb.unsli3.rcvsli3.ox_id);
 		if (!iocbq->iocb.ulpCt_h && iocbq->iocb.ulpCt_l)
 			bf_set(wqe_ctxt_tag, &wqe->xmit_els_rsp.wqe_com,
 			       phba->vpi_ids[iocbq->vport->vpi]);
@@ -7470,7 +7472,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		bf_set(wqe_rsp_temp_rpi, &wqe->xmit_els_rsp,
 		       phba->sli4_hba.rpi_ids[ndlp->nlp_rpi]);
 		command_type = OTHER_COMMAND;
-	break;
+		break;
 	case CMD_CLOSE_XRI_CN:
 	case CMD_ABORT_XRI_CN:
 	case CMD_ABORT_XRI_CX:
@@ -7509,7 +7511,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 		cmnd = CMD_ABORT_XRI_CX;
 		command_type = OTHER_COMMAND;
 		xritag = 0;
-	break;
+		break;
 	case CMD_XMIT_BLS_RSP64_CX:
 		/* As BLS ABTS RSP WQE is very different from other WQEs,
 		 * we re-construct this WQE here based on information in
@@ -7553,7 +7555,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 			       bf_get(lpfc_rsn_code, &iocbq->iocb.un.bls_rsp));
 		}
 
-	break;
+		break;
 	case CMD_XRI_ABORTED_CX:
 	case CMD_CREATE_XRI_CR: /* Do we expect to use this? */
 	case CMD_IOCB_FCP_IBIDIR64_CR: /* bidirectional xfer */
@@ -7565,7 +7567,7 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba
 				"2014 Invalid command 0x%x\n",
 				iocbq->iocb.ulpCommand);
 		return IOCB_ERROR;
-	break;
+		break;
 	}
 
 	bf_set(wqe_xri_tag, &wqe->generic.wqe_com, xritag);
@@ -10481,10 +10483,14 @@ lpfc_sli4_sp_handle_rcqe(struct lpfc_hba
 	struct lpfc_queue *hrq = phba->sli4_hba.hdr_rq;
 	struct lpfc_queue *drq = phba->sli4_hba.dat_rq;
 	struct hbq_dmabuf *dma_buf;
-	uint32_t status;
+	uint32_t status, rq_id;
 	unsigned long iflags;
 
-	if (bf_get(lpfc_rcqe_rq_id, rcqe) != hrq->queue_id)
+	if (bf_get(lpfc_cqe_code, rcqe) == CQE_CODE_RECEIVE_V1)
+		rq_id = bf_get(lpfc_rcqe_rq_id_v1, rcqe);
+	else
+		rq_id = bf_get(lpfc_rcqe_rq_id, rcqe);
+	if (rq_id != hrq->queue_id)
 		goto out;
 
 	status = bf_get(lpfc_rcqe_status, rcqe);
@@ -10563,6 +10569,7 @@ lpfc_sli4_sp_handle_cqe(struct lpfc_hba
 				(struct sli4_wcqe_xri_aborted *)&cqevt);
 		break;
 	case CQE_CODE_RECEIVE:
+	case CQE_CODE_RECEIVE_V1:
 		/* Process the RQ event */
 		phba->last_completion_time = jiffies;
 		workposted = lpfc_sli4_sp_handle_rcqe(phba,
@@ -13405,7 +13412,7 @@ lpfc_sli4_seq_abort_rsp_cmpl(struct lpfc
  * This function validates the xri maps to the known range of XRIs allocated an
  * used by the driver.
  **/
-static uint16_t
+uint16_t
 lpfc_sli4_xri_inrange(struct lpfc_hba *phba,
 		      uint16_t xri)
 {
@@ -13642,10 +13649,12 @@ lpfc_seq_complete(struct hbq_dmabuf *dma
 static struct lpfc_iocbq *
 lpfc_prep_seq(struct lpfc_vport *vport, struct hbq_dmabuf *seq_dmabuf)
 {
+	struct hbq_dmabuf *hbq_buf;
 	struct lpfc_dmabuf *d_buf, *n_buf;
 	struct lpfc_iocbq *first_iocbq, *iocbq;
 	struct fc_frame_header *fc_hdr;
 	uint32_t sid;
+	uint32_t len, tot_len;
 	struct ulp_bde64 *pbde;
 
 	fc_hdr = (struct fc_frame_header *)seq_dmabuf->hbuf.virt;
@@ -13654,6 +13663,7 @@ lpfc_prep_seq(struct lpfc_vport *vport,
 	lpfc_update_rcv_time_stamp(vport);
 	/* get the Remote Port's SID */
 	sid = sli4_sid_from_fc_hdr(fc_hdr);
+	tot_len = 0;
 	/* Get an iocbq struct to fill in. */
 	first_iocbq = lpfc_sli_get_iocbq(vport->phba);
 	if (first_iocbq) {
@@ -13661,9 +13671,12 @@ lpfc_prep_seq(struct lpfc_vport *vport,
 		first_iocbq->iocb.unsli3.rcvsli3.acc_len = 0;
 		first_iocbq->iocb.ulpStatus = IOSTAT_SUCCESS;
 		first_iocbq->iocb.ulpCommand = CMD_IOCB_RCV_SEQ64_CX;
-		first_iocbq->iocb.ulpContext = be16_to_cpu(fc_hdr->fh_ox_id);
-		/* iocbq is prepped for internal consumption.  Logical vpi. */
-		first_iocbq->iocb.unsli3.rcvsli3.vpi = vport->vpi;
+		first_iocbq->iocb.ulpContext = NO_XRI;
+		first_iocbq->iocb.unsli3.rcvsli3.ox_id =
+			be16_to_cpu(fc_hdr->fh_ox_id);
+		/* iocbq is prepped for internal consumption.  Physical vpi. */
+		first_iocbq->iocb.unsli3.rcvsli3.vpi =
+			vport->phba->vpi_ids[vport->vpi];
 		/* put the first buffer into the first IOCBq */
 		first_iocbq->context2 = &seq_dmabuf->dbuf;
 		first_iocbq->context3 = NULL;
@@ -13671,9 +13684,9 @@ lpfc_prep_seq(struct lpfc_vport *vport,
 		first_iocbq->iocb.un.cont64[0].tus.f.bdeSize =
 							LPFC_DATA_BUF_SIZE;
 		first_iocbq->iocb.un.rcvels.remoteID = sid;
-		first_iocbq->iocb.unsli3.rcvsli3.acc_len +=
-				bf_get(lpfc_rcqe_length,
+		tot_len = bf_get(lpfc_rcqe_length,
 				       &seq_dmabuf->cq_event.cqe.rcqe_cmpl);
+		first_iocbq->iocb.unsli3.rcvsli3.acc_len = tot_len;
 	}
 	iocbq = first_iocbq;
 	/*
@@ -13691,9 +13704,13 @@ lpfc_prep_seq(struct lpfc_vport *vport,
 			pbde = (struct ulp_bde64 *)
 					&iocbq->iocb.unsli3.sli3Words[4];
 			pbde->tus.f.bdeSize = LPFC_DATA_BUF_SIZE;
-			first_iocbq->iocb.unsli3.rcvsli3.acc_len +=
-				bf_get(lpfc_rcqe_length,
-				       &seq_dmabuf->cq_event.cqe.rcqe_cmpl);
+
+			/* We need to get the size out of the right CQE */
+			hbq_buf = container_of(d_buf, struct hbq_dmabuf, dbuf);
+			len = bf_get(lpfc_rcqe_length,
+				       &hbq_buf->cq_event.cqe.rcqe_cmpl);
+			iocbq->iocb.unsli3.rcvsli3.acc_len += len;
+			tot_len += len;
 		} else {
 			iocbq = lpfc_sli_get_iocbq(vport->phba);
 			if (!iocbq) {
@@ -13711,9 +13728,14 @@ lpfc_prep_seq(struct lpfc_vport *vport,
 			iocbq->iocb.ulpBdeCount = 1;
 			iocbq->iocb.un.cont64[0].tus.f.bdeSize =
 							LPFC_DATA_BUF_SIZE;
-			first_iocbq->iocb.unsli3.rcvsli3.acc_len +=
-				bf_get(lpfc_rcqe_length,
-				       &seq_dmabuf->cq_event.cqe.rcqe_cmpl);
+
+			/* We need to get the size out of the right CQE */
+			hbq_buf = container_of(d_buf, struct hbq_dmabuf, dbuf);
+			len = bf_get(lpfc_rcqe_length,
+				       &hbq_buf->cq_event.cqe.rcqe_cmpl);
+			tot_len += len;
+			iocbq->iocb.unsli3.rcvsli3.acc_len = tot_len;
+
 			iocbq->iocb.un.rcvels.remoteID = sid;
 			list_add_tail(&iocbq->list, &first_iocbq->list);
 		}
@@ -13786,7 +13808,13 @@ lpfc_sli4_handle_received_buffer(struct
 		lpfc_in_buf_free(phba, &dmabuf->dbuf);
 		return;
 	}
-	fcfi = bf_get(lpfc_rcqe_fcf_id, &dmabuf->cq_event.cqe.rcqe_cmpl);
+	if ((bf_get(lpfc_cqe_code,
+		    &dmabuf->cq_event.cqe.rcqe_cmpl) == CQE_CODE_RECEIVE_V1))
+		fcfi = bf_get(lpfc_rcqe_fcf_id_v1,
+			      &dmabuf->cq_event.cqe.rcqe_cmpl);
+	else
+		fcfi = bf_get(lpfc_rcqe_fcf_id,
+			      &dmabuf->cq_event.cqe.rcqe_cmpl);
 	vport = lpfc_fc_frame_to_vport(phba, fc_hdr, fcfi);
 	if (!vport || !(vport->vpi_state & LPFC_VPI_REGISTERED)) {
 		/* throw out the frame */



  parent reply	other threads:[~2011-09-28 22:49 UTC|newest]

Thread overview: 271+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-28 22:02 [000/244] 3.0.5-stable review Greg KH
2011-09-28 21:59 ` [001/244] kernel/printk: do not turn off bootconsole in printk_late_init() if keep_bootcon Greg KH
2011-09-28 21:59 ` [002/244] rapidio: fix use of non-compatible registers Greg KH
2011-09-28 21:59 ` [003/244] arch/powerpc/sysdev/fsl_rio.c: correct IECSR register clear value Greg KH
2011-09-28 21:59 ` [004/244] sfi: table irq 0xFF means no interrupt Greg KH
2011-09-29 10:21   ` Kirill A. Shutemov
2011-09-29 14:18     ` Greg KH
2011-09-29 14:33       ` Kirill A. Shutemov
2011-09-29 18:56         ` Greg KH
2011-09-28 21:59 ` [005/244] ASoC: soc-jack: Fix checking return value of request_any_context_irq Greg KH
2011-09-28 21:59 ` [006/244] ASoC: ad193x: fix registers definition Greg KH
2011-09-28 21:59 ` [007/244] ASoC: ad193x: fix dac word len setting Greg KH
2011-09-28 21:59 ` [008/244] omap-serial: Allow IXON and IXOFF to be disabled Greg KH
2011-09-28 21:59 ` [009/244] serial: 8250_pnp: add Intermec CV60 touchscreen device Greg KH
2011-09-28 21:59 ` [010/244] 8250_pci: add support for Rosewill RC-305 4x serial port card Greg KH
2011-09-28 21:59 ` [011/244] 8250: Fix race condition in serial8250_backup_timeout() Greg KH
2011-09-28 21:59 ` [012/244] tty: Add "spi:" prefix for spi modalias Greg KH
2011-09-28 21:59 ` [013/244] TTY: pty, fix pty counting Greg KH
2011-09-28 21:59 ` [014/244] USB: ftdi_sio: add Calao reference board support Greg KH
2011-09-28 21:59 ` [015/244] usb: s5p-ehci: fix a NULL pointer deference Greg KH
2011-09-28 21:59 ` [016/244] USB option driver add PID of Huawei Vodafone K3806 Greg KH
2011-09-28 21:59 ` [017/244] USB option driver add PID of Huawei Vodafone K4605 Greg KH
2011-09-28 21:59 ` [018/244] USB: option: add YUGA device id to driver Greg KH
2011-09-28 21:59 ` [019/244] USB option driver K3765/K4505 avoid CDC_DATA interface Greg KH
2011-09-28 21:59 ` [020/244] usb: musb: cppi: fix build errors due to DBG and missing musb variable Greg KH
2011-09-28 21:59 ` [021/244] USB: EHCI: Do not rely on PORT_SUSPEND to stop USB resuming in ehci_bus_resume() Greg KH
2011-09-28 21:59 ` [022/244] xHCI: fix port U3 status check condition Greg KH
2011-09-28 21:59 ` [023/244] xHCI: report USB2 port in resuming as suspend Greg KH
2011-09-28 21:59 ` [024/244] xhci: Fix memory leak during failed enqueue Greg KH
2011-09-28 21:59 ` [025/244] xhci: Fix failed enqueue in the middle of isoch TD Greg KH
2011-09-28 21:59 ` [026/244] xhci: Remove TDs from TD lists when URBs are canceled Greg KH
2011-09-28 21:59 ` [027/244] xhci: Handle zero-length isochronous packets Greg KH
2011-09-28 21:59 ` [028/244] sendmmsg/sendmsg: fix unsafe user pointer access Greg KH
2011-09-28 21:59 ` [029/244] ath9k: Fix PS wrappers in ath9k_set_coverage_class Greg KH
2011-09-28 21:59 ` [030/244] ibmveth: Fix leak when recycling skb and hypervisor returns error Greg KH
2011-09-28 21:59 ` [031/244] carl9170: Fix mismatch in carl9170_op_set_key mutex lock-unlock Greg KH
2011-09-28 21:59 ` [032/244] ath9k_hw: Fix STA (AR9485) bringup issue due to incorrect MAC address Greg KH
2011-09-28 21:59 ` [033/244] rt2x00: do not drop usb dev reference counter on suspend Greg KH
2011-09-28 21:59 ` [034/244] savagedb: Fix typo causing regression in savage4 series video chip detection Greg KH
2011-09-28 21:59 ` [035/244] pata_via: disable ATAPI DMA on AVERATEC 3200 Greg KH
2011-09-28 22:00 ` [036/244] atm: br2684: Fix oops due to skb->dev being NULL Greg KH
2011-09-28 22:00 ` [037/244] rt2x00: fix crash in rt2800usb_write_tx_desc Greg KH
2011-09-28 22:00 ` [038/244] rt2x00: fix crash in rt2800usb_get_txwi Greg KH
2011-09-28 22:00 ` [039/244] sparc64: remove unnecessary macros from spinlock_64.h Greg KH
2011-09-28 22:00 ` [040/244] sparc32: unbreak arch_write_unlock() Greg KH
2011-09-28 22:00 ` [041/244] sparc: Allow handling signals when stack is corrupted Greg KH
2011-09-28 22:00 ` [042/244] sparc64: Set HAVE_C_RECORDMCOUNT Greg KH
2011-09-28 22:00 ` [043/244] sparc: fix array bounds error setting up PCIC NMI trap Greg KH
2011-09-28 22:00 ` [044/244] sparc32,sun4d: Change IPI IRQ level to prevent collision between IPI and timer interrupt Greg KH
2011-09-28 22:00 ` [045/244] regulator: tps65910: Add missing breaks in switch/case Greg KH
2011-09-28 22:00 ` [046/244] sparc64: Only Panther cheetah+ chips have POPC Greg KH
2011-09-28 22:00 ` [047/244] drm/radeon/kms: add s/r quirk for Compaq Presario V5245EU Greg KH
2011-09-28 22:00 ` [048/244] drm/radeon/kms: evergreen & ni reset SPI block on CP resume Greg KH
2011-09-28 22:00 ` [049/244] ARM: 7014/1: cache-l2x0: Fix L2 Cache size calculation Greg KH
2011-09-28 22:00 ` [050/244] md/linear: avoid corrupting structure while waiting for rcu_free to complete Greg KH
2011-09-28 22:00 ` [051/244] drm/radeon/kms: set a default max_pixel_clock Greg KH
2011-09-28 22:00 ` [052/244] drm/radeon/kms: make sure pci max read request size is valid on evergreen+ (v2) Greg KH
2011-09-28 22:00 ` [053/244] mm: page allocator: initialise ZLC for first zone eligible for zone_reclaim Greg KH
2011-09-28 22:00 ` [054/244] mm: page allocator: reconsider zones for allocation after direct reclaim Greg KH
2011-09-28 22:00 ` [055/244] igb: fix WOL on second port of i350 device Greg KH
2011-09-28 22:00 ` [056/244] MXC: iomux-v3: correct NO_PAD_CTRL definition Greg KH
2011-09-28 22:00 ` [057/244] alarmtimers: Avoid possible null pointer traversal Greg KH
2011-09-28 22:00 ` [058/244] alarmtimers: Memset itimerspec passed into alarm_timer_get Greg KH
2011-09-28 22:00 ` [059/244] alarmtimers: Avoid possible denial of service with high freq periodic timers Greg KH
2011-09-28 22:00 ` [060/244] rtc: Fix RTC PIE frequency limit Greg KH
2011-09-28 22:00 ` [061/244] sched: Separate the scheduler entry for preemption Greg KH
2011-09-28 22:00 ` [062/244] sched: Move blk_schedule_flush_plug() out of __schedule() Greg KH
2011-09-28 22:00 ` [063/244] sched: Fix a memory leak in __sdt_free() Greg KH
2011-09-28 22:00 ` [064/244] x86, perf: Check that current->mm is alive before getting user callchain Greg KH
2011-09-28 22:00 ` [065/244] mmc: rename mmc_host_clk_{ungate|gate} to mmc_host_clk_{hold|release} Greg KH
2011-09-28 22:00 ` [066/244] mmc: core: prevent aggressive clock gating racing with ios updates Greg KH
2011-09-28 22:00 ` [067/244] mmc: core: use non-reentrant workqueue for clock gating Greg KH
2011-09-28 22:00 ` [068/244] mmc: sdhci-s3c: Fix mmc card I/O problem Greg KH
2011-09-28 22:00 ` [069/244] xen: x86_32: do not enable iterrupts when returning from exception in interrupt context Greg KH
2011-09-28 22:00 ` [070/244] xen/smp: Warn user why they keel over - nosmp or noapic and what to use instead Greg KH
2011-09-28 22:00 ` [071/244] hwmon: (max16065) Fix current calculation Greg KH
2011-09-28 22:00 ` [072/244] ARM: 7081/1: mach-integrator: fix the clocksource Greg KH
2011-09-28 22:00 ` [073/244] ARM: davinci: da850 EVM: read mac address from SPI flash Greg KH
2011-09-28 22:00 ` [074/244] ARM: davinci: fix cache flush build error Greg KH
2011-09-28 22:00 ` [075/244] drm/nouveau: properly handle allocation failure in nouveau_sgdma_populate Greg KH
2011-09-28 22:00 ` [076/244] Avoid dereferencing a request_queue after last close Greg KH
2011-09-28 22:00 ` [077/244] md: Fix handling for devices from 2TB to 4TB in 0.90 metadata Greg KH
2011-09-28 22:00 ` [078/244] [media] nuvoton-cir: simplify raw IR sample handling Greg KH
2011-09-28 22:00 ` [079/244] [media] vp7045: fix buffer setup Greg KH
2011-09-28 22:00 ` [080/244] net/9p: fix client code to fail more gracefully on protocol error Greg KH
2011-09-28 22:00 ` [081/244] Fix the size of receive buffer packing onto VirtIO ring Greg KH
2011-09-28 22:00 ` [082/244] VirtIO can transfer VIRTQUEUE_NUM of pages Greg KH
2011-09-28 22:00 ` [083/244] fs/9p: Fid is not valid after a failed clunk Greg KH
2011-09-28 22:00 ` [084/244] fs/9p: When doing inode lookup compare qid details and inode mode bits Greg KH
2011-09-28 22:00 ` [085/244] fs/9p: Fix invalid mount options/args Greg KH
2011-09-28 22:00 ` [086/244] fs/9p: Always ask new inode in create Greg KH
2011-09-28 22:00 ` [087/244] net/9p: Fix the msize calculation Greg KH
2011-09-28 22:00 ` [088/244] 9p: close ACL leaks Greg KH
2011-09-28 22:00 ` [089/244] irda: fix smsc-ircc2 section mismatch warning Greg KH
2011-09-28 22:00 ` [090/244] iommu/amd: Dont take domain->lock recursivly Greg KH
2011-09-28 22:00 ` [091/244] iommu/amd: Make sure iommu->need_sync contains correct value Greg KH
2011-09-28 22:00 ` [092/244] ACPICA: Do not repair _TSS return package if _PSS is present Greg KH
2011-09-28 22:00 ` [093/244] fs/9p: Add fid before dentry instantiation Greg KH
2011-09-28 22:00 ` [094/244] fs/9p: Dont update file type when updating file attributes Greg KH
2011-09-28 22:00 ` [095/244] fs/9p: Add OS dependent open flags in 9p protocol Greg KH
2011-09-28 22:01 ` [096/244] net/9p: Fix kernel crash with msize 512K Greg KH
2011-09-28 22:01 ` [097/244] fs/9p: Always ask new inode in lookup for cache mode disabled Greg KH
2011-09-28 22:01 ` [098/244] fs/9p: Use protocol-defined value for lock/getlock type field Greg KH
2011-09-28 22:01 ` [099/244] PCI: Set PCI-E Max Payload Size on fabric Greg KH
2011-09-30 22:33   ` Bjorn Helgaas
2011-09-30 22:40     ` Jon Mason
2011-09-30 22:50       ` Bjorn Helgaas
2011-10-03 18:38     ` Greg KH
2011-09-28 22:01 ` [100/244] PCI: export pcie_bus_configure_settings symbol Greg KH
2011-09-28 22:01 ` [101/244] PCI: Remove MRRS modification from MPS setting code Greg KH
2011-09-28 22:01 ` [102/244] [SCSI] isci: fix sata response handling Greg KH
2011-09-28 22:01 ` [103/244] [SCSI] isci: fix 32-bit operation when CONFIG_HIGHMEM64G=n Greg KH
2011-09-28 22:01 ` [104/244] ASoC: MPC5200: replace of_device with platform_device Greg KH
2011-09-28 22:01 ` [105/244] [SCSI] hpsa: fix problem that OBDR devices are not detected Greg KH
2011-09-28 22:01 ` [106/244] [SCSI] hpsa: fix physical device lun and target numbering problem Greg KH
2011-09-28 22:01 ` [107/244] [SCSI] qla2xxx: Correct inadvertent loop state transitions during port-update handling Greg KH
2011-09-28 22:01 ` [108/244] iwlegacy: fix BUG_ON(info->control.rates[0].idx < 0) Greg KH
2011-09-28 22:01 ` [109/244] acpica: ACPI_MAX_SLEEP should be 2 sec, not 20 Greg KH
2011-09-28 22:01 ` [110/244] ath9k_hw: fix calibration on 5 ghz Greg KH
2011-09-28 22:01 ` [111/244] e1000: Fix driver to be used on PA RISC C8000 workstations Greg KH
2011-09-28 22:01 ` [112/244] ASoC: Fix reporting of partial jack updates Greg KH
2011-09-28 22:01 ` [113/244] ASoC: Blackfin: bf5xx-ad193x: Fix codec device name Greg KH
2011-09-28 22:01 ` [114/244] mfd: Fix value of WM8994_CONFIGURE_GPIO Greg KH
2011-09-28 22:01 ` [115/244] mfd: Fix initialisation of tps65910 interrupts Greg KH
2011-09-28 22:01 ` [116/244] mfd: Make omap-usb-host TLL mode work again Greg KH
2011-09-28 22:01 ` [117/244] genirq: Make irq_shutdown() symmetric vs. irq_startup again Greg KH
2011-09-28 22:01 ` [118/244] rtlwifi: rtl8192su: Fix problem connecting to HT-enabled AP Greg KH
2011-09-28 22:01 ` [119/244] rtlwifi: Fix problem when switching connections Greg KH
2011-09-28 22:01 ` [120/244] mac80211: fix missing sta_lock in __sta_info_destroy Greg KH
2011-09-28 22:01 ` [121/244] x86, iommu: Mark DMAR IRQ as non-threaded Greg KH
2011-09-28 22:01 ` [122/244] ALSA: HDA: Cirrus - fix "Surround Speaker" volume control name Greg KH
2011-09-28 22:01 ` [123/244] drm/radeon: Dont read from CP ring write pointer registers Greg KH
2011-09-28 22:01 ` [124/244] restore pinning the victim dentry in vfs_rmdir()/vfs_rename_dir() Greg KH
2011-09-28 22:01 ` [125/244] mm: sync vmalloc address space page tables in alloc_vm_area() Greg KH
2011-09-28 22:01 ` [126/244] drivers/leds/ledtrig-timer.c: fix broken sysfs delay handling Greg KH
2011-09-28 22:01 ` [127/244] drivers/cpufreq/pcc-cpufreq.c: avoid NULL pointer dereference Greg KH
2011-09-28 22:01 ` [128/244] workqueue: lock cwq access in drain_workqueue Greg KH
2011-09-28 22:01 ` [129/244] ALSA: pcm - fix race condition in wait_for_avail() Greg KH
2011-09-28 22:01 ` [130/244] ibmveth: Fix DMA unmap error Greg KH
2011-09-28 22:01 ` [131/244] ibmveth: Fix issue with DMA mapping failure Greg KH
2011-09-28 22:01 ` [132/244] ibmveth: Checksum offload is always disabled Greg KH
2011-09-28 22:01 ` [133/244] firewire: ohci: add no MSI quirk for O2Micro controller Greg KH
2011-09-28 22:01 ` [134/244] drm/radeon/kms: fix typo in r100_blit_copy Greg KH
2011-09-29  2:31   ` Deucher, Alexander
2011-09-29 18:55     ` Greg KH
2011-09-30  3:51       ` Deucher, Alexander
2011-09-28 22:01 ` [135/244] drm/radeon/kms: Make GPU/CPU page size handling consistent in blit code (v2) Greg KH
2011-09-28 22:01 ` [136/244] USB: xhci: Set change bit when warm reset change is set Greg KH
2011-09-28 22:01 ` [137/244] iwlagn: fix command queue timeout Greg KH
2011-09-28 22:01 ` [138/244] ALSA: hda/realtek - Fix auto-mute with HP+LO configuration Greg KH
2011-09-28 22:01 ` [139/244] cifs: fix possible memory corruption in CIFSFindNext Greg KH
2011-09-28 22:01 ` [140/244] Fix the conflict between rwpidforward and rw mount options Greg KH
2011-09-28 22:01 ` [141/244] ARM: Dove: fix second SPI initialization call Greg KH
2011-09-28 22:01 ` [142/244] floppy: use del_timer_sync() in init cleanup Greg KH
2011-09-28 22:01 ` [143/244] b43: Fix beacon problem in ad-hoc mode Greg KH
2011-09-28 22:01 ` [144/244] ixgbe: fix possible null buffer error Greg KH
2011-09-28 22:01 ` [145/244] XZ: Fix incorrect XZ_BUF_ERROR Greg KH
2011-09-28 22:01 ` [146/244] rt2800pci: Fix compiler error on PowerPC Greg KH
2011-09-28 22:01 ` [147/244] make /proc/$pid/numa_maps gather_stats() take variable page size Greg KH
2011-09-28 22:01 ` [148/244] break out numa_maps gather_pte_stats() checks Greg KH
2011-09-28 22:01 ` [149/244] teach /proc/$pid/numa_maps about transparent hugepages Greg KH
2011-09-28 22:01 ` [150/244] xen: use maximum reservation to limit amount of usable RAM Greg KH
2011-09-28 22:01 ` [151/244] xen/e820: if there is no dom0_mem=, dont tweak extra_pages Greg KH
2011-09-28 22:01 ` [152/244] wireless: Reset beacon_found while updating regulatory Greg KH
2011-09-28 22:01 ` [153/244] rtl2800usb: Fix incorrect storage of MAC address on big-endian platforms Greg KH
2011-09-28 22:01 ` [154/244] iwlagn: workaround bug crashing some APs Greg KH
2011-09-28 22:01 ` [155/244] blk-cgroup: be able to remove the record of unplugged device Greg KH
2011-09-28 22:02 ` [156/244] [SCSI] iscsi_tcp: fix locking around iscsi sk user data Greg KH
2011-09-28 22:02 ` [157/244] tg3: Fix io failures after chip reset Greg KH
2011-09-28 22:02 ` [158/244] ipc/mqueue.c: refactor failure handling Greg KH
2011-09-28 22:02 ` [159/244] ipc/mqueue.c: fix mq_open() return value Greg KH
2011-09-29 15:41   ` Doug Ledford
2011-09-29 17:57     ` Greg KH
2011-09-29 18:51       ` Doug Ledford
2011-09-29 19:08         ` Greg KH
2011-09-29 19:37           ` Andrew Morton
2011-09-29 20:00             ` Doug Ledford
2011-09-29 23:31           ` Doug Ledford
2011-09-29 23:39             ` Greg KH
2011-09-30  1:54               ` Doug Ledford
2011-09-29 23:41             ` Andrew Morton
2011-09-30  1:53               ` Doug Ledford
2011-09-28 22:02 ` [160/244] writeback: introduce .tagged_writepages for the WB_SYNC_NONE sync stage Greg KH
2011-09-28 22:02 ` [161/244] writeback: update dirtied_when for synced inode to prevent livelock Greg KH
2011-09-28 22:02 ` [162/244] [S390] qdio: clear shared DSCI before scheduling the queue handler Greg KH
2011-09-28 22:02 ` [163/244] tg3: Add 5719 and 5720 to EEE_CAP list Greg KH
2011-09-28 22:02 ` [164/244] tg3: Fix int selftest for recent devices Greg KH
2011-09-28 22:02 ` [165/244] ehci: refactor pci quirk to use standard dmi_check_system method Greg KH
2011-09-28 22:02 ` [166/244] ehci: add pci quirk for Ordissimo and RM Slate 100 too Greg KH
2011-09-28 22:02 ` [167/244] USB: PL2303: correctly handle baudrates above 115200 Greg KH
2011-09-28 22:02 ` [168/244] ASIX: Add AX88772B USB ID Greg KH
2011-09-28 22:02 ` [169/244] cdc_ncm: fix endianness problem Greg KH
2011-09-28 22:02 ` [170/244] [SCSI] libfc: Enhancement to RPORT state machine applicable only for VN2VN mode Greg KH
2011-09-28 22:02 ` [171/244] [SCSI] fcoe: Unable to select the exchangeID from offload pool for storage targets Greg KH
2011-09-28 22:02 ` [172/244] [SCSI] mpt2sas: Added DID_NO_CONNECT return when driver remove and avoid shutdown call Greg KH
2011-09-28 22:02 ` [173/244] [SCSI] mpt2sas: Adding support for customer specific branding Greg KH
2011-09-28 22:02 ` [174/244] perf, x86: Add model 45 SandyBridge support Greg KH
2011-09-28 22:02 ` [175/244] arp: fix rcu lockdep splat in arp_process() Greg KH
2011-09-28 22:02 ` [176/244] bridge: fix a possible net_device leak Greg KH
2011-09-28 22:02 ` [177/244] fib:fix BUG_ON in fib_nl_newrule when add new fib rule Greg KH
2011-09-28 22:02 ` [178/244] ipv4: some rt_iif -> rt_route_iif conversions Greg KH
2011-09-28 22:02 ` [179/244] ipv6: Fix ipv6_getsockopt for IPV6_2292PKTOPTIONS Greg KH
2011-09-28 22:02 ` [180/244] mcast: Fix source address selection for multicast listener report Greg KH
2011-09-28 22:02 ` [181/244] netfilter: TCP and raw fix for ip_route_me_harder Greg KH
2011-09-28 22:02 ` [182/244] net_sched: prio: use qdisc_dequeue_peeked Greg KH
2011-09-28 22:02 ` [183/244] Revert "sfc: Use write-combining to reduce TX latency" and follow-ups Greg KH
2011-09-28 22:02 ` [184/244] scm: Capture the full credentials of the scm sender Greg KH
2011-09-28 22:02 ` [185/244] tcp: fix validation of D-SACK Greg KH
2011-09-28 22:02 ` [186/244] tcp: initialize variable ecn_ok in syncookies path Greg KH
2011-09-28 22:02 ` [187/244] vlan: reset headers on accel emulation path Greg KH
2011-09-28 22:02 ` [188/244] xfrm: Perform a replay check after return from async codepaths Greg KH
2011-09-28 22:02 ` [189/244] bridge: Pseudo-header required for the checksum of ICMPv6 Greg KH
2011-09-28 22:02 ` [190/244] bridge: fix a possible use after free Greg KH
2011-09-28 22:02 ` [191/244] zorro: Defer device_register() until all devices have been identified Greg KH
2011-09-28 22:02 ` [192/244] TPM: Call tpm_transmit with correct size Greg KH
2011-09-28 22:02 ` [193/244] TPM: Zero buffer after copying to userspace Greg KH
2011-09-28 22:02 ` [194/244] [SCSI] lpfc 8.3.25: T10 DIF Fixes Greg KH
2011-09-28 22:02 ` [195/244] [SCSI] lpfc 8.3.25: Miscellaneous Bug fixes and code cleanup Greg KH
2011-09-28 22:02 ` Greg KH [this message]
2011-09-28 22:02 ` [197/244] [SCSI] lpfc 8.3.25: Fabric and Target Discovery Fixes Greg KH
2011-09-28 22:02 ` [198/244] [SCSI] lpfc 8.3.25: PCI and SR-IOV Fixes Greg KH
2011-09-28 22:02 ` [199/244] [SCSI] isci: change sas phy timeouts from 54us to 59us Greg KH
2011-09-28 22:02 ` [200/244] [SCSI] isci: Leave requests alone if already terminating Greg KH
2011-09-28 22:02 ` [201/244] [SCSI] isci: fix event-get pointer increment Greg KH
2011-09-28 22:02 ` [202/244] ahci: RAID-mode SATA patch for Intel Panther Point DeviceIDs Greg KH
2011-09-28 22:02 ` [203/244] Bluetooth: Fix timeout on scanning for the second time Greg KH
2011-09-28 22:02 ` [204/244] [SCSI] libiscsi_tcp: fix LLD data allocation Greg KH
2011-09-28 22:02 ` [205/244] usb/host/pci-quirks.c: correct annotation of `ehci_dmi_nohandoff_table Greg KH
2011-09-28 22:02 ` [206/244] perf symbols: Fix ppc64 SEGV in dso__load_sym with debuginfo files Greg KH
2011-09-28 22:02 ` [207/244] ALSA: usb-audio - clear chip->probing on error exit Greg KH
2011-09-28 22:02 ` [208/244] drm/radeon/kms: fix DDIA enable on some rs690 systems Greg KH
2011-09-28 22:02 ` [209/244] ALSA: fm801: Fix double free in case of error in tuner detection Greg KH
2011-09-28 22:02 ` [210/244] ALSA: fm801: Gracefully handle failure of tuner auto-detect Greg KH
2011-09-28 22:02 ` [211/244] btrfs: fix d_off in the first dirent Greg KH
2011-09-28 22:02 ` [212/244] pci: Dont crash when reading mpss from root complex Greg KH
2011-09-28 22:02 ` [213/244] cnic: Fix interrupt logic Greg KH
2011-09-28 22:02 ` [214/244] cnic: Fix race conditions with firmware Greg KH
2011-09-28 22:02 ` [215/244] cnic: Randomize initial TCP port for iSCSI connections Greg KH
2011-09-28 22:03 ` [216/244] cnic: Improve NETDEV_UP event handling Greg KH
2011-09-28 22:03 ` [217/244] cnic, bnx2: Check iSCSI support early in bnx2_init_one() Greg KH
2011-09-28 22:03 ` [218/244] [SCSI] bnx2fc: Fix kernel panic when deleting NPIV ports Greg KH
2011-09-28 22:03 ` [219/244] [SCSI] bnx2fc: scsi_dma_unmap() not invoked on IO completions Greg KH
2011-09-28 22:03 ` [220/244] hwmon: (ds620) Fix handling of negative temperatures Greg KH
2011-09-28 22:03 ` [221/244] ARM: dma-mapping: free allocated page if unable to map Greg KH
2011-09-28 22:03 ` [222/244] ARM: 7091/1: errata: D-cache line maintenance operation by MVA may not succeed Greg KH
2011-09-28 22:03 ` [223/244] ARM: 7099/1: futex: preserve oldval in SMP __futex_atomic_op Greg KH
2011-09-28 22:03 ` [224/244] firmware loader: allow builtin firmware load even if usermodehelper is disabled Greg KH
2011-09-28 22:03 ` [225/244] ASoC: omap-mcbsp: Do not attempt to change DAI sysclk if stream is active Greg KH
2011-09-28 22:03 ` [226/244] ASoC: ssm2602: Re-enable oscillator after suspend Greg KH
2011-09-28 22:03 ` [227/244] ALSA: hda/realtek - Avoid bogus HP-pin assignment Greg KH
2011-09-28 22:03 ` [228/244] ALSA: HDA: No power nids on 92HD93 Greg KH
2011-09-29  4:56   ` David Henningsson
2011-09-29 18:58     ` Greg KH
2011-09-28 22:03 ` [229/244] ALSA: usb-audio: Check for possible chip NULL pointer before clearing probing flag Greg KH
2011-09-28 22:03 ` [230/244] memcg: fix vmscan count in small memcgs Greg KH
2011-09-28 22:03 ` [231/244] [SCSI] cxgb3i: convert cdev->l2opt to use rcu to prevent NULL dereference Greg KH
2011-09-28 22:03 ` [232/244] [SCSI] 3w-9xxx: fix iommu_iova leak Greg KH
2011-09-28 22:03 ` [233/244] [SCSI] aacraid: reset should disable MSI interrupt Greg KH
2011-09-28 22:03 ` [234/244] [SCSI] libsas: fix failure to revalidate domain for anything but the first expander child Greg KH
2011-09-28 22:03 ` [235/244] [SCSI] scsi: qla4xxx needs libiscsi.o Greg KH
2011-09-28 22:03 ` [236/244] cfg80211: Fix validation of AKM suites Greg KH
2011-09-28 22:03 ` [237/244] ath9k_hw: Fix Rx DMA stuck for AR9003 chips Greg KH
2011-09-28 22:03 ` [238/244] iwlegacy: fix command queue timeout Greg KH
2011-09-28 22:03 ` [239/244] rtlwifi: rtl8192cu: Fix unitialized struct Greg KH
2011-09-28 22:03 ` [240/244] iwlegacy: do not use interruptible waits Greg KH
2011-09-28 22:03 ` [241/244] iwlagn: fix dangling scan request Greg KH
2011-09-28 22:03 ` [242/244] bnx2x: fix hw attention handling Greg KH
2011-09-28 22:03 ` [243/244] bnx2x: add missing break in bnx2x_dcbnl_get_cap Greg KH
2011-09-28 22:03 ` [244/244] block: Free queue resources at blk_release_queue() Greg KH
2011-09-28 22:06 ` [000/244] 3.0.5-stable review Greg KH
2011-09-28 22:26 ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110928220146.012784312@clark.kroah.org \
    --to=gregkh@suse.de \
    --cc=JBottomley@Parallels.com \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=alex.iannicelli@emulex.com \
    --cc=james.smart@emulex.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable-review@kernel.org \
    --cc=stable@kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®