rpms/kernel/devel kernel-2.6.spec, 1.2655, 1.2656 linux-2.6-iscsi-update-to-2-6-19-rc1.upstream.patch, 1.1, 1.2

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Sep 15 20:02:19 UTC 2006


Author: mchristi

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv28753

Modified Files:
	kernel-2.6.spec 
	linux-2.6-iscsi-update-to-2-6-19-rc1.upstream.patch 
Log Message:
update iscsi 2.6.19 patch to fix slab corruption when qla4xxx runs but iscsid is not running


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.2655
retrieving revision 1.2656
diff -u -r1.2655 -r1.2656
--- kernel-2.6.spec	15 Sep 2006 12:32:45 -0000	1.2655
+++ kernel-2.6.spec	15 Sep 2006 20:02:16 -0000	1.2656
@@ -1892,6 +1892,9 @@
 %endif
 
 %changelog
+* Fri Sep 15 2006 Mike Christie <mchristie at redhat.com>
+- fix slab corruption when starting qla4xxx with iscsid not started.
+
 * Thu Sep 14 2006 Don Zickus <dzickus at redhat.com>
 - add include/asm-x86_64/const.h to exported header file list
   used by the x86 relocatable patch (inside include/asm-x86_64/page.h)

linux-2.6-iscsi-update-to-2-6-19-rc1.upstream.patch:
 drivers/infiniband/ulp/iser/iscsi_iser.c |   18 
 drivers/infiniband/ulp/iser/iscsi_iser.h |    1 
 drivers/scsi/iscsi_tcp.c                 |  776 +++++++++++--------------------
 drivers/scsi/iscsi_tcp.h                 |   40 -
 drivers/scsi/libiscsi.c                  |  144 ++++-
 drivers/scsi/scsi_transport_iscsi.c      |  248 ---------
 include/scsi/libiscsi.h                  |    6 
 include/scsi/scsi_transport_iscsi.h      |    4 
 8 files changed, 456 insertions(+), 781 deletions(-)

Index: linux-2.6-iscsi-update-to-2-6-19-rc1.upstream.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-iscsi-update-to-2-6-19-rc1.upstream.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-iscsi-update-to-2-6-19-rc1.upstream.patch	5 Sep 2006 21:24:43 -0000	1.1
+++ linux-2.6-iscsi-update-to-2-6-19-rc1.upstream.patch	15 Sep 2006 20:02:17 -0000	1.2
@@ -1,10 +1,9 @@
 This update did not make it into 2.6.18. It is in the scsi maintainer's
 tree for 2.6.19-rc1 when that window opens.
 
