stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	target-devel <target-devel@vger.kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Nicholas Bellinger <nab@linux-iscsi.org>,
	Or Gerlitz <ogerlitz@mellanox.com>,
	Mike Christie <michaelc@cs.wisc.edu>
Subject: [ 96/99] iscsi-target: Fix iscsit_sequence_cmd reject handling for iser
Date: Fri,  2 Aug 2013 18:08:49 +0800	[thread overview]
Message-ID: <20130802100239.314266868@linuxfoundation.org> (raw)
In-Reply-To: <20130802100225.478715166@linuxfoundation.org>

3.10-stable review patch.  If anyone has any objections, please let me know.

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


From: Nicholas Bellinger <nab@linux-iscsi.org>

commit 561bf15892375597ee59d473a704a3e634c4f311 upstream

This patch moves ISCSI_OP_REJECT failures into iscsit_sequence_cmd()
in order to avoid external iscsit_reject_cmd() reject usage for all
PDU types.

It also updates PDU specific handlers for traditional iscsi-target
code to not reset the session after posting a ISCSI_OP_REJECT during
setup.

(v2: Fix CMDSN_LOWER_THAN_EXP for ISCSI_OP_SCSI to call
     target_put_sess_cmd() after iscsit_sequence_cmd() failure)

Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Cc: Or Gerlitz <ogerlitz@mellanox.com>
Cc: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/infiniband/ulp/isert/ib_isert.c  |    2 -
 drivers/target/iscsi/iscsi_target.c      |   50 +++++++++++++++++++------------
 drivers/target/iscsi/iscsi_target_erl1.c |    6 +--
 drivers/target/iscsi/iscsi_target_util.c |   26 ++++++++++++----
 drivers/target/iscsi/iscsi_target_util.h |    3 +
 include/target/iscsi/iscsi_transport.h   |    3 +
 6 files changed, 60 insertions(+), 30 deletions(-)

--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -952,7 +952,7 @@ isert_handle_scsi_cmd(struct isert_conn
 	}
 
 sequence_cmd:
