[SCSI] iscsi: handle nonlinear skbs
authorMike Christie <michaelc@cs.wisc.edu>
Tue, 13 Sep 2005 02:01:35 +0000 (21:01 -0500)
committerJames Bottomley <jejb@mulgrave.(none)>
Tue, 20 Sep 2005 17:32:45 +0000 (12:32 -0500)
From: zhenyu.z.wang@intel.com

Fix oops from nonlinear skb usage.

Signed-off-by: Alex Aizman <itn780@yahoo.com>
Signed-off-by: Dmitry Yusupov <dmitry_yus@yahoo.com>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/iscsi_tcp.c

index 8751f60..bb0a503 100644 (file)
@@ -1061,7 +1061,6 @@ iscsi_tcp_data_recv(read_descriptor_t *rd_desc, struct sk_buff *skb,
 {
        int rc;
        struct iscsi_conn *conn = rd_desc->arg.data;
-       int start = skb_headlen(skb);
        int processed;
        char pad[ISCSI_PAD_LEN];
        struct scatterlist sg;
@@ -1070,7 +1069,7 @@ iscsi_tcp_data_recv(read_descriptor_t *rd_desc, struct sk_buff *skb,
         * Save current SKB and its offset in the corresponding
         * connection context.
         */
-       conn->in.copy = start - offset;
+       conn->in.copy = skb->len - offset;
        conn->in.offset = offset;
        conn->in.skb = skb;
        conn->in.len = conn->in.copy;