Signed-off-by: Al Viro <[EMAIL PROTECTED]>
---

diff --git a/drivers/scsi/ibmvscsi/ibmvstgt.c b/drivers/scsi/ibmvscsi/ibmvstgt.c
index 0e74174..e28260f 100644
--- a/drivers/scsi/ibmvscsi/ibmvstgt.c
+++ b/drivers/scsi/ibmvscsi/ibmvstgt.c
@@ -67,6 +67,7 @@ struct vio_port {
 
        unsigned long liobn;
        unsigned long riobn;
+       struct srp_target *target;
 };
 
 static struct workqueue_struct *vtgtd;
@@ -685,10 +686,10 @@ static inline struct viosrp_crq *next_cr
        return crq;
 }
 
-static void handle_crq(void *data)
+static void handle_crq(struct work_struct *work)
 {
-       struct srp_target *target = (struct srp_target *) data;
-       struct vio_port *vport = target_to_port(target);
+       struct vio_port *vport = container_of(work, struct vio_port, crq_work);
+       struct srp_target *target = vport->target;
        struct viosrp_crq *crq;
        int done = 0;
 
@@ -822,6 +823,7 @@ static int ibmvstgt_probe(struct vio_dev
        target->shost = shost;
        vport->dma_dev = dev;
        target->ldata = vport;
+       vport->target = target;
        err = srp_target_alloc(target, &dev->dev, INITIAL_SRP_LIMIT,
                               SRP_MAX_IU_LEN);
        if (err)
@@ -837,7 +839,7 @@ static int ibmvstgt_probe(struct vio_dev
        vport->liobn = dma[0];
        vport->riobn = dma[5];
 
-       INIT_WORK(&vport->crq_work, handle_crq, target);
+       INIT_WORK(&vport->crq_work, handle_crq);
 
        err = crq_queue_create(&vport->crq_queue, target);
        if (err)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to