-	rc = iscsit_sequence_cmd(conn, cmd, hdr->cmdsn);
+	rc = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn);
 
 	if (!rc && dump_payload == false && unsol_data)
 		iscsit_set_unsoliticed_dataout(cmd);
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -1052,11 +1052,11 @@ int iscsit_process_scsi_cmd(struct iscsi
 	 * be acknowledged. (See below)
 	 */
 	if (!cmd->immediate_data) {
-		cmdsn_ret = iscsit_sequence_cmd(conn, cmd, hdr->cmdsn);
-		if (cmdsn_ret == CMDSN_LOWER_THAN_EXP) {
-			if (!cmd->sense_reason)
-				return 0;
-
+		cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
+					(unsigned char *)hdr, hdr->cmdsn);
+		if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER)
+			return -1;
+		else if (cmdsn_ret == CMDSN_LOWER_THAN_EXP) {
 			target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
 			return 0;
 		}
@@ -1083,6 +1083,9 @@ int iscsit_process_scsi_cmd(struct iscsi
 	 * iscsit_check_received_cmdsn() in iscsit_get_immediate_data() below.
 	 */
 	if (cmd->sense_reason) {
+		if (cmd->reject_reason)
+			return 0;
+
 		target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
 		return 1;
 	}
@@ -1091,10 +1094,8 @@ int iscsit_process_scsi_cmd(struct iscsi
 	 * the backend memory allocation.
 	 */
 	cmd->sense_reason = transport_generic_new_cmd(&cmd->se_cmd);
-	if (cmd->sense_reason) {
-		target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
+	if (cmd->sense_reason)
 		return 1;
-	}
 
 	return 0;
 }
@@ -1104,6 +1105,7 @@ static int
 iscsit_get_immediate_data(struct iscsi_cmd *cmd, struct iscsi_scsi_req *hdr,
 			  bool dump_payload)
 {
+	struct iscsi_conn *conn = cmd->conn;
 	int cmdsn_ret = 0, immed_ret = IMMEDIATE_DATA_NORMAL_OPERATION;
 	/*
 	 * Special case for Unsupported SAM WRITE Opcodes and ImmediateData=Yes.
@@ -1120,12 +1122,22 @@ after_immediate_data:
 		 * DataCRC, check against ExpCmdSN/MaxCmdSN if
 		 * Immediate Bit is not set.
 		 */
-		cmdsn_ret = iscsit_sequence_cmd(cmd->conn, cmd, hdr->cmdsn);
+		cmdsn_ret = iscsit_sequence_cmd(cmd->conn, cmd,
+					(unsigned char *)hdr, hdr->cmdsn);
+		if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER) {
+			return -1;
+		} else if (cmdsn_ret == CMDSN_LOWER_THAN_EXP) {
+			target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
+			return 0;
+		}
 
 		if (cmd->sense_reason) {
-			if (iscsit_dump_data_payload(cmd->conn,
-					cmd->first_burst_len, 1) < 0)
-				return -1;
+			int rc;
+
+			rc = iscsit_dump_data_payload(cmd->conn,
+						      cmd->first_burst_len, 1);
+			target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd);
+			return rc;
 		} else if (cmd->unsolicited_data)
 			iscsit_set_unsoliticed_dataout(cmd);
 
@@ -1159,7 +1171,7 @@ iscsit_handle_scsi_cmd(struct iscsi_conn
 
 	rc = iscsit_setup_scsi_cmd(conn, cmd, buf);
 	if (rc < 0)
-		return rc;
+		return 0;
 	/*
 	 * Allocation iovecs needed for struct socket operations for
 	 * traditional iSCSI block I/O.
@@ -1500,7 +1512,7 @@ static int iscsit_handle_data_out(struct
 
 	rc = iscsit_check_dataout_hdr(conn, buf, &cmd);
 	if (rc < 0)
-		return rc;
+		return 0;
 	else if (!cmd)
 		return 0;
 
@@ -1672,7 +1684,8 @@ int iscsit_handle_nop_out(struct iscsi_c
 			return 0;
 		}
 
-		cmdsn_ret = iscsit_sequence_cmd(conn, cmd, hdr->cmdsn);
+		cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
+				(unsigned char *)hdr, hdr->cmdsn);
 		if (cmdsn_ret == CMDSN_LOWER_THAN_EXP) {
 			ret = 0;
 			goto ping_out;
@@ -1898,7 +1911,7 @@ attach:
 	spin_unlock_bh(&conn->cmd_lock);
 
 	if (!(hdr->opcode & ISCSI_OP_IMMEDIATE)) {
-		int cmdsn_ret = iscsit_sequence_cmd(conn, cmd, hdr->cmdsn);
+		int cmdsn_ret = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn);
 		if (cmdsn_ret == CMDSN_HIGHER_THAN_EXP)
 			out_of_order_cmdsn = 1;
 		else if (cmdsn_ret == CMDSN_LOWER_THAN_EXP)
@@ -2075,7 +2088,8 @@ static int iscsit_handle_text_cmd(
 	iscsit_ack_from_expstatsn(conn, be32_to_cpu(hdr->exp_statsn));
 
 	if (!(hdr->opcode & ISCSI_OP_IMMEDIATE)) {
-		cmdsn_ret = iscsit_sequence_cmd(conn, cmd, hdr->cmdsn);
+		cmdsn_ret = iscsit_sequence_cmd(conn, cmd,
+				(unsigned char *)hdr, hdr->cmdsn);
 		if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER)
 			return -1;
 
@@ -2262,7 +2276,7 @@ iscsit_handle_logout_cmd(struct iscsi_co
 		if (ret < 0)
 			return ret;
 	} else {
-		cmdsn_ret = iscsit_sequence_cmd(conn, cmd, hdr->cmdsn);
+		cmdsn_ret = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn);
 		if (cmdsn_ret == CMDSN_LOWER_THAN_EXP)
 			logout_remove = 0;
 		else if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER)
--- a/drivers/target/iscsi/iscsi_target_erl1.c
+++ b/drivers/target/iscsi/iscsi_target_erl1.c
@@ -1088,7 +1088,7 @@ int iscsit_handle_ooo_cmdsn(
 
 	ooo_cmdsn = iscsit_allocate_ooo_cmdsn();
 	if (!ooo_cmdsn)
-		return CMDSN_ERROR_CANNOT_RECOVER;
+		return -ENOMEM;
 
 	ooo_cmdsn->cmd			= cmd;
 	ooo_cmdsn->batch_count		= (batch) ?
@@ -1099,10 +1099,10 @@ int iscsit_handle_ooo_cmdsn(
 
 	if (iscsit_attach_ooo_cmdsn(sess, ooo_cmdsn) < 0) {
 		kmem_cache_free(lio_ooo_cache, ooo_cmdsn);
-		return CMDSN_ERROR_CANNOT_RECOVER;
+		return -ENOMEM;
 	}
 
-	return CMDSN_HIGHER_THAN_EXP;
+	return 0;
 }
 
 static int iscsit_set_dataout_timeout_values(
--- a/drivers/target/iscsi/iscsi_target_util.c
+++ b/drivers/target/iscsi/iscsi_target_util.c
@@ -283,13 +283,12 @@ static inline int iscsit_check_received_
  * Commands may be received out of order if MC/S is in use.
  * Ensure they are executed in CmdSN order.
  */
-int iscsit_sequence_cmd(
-	struct iscsi_conn *conn,
-	struct iscsi_cmd *cmd,
-	__be32 cmdsn)
+int iscsit_sequence_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
+			unsigned char *buf, __be32 cmdsn)
 {
-	int ret;
-	int cmdsn_ret;
+	int ret, cmdsn_ret;
+	bool reject = false;
+	u8 reason = ISCSI_REASON_BOOKMARK_NO_RESOURCES;
 
 	mutex_lock(&conn->sess->cmdsn_mutex);
 
@@ -299,9 +298,19 @@ int iscsit_sequence_cmd(
 		ret = iscsit_execute_cmd(cmd, 0);
 		if ((ret >= 0) && !list_empty(&conn->sess->sess_ooo_cmdsn_list))
 			iscsit_execute_ooo_cmdsns(conn->sess);
+		else if (ret < 0) {
+			reject = true;
+			ret = CMDSN_ERROR_CANNOT_RECOVER;
+		}
 		break;
 	case CMDSN_HIGHER_THAN_EXP:
 		ret = iscsit_handle_ooo_cmdsn(conn->sess, cmd, be32_to_cpu(cmdsn));
+		if (ret < 0) {
+			reject = true;
+			ret = CMDSN_ERROR_CANNOT_RECOVER;
+			break;
+		}
+		ret = CMDSN_HIGHER_THAN_EXP;
 		break;
 	case CMDSN_LOWER_THAN_EXP:
 		cmd->i_state = ISTATE_REMOVE;
@@ -309,11 +318,16 @@ int iscsit_sequence_cmd(
 		ret = cmdsn_ret;
 		break;
 	default:
+		reason = ISCSI_REASON_PROTOCOL_ERROR;
+		reject = true;
 		ret = cmdsn_ret;
 		break;
 	}
 	mutex_unlock(&conn->sess->cmdsn_mutex);
 
+	if (reject)
+		iscsit_reject_cmd(cmd, reason, buf);
+
 	return ret;
 }
 EXPORT_SYMBOL(iscsit_sequence_cmd);
--- a/drivers/target/iscsi/iscsi_target_util.h
+++ b/drivers/target/iscsi/iscsi_target_util.h
@@ -13,7 +13,8 @@ extern struct iscsi_cmd *iscsit_allocate
 extern struct iscsi_seq *iscsit_get_seq_holder_for_datain(struct iscsi_cmd *, u32);
 extern struct iscsi_seq *iscsit_get_seq_holder_for_r2t(struct iscsi_cmd *);
 extern struct iscsi_r2t *iscsit_get_holder_for_r2tsn(struct iscsi_cmd *, u32);
-int iscsit_sequence_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, __be32 cmdsn);
+extern int iscsit_sequence_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
+			       unsigned char * ,__be32 cmdsn);
 extern int iscsit_check_unsolicited_dataout(struct iscsi_cmd *, unsigned char *);
 extern struct iscsi_cmd *iscsit_find_cmd_from_itt(struct iscsi_conn *, itt_t);
 extern struct iscsi_cmd *iscsit_find_cmd_from_itt_or_dump(struct iscsi_conn *,
--- a/include/target/iscsi/iscsi_transport.h
+++ b/include/target/iscsi/iscsi_transport.h
@@ -82,4 +82,5 @@ extern int iscsit_tmr_post_handler(struc
  * From iscsi_target_util.c
  */
 extern struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *, gfp_t);
-extern int iscsit_sequence_cmd(struct iscsi_conn *, struct iscsi_cmd *, __be32);
+extern int iscsit_sequence_cmd(struct iscsi_conn *, struct iscsi_cmd *,
+			       unsigned char *, __be32);



  parent reply	other threads:[~2013-08-02 10:08 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-02 10:07 [ 00/99] 3.10.5-stable review Greg Kroah-Hartman
2013-08-02 10:07 ` [ 01/99] mm: fix the TLB range flushed when __tlb_remove_page() runs out of slots Greg Kroah-Hartman
2013-08-02 10:07 ` [ 02/99] iser-target: Fix isert_put_reject payload buffer post Greg Kroah-Hartman
2013-08-02 10:07 ` [ 03/99] iscsi-target: Fix tfc_tpg_nacl_auth_cit configfs length overflow Greg Kroah-Hartman
2013-08-02 10:07 ` [ 04/99] iser-target: Fix session reset bug with RDMA_CM_EVENT_DISCONNECTED Greg Kroah-Hartman
2013-08-02 10:07 ` [ 05/99] iscsi-target: Fix ISCSI_OP_SCSI_TMFUNC handling for iser Greg Kroah-Hartman
2013-08-02 10:07 ` [ 06/99] USB: storage: Add MicroVault Flash Drive to unusual_devs Greg Kroah-Hartman
2013-08-02 10:07 ` [ 07/99] ALSA: hda - Yet another Dell headset mic quirk Greg Kroah-Hartman
2013-08-02 10:07 ` [ 08/99] ALSA: hda - Guess what, its two more Dell headset mic quirks Greg Kroah-Hartman
2013-08-02 10:07 ` [ 09/99] firewire: fix libdc1394/FlyCap2 iso event regression Greg Kroah-Hartman
2013-08-02 10:07 ` [ 10/99] ASoC: sglt5000: Fix the default value of CHIP_SSS_CTRL Greg Kroah-Hartman
2013-08-02 10:07 ` [ 11/99] ASoC: max98088 - fix element type of the register cache Greg Kroah-Hartman
2013-08-02 10:07 ` [ 12/99] ASoC: tegra: correct playback_dma_data setup Greg Kroah-Hartman
2013-08-02 10:07 ` [ 13/99] ASoC: wm8962: Remove remaining direct register cache accesses Greg Kroah-Hartman
2013-08-02 10:07 ` [ 14/99] ARM: 7722/1: zImage: Convert 32bits memory size and address from ATAG to 64bits DTB Greg Kroah-Hartman
2013-08-02 10:07 ` [ 15/99] SCSI: isci: Fix a race condition in the SSP task management path Greg Kroah-Hartman
2013-08-02 10:07 ` [ 16/99] SCSI: sd: fix crash when UA received on DIF enabled device Greg Kroah-Hartman
2013-08-02 10:07 ` [ 17/99] SCSI: qla2xxx: Properly set the tagging for commands Greg Kroah-Hartman
2013-08-02 10:07 ` [ 18/99] tracing: Fix error handling to ensure instances can always be removed Greg Kroah-Hartman
2013-08-02 10:07 ` [ 19/99] tracing: Miscellaneous fixes for trace_array ref counting Greg Kroah-Hartman
2013-08-02 10:07 ` [ 20/99] tracing: Kill the unbalanced tr->ref++ in tracing_buffers_open() Greg Kroah-Hartman
2013-08-02 10:07 ` [ 21/99] tracing: Remove locking trace_types_lock from tracing_reset_all_online_cpus() Greg Kroah-Hartman
2013-08-02 10:07 ` [ 22/99] usb: host: xhci: Enable XHCI_SPURIOUS_SUCCESS for all controllers with xhci 1.0 Greg Kroah-Hartman
2013-08-02 10:07 ` [ 23/99] xhci: fix null pointer dereference on ring_doorbell_for_active_rings Greg Kroah-Hartman
2013-08-02 10:07 ` [ 24/99] xhci: Avoid NULL pointer deref when host dies Greg Kroah-Hartman
2013-08-02 10:07 ` [ 25/99] USB: EHCI: Fix resume signalling on remote wakeup Greg Kroah-Hartman
2013-08-02 10:07 ` [ 26/99] USB: mos7840: fix memory leak in open Greg Kroah-Hartman
2013-08-02 10:07 ` [ 27/99] usb: dwc3: fix the error returned with usb3_phy failure Greg Kroah-Hartman
2013-08-02 10:07 ` [ 28/99] usb: dwc3: fix wrong bit mask in dwc3_event_type Greg Kroah-Hartman
2013-08-02 10:07 ` [ 29/99] usb: dwc3: gadget: dont prevent gadget from being probed if we fail Greg Kroah-Hartman
2013-08-02 10:07 ` [ 30/99] USB: ti_usb_3410_5052: fix dynamic-id matching Greg Kroah-Hartman
2013-08-02 10:07 ` [ 31/99] USB: misc: Add Manhattan Hi-Speed USB DVI Converter to sisusbvga Greg Kroah-Hartman
2013-08-02 10:07 ` [ 32/99] usb: Clear both buffers when clearing a control transfer TT buffer Greg Kroah-Hartman
2013-08-02 10:07 ` [ 33/99] USB: global suspend and remote wakeup dont mix Greg Kroah-Hartman
2013-08-02 10:07 ` [ 34/99] staging: comedi: fix a race between do_cmd_ioctl() and read/write Greg Kroah-Hartman
2013-08-02 10:07 ` [ 35/99] staging: comedi: COMEDI_CANCEL ioctl should wake up read/write Greg Kroah-Hartman
2013-08-02 10:07 ` [ 36/99] staging: android: logger: Correct write offset reset on error Greg Kroah-Hartman
2013-08-02 10:07 ` [ 37/99] cpufreq / intel_pstate: Change to scale off of max P-state Greg Kroah-Hartman
2013-08-02 10:07 ` [ 38/99] Btrfs: fix wrong write offset when replacing a device Greg Kroah-Hartman
2013-08-02 10:07 ` [ 39/99] Btrfs: fix lock leak when resuming snapshot deletion Greg Kroah-Hartman
2013-08-02 10:07 ` [ 40/99] Btrfs: re-add root to dead root list if we stop dropping it Greg Kroah-Hartman
2013-08-02 10:07 ` [ 41/99] xen-netfront: pull on receive skb may need to happen earlier Greg Kroah-Hartman
2013-08-02 10:07 ` [ 42/99] xen/blkback: Check device permissions before allowing OP_DISCARD Greg Kroah-Hartman
2013-08-02 10:07 ` [ 43/99] x86, suspend: Handle CPUs which fail to #GP on RDMSR Greg Kroah-Hartman
2013-08-02 10:07 ` [ 44/99] x86: make sure IDT is page aligned Greg Kroah-Hartman
2013-08-02 10:07 ` [ 45/99] md: Remove recent change which allows devices to skip recovery Greg Kroah-Hartman
2013-08-02 10:07 ` [ 46/99] md/raid1: fix bio handling problems in process_checks() Greg Kroah-Hartman
2013-08-02 10:08 ` [ 47/99] md/raid5: fix interaction of replace and recovery Greg Kroah-Hartman
2013-08-02 10:08 ` [ 48/99] md/raid10: remove use-after-free bug Greg Kroah-Hartman
2013-08-02 10:08 ` [ 49/99] ata: Fix DVD not dectected at some platform with Wellsburg PCH Greg Kroah-Hartman
2013-08-02 10:08 ` [ 50/99] libata: make it clear that sata_inic162x is experimental Greg Kroah-Hartman
2013-08-02 10:08 ` [ 51/99] svcrdma: underflow issue in decode_write_list() Greg Kroah-Hartman
2013-08-02 10:08 ` [ 52/99] crypto: caam - Fixed the memory out of bound overwrite issue Greg Kroah-Hartman
2013-08-02 10:08 ` [ 53/99] powerpc/modules: Module CRC relocation fix causes perf issues Greg Kroah-Hartman
2013-08-02 10:08 ` [ 54/99] nfsd: nfsd_open: when dentry_open returns an error do not propagate as struct file Greg Kroah-Hartman
2013-08-02 10:08 ` [ 55/99] Tools: hv: KVP: Fix a bug in IPV6 subnet enumeration Greg Kroah-Hartman
2013-08-02 10:08 ` [ 56/99] Drivers: hv: balloon: Fix a bug in the hot-add code Greg Kroah-Hartman
2013-08-02 10:08 ` [ 57/99] Drivers: hv: balloon: Do not post pressure status if interrupted Greg Kroah-Hartman
2013-08-02 10:08 ` [ 58/99] regmap: cache: bail in regmap_async_complete() for bus-less maps Greg Kroah-Hartman
2013-08-02 10:08 ` [ 59/99] ACPI / scan: Always call acpi_bus_scan() for bus check notifications Greg Kroah-Hartman
2013-08-02 10:08 ` [ 60/99] ACPI / scan: Do not try to attach scan handlers to devices having them Greg Kroah-Hartman
2013-08-02 10:08 ` [ 61/99] ACPI / memhotplug: Fix a stale pointer in error path Greg Kroah-Hartman
2013-08-02 10:08 ` [ 62/99] ACPI / video: ignore BIOS initial backlight value for Fujitsu E753 Greg Kroah-Hartman
2013-08-02 10:08 ` [ 63/99] dm mpath: fix ioctl deadlock when no paths Greg Kroah-Hartman
2013-08-02 10:08 ` [ 64/99] dm ioctl: set noio flag to avoid __vmalloc deadlock Greg Kroah-Hartman
2013-08-02 10:08 ` [ 65/99] dm verity: fix inability to use a few specific devices sizes Greg Kroah-Hartman
2013-08-02 10:08 ` [ 66/99] drm/radeon/hdmi: make sure we have an afmt block assigned Greg Kroah-Hartman
2013-08-02 10:08 ` [ 67/99] drm/radeon: fix UVD fence emit Greg Kroah-Hartman
2013-08-02 10:08 ` [ 68/99] drm/radeon: allow selection of alignment in the sub-allocator Greg Kroah-Hartman
2013-08-02 10:08 ` [ 69/99] drm/radeon: fix endian issues with DP handling (v3) Greg Kroah-Hartman
2013-08-02 10:08 ` [ 70/99] drm/radeon: Another card with wrong primary dac adj Greg Kroah-Hartman
2013-08-02 10:08 ` [ 71/99] drm/radeon: fix combios tables on older cards Greg Kroah-Hartman
2013-08-02 10:08 ` [ 72/99] drm/radeon: improve dac adjust heuristics for legacy pdac Greg Kroah-Hartman
2013-08-02 10:08 ` [ 73/99] drm/i915: fix up ring cleanup for the i830/i845 CS tlb w/a Greg Kroah-Hartman
2013-08-02 10:08 ` [ 74/99] drm/i915: Fix write-read race with multiple rings Greg Kroah-Hartman
2013-08-02 10:08 ` [ 75/99] Partially revert "drm/i915: unconditionally use mt forcewake on hsw/ivb" Greg Kroah-Hartman
2013-08-02 10:08 ` [ 76/99] drm/i915: Fix incoherence with fence updates on Sandybridge+ Greg Kroah-Hartman
2013-08-02 10:08 ` [ 77/99] drm/i915: fix long-standing SNB regression in power consumption after resume v2 Greg Kroah-Hartman
2013-08-02 10:08 ` [ 78/99] drm/i915: Fix dereferencing invalid connectors in is_crtc_connector_off() Greg Kroah-Hartman
2013-08-02 10:08 ` [ 79/99] drm/i915: correctly restore fences with objects attached Greg Kroah-Hartman
2013-08-02 10:08 ` [ 80/99] drm/i915: quirk no PCH_PWM_ENABLE for Dell XPS13 backlight Greg Kroah-Hartman
2013-08-02 10:08 ` [ 81/99] drm/i915: Serialize almost all register access Greg Kroah-Hartman
2013-08-02 10:08 ` [ 82/99] drm/i915: fix up gt init sequence fallout Greg Kroah-Hartman
2013-08-02 10:08 ` [ 83/99] drm/i915: fix missed hunk after GT access breakage Greg Kroah-Hartman
2013-08-02 10:08 ` [ 84/99] drm/nouveau: fix semaphore dmabuf obj Greg Kroah-Hartman
2013-08-02 10:08 ` [ 85/99] drm/radeon: fix audio dto programming on DCE4+ Greg Kroah-Hartman
2013-08-02 10:08 ` [ 86/99] drm/radeon/atom: initialize more atom interpretor elements to 0 Greg Kroah-Hartman
2013-08-02 10:08 ` [ 87/99] rtlwifi: Initialize power-setting callback for USB devices Greg Kroah-Hartman
2013-08-02 10:08 ` [ 88/99] USB: serial: ftdi_sio: add more RT Systems ftdi devices Greg Kroah-Hartman
2013-08-02 10:08 ` [ 89/99] usb: gadget: udc-core: fix the typo of udc state attribute Greg Kroah-Hartman
2013-08-02 10:08 ` [ 90/99] mm: mempolicy: fix mbind_range() && vma_adjust() interaction Greg Kroah-Hartman
2013-08-02 10:08 ` [ 91/99] tty_port: Fix refcounting leak in tty_port_tty_hangup() Greg Kroah-Hartman
2013-08-02 10:08 ` [ 92/99] livelock avoidance in sget() Greg Kroah-Hartman
2013-08-02 10:08 ` [ 93/99] xen/evtchn: avoid a deadlock when unbinding an event channel Greg Kroah-Hartman
2013-08-02 10:08 ` [ 94/99] radeon kms: do not flush uninitialized hotplug work Greg Kroah-Hartman
2013-08-02 10:08 ` [ 95/99] iscsi-target: Fix iscsit_add_reject* usage for iser Greg Kroah-Hartman
2013-08-02 10:08 ` Greg Kroah-Hartman [this message]
2013-08-02 10:08 ` [ 97/99] perf tools: Revert regression in configuration of Python support Greg Kroah-Hartman
2013-08-02 10:08 ` [ 98/99] drm/i915: Correct obj->mm_list link to dev_priv->dev_priv->mm.inactive_list Greg Kroah-Hartman
2013-08-02 10:08 ` [ 99/99] x86: Fix /proc/mtrr with base/size more than 44bits Greg Kroah-Hartman
2013-08-02 19:57 ` [ 00/99] 3.10.5-stable review Shuah Khan
2013-08-02 21:24   ` Greg Kroah-Hartman
2013-08-02 22:05     ` Willy Tarreau
2013-08-03 14:02 ` Guenter Roeck
2013-08-03 23:03   ` Greg Kroah-Hartman

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=20130802100239.314266868@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michaelc@cs.wisc.edu \
    --cc=nab@linux-iscsi.org \
    --cc=ogerlitz@mellanox.com \
    --cc=stable@vger.kernel.org \
    --cc=target-devel@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).