-
-diff -aurp linux-2.6.17.noarch/drivers/infiniband/ulp/iser/iscsi_iser.c linux-2.6.17.noarch.work/drivers/infiniband/ulp/iser/iscsi_iser.c
---- linux-2.6.17.noarch/drivers/infiniband/ulp/iser/iscsi_iser.c	2006-09-01 05:08:20.000000000 -0500
-+++ linux-2.6.17.noarch.work/drivers/infiniband/ulp/iser/iscsi_iser.c	2006-09-01 05:10:11.000000000 -0500
+diff -aurp linux-2.6.17.noarch/drivers/infiniband/ulp/iser/iscsi_iser.c linux-2.6.17.noarch.update/drivers/infiniband/ulp/iser/iscsi_iser.c
+--- linux-2.6.17.noarch/drivers/infiniband/ulp/iser/iscsi_iser.c	2006-09-15 13:28:25.000000000 -0500
++++ linux-2.6.17.noarch.update/drivers/infiniband/ulp/iser/iscsi_iser.c	2006-09-15 13:28:15.000000000 -0500
 @@ -141,18 +141,11 @@ iscsi_iser_cmd_init(struct iscsi_cmd_tas
  
  	if (sc->sc_data_direction == DMA_TO_DEVICE) {
@@ -42,9 +41,9 @@
  		debug_scsi("Sending data-out: itt 0x%x, data count %d\n",
  			   hdr.itt, ctask->data_count);
  
-diff -aurp linux-2.6.17.noarch/drivers/infiniband/ulp/iser/iscsi_iser.h linux-2.6.17.noarch.work/drivers/infiniband/ulp/iser/iscsi_iser.h
---- linux-2.6.17.noarch/drivers/infiniband/ulp/iser/iscsi_iser.h	2006-09-01 05:08:20.000000000 -0500
-+++ linux-2.6.17.noarch.work/drivers/infiniband/ulp/iser/iscsi_iser.h	2006-09-01 05:10:11.000000000 -0500
+diff -aurp linux-2.6.17.noarch/drivers/infiniband/ulp/iser/iscsi_iser.h linux-2.6.17.noarch.update/drivers/infiniband/ulp/iser/iscsi_iser.h
+--- linux-2.6.17.noarch/drivers/infiniband/ulp/iser/iscsi_iser.h	2006-09-15 13:28:25.000000000 -0500
++++ linux-2.6.17.noarch.update/drivers/infiniband/ulp/iser/iscsi_iser.h	2006-09-15 13:28:15.000000000 -0500
 @@ -257,7 +257,6 @@ struct iscsi_iser_conn {
  struct iscsi_iser_cmd_task {
  	struct iser_desc             desc;
@@ -53,9 +52,9 @@
  	enum iser_task_status 	     status;
  	int                          command_sent;  /* set if command  sent  */
  	int                          dir[ISER_DIRS_NUM];      /* set if dir use*/
-diff -aurp linux-2.6.17.noarch/drivers/scsi/iscsi_tcp.c linux-2.6.17.noarch.work/drivers/scsi/iscsi_tcp.c
---- linux-2.6.17.noarch/drivers/scsi/iscsi_tcp.c	2006-09-01 05:08:21.000000000 -0500
-+++ linux-2.6.17.noarch.work/drivers/scsi/iscsi_tcp.c	2006-09-01 05:10:11.000000000 -0500
+diff -aurp linux-2.6.17.noarch/drivers/scsi/iscsi_tcp.c linux-2.6.17.noarch.update/drivers/scsi/iscsi_tcp.c
+--- linux-2.6.17.noarch/drivers/scsi/iscsi_tcp.c	2006-09-15 13:28:25.000000000 -0500
++++ linux-2.6.17.noarch.update/drivers/scsi/iscsi_tcp.c	2006-09-15 13:28:15.000000000 -0500
 @@ -109,7 +109,7 @@ iscsi_hdr_digest(struct iscsi_conn *conn
  	struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
  
@@ -1178,9 +1177,9 @@
  		tcp_conn->sendpage = conn->datadgst_en ?
  			sock_no_sendpage : tcp_conn->sock->ops->sendpage;
  		break;
-diff -aurp linux-2.6.17.noarch/drivers/scsi/iscsi_tcp.h linux-2.6.17.noarch.work/drivers/scsi/iscsi_tcp.h
---- linux-2.6.17.noarch/drivers/scsi/iscsi_tcp.h	2006-09-01 05:08:21.000000000 -0500
-+++ linux-2.6.17.noarch.work/drivers/scsi/iscsi_tcp.h	2006-09-01 05:10:11.000000000 -0500
+diff -aurp linux-2.6.17.noarch/drivers/scsi/iscsi_tcp.h linux-2.6.17.noarch.update/drivers/scsi/iscsi_tcp.h
+--- linux-2.6.17.noarch/drivers/scsi/iscsi_tcp.h	2006-09-15 13:28:25.000000000 -0500
++++ linux-2.6.17.noarch.update/drivers/scsi/iscsi_tcp.h	2006-09-15 13:28:15.000000000 -0500
 @@ -31,23 +31,21 @@
  #define IN_PROGRESS_DDIGEST_RECV	0x3
  
@@ -1261,9 +1260,9 @@
  };
  
  #endif /* ISCSI_H */
-diff -aurp linux-2.6.17.noarch/drivers/scsi/libiscsi.c linux-2.6.17.noarch.work/drivers/scsi/libiscsi.c
---- linux-2.6.17.noarch/drivers/scsi/libiscsi.c	2006-09-01 05:08:22.000000000 -0500
-+++ linux-2.6.17.noarch.work/drivers/scsi/libiscsi.c	2006-09-01 05:10:11.000000000 -0500
+diff -aurp linux-2.6.17.noarch/drivers/scsi/libiscsi.c linux-2.6.17.noarch.update/drivers/scsi/libiscsi.c
+--- linux-2.6.17.noarch/drivers/scsi/libiscsi.c	2006-09-15 13:28:25.000000000 -0500
++++ linux-2.6.17.noarch.update/drivers/scsi/libiscsi.c	2006-09-15 13:28:15.000000000 -0500
 @@ -68,8 +68,7 @@ iscsi_check_assign_cmdsn(struct iscsi_se
  EXPORT_SYMBOL_GPL(iscsi_check_assign_cmdsn);
  
@@ -1591,9 +1590,9 @@
  	spin_lock_bh(&session->lock);
  	conn->c_stage = ISCSI_CONN_STARTED;
  	session->state = ISCSI_STATE_LOGGED_IN;
-diff -aurp linux-2.6.17.noarch/drivers/scsi/scsi_transport_iscsi.c linux-2.6.17.noarch.work/drivers/scsi/scsi_transport_iscsi.c
---- linux-2.6.17.noarch/drivers/scsi/scsi_transport_iscsi.c	2006-09-01 05:08:22.000000000 -0500
-+++ linux-2.6.17.noarch.work/drivers/scsi/scsi_transport_iscsi.c	2006-09-01 05:10:30.000000000 -0500
+diff -aurp linux-2.6.17.noarch/drivers/scsi/scsi_transport_iscsi.c linux-2.6.17.noarch.update/drivers/scsi/scsi_transport_iscsi.c
+--- linux-2.6.17.noarch/drivers/scsi/scsi_transport_iscsi.c	2006-09-15 13:28:25.000000000 -0500
++++ linux-2.6.17.noarch.update/drivers/scsi/scsi_transport_iscsi.c	2006-09-15 13:28:19.000000000 -0500
 @@ -21,7 +21,6 @@
   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
   */
@@ -1757,7 +1756,7 @@
  free_conn:
  	kfree(conn);
  	return NULL;
-@@ -599,81 +496,33 @@ iscsi_if_transport_lookup(struct iscsi_t
+@@ -599,81 +496,31 @@ iscsi_if_transport_lookup(struct iscsi_t
  	return NULL;
  }
  
@@ -1807,7 +1806,6 @@
  	rc = netlink_broadcast(nls, skb, 0, 1, gfp);
  	if (rc < 0) {
 -		mempool_free(skb, zone->pool);
-+		kfree_skb(skb);
  		printk(KERN_ERR "iscsi: can not broadcast skb (%d)\n", rc);
  		return rc;
  	}
@@ -1830,7 +1828,6 @@
  	rc = netlink_unicast(nls, skb, pid, MSG_DONTWAIT);
  	if (rc < 0) {
 -		mempool_free(skb, zone->pool);
-+		kfree_skb(skb);
  		printk(KERN_ERR "iscsi: can not unicast skb (%d)\n", rc);
  		return rc;
  	}
@@ -1843,7 +1840,7 @@
  	return 0;
  }
  
-@@ -692,9 +541,7 @@ int iscsi_recv_pdu(struct iscsi_cls_conn
+@@ -692,9 +539,7 @@ int iscsi_recv_pdu(struct iscsi_cls_conn
  	if (!priv)
  		return -EINVAL;
  
@@ -1854,7 +1851,7 @@
  	if (!skb) {
  		iscsi_conn_error(conn, ISCSI_ERR_CONN_FAILED);
  		dev_printk(KERN_ERR, &conn->dev, "iscsi: can not deliver "
-@@ -707,15 +554,13 @@ int iscsi_recv_pdu(struct iscsi_cls_conn
+@@ -707,15 +552,13 @@ int iscsi_recv_pdu(struct iscsi_cls_conn
  	memset(ev, 0, sizeof(*ev));
  	ev->transport_handle = iscsi_handle(conn->transport);
  	ev->type = ISCSI_KEVENT_RECV_PDU;
@@ -1871,7 +1868,7 @@
  }
  EXPORT_SYMBOL_GPL(iscsi_recv_pdu);
  
-@@ -731,9 +576,7 @@ void iscsi_conn_error(struct iscsi_cls_c
+@@ -731,9 +574,7 @@ void iscsi_conn_error(struct iscsi_cls_c
  	if (!priv)
  		return;
  
@@ -1882,7 +1879,7 @@
  	if (!skb) {
  		dev_printk(KERN_ERR, &conn->dev, "iscsi: gracefully ignored "
  			  "conn error (%d)\n", error);
-@@ -744,13 +587,11 @@ void iscsi_conn_error(struct iscsi_cls_c
+@@ -744,13 +585,11 @@ void iscsi_conn_error(struct iscsi_cls_c
  	ev = NLMSG_DATA(nlh);
  	ev->transport_handle = iscsi_handle(conn->transport);
  	ev->type = ISCSI_KEVENT_CONN_ERROR;
@@ -1897,7 +1894,7 @@
  
  	dev_printk(KERN_INFO, &conn->dev, "iscsi: detected conn error (%d)\n",
  		   error);
-@@ -767,9 +608,7 @@ iscsi_if_send_reply(int pid, int seq, in
+@@ -767,9 +606,7 @@ iscsi_if_send_reply(int pid, int seq, in
  	int flags = multi ? NLM_F_MULTI : 0;
  	int t = done ? NLMSG_DONE : type;
  
@@ -1908,7 +1905,7 @@
  	/*
  	 * FIXME:
  	 * user is supposed to react on iferror == -ENOMEM;
-@@ -780,7 +619,7 @@ iscsi_if_send_reply(int pid, int seq, in
+@@ -780,7 +617,7 @@ iscsi_if_send_reply(int pid, int seq, in
  	nlh = __nlmsg_put(skb, pid, seq, t, (len - sizeof(*nlh)), 0);
  	nlh->nlmsg_flags = flags;
  	memcpy(NLMSG_DATA(nlh), payload, size);
@@ -1917,7 +1914,7 @@
  }
  
  static int
-@@ -810,9 +649,7 @@ iscsi_if_get_stats(struct iscsi_transpor
+@@ -810,9 +647,7 @@ iscsi_if_get_stats(struct iscsi_transpor
  	do {
  		int actual_size;
  
@@ -1928,7 +1925,7 @@
  		if (!skbstat) {
  			dev_printk(KERN_ERR, &conn->dev, "iscsi: can not "
  				   "deliver stats: OOM\n");
-@@ -825,8 +662,6 @@ iscsi_if_get_stats(struct iscsi_transpor
+@@ -825,8 +660,6 @@ iscsi_if_get_stats(struct iscsi_transpor
  		memset(evstat, 0, sizeof(*evstat));
  		evstat->transport_handle = iscsi_handle(conn->transport);
  		evstat->type = nlh->nlmsg_type;
@@ -1937,7 +1934,7 @@
  		evstat->u.get_stats.cid =
  			ev->u.get_stats.cid;
  		evstat->u.get_stats.sid =
-@@ -845,7 +680,7 @@ iscsi_if_get_stats(struct iscsi_transpor
+@@ -845,7 +678,7 @@ iscsi_if_get_stats(struct iscsi_transpor
  		skb_trim(skbstat, NLMSG_ALIGN(actual_size));
  		nlhstat->nlmsg_len = actual_size;
  
@@ -1946,7 +1943,7 @@
  	} while (err < 0 && err != -ECONNREFUSED);
  
  	return err;
-@@ -876,9 +711,7 @@ int iscsi_if_destroy_session_done(struct
+@@ -876,9 +709,7 @@ int iscsi_if_destroy_session_done(struct
  	session = iscsi_dev_to_session(conn->dev.parent);
  	shost = iscsi_session_to_shost(session);
  
@@ -1957,7 +1954,7 @@
  	if (!skb) {
  		dev_printk(KERN_ERR, &conn->dev, "Cannot notify userspace of "
  			  "session creation event\n");
-@@ -896,7 +729,7 @@ int iscsi_if_destroy_session_done(struct
+@@ -896,7 +727,7 @@ int iscsi_if_destroy_session_done(struct
  	 * this will occur if the daemon is not up, so we just warn
  	 * the user and when the daemon is restarted it will handle it
  	 */
@@ -1966,7 +1963,7 @@
  	if (rc < 0)
  		dev_printk(KERN_ERR, &conn->dev, "Cannot notify userspace of "
  			  "session destruction event. Check iscsi daemon\n");
-@@ -939,9 +772,7 @@ int iscsi_if_create_session_done(struct 
+@@ -939,9 +770,7 @@ int iscsi_if_create_session_done(struct 
  	session = iscsi_dev_to_session(conn->dev.parent);
  	shost = iscsi_session_to_shost(session);
  
@@ -1977,7 +1974,7 @@
  	if (!skb) {
  		dev_printk(KERN_ERR, &conn->dev, "Cannot notify userspace of "
  			  "session creation event\n");
-@@ -959,7 +790,7 @@ int iscsi_if_create_session_done(struct 
+@@ -959,7 +788,7 @@ int iscsi_if_create_session_done(struct 
  	 * this will occur if the daemon is not up, so we just warn
  	 * the user and when the daemon is restarted it will handle it
  	 */
@@ -1986,7 +1983,7 @@
  	if (rc < 0)
  		dev_printk(KERN_ERR, &conn->dev, "Cannot notify userspace of "
  			  "session creation event. Check iscsi daemon\n");
-@@ -1278,9 +1109,6 @@ iscsi_if_rx(struct sock *sk, int len)
+@@ -1278,9 +1107,6 @@ iscsi_if_rx(struct sock *sk, int len)
  				err = iscsi_if_send_reply(
  					NETLINK_CREDS(skb)->pid, nlh->nlmsg_seq,
  					nlh->nlmsg_type, 0, 0, ev, sizeof(*ev));
@@ -1996,7 +1993,7 @@
  			} while (err < 0 && err != -ECONNREFUSED);
  			skb_pull(skb, rlen);
  		}
-@@ -1584,32 +1412,6 @@ int iscsi_unregister_transport(struct is
+@@ -1584,32 +1410,6 @@ int iscsi_unregister_transport(struct is
  }
  EXPORT_SYMBOL_GPL(iscsi_unregister_transport);
  
@@ -2029,7 +2026,7 @@
  static __init int iscsi_transport_init(void)
  {
  	int err;
-@@ -1633,25 +1435,15 @@ static __init int iscsi_transport_init(v
+@@ -1633,25 +1433,15 @@ static __init int iscsi_transport_init(v
  	if (err)
  		goto unregister_conn_class;
  
@@ -2057,7 +2054,7 @@
  unregister_session_class:
  	transport_class_unregister(&iscsi_session_class);
  unregister_conn_class:
-@@ -1665,9 +1457,7 @@ unregister_transport_class:
+@@ -1665,9 +1455,7 @@ unregister_transport_class:
  
  static void __exit iscsi_transport_exit(void)
  {
@@ -2067,9 +2064,9 @@
  	transport_class_unregister(&iscsi_connection_class);
  	transport_class_unregister(&iscsi_session_class);
  	transport_class_unregister(&iscsi_host_class);
-diff -aurp linux-2.6.17.noarch/include/scsi/libiscsi.h linux-2.6.17.noarch.work/include/scsi/libiscsi.h
---- linux-2.6.17.noarch/include/scsi/libiscsi.h	2006-09-01 05:08:29.000000000 -0500
-+++ linux-2.6.17.noarch.work/include/scsi/libiscsi.h	2006-09-01 05:10:11.000000000 -0500
+diff -aurp linux-2.6.17.noarch/include/scsi/libiscsi.h linux-2.6.17.noarch.update/include/scsi/libiscsi.h
+--- linux-2.6.17.noarch/include/scsi/libiscsi.h	2006-09-15 13:28:25.000000000 -0500
++++ linux-2.6.17.noarch.update/include/scsi/libiscsi.h	2006-09-15 13:28:15.000000000 -0500
 @@ -102,6 +102,8 @@ struct iscsi_cmd_task {
  	uint32_t		unsol_datasn;
  	int			imm_count;	/* imm-data (bytes)   */
@@ -2097,9 +2094,9 @@
  extern int iscsi_conn_send_pdu(struct iscsi_cls_conn *, struct iscsi_hdr *,
  				char *, uint32_t);
  extern int iscsi_complete_pdu(struct iscsi_conn *, struct iscsi_hdr *,
-diff -aurp linux-2.6.17.noarch/include/scsi/scsi_transport_iscsi.h linux-2.6.17.noarch.work/include/scsi/scsi_transport_iscsi.h
---- linux-2.6.17.noarch/include/scsi/scsi_transport_iscsi.h	2006-09-01 05:08:29.000000000 -0500
-+++ linux-2.6.17.noarch.work/include/scsi/scsi_transport_iscsi.h	2006-09-01 05:10:39.000000000 -0500
+diff -aurp linux-2.6.17.noarch/include/scsi/scsi_transport_iscsi.h linux-2.6.17.noarch.update/include/scsi/scsi_transport_iscsi.h
+--- linux-2.6.17.noarch/include/scsi/scsi_transport_iscsi.h	2006-09-15 13:28:25.000000000 -0500
++++ linux-2.6.17.noarch.update/include/scsi/scsi_transport_iscsi.h	2006-09-15 13:28:15.000000000 -0500
 @@ -29,7 +29,6 @@
  struct scsi_transport_template;
  struct iscsi_transport;




More information about the fedora-cvs-commits mailing list