[PATCH] ieee1394: sbp2: delayed_work -> work_struct

From: Stefan Richter
Date: Thu Dec 07 2006 - 16:40:33 EST


This work is not delayed.

Also bring the code format in a state which reduces my work to merge
pending sbp2 patchs.

Signed-off-by: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>
---
drivers/ieee1394/sbp2.c | 26 +++++++++++---------------
drivers/ieee1394/sbp2.h | 2 +-
2 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
index 6bd26a9..5156b88 100644
--- a/drivers/ieee1394/sbp2.c
+++ b/drivers/ieee1394/sbp2.c
@@ -462,23 +462,18 @@ static void sbp2util_notify_fetch_agent(

static void sbp2util_write_orb_pointer(struct work_struct *work)
{
- struct scsi_id_instance_data *scsi_id =
- container_of(work, struct scsi_id_instance_data,
- protocol_work.work);
quadlet_t data[2];

- data[0] = ORB_SET_NODE_ID(scsi_id->hi->host->node_id);
- data[1] = scsi_id->last_orb_dma;
+ data[0] = ORB_SET_NODE_ID(
+ (container_of(work, struct scsi_id_instance_data, protocol_work))->hi->host->node_id);
+ data[1] = (container_of(work, struct scsi_id_instance_data, protocol_work))->last_orb_dma;
sbp2util_cpu_to_be32_buffer(data, 8);
- sbp2util_notify_fetch_agent(scsi_id, SBP2_ORB_POINTER_OFFSET, data, 8);
+ sbp2util_notify_fetch_agent(container_of(work, struct scsi_id_instance_data, protocol_work), SBP2_ORB_POINTER_OFFSET, data, 8);
}

static void sbp2util_write_doorbell(struct work_struct *work)
{
- struct scsi_id_instance_data *scsi_id =
- container_of(work, struct scsi_id_instance_data,
- protocol_work.work);
- sbp2util_notify_fetch_agent(scsi_id, SBP2_DOORBELL_OFFSET, NULL, 4);
+ sbp2util_notify_fetch_agent(container_of(work, struct scsi_id_instance_data, protocol_work), SBP2_DOORBELL_OFFSET, NULL, 4);
}

/*
@@ -795,7 +790,7 @@ static struct scsi_id_instance_data *sbp
INIT_LIST_HEAD(&scsi_id->scsi_list);
spin_lock_init(&scsi_id->sbp2_command_orb_lock);
atomic_set(&scsi_id->state, SBP2LU_STATE_RUNNING);
- INIT_DELAYED_WORK(&scsi_id->protocol_work, NULL);
+ INIT_WORK(&scsi_id->protocol_work, NULL);

ud->device.driver_data = scsi_id;

@@ -1578,7 +1573,7 @@ static int sbp2_agent_reset(struct scsi_
int retval;
unsigned long flags;

- cancel_delayed_work(&scsi_id->protocol_work);
+ /* cancel_delayed_work(&scsi_id->protocol_work); */
if (wait)
flush_scheduled_work();

@@ -1889,10 +1884,11 @@ static void sbp2_link_orb_command(struct
* We do not accept new commands until the job is over.
*/
scsi_block_requests(scsi_id->scsi_host);
- PREPARE_DELAYED_WORK(&scsi_id->protocol_work,
+ PREPARE_WORK(&scsi_id->protocol_work,
last_orb ? sbp2util_write_doorbell:
- sbp2util_write_orb_pointer);
- schedule_delayed_work(&scsi_id->protocol_work, 0);
+ sbp2util_write_orb_pointer
+ /* */);
+ schedule_work(&scsi_id->protocol_work);
}
}

diff --git a/drivers/ieee1394/sbp2.h b/drivers/ieee1394/sbp2.h
index 7b42420..5483b45 100644
--- a/drivers/ieee1394/sbp2.h
+++ b/drivers/ieee1394/sbp2.h
@@ -342,7 +342,7 @@ struct scsi_id_instance_data {
unsigned workarounds;

atomic_t state;
- struct delayed_work protocol_work;
+ struct work_struct protocol_work;
};

/* For use in scsi_id_instance_data.state */
--
1.4.2.4


--------------010100040305060102030609
Content-Type: text/plain;
name*0="219-ieee1394-sbp2-code-formatting-around-work_struct-stuff.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename*0="219-ieee1394-sbp2-code-formatting-around-work_struct-stuff.p";
filename*1="atch"