[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [linux-2.6.18-xen] pvSCSI: cleanup and fix few bugs



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1215505884 -3600
# Node ID db4f08203b8a3ecd8a633a3593f5b4fd363ea37c
# Parent  132bae41625ff2bb9f48c65bf643c462093d455d
pvSCSI: cleanup and fix few bugs

Signed-off-by: Tomonari Horikoshi <t.horikoshi@xxxxxxxxxxxxxx>
Signed-off-by: Jun Kamada <kama@xxxxxxxxxxxxxx>
---
 drivers/xen/scsiback/scsiback.c   |   20 ++++++++++++--------
 drivers/xen/scsiback/translate.c  |    2 +-
 drivers/xen/scsifront/scsifront.c |    1 -
 3 files changed, 13 insertions(+), 10 deletions(-)

diff -r 132bae41625f -r db4f08203b8a drivers/xen/scsiback/scsiback.c
--- a/drivers/xen/scsiback/scsiback.c   Tue Jul 08 09:30:34 2008 +0100
+++ b/drivers/xen/scsiback/scsiback.c   Tue Jul 08 09:31:24 2008 +0100
@@ -510,7 +510,7 @@ static int prepare_pending_reqs(struct v
                pending_req->sdev = NULL;
                DPRINTK("scsiback: doesn't exist.\n");
                err = -ENODEV;
-               goto invald_value;
+               goto invalid_value;
        }
        pending_req->sdev = sdev;
 
@@ -524,7 +524,7 @@ static int prepare_pending_reqs(struct v
                DPRINTK("scsiback: invalid parameter data_dir = %d\n",
                        pending_req->sc_data_direction);
                err = -EINVAL;
-               goto invald_value;
+               goto invalid_value;
        }
 
        pending_req->nr_segments = ring_req->nr_segments;
@@ -533,7 +533,7 @@ static int prepare_pending_reqs(struct v
                DPRINTK("scsiback: invalid parameter nr_seg = %d\n",
                        pending_req->nr_segments);
                err = -EINVAL;
-               goto invald_value;
+               goto invalid_value;
        }
 
        pending_req->cmd_len = ring_req->cmd_len;
@@ -542,7 +542,7 @@ static int prepare_pending_reqs(struct v
                DPRINTK("scsiback: invalid parameter cmd_len = %d\n",
                        pending_req->cmd_len);
                err = -EINVAL;
-               goto invald_value;
+               goto invalid_value;
        }
        memcpy(pending_req->cmnd, ring_req->cmnd, pending_req->cmd_len);
        
@@ -551,12 +551,12 @@ static int prepare_pending_reqs(struct v
        if(scsiback_gnttab_data_map(ring_req, pending_req)) {
                DPRINTK("scsiback: invalid buffer\n");
                err = -EINVAL;
-               goto invald_value;
+               goto invalid_value;
        }
 
        return 0;
 
-invald_value:
+invalid_value:
        return err;
 }
 
@@ -669,7 +669,7 @@ static int __init scsiback_init(void)
                pending_grant_handles[i] = SCSIBACK_INVALID_HANDLE;
 
        if (scsiback_interface_init() < 0)
-               goto out_of_memory;
+               goto out_of_kmem;
 
        memset(pending_reqs, 0, sizeof(pending_reqs));
        INIT_LIST_HEAD(&pending_free);
@@ -678,12 +678,16 @@ static int __init scsiback_init(void)
                list_add_tail(&pending_reqs[i].free_list, &pending_free);
 
        if (scsiback_xenbus_init())
-               goto out_of_memory;
+               goto out_of_xenbus;
 
        scsiback_emulation_init();
 
        return 0;
 
+out_of_xenbus:
+       scsiback_xenbus_unregister();
+out_of_kmem:
+       scsiback_interface_exit();
 out_of_memory:
        kfree(pending_reqs);
        kfree(pending_grant_handles);
diff -r 132bae41625f -r db4f08203b8a drivers/xen/scsiback/translate.c
--- a/drivers/xen/scsiback/translate.c  Tue Jul 08 09:30:34 2008 +0100
+++ b/drivers/xen/scsiback/translate.c  Tue Jul 08 09:31:24 2008 +0100
@@ -107,7 +107,7 @@ int scsiback_del_translation_entry(struc
        }
 
        spin_unlock_irqrestore(&info->v2p_lock, flags);
-       return 0;
+       return 1;
 
 found:
        /* Delete the translation entry specfied */
diff -r 132bae41625f -r db4f08203b8a drivers/xen/scsifront/scsifront.c
--- a/drivers/xen/scsifront/scsifront.c Tue Jul 08 09:30:34 2008 +0100
+++ b/drivers/xen/scsifront/scsifront.c Tue Jul 08 09:31:24 2008 +0100
@@ -146,7 +146,6 @@ static void scsifront_cdb_cmd_done(struc
        scsifront_gnttab_done(&info->shadow[id], id);
        add_id_to_freelist(info, id);
 
-       rmb();
        if (atomic_read(&info->abort_reset_cond) == VSCSI_IN_RESET) {
                sc->result = (DID_RESET << 16);
        } else {

